diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po index ff84dd866e8..0e216ddb68f 100644 --- a/addons/account/i18n/zh_CN.po +++ b/addons/account/i18n/zh_CN.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2013-01-30 03:58+0000\n" -"Last-Translator: Wei \"oldrev\" Li \n" +"PO-Revision-Date: 2013-04-25 09:04+0000\n" +"Last-Translator: Oliver Yuan \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:20+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-04-26 05:34+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -10748,7 +10748,7 @@ msgstr "手动的发票税(非主营业务纳税)" #: code:addons/account/account_invoice.py:550 #, python-format msgid "The payment term of supplier does not have a payment term line." -msgstr "" +msgstr "供应商付款条件没有包含付款条件行" #. module: account #: field:account.account,parent_right:0 diff --git a/addons/account_bank_statement_extensions/i18n/hu.po b/addons/account_bank_statement_extensions/i18n/hu.po new file mode 100644 index 00000000000..a631c43ade0 --- /dev/null +++ b/addons/account_bank_statement_extensions/i18n/hu.po @@ -0,0 +1,362 @@ +# Hungarian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-05-05 23:08+0000\n" +"Last-Translator: krnkris \n" +"Language-Team: Hungarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-05-06 05:40+0000\n" +"X-Generator: Launchpad (build 16598)\n" + +#. module: account_bank_statement_extensions +#: help:account.bank.statement.line.global,name:0 +msgid "Originator to Beneficiary Information" +msgstr "Kezdeményezőtől a kedvezményezetthez intézett információ" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +#: selection:account.bank.statement.line,state:0 +msgid "Confirmed" +msgstr "Jóváhagyott" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement:0 +#: view:account.bank.statement.line:0 +msgid "Glob. Id" +msgstr "Globális ID azonosító" + +#. module: account_bank_statement_extensions +#: selection:account.bank.statement.line.global,type:0 +msgid "CODA" +msgstr "CODA" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,parent_id:0 +msgid "Parent Code" +msgstr "Szülő kód" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Debit" +msgstr "Tartozik" + +#. module: account_bank_statement_extensions +#: view:cancel.statement.line:0 +#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_cancel_statement_line +#: model:ir.model,name:account_bank_statement_extensions.model_cancel_statement_line +msgid "Cancel selected statement lines" +msgstr "Kiválasztott számlakivonat sorok visszavonása" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,val_date:0 +msgid "Value Date" +msgstr "Értéknap" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Group By..." +msgstr "Csoportosítás ezzel..." + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +#: selection:account.bank.statement.line,state:0 +msgid "Draft" +msgstr "Tervezet" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Statement" +msgstr "Kivonat" + +#. module: account_bank_statement_extensions +#: view:confirm.statement.line:0 +#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_confirm_statement_line +#: model:ir.model,name:account_bank_statement_extensions.model_confirm_statement_line +msgid "Confirm selected statement lines" +msgstr "Kiválasztott bankszámla kivonat sorok jóváhagyása" + +#. module: account_bank_statement_extensions +#: report:bank.statement.balance.report:0 +#: model:ir.actions.report.xml,name:account_bank_statement_extensions.bank_statement_balance_report +msgid "Bank Statement Balances Report" +msgstr "Bank kivonat egyenleg kimutatás" + +#. module: account_bank_statement_extensions +#: view:cancel.statement.line:0 +msgid "Cancel Lines" +msgstr "Sorok elvetése" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line.global:0 +#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line_global +msgid "Batch Payment Info" +msgstr "Köptegelt fizetés információ" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,state:0 +msgid "Status" +msgstr "Állapot" + +#. module: account_bank_statement_extensions +#: code:addons/account_bank_statement_extensions/account_bank_statement.py:129 +#, python-format +msgid "" +"Delete operation not allowed. Please go to the associated bank " +"statement in order to delete and/or modify bank statement line." +msgstr "" +"A törlés végrehajtás nem engedélyezett. Kérem menjen az ide vonatkozó banki " +"kivonathoz, hogy azt törölhesse és/vagy módosíthassa." + +#. module: account_bank_statement_extensions +#: view:confirm.statement.line:0 +msgid "or" +msgstr "vagy" + +#. module: account_bank_statement_extensions +#: view:confirm.statement.line:0 +msgid "Confirm Lines" +msgstr "Jóváhagyott sorok5" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line.global:0 +msgid "Transactions" +msgstr "Tranzakciók" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,type:0 +msgid "Type" +msgstr "Típus" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +#: report:bank.statement.balance.report:0 +msgid "Journal" +msgstr "Napló" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Confirmed Statement Lines." +msgstr "Jóváhagyott kivonat sorok" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Credit Transactions." +msgstr "Jóváírási tranzakció" + +#. module: account_bank_statement_extensions +#: model:ir.actions.act_window,help:account_bank_statement_extensions.action_cancel_statement_line +msgid "cancel selected statement lines." +msgstr "kiválasztott kivonat sorok visszavonása" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,counterparty_number:0 +msgid "Counterparty Number" +msgstr "Ellanoldali szám" + +#. module: account_bank_statement_extensions +#: report:bank.statement.balance.report:0 +msgid "Closing Balance" +msgstr "Záró egyenleg" + +#. module: account_bank_statement_extensions +#: report:bank.statement.balance.report:0 +msgid "Date" +msgstr "Dátum" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +#: field:account.bank.statement.line,globalisation_amount:0 +msgid "Glob. Amount" +msgstr "Globális összeg" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Debit Transactions." +msgstr "Terhelés tranzakciók" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Extended Filters..." +msgstr "Kiterjesztett szűrők…" + +#. module: account_bank_statement_extensions +#: view:confirm.statement.line:0 +msgid "Confirmed lines cannot be changed anymore." +msgstr "Jóváhagyott sorokat enm lehet többé megváltoztatni." + +#. module: account_bank_statement_extensions +#: view:cancel.statement.line:0 +msgid "Are you sure you want to cancel the selected Bank Statement lines ?" +msgstr "" +"Biztos benne, hogy vissza akarja vonni a kijelölt banki kivonat sorokat?" + +#. module: account_bank_statement_extensions +#: report:bank.statement.balance.report:0 +msgid "Name" +msgstr "Név" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,name:0 +msgid "OBI" +msgstr "OBI" + +#. module: account_bank_statement_extensions +#: selection:account.bank.statement.line.global,type:0 +msgid "ISO 20022" +msgstr "ISO 20022" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Notes" +msgstr "Jegyzetek" + +#. module: account_bank_statement_extensions +#: selection:account.bank.statement.line.global,type:0 +msgid "Manual" +msgstr "Kézi" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Bank Transaction" +msgstr "Banki tranzakciók" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Credit" +msgstr "Jóváírás" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,amount:0 +msgid "Amount" +msgstr "Összeg" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Fin.Account" +msgstr "Főkönyvi számla" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,counterparty_currency:0 +msgid "Counterparty Currency" +msgstr "Ellenoldal pénzneme" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,counterparty_bic:0 +msgid "Counterparty BIC" +msgstr "Ellenoldali BIC" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,child_ids:0 +msgid "Child Codes" +msgstr "Alárendelt kódok" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Search Bank Transactions" +msgstr "Banki tranzakciók keresése" + +#. module: account_bank_statement_extensions +#: view:confirm.statement.line:0 +msgid "Are you sure you want to confirm the selected Bank Statement lines ?" +msgstr "Biztos, hogy jóvá akarja hagyni a kiválasztott banki kivonat sorait?" + +#. module: account_bank_statement_extensions +#: help:account.bank.statement.line,globalisation_id:0 +msgid "" +"Code to identify transactions belonging to the same globalisation level " +"within a batch payment" +msgstr "" +"Ugynahhoz, a kötegelt utaláson belüli, globalizált szinthez tartozó " +"tranzakció azonosító kód" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Draft Statement Lines." +msgstr "Tervezet kivonat sorok." + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Glob. Am." +msgstr "" + +#. module: account_bank_statement_extensions +#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line +msgid "Bank Statement Line" +msgstr "Bankkivonat sor" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,code:0 +msgid "Code" +msgstr "Kód" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,counterparty_name:0 +msgid "Counterparty Name" +msgstr "Ellenoldal megnevezése" + +#. module: account_bank_statement_extensions +#: model:ir.model,name:account_bank_statement_extensions.model_res_partner_bank +msgid "Bank Accounts" +msgstr "Bankszámlák" + +#. module: account_bank_statement_extensions +#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement +msgid "Bank Statement" +msgstr "Bankszámlakivonat" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Statement Line" +msgstr "Kivonat sor" + +#. module: account_bank_statement_extensions +#: sql_constraint:account.bank.statement.line.global:0 +msgid "The code must be unique !" +msgstr "A kódnak egyedinek kell lennie !" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,bank_statement_line_ids:0 +#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_bank_statement_line +#: model:ir.ui.menu,name:account_bank_statement_extensions.bank_statement_line +msgid "Bank Statement Lines" +msgstr "Bankkivonat sorai" + +#. module: account_bank_statement_extensions +#: code:addons/account_bank_statement_extensions/account_bank_statement.py:129 +#, python-format +msgid "Warning!" +msgstr "Figyelem!" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line.global:0 +msgid "Child Batch Payments" +msgstr "Alárendelt kötegelt utalások" + +#. module: account_bank_statement_extensions +#: view:confirm.statement.line:0 +msgid "Cancel" +msgstr "Mégse" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Statement Lines" +msgstr "Kivonat sorai" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Total Amount" +msgstr "Teljes érték" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,globalisation_id:0 +msgid "Globalisation ID" +msgstr "Globalizált ID azonosító" diff --git a/addons/account_voucher/i18n/nl_BE.po b/addons/account_voucher/i18n/nl_BE.po index 0cdc8cd8399..a58e655aec6 100644 --- a/addons/account_voucher/i18n/nl_BE.po +++ b/addons/account_voucher/i18n/nl_BE.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2012-12-19 18:04+0000\n" +"PO-Revision-Date: 2013-04-26 16:01+0000\n" "Last-Translator: Els Van Vossel (Agaplan) \n" "Language-Team: Els Van Vossel\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:33+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-04-27 05:44+0000\n" +"X-Generator: Launchpad (build 16580)\n" "Language: nl\n" #. module: account_voucher @@ -138,6 +138,8 @@ msgid "" "You can not change the journal as you already reconciled some statement " "lines!" msgstr "" +"U kunt het journaal niet veranderen, omdat er al uittreksellijnen zijn " +"afgepunt." #. module: account_voucher #: view:account.voucher:0 @@ -148,7 +150,7 @@ msgstr "Goedkeuren" #: model:ir.actions.act_window,name:account_voucher.action_vendor_payment #: model:ir.ui.menu,name:account_voucher.menu_action_vendor_payment msgid "Supplier Payments" -msgstr "" +msgstr "Leveranciersbetalingen" #. module: account_voucher #: model:ir.actions.act_window,help:account_voucher.action_purchase_receipt @@ -223,7 +225,7 @@ msgstr "Berichten" #: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt #: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt msgid "Purchase Receipts" -msgstr "" +msgstr "Aankoopbewijzen" #. module: account_voucher #: field:account.voucher.line,move_line_id:0 @@ -431,7 +433,7 @@ msgstr "Debet" #: code:addons/account_voucher/account_voucher.py:1547 #, python-format msgid "Unable to change journal !" -msgstr "" +msgstr "Het dagboek kan niet worden gewijzigd" #. module: account_voucher #: view:sale.receipt.report:0 @@ -745,7 +747,7 @@ msgstr "Augustus" #. module: account_voucher #: view:account.voucher:0 msgid "Validate Payment" -msgstr "" +msgstr "Betaling bevestigen" #. module: account_voucher #: help:account.voucher,audit:0 @@ -786,7 +788,7 @@ msgstr "Betaald" #: model:ir.actions.act_window,name:account_voucher.action_sale_receipt #: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt msgid "Sales Receipts" -msgstr "" +msgstr "Verkoopbewijzen" #. module: account_voucher #: field:account.voucher,message_is_follower:0 @@ -834,7 +836,7 @@ msgstr "Onmiddellijk betalen" #. module: account_voucher #: field:account.voucher.line,type:0 msgid "Dr/Cr" -msgstr "" +msgstr "Db/Cr" #. module: account_voucher #: field:account.voucher,pre_line:0 @@ -845,7 +847,7 @@ msgstr "Vorige betalingen?" #: code:addons/account_voucher/account_voucher.py:1112 #, python-format msgid "The invoice you are willing to pay is not valid anymore." -msgstr "" +msgstr "De factuur die u wilt betalen, is niet meer geldig." #. module: account_voucher #: selection:sale.receipt.report,month:0 @@ -884,7 +886,7 @@ msgstr "Gelieve een reeks in te stellen voor het journaal." #: model:ir.actions.act_window,name:account_voucher.action_vendor_receipt #: model:ir.ui.menu,name:account_voucher.menu_action_vendor_receipt msgid "Customer Payments" -msgstr "" +msgstr "Klantenbetalingen" #. module: account_voucher #: model:ir.actions.act_window,name:account_voucher.action_sale_receipt_report_all @@ -938,7 +940,7 @@ msgstr "Nummer" #. module: account_voucher #: selection:account.voucher.line,type:0 msgid "Credit" -msgstr "" +msgstr "Credit" #. module: account_voucher #: model:ir.model,name:account_voucher.model_account_bank_statement @@ -1279,7 +1281,7 @@ msgstr "Openstaand saldo" #. module: account_voucher #: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change msgid "Status changed" -msgstr "" +msgstr "Status vgewijzigd" #. module: account_voucher #: code:addons/account_voucher/account_voucher.py:1014 diff --git a/addons/analytic/i18n/lt.po b/addons/analytic/i18n/lt.po new file mode 100644 index 00000000000..d9073313307 --- /dev/null +++ b/addons/analytic/i18n/lt.po @@ -0,0 +1,388 @@ +# Lithuanian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-29 15:10+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Lithuanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-30 05:29+0000\n" +"X-Generator: Launchpad (build 16580)\n" + +#. module: analytic +#: field:account.analytic.account,child_ids:0 +msgid "Child Accounts" +msgstr "" + +#. module: analytic +#: selection:account.analytic.account,state:0 +msgid "In Progress" +msgstr "" + +#. module: analytic +#: code:addons/analytic/analytic.py:229 +#, python-format +msgid "Contract: " +msgstr "" + +#. module: analytic +#: selection:account.analytic.account,state:0 +msgid "Template" +msgstr "" + +#. module: analytic +#: view:account.analytic.account:0 +msgid "End Date" +msgstr "" + +#. module: analytic +#: help:account.analytic.line,unit_amount:0 +msgid "Specifies the amount of quantity to count." +msgstr "" + +#. module: analytic +#: field:account.analytic.account,debit:0 +msgid "Debit" +msgstr "" + +#. module: analytic +#: help:account.analytic.account,type:0 +msgid "" +"If you select the View Type, it means you won't allow to create journal " +"entries using that account.\n" +"The type 'Analytic account' stands for usual accounts that you only want to " +"use in accounting.\n" +"If you select Contract or Project, it offers you the possibility to manage " +"the validity and the invoicing options for this account.\n" +"The special type 'Template of Contract' allows you to define a template with " +"default data that you can reuse easily." +msgstr "" + +#. module: analytic +#: view:account.analytic.account:0 +msgid "" +"Once the end date of the contract is\n" +" passed or the maximum number of " +"service\n" +" units (e.g. support contract) is\n" +" reached, the account manager is " +"notified \n" +" by email to renew the contract with " +"the\n" +" customer." +msgstr "" + +#. module: analytic +#: selection:account.analytic.account,type:0 +msgid "Contract or Project" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,name:0 +msgid "Account/Contract Name" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,manager_id:0 +msgid "Account Manager" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,message_follower_ids:0 +msgid "Followers" +msgstr "" + +#. module: analytic +#: selection:account.analytic.account,state:0 +msgid "Closed" +msgstr "" + +#. module: analytic +#: model:mail.message.subtype,name:analytic.mt_account_pending +msgid "Contract to Renew" +msgstr "" + +#. module: analytic +#: selection:account.analytic.account,state:0 +msgid "New" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,user_id:0 +msgid "Project Manager" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,state:0 +msgid "Status" +msgstr "" + +#. module: analytic +#: code:addons/analytic/analytic.py:271 +#, python-format +msgid "%s (copy)" +msgstr "" + +#. module: analytic +#: model:ir.model,name:analytic.model_account_analytic_line +msgid "Analytic Line" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,description:0 +#: field:account.analytic.line,name:0 +msgid "Description" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,message_unread:0 +msgid "Unread Messages" +msgstr "" + +#. module: analytic +#: constraint:account.analytic.account:0 +msgid "Error! You cannot create recursive analytic accounts." +msgstr "" + +#. module: analytic +#: field:account.analytic.account,company_id:0 +#: field:account.analytic.line,company_id:0 +msgid "Company" +msgstr "" + +#. module: analytic +#: view:account.analytic.account:0 +msgid "Renewal" +msgstr "" + +#. module: analytic +#: help:account.analytic.account,message_ids:0 +msgid "Messages and communication history" +msgstr "" + +#. module: analytic +#: model:mail.message.subtype,description:analytic.mt_account_opened +msgid "Stage opened" +msgstr "" + +#. module: analytic +#: help:account.analytic.account,quantity_max:0 +msgid "" +"Sets the higher limit of time to work on the contract, based on the " +"timesheet. (for instance, number of hours in a limited support contract.)" +msgstr "" + +#. module: analytic +#: code:addons/analytic/analytic.py:160 +#, python-format +msgid "" +"If you set a company, the currency selected has to be the same as it's " +"currency. \n" +"You can remove the company belonging, and thus change the currency, only on " +"analytic account of type 'view'. This can be really usefull for " +"consolidation purposes of several companies charts with different " +"currencies, for example." +msgstr "" + +#. module: analytic +#: field:account.analytic.account,message_is_follower:0 +msgid "Is a Follower" +msgstr "" + +#. module: analytic +#: field:account.analytic.line,user_id:0 +msgid "User" +msgstr "" + +#. module: analytic +#: model:mail.message.subtype,description:analytic.mt_account_pending +msgid "Contract pending" +msgstr "" + +#. module: analytic +#: field:account.analytic.line,date:0 +msgid "Date" +msgstr "" + +#. module: analytic +#: model:mail.message.subtype,name:analytic.mt_account_closed +msgid "Contract Finished" +msgstr "" + +#. module: analytic +#: view:account.analytic.account:0 +msgid "Terms and Conditions" +msgstr "" + +#. module: analytic +#: help:account.analytic.line,amount:0 +msgid "" +"Calculated by multiplying the quantity and the price given in the Product's " +"cost price. Always expressed in the company main currency." +msgstr "" + +#. module: analytic +#: field:account.analytic.account,partner_id:0 +msgid "Customer" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,child_complete_ids:0 +msgid "Account Hierarchy" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,message_ids:0 +msgid "Messages" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,parent_id:0 +msgid "Parent Analytic Account" +msgstr "" + +#. module: analytic +#: view:account.analytic.account:0 +msgid "Contract Information" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,template_id:0 +#: selection:account.analytic.account,type:0 +msgid "Template of Contract" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,message_summary:0 +msgid "Summary" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,quantity_max:0 +msgid "Prepaid Service Units" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,credit:0 +msgid "Credit" +msgstr "" + +#. module: analytic +#: model:mail.message.subtype,name:analytic.mt_account_opened +msgid "Contract Opened" +msgstr "" + +#. module: analytic +#: model:mail.message.subtype,description:analytic.mt_account_closed +msgid "Contract closed" +msgstr "" + +#. module: analytic +#: selection:account.analytic.account,state:0 +msgid "Cancelled" +msgstr "" + +#. module: analytic +#: selection:account.analytic.account,type:0 +msgid "Analytic View" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,balance:0 +msgid "Balance" +msgstr "" + +#. module: analytic +#: help:account.analytic.account,message_unread:0 +msgid "If checked new messages require your attention." +msgstr "" + +#. module: analytic +#: selection:account.analytic.account,state:0 +msgid "To Renew" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,quantity:0 +#: field:account.analytic.line,unit_amount:0 +msgid "Quantity" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,date:0 +msgid "Date End" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,code:0 +msgid "Reference" +msgstr "" + +#. module: analytic +#: code:addons/analytic/analytic.py:160 +#, python-format +msgid "Error!" +msgstr "" + +#. module: analytic +#: model:res.groups,name:analytic.group_analytic_accounting +msgid "Analytic Accounting" +msgstr "" + +#. module: analytic +#: field:account.analytic.line,amount:0 +msgid "Amount" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,complete_name:0 +msgid "Full Account Name" +msgstr "" + +#. module: analytic +#: view:account.analytic.account:0 +#: selection:account.analytic.account,type:0 +#: field:account.analytic.line,account_id:0 +#: model:ir.model,name:analytic.model_account_analytic_account +msgid "Analytic Account" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,currency_id:0 +msgid "Currency" +msgstr "" + +#. module: analytic +#: help:account.analytic.account,message_summary:0 +msgid "" +"Holds the Chatter summary (number of messages, ...). This summary is " +"directly in html format in order to be inserted in kanban views." +msgstr "" + +#. module: analytic +#: field:account.analytic.account,type:0 +msgid "Type of Account" +msgstr "" + +#. module: analytic +#: field:account.analytic.account,date_start:0 +msgid "Start Date" +msgstr "" + +#. module: analytic +#: constraint:account.analytic.line:0 +msgid "You cannot create analytic line on view account." +msgstr "" + +#. module: analytic +#: field:account.analytic.account,line_ids:0 +msgid "Analytic Entries" +msgstr "" diff --git a/addons/auth_crypt/i18n/lt.po b/addons/auth_crypt/i18n/lt.po new file mode 100644 index 00000000000..03f0bd5249f --- /dev/null +++ b/addons/auth_crypt/i18n/lt.po @@ -0,0 +1,28 @@ +# Lithuanian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-24 18:24+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Lithuanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-25 05:20+0000\n" +"X-Generator: Launchpad (build 16580)\n" + +#. module: auth_crypt +#: field:res.users,password_crypt:0 +msgid "Encrypted Password" +msgstr "Užšifruotas slaptažodis" + +#. module: auth_crypt +#: model:ir.model,name:auth_crypt.model_res_users +msgid "Users" +msgstr "Naudotojai" diff --git a/addons/auth_oauth_signup/i18n/lt.po b/addons/auth_oauth_signup/i18n/lt.po new file mode 100644 index 00000000000..27fb83e6a4f --- /dev/null +++ b/addons/auth_oauth_signup/i18n/lt.po @@ -0,0 +1,23 @@ +# Lithuanian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-24 18:21+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Lithuanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-25 05:20+0000\n" +"X-Generator: Launchpad (build 16580)\n" + +#. module: auth_oauth_signup +#: model:ir.model,name:auth_oauth_signup.model_res_users +msgid "Users" +msgstr "Naudotojai" diff --git a/addons/auth_signup/i18n/lt.po b/addons/auth_signup/i18n/lt.po new file mode 100644 index 00000000000..7ae419856e6 --- /dev/null +++ b/addons/auth_signup/i18n/lt.po @@ -0,0 +1,279 @@ +# Lithuanian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-29 15:13+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Lithuanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-30 05:29+0000\n" +"X-Generator: Launchpad (build 16580)\n" + +#. module: auth_signup +#: field:res.partner,signup_type:0 +msgid "Signup Token Type" +msgstr "" + +#. module: auth_signup +#: field:base.config.settings,auth_signup_uninvited:0 +msgid "Allow external users to sign up" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:16 +#, python-format +msgid "Confirm Password" +msgstr "" + +#. module: auth_signup +#: help:base.config.settings,auth_signup_uninvited:0 +msgid "If unchecked, only invited users may sign up." +msgstr "" + +#. module: auth_signup +#: model:ir.model,name:auth_signup.model_base_config_settings +msgid "base.config.settings" +msgstr "" + +#. module: auth_signup +#: code:addons/auth_signup/res_users.py:265 +#, python-format +msgid "Cannot send email: user has no email address." +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:24 +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:28 +#, python-format +msgid "Reset password" +msgstr "" + +#. module: auth_signup +#: field:base.config.settings,auth_signup_template_user_id:0 +msgid "Template user for new users created through signup" +msgstr "" + +#. module: auth_signup +#: model:email.template,subject:auth_signup.reset_password_email +msgid "Password reset" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:117 +#, python-format +msgid "Please enter a password and confirm it." +msgstr "" + +#. module: auth_signup +#: view:res.users:0 +msgid "Send an email to the user to (re)set their password." +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:23 +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:26 +#, python-format +msgid "Sign Up" +msgstr "" + +#. module: auth_signup +#: selection:res.users,state:0 +msgid "New" +msgstr "" + +#. module: auth_signup +#: code:addons/auth_signup/res_users.py:258 +#, python-format +msgid "Mail sent to:" +msgstr "" + +#. module: auth_signup +#: field:res.users,state:0 +msgid "Status" +msgstr "" + +#. module: auth_signup +#: model:email.template,body_html:auth_signup.reset_password_email +msgid "" +"\n" +"

A password reset was requested for the OpenERP account linked to this " +"email.

\n" +"\n" +"

You may change your password by following this link.

\n" +"\n" +"

Note: If you do not expect this, you can safely ignore this email.

" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:111 +#, python-format +msgid "Please enter a name." +msgstr "" + +#. module: auth_signup +#: model:ir.model,name:auth_signup.model_res_users +msgid "Users" +msgstr "" + +#. module: auth_signup +#: field:res.partner,signup_url:0 +msgid "Signup URL" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:114 +#, python-format +msgid "Please enter a username." +msgstr "" + +#. module: auth_signup +#: selection:res.users,state:0 +msgid "Active" +msgstr "" + +#. module: auth_signup +#: code:addons/auth_signup/res_users.py:269 +#, python-format +msgid "" +"Cannot send email: no outgoing email server configured.\n" +"You can configure it under Settings/General Settings." +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:12 +#, python-format +msgid "Username" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:8 +#, python-format +msgid "Name" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:170 +#, python-format +msgid "Please enter a username or email address." +msgstr "" + +#. module: auth_signup +#: selection:res.users,state:0 +msgid "Resetting Password" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:13 +#, python-format +msgid "Username (Email)" +msgstr "" + +#. module: auth_signup +#: field:res.partner,signup_expiration:0 +msgid "Signup Expiration" +msgstr "" + +#. module: auth_signup +#: help:base.config.settings,auth_signup_reset_password:0 +msgid "This allows users to trigger a password reset from the Login page." +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22 +#, python-format +msgid "Log in" +msgstr "" + +#. module: auth_signup +#: field:res.partner,signup_valid:0 +msgid "Signup Token is Valid" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:108 +#: code:addons/auth_signup/static/src/js/auth_signup.js:111 +#: code:addons/auth_signup/static/src/js/auth_signup.js:114 +#: code:addons/auth_signup/static/src/js/auth_signup.js:117 +#: code:addons/auth_signup/static/src/js/auth_signup.js:120 +#: code:addons/auth_signup/static/src/js/auth_signup.js:167 +#: code:addons/auth_signup/static/src/js/auth_signup.js:170 +#, python-format +msgid "Login" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:94 +#, python-format +msgid "Invalid signup token" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:120 +#, python-format +msgid "Passwords do not match; please retype them." +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:108 +#: code:addons/auth_signup/static/src/js/auth_signup.js:167 +#, python-format +msgid "No database selected !" +msgstr "" + +#. module: auth_signup +#: view:res.users:0 +msgid "Reset Password" +msgstr "" + +#. module: auth_signup +#: field:base.config.settings,auth_signup_reset_password:0 +msgid "Enable password reset from Login page" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:27 +#, python-format +msgid "Back to Login" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22 +#, python-format +msgid "Sign up" +msgstr "" + +#. module: auth_signup +#: model:ir.model,name:auth_signup.model_res_partner +msgid "Partner" +msgstr "" + +#. module: auth_signup +#: field:res.partner,signup_token:0 +msgid "Signup Token" +msgstr "" diff --git a/addons/base_calendar/i18n/es_MX.po b/addons/base_calendar/i18n/es_MX.po index fcb00c6d478..9a2fe449d37 100644 --- a/addons/base_calendar/i18n/es_MX.po +++ b/addons/base_calendar/i18n/es_MX.po @@ -1,929 +1,879 @@ -# Spanish translation for openobject-addons -# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# Spanish (Mexico) translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 # This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2010. +# FIRST AUTHOR , 2013. # msgid "" msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-01-18 01:17+0000\n" -"Last-Translator: Jordi Esteve (www.zikzakmedia.com) " -"\n" -"Language-Team: Spanish \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-24 15:25+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Spanish (Mexico) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-09-05 05:52+0000\n" -"X-Generator: Launchpad (build 13830)\n" +"X-Launchpad-Export-Date: 2013-04-25 05:20+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: base_calendar #: selection:calendar.alarm,trigger_related:0 #: selection:res.alarm,trigger_related:0 msgid "The event starts" -msgstr "El evento comienza" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,freq:0 -msgid "Hourly" -msgstr "Cada hora" - -#. module: base_calendar -#: view:calendar.attendee:0 -msgid "Required to Join" -msgstr "Requerido para unirse" +#: view:calendar.event:0 +msgid "My Events" +msgstr "" #. module: base_calendar #: help:calendar.event,exdate:0 #: help:calendar.todo,exdate:0 +#: help:crm.meeting,exdate:0 msgid "" "This property defines the list of date/time exceptions for a recurring " "calendar component." msgstr "" -"Esta propiedad define la lista de excepciones de fecha/hora para un evento " -"de calendario recurrente." #. module: base_calendar -#: constraint:res.users:0 -msgid "The chosen company is not in the allowed companies for this user" -msgstr "" -"La compañía seleccionada no está en las compañías permitidas para este " -"usuario" - -#. module: base_calendar -#: field:calendar.event.edit.all,name:0 -msgid "Title" -msgstr "Título" - -#. module: base_calendar -#: selection:base.calendar.set.exrule,freq:0 #: selection:calendar.event,rrule_type:0 #: selection:calendar.todo,rrule_type:0 -msgid "Monthly" -msgstr "Mensual" +#: selection:crm.meeting,rrule_type:0 +msgid "Week(s)" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 -msgid "Invited User" -msgstr "Usuario invitado" +#: field:calendar.event,we:0 +#: field:calendar.todo,we:0 +#: field:crm.meeting,we:0 +msgid "Wed" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 -msgid "Invitation" -msgstr "Invitación" +#: selection:calendar.attendee,cutype:0 +msgid "Unknown" +msgstr "" #. module: base_calendar #: help:calendar.event,recurrency:0 #: help:calendar.todo,recurrency:0 +#: help:crm.meeting,recurrency:0 msgid "Recurrent Meeting" -msgstr "Reunión periódica" +msgstr "" + +#. module: base_calendar +#: model:crm.meeting.type,name:base_calendar.categ_meet5 +msgid "Feedback Meeting" +msgstr "" #. module: base_calendar #: model:ir.actions.act_window,name:base_calendar.action_res_alarm_view #: model:ir.ui.menu,name:base_calendar.menu_crm_meeting_avail_alarm msgid "Alarms" -msgstr "Alarmas" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 +#: selection:crm.meeting,week_list:0 msgid "Sunday" -msgstr "Domingo" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 #: field:calendar.attendee,role:0 msgid "Role" -msgstr "Rol" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 #: view:calendar.event:0 +#: view:crm.meeting:0 msgid "Invitation details" -msgstr "Detalles de la invitación" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,byday:0 #: selection:calendar.event,byday:0 #: selection:calendar.todo,byday:0 +#: selection:crm.meeting,byday:0 msgid "Fourth" -msgstr "Cuarto" +msgstr "" #. module: base_calendar -#: field:calendar.event,show_as:0 -#: field:calendar.todo,show_as:0 -msgid "Show as" -msgstr "Mostrar como" +#: model:ir.model,name:base_calendar.model_res_users +msgid "Users" +msgstr "" #. module: base_calendar -#: field:base.calendar.set.exrule,day:0 -#: selection:base.calendar.set.exrule,select1:0 #: field:calendar.event,day:0 #: selection:calendar.event,select1:0 #: field:calendar.todo,day:0 #: selection:calendar.todo,select1:0 +#: field:crm.meeting,day:0 +#: selection:crm.meeting,select1:0 msgid "Date of month" -msgstr "Día del mes" +msgstr "" #. module: base_calendar #: selection:calendar.event,class:0 #: selection:calendar.todo,class:0 +#: selection:crm.meeting,class:0 msgid "Public" -msgstr "Público" +msgstr "" #. module: base_calendar -#: view:calendar.event:0 -msgid " " -msgstr " " +#: selection:calendar.alarm,trigger_interval:0 +#: selection:res.alarm,trigger_interval:0 +msgid "Hours" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 +#: selection:crm.meeting,month_list:0 msgid "March" -msgstr "Marzo" +msgstr "" #. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:414 -#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:90 -#, python-format -msgid "Warning !" -msgstr "¡Aviso!" +#: help:calendar.attendee,cutype:0 +msgid "Specify the type of Invitation" +msgstr "" + +#. module: base_calendar +#: view:crm.meeting:0 +#: field:crm.meeting,message_unread:0 +msgid "Unread Messages" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 +#: selection:crm.meeting,week_list:0 msgid "Friday" -msgstr "Viernes" +msgstr "" #. module: base_calendar #: field:calendar.event,allday:0 #: field:calendar.todo,allday:0 +#: field:crm.meeting,allday:0 msgid "All Day" -msgstr "Todo el día" +msgstr "" #. module: base_calendar -#: field:base.calendar.set.exrule,select1:0 -#: field:calendar.event,select1:0 -#: field:calendar.todo,select1:0 -msgid "Option" -msgstr "Opción" +#: field:calendar.event,vtimezone:0 +#: field:calendar.todo,vtimezone:0 +#: field:crm.meeting,vtimezone:0 +msgid "Timezone" +msgstr "" #. module: base_calendar #: selection:calendar.attendee,availability:0 #: selection:calendar.event,show_as:0 #: selection:calendar.todo,show_as:0 -#: selection:res.users,availability:0 +#: selection:crm.meeting,show_as:0 msgid "Free" -msgstr "Libre" +msgstr "" + +#. module: base_calendar +#: help:crm.meeting,message_unread:0 +msgid "If checked new messages require your attention." +msgstr "" #. module: base_calendar #: help:calendar.attendee,rsvp:0 msgid "Indicats whether the favor of a reply is requested" -msgstr "Indica si es requerida la confirmación de una respuesta." +msgstr "" #. module: base_calendar -#: model:ir.model,name:base_calendar.model_ir_attachment -msgid "ir.attachment" -msgstr "ir.adjunto" +#: field:calendar.alarm,alarm_id:0 +msgid "Basic Alarm" +msgstr "" #. module: base_calendar #: help:calendar.attendee,delegated_to:0 msgid "The users that the original request was delegated to" -msgstr "Los usuarios a los que les fue delegado la petición original" +msgstr "" #. module: base_calendar #: field:calendar.attendee,ref:0 msgid "Event Ref" -msgstr "Ref. evento" +msgstr "" #. module: base_calendar -#: field:base.calendar.set.exrule,we:0 -#: field:calendar.event,we:0 -#: field:calendar.todo,we:0 -msgid "Wed" -msgstr "Mié" - -#. module: base_calendar -#: view:calendar.event:0 -msgid "Show Time as" -msgstr "Mostrar hora como" - -#. module: base_calendar -#: field:base.calendar.set.exrule,tu:0 #: field:calendar.event,tu:0 #: field:calendar.todo,tu:0 +#: field:crm.meeting,tu:0 msgid "Tue" -msgstr "Mar" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,freq:0 -#: selection:calendar.event,rrule_type:0 -#: selection:calendar.todo,rrule_type:0 -msgid "Yearly" -msgstr "Anualmente" +#: selection:calendar.event,byday:0 +#: selection:calendar.todo,byday:0 +#: selection:crm.meeting,byday:0 +msgid "Third" +msgstr "" #. module: base_calendar #: selection:calendar.alarm,trigger_related:0 #: selection:res.alarm,trigger_related:0 msgid "The event ends" -msgstr "El evento finaliza" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,byday:0 #: selection:calendar.event,byday:0 #: selection:calendar.todo,byday:0 +#: selection:crm.meeting,byday:0 msgid "Last" -msgstr "Última" +msgstr "" #. module: base_calendar -#: help:calendar.attendee,state:0 -msgid "Status of the attendee's participation" -msgstr "Estado de la participación de los asistentes" +#: help:crm.meeting,message_ids:0 +msgid "Messages and communication history" +msgstr "" #. module: base_calendar -#: selection:calendar.attendee,cutype:0 -msgid "Room" -msgstr "Sala" +#: field:crm.meeting,message_ids:0 +msgid "Messages" +msgstr "" #. module: base_calendar #: selection:calendar.alarm,trigger_interval:0 -#: selection:calendar.event,freq:0 -#: selection:calendar.todo,freq:0 #: selection:res.alarm,trigger_interval:0 msgid "Days" -msgstr "Días" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 #: view:calendar.event:0 -msgid "Invitation Detail" -msgstr "Detalle de la invitación" +msgid "To" +msgstr "" #. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:1355 -#: code:addons/base_calendar/wizard/base_calendar_invite_attendee.py:96 -#: code:addons/base_calendar/wizard/base_calendar_invite_attendee.py:143 -#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:128 -#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:136 +#: code:addons/base_calendar/base_calendar.py:1260 #, python-format msgid "Error!" -msgstr "¡Error!" +msgstr "" #. module: base_calendar #: selection:calendar.attendee,role:0 msgid "Chair Person" -msgstr "Presidente" +msgstr "" + +#. module: base_calendar +#: view:crm.meeting:0 +msgid "My Meetings" +msgstr "" #. module: base_calendar #: selection:calendar.alarm,action:0 msgid "Procedure" -msgstr "Procedimiento" +msgstr "" + +#. module: base_calendar +#: field:calendar.event,recurrent_id:0 +#: field:calendar.todo,recurrent_id:0 +#: field:crm.meeting,recurrent_id:0 +msgid "Recurrent ID" +msgstr "" #. module: base_calendar #: selection:calendar.event,state:0 #: selection:calendar.todo,state:0 msgid "Cancelled" -msgstr "Cancelada" +msgstr "" #. module: base_calendar #: selection:calendar.alarm,trigger_interval:0 #: selection:res.alarm,trigger_interval:0 msgid "Minutes" -msgstr "Minutos" +msgstr "" #. module: base_calendar #: selection:calendar.alarm,action:0 msgid "Display" -msgstr "Mostrar" +msgstr "" #. module: base_calendar -#: view:calendar.event.edit.all:0 -msgid "Edit all Occurrences" -msgstr "Editar todas las ocurrencias" +#: help:calendar.attendee,state:0 +msgid "Status of the attendee's participation" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 -msgid "Invitation type" -msgstr "Tipo de invitación" +#: view:crm.meeting:0 +msgid "Mail To" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,freq:0 -msgid "Secondly" -msgstr "En segundo lugar" +#: field:crm.meeting,name:0 +msgid "Meeting Subject" +msgstr "" #. module: base_calendar -#: field:calendar.alarm,event_date:0 -#: field:calendar.attendee,event_date:0 #: view:calendar.event:0 -msgid "Event Date" -msgstr "Fecha evento" +msgid "End of Recurrence" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 #: view:calendar.event:0 msgid "Group By..." -msgstr "Agrupar por..." - -#. module: base_calendar -#: help:base_calendar.invite.attendee,email:0 -msgid "Provide external email address who will receive this invitation." msgstr "" -"Proporcione las direcciones de correo externas de quienes recibiran esta " -"invitacion." #. module: base_calendar -#: model:ir.module.module,description:base_calendar.module_meta_information -msgid "" -"Full featured calendar system that supports:\n" -" - Calendar of events\n" -" - Alerts (create requests)\n" -" - Recurring events\n" -" - Invitations to people" +#: view:calendar.event:0 +msgid "Recurrency Option" msgstr "" -"Completo sistema de calendario que soporta:\n" -" - Calendario de eventos\n" -" - Alertas (crea peticiones)\n" -" - Eventos recursivos\n" -" - Invitación de personas" #. module: base_calendar -#: help:calendar.attendee,cutype:0 -msgid "Specify the type of Invitation" -msgstr "Especifique el tipo de invitación" +#: view:calendar.event:0 +msgid "Choose day where repeat the meeting" +msgstr "" #. module: base_calendar -#: selection:calendar.event,freq:0 -#: selection:calendar.todo,freq:0 -msgid "Years" -msgstr "Años" +#: view:crm.meeting:0 +#: model:ir.actions.act_window,name:base_calendar.action_crm_meeting +msgid "Meetings" +msgstr "" + +#. module: base_calendar +#: field:calendar.event,recurrent_id_date:0 +#: field:calendar.todo,recurrent_id_date:0 +#: field:crm.meeting,recurrent_id_date:0 +msgid "Recurrent ID date" +msgstr "" #. module: base_calendar #: field:calendar.alarm,event_end_date:0 #: field:calendar.attendee,event_end_date:0 msgid "Event End Date" -msgstr "Fecha del final del evento" +msgstr "" #. module: base_calendar #: selection:calendar.attendee,role:0 msgid "Optional Participation" -msgstr "Participación opcional" +msgstr "" #. module: base_calendar -#: field:calendar.event,date_deadline:0 -#: field:calendar.todo,date_deadline:0 -msgid "Deadline" -msgstr "Fecha límite" +#: help:crm.meeting,message_summary:0 +msgid "" +"Holds the Chatter summary (number of messages, ...). This summary is " +"directly in html format in order to be inserted in kanban views." +msgstr "" #. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:385 -#: code:addons/base_calendar/base_calendar.py:1088 -#: code:addons/base_calendar/base_calendar.py:1090 +#: code:addons/base_calendar/base_calendar.py:399 +#: code:addons/base_calendar/base_calendar.py:441 +#: code:addons/base_calendar/base_calendar.py:1013 +#: code:addons/base_calendar/base_calendar.py:1015 +#: code:addons/base_calendar/base_calendar.py:1460 #, python-format msgid "Warning!" -msgstr "¡Aviso!" +msgstr "" #. module: base_calendar #: help:calendar.event,active:0 #: help:calendar.todo,active:0 +#: help:crm.meeting,active:0 msgid "" "If the active field is set to true, it will allow you to hide the " "event alarm information without removing it." msgstr "" -"Si el campo activo se establece a verdadero, se omitirá la alarma del " -"evento, sin embargo no se eliminará." #. module: base_calendar -#: model:ir.module.module,shortdesc:base_calendar.module_meta_information -msgid "Basic Calendar Functionality" -msgstr "Funcionalidad básica del calendario" +#: field:calendar.alarm,repeat:0 +#: field:calendar.event,count:0 +#: field:calendar.todo,count:0 +#: field:crm.meeting,count:0 +#: field:res.alarm,repeat:0 +msgid "Repeat" +msgstr "" #. module: base_calendar #: field:calendar.event,organizer:0 #: field:calendar.event,organizer_id:0 #: field:calendar.todo,organizer:0 #: field:calendar.todo,organizer_id:0 +#: field:crm.meeting,organizer:0 +#: field:crm.meeting,organizer_id:0 msgid "Organizer" -msgstr "Organizador" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 #: view:calendar.event:0 #: field:calendar.event,user_id:0 #: field:calendar.todo,user_id:0 +#: field:crm.meeting,user_id:0 msgid "Responsible" -msgstr "Responsable" +msgstr "" #. module: base_calendar #: view:calendar.event:0 -#: model:res.request.link,name:base_calendar.request_link_meeting +#: model:res.request.link,name:base_calendar.request_link_event msgid "Event" -msgstr "Evento" - -#. module: base_calendar -#: help:calendar.event,edit_all:0 -#: help:calendar.todo,edit_all:0 -msgid "Edit all Occurrences of recurrent Meeting." -msgstr "Editar todas las ocurrencias de la reunión recurrente." +msgstr "" #. module: base_calendar #: selection:calendar.alarm,trigger_occurs:0 #: selection:res.alarm,trigger_occurs:0 msgid "Before" -msgstr "Antes de" +msgstr "" #. module: base_calendar #: view:calendar.event:0 #: selection:calendar.event,state:0 #: selection:calendar.todo,state:0 +#: field:crm.meeting,date_open:0 +#: selection:crm.meeting,state:0 msgid "Confirmed" -msgstr "Confirmada" - -#. module: base_calendar -#: model:ir.actions.act_window,name:base_calendar.action_calendar_event_edit_all -msgid "Edit all events" -msgstr "Editar todos los eventos" +msgstr "" #. module: base_calendar #: field:calendar.alarm,attendee_ids:0 #: field:calendar.event,attendee_ids:0 +#: field:calendar.event,partner_ids:0 #: field:calendar.todo,attendee_ids:0 +#: field:calendar.todo,partner_ids:0 +#: field:crm.meeting,attendee_ids:0 +#: field:crm.meeting,partner_ids:0 msgid "Attendees" -msgstr "Asistentes" +msgstr "" #. module: base_calendar #: view:calendar.event:0 msgid "Confirm" -msgstr "Confirmar" +msgstr "" #. module: base_calendar #: model:ir.model,name:base_calendar.model_calendar_todo msgid "Calendar Task" -msgstr "Calendario de tareas" +msgstr "" #. module: base_calendar -#: field:base.calendar.set.exrule,su:0 #: field:calendar.event,su:0 #: field:calendar.todo,su:0 +#: field:crm.meeting,su:0 msgid "Sun" -msgstr "Dom" +msgstr "" #. module: base_calendar #: field:calendar.attendee,cutype:0 msgid "Invite Type" -msgstr "Tipo de invitación" - -#. module: base_calendar -#: help:calendar.attendee,partner_id:0 -msgid "Partner related to contact" -msgstr "Partner relacionado con el contacto" +msgstr "" #. module: base_calendar #: view:res.alarm:0 msgid "Reminder details" -msgstr "Detalles del recordatorio" +msgstr "" #. module: base_calendar #: field:calendar.attendee,parent_ids:0 msgid "Delegrated From" -msgstr "Delegado desde" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,select1:0 #: selection:calendar.event,select1:0 #: selection:calendar.todo,select1:0 +#: selection:crm.meeting,select1:0 msgid "Day of month" -msgstr "Día del mes" - -#. module: base_calendar -#: view:calendar.event:0 -#: field:calendar.event,location:0 -#: field:calendar.event.edit.all,location:0 -#: field:calendar.todo,location:0 -msgid "Location" -msgstr "Lugar" - -#. module: base_calendar -#: field:base_calendar.invite.attendee,send_mail:0 -msgid "Send mail?" -msgstr "¿Enviar email?" - -#. module: base_calendar -#: field:base_calendar.invite.attendee,email:0 -#: selection:calendar.alarm,action:0 -#: field:calendar.attendee,email:0 -msgid "Email" -msgstr "Correo electrónico" - -#. module: base_calendar -#: view:calendar.attendee:0 -msgid "Event Detail" -msgstr "Detalles del evento" - -#. module: base_calendar -#: selection:calendar.alarm,state:0 -msgid "Run" -msgstr "Ejecutar" - -#. module: base_calendar -#: field:calendar.event,exdate:0 -#: field:calendar.todo,exdate:0 -msgid "Exception Date/Times" -msgstr "Fecha/horas excepción" - -#. module: base_calendar -#: selection:calendar.event,class:0 -#: selection:calendar.todo,class:0 -msgid "Confidential" -msgstr "Confidencial" - -#. module: base_calendar -#: field:base.calendar.set.exrule,end_date:0 -#: field:calendar.event,end_date:0 -#: field:calendar.todo,end_date:0 -msgid "Repeat Until" -msgstr "Repetir hasta" - -#. module: base_calendar -#: model:ir.actions.act_window,help:base_calendar.action_res_alarm_view -msgid "" -"Create specific calendar alarms that may be assigned to calendar events or " -"meetings." msgstr "" -"Crear alarmas específicas que puedan ser asignadas a eventos de calendario o " -"reuniones." #. module: base_calendar -#: view:calendar.event:0 -msgid "Visibility" -msgstr "Visibilidad" +#: field:crm.meeting,message_follower_ids:0 +msgid "Followers" +msgstr "" #. module: base_calendar -#: field:calendar.attendee,rsvp:0 -msgid "Required Reply?" -msgstr "¿Respuesta requerida?" - -#. module: base_calendar -#: field:calendar.event,base_calendar_url:0 -#: field:calendar.todo,base_calendar_url:0 -msgid "Caldav URL" -msgstr "URL de caldav" - -#. module: base_calendar -#: view:base.calendar.set.exrule:0 -msgid "Select range to Exclude" -msgstr "Elija el rango a excluir" - -#. module: base_calendar -#: field:calendar.event,recurrent_uid:0 -#: field:calendar.todo,recurrent_uid:0 -msgid "Recurrent ID" -msgstr "ID recurrente" - -#. module: base_calendar -#: selection:base.calendar.set.exrule,month_list:0 -#: selection:calendar.event,month_list:0 -#: selection:calendar.todo,month_list:0 -msgid "July" -msgstr "Julio" - -#. module: base_calendar -#: view:calendar.attendee:0 -#: selection:calendar.attendee,state:0 -msgid "Accepted" -msgstr "Aceptada" - -#. module: base_calendar -#: field:base.calendar.set.exrule,th:0 -#: field:calendar.event,th:0 -#: field:calendar.todo,th:0 -msgid "Thu" -msgstr "Jue" - -#. module: base_calendar -#: field:calendar.attendee,child_ids:0 -msgid "Delegrated To" -msgstr "Delegada en" - -#. module: base_calendar -#: view:calendar.attendee:0 -msgid "Required Reply" -msgstr "Respuesta requerida" - -#. module: base_calendar -#: selection:calendar.event,end_type:0 -#: selection:calendar.todo,end_type:0 -msgid "Forever" -msgstr "Siempre" +#: field:calendar.event,location:0 +#: field:calendar.todo,location:0 +#: field:crm.meeting,location:0 +msgid "Location" +msgstr "" #. module: base_calendar #: selection:calendar.attendee,role:0 msgid "Participation required" -msgstr "Participación requerida" +msgstr "" #. module: base_calendar -#: view:base.calendar.set.exrule:0 -msgid "_Cancel" -msgstr "_Cancelar" +#: view:calendar.event:0 +#: field:calendar.event,show_as:0 +#: field:calendar.todo,show_as:0 +#: field:crm.meeting,show_as:0 +msgid "Show Time as" +msgstr "" + +#. module: base_calendar +#: selection:calendar.alarm,action:0 +#: field:calendar.attendee,email:0 +msgid "Email" +msgstr "" + +#. module: base_calendar +#: selection:calendar.attendee,cutype:0 +msgid "Room" +msgstr "" + +#. module: base_calendar +#: selection:calendar.alarm,state:0 +msgid "Run" +msgstr "" + +#. module: base_calendar +#: model:ir.model,name:base_calendar.model_calendar_alarm +msgid "Event alarm information" +msgstr "" + +#. module: base_calendar +#: code:addons/base_calendar/base_calendar.py:1015 +#, python-format +msgid "Count cannot be negative or 0." +msgstr "" + +#. module: base_calendar +#: field:crm.meeting,create_date:0 +msgid "Creation Date" +msgstr "" + +#. module: base_calendar +#: view:crm.meeting:0 +#: model:ir.model,name:base_calendar.model_crm_meeting +#: model:res.request.link,name:base_calendar.request_link_meeting +msgid "Meeting" +msgstr "" + +#. module: base_calendar +#: selection:calendar.event,rrule_type:0 +#: selection:calendar.todo,rrule_type:0 +#: selection:crm.meeting,rrule_type:0 +msgid "Month(s)" +msgstr "" + +#. module: base_calendar +#: view:calendar.event:0 +msgid "Visibility" +msgstr "" + +#. module: base_calendar +#: field:calendar.attendee,rsvp:0 +msgid "Required Reply?" +msgstr "" + +#. module: base_calendar +#: field:calendar.event,base_calendar_url:0 +#: field:calendar.todo,base_calendar_url:0 +#: field:crm.meeting,base_calendar_url:0 +msgid "Caldav URL" +msgstr "" + +#. module: base_calendar +#: model:ir.model,name:base_calendar.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "" + +#. module: base_calendar +#: selection:calendar.event,month_list:0 +#: selection:calendar.todo,month_list:0 +#: selection:crm.meeting,month_list:0 +msgid "July" +msgstr "" + +#. module: base_calendar +#: selection:calendar.attendee,state:0 +msgid "Accepted" +msgstr "" + +#. module: base_calendar +#: field:calendar.event,th:0 +#: field:calendar.todo,th:0 +#: field:crm.meeting,th:0 +msgid "Thu" +msgstr "" + +#. module: base_calendar +#: view:crm.meeting:0 +msgid "Meeting Details" +msgstr "" + +#. module: base_calendar +#: field:calendar.attendee,child_ids:0 +msgid "Delegrated To" +msgstr "" + +#. module: base_calendar +#: code:addons/base_calendar/crm_meeting.py:102 +#, python-format +msgid "The following contacts have no email address :" +msgstr "" + +#. module: base_calendar +#: selection:calendar.event,rrule_type:0 +#: selection:calendar.todo,rrule_type:0 +#: selection:crm.meeting,rrule_type:0 +msgid "Year(s)" +msgstr "" + +#. module: base_calendar +#: view:crm.meeting.type:0 +#: model:ir.actions.act_window,name:base_calendar.action_crm_meeting_type +#: model:ir.ui.menu,name:base_calendar.menu_crm_meeting_type +msgid "Meeting Types" +msgstr "" #. module: base_calendar #: field:calendar.event,create_date:0 #: field:calendar.todo,create_date:0 msgid "Created" -msgstr "Creada" +msgstr "" #. module: base_calendar #: selection:calendar.event,class:0 #: selection:calendar.todo,class:0 -msgid "Private" -msgstr "Privada" +#: selection:crm.meeting,class:0 +msgid "Public for Employees" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,freq:0 -#: selection:calendar.event,rrule_type:0 -#: selection:calendar.todo,rrule_type:0 -msgid "Daily" -msgstr "Diariamente" +#: view:crm.meeting:0 +msgid "hours" +msgstr "" #. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:385 -#, python-format -msgid "Can not Duplicate" -msgstr "No se puede duplicar" - -#. module: base_calendar -#: field:calendar.event,class:0 -#: field:calendar.todo,class:0 -msgid "Mark as" -msgstr "Marcar como" - -#. module: base_calendar -#: view:calendar.attendee:0 -#: field:calendar.attendee,partner_address_id:0 -msgid "Contact" -msgstr "Contacto" - -#. module: base_calendar -#: help:calendar.event,rrule_type:0 -#: help:calendar.todo,rrule_type:0 -msgid "Let the event automatically repeat at that interval" -msgstr "Permite que el evento se repita automáticamente en ese intervalo" - -#. module: base_calendar -#: view:calendar.attendee:0 -#: view:calendar.event:0 -msgid "Delegate" -msgstr "Delegar" - -#. module: base_calendar -#: field:base_calendar.invite.attendee,partner_id:0 -#: view:calendar.attendee:0 #: field:calendar.attendee,partner_id:0 -msgid "Partner" -msgstr "Empresa" +msgid "Contact" +msgstr "" #. module: base_calendar -#: view:base_calendar.invite.attendee:0 -#: selection:base_calendar.invite.attendee,type:0 -msgid "Partner Contacts" -msgstr "Contactos de la empresa" +#: field:calendar.attendee,language:0 +msgid "Language" +msgstr "" #. module: base_calendar -#: view:base.calendar.set.exrule:0 -msgid "_Ok" -msgstr "_Aceptar" +#: field:calendar.event,end_date:0 +#: field:calendar.todo,end_date:0 +#: field:crm.meeting,end_date:0 +msgid "Repeat Until" +msgstr "" + +#. module: base_calendar +#: view:crm.meeting:0 +msgid "Options" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,byday:0 #: selection:calendar.event,byday:0 #: selection:calendar.todo,byday:0 +#: selection:crm.meeting,byday:0 msgid "First" -msgstr "Primera" - -#. module: base_calendar -#: view:calendar.event:0 -msgid "Privacy" -msgstr "Privacidad" - -#. module: base_calendar -#: field:calendar.event,vtimezone:0 -#: field:calendar.todo,vtimezone:0 -msgid "Timezone" -msgstr "Zona horaria" +msgstr "" #. module: base_calendar #: view:calendar.event:0 +#: view:crm.meeting:0 msgid "Subject" -msgstr "Asunto" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 +#: selection:crm.meeting,month_list:0 msgid "September" -msgstr "Septiembre" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 +#: selection:crm.meeting,month_list:0 msgid "December" -msgstr "Diciembre" +msgstr "" #. module: base_calendar -#: help:base_calendar.invite.attendee,send_mail:0 -msgid "Check this if you want to send an Email to Invited Person" -msgstr "Marque aquí si quiere enviar un correo a la persona invitada" +#: selection:calendar.event,week_list:0 +#: selection:calendar.todo,week_list:0 +#: selection:crm.meeting,week_list:0 +msgid "Tuesday" +msgstr "" + +#. module: base_calendar +#: field:crm.meeting,categ_ids:0 +msgid "Tags" +msgstr "" #. module: base_calendar #: view:calendar.event:0 msgid "Availability" -msgstr "Disponibilidad" - -#. module: base_calendar -#: view:calendar.event.edit.all:0 -msgid "_Save" -msgstr "_Guardar" +msgstr "" #. module: base_calendar #: selection:calendar.attendee,cutype:0 msgid "Individual" -msgstr "Individual" +msgstr "" #. module: base_calendar #: help:calendar.event,count:0 #: help:calendar.todo,count:0 +#: help:crm.meeting,count:0 msgid "Repeat x times" -msgstr "Repetir x veces" +msgstr "" #. module: base_calendar #: field:calendar.alarm,user_id:0 msgid "Owner" -msgstr "Dueño" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 -msgid "Delegation Info" -msgstr "Información delegación" +#: help:calendar.event,rrule_type:0 +#: help:calendar.todo,rrule_type:0 +#: help:crm.meeting,rrule_type:0 +msgid "Let the event automatically repeat at that interval" +msgstr "" #. module: base_calendar -#: view:calendar.event:0 -#: field:calendar.event.edit.all,date:0 -msgid "Start Date" -msgstr "Fecha inicio" +#: model:ir.ui.menu,name:base_calendar.mail_menu_calendar +msgid "Calendar" +msgstr "" #. module: base_calendar #: field:calendar.attendee,cn:0 msgid "Common name" -msgstr "Nombre común" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 #: selection:calendar.attendee,state:0 msgid "Declined" -msgstr "Rechazada" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 -msgid "My Role" -msgstr "Mi rol" +#: code:addons/base_calendar/base_calendar.py:1460 +#, python-format +msgid "Group by date is not supported, use the calendar view instead." +msgstr "" #. module: base_calendar #: view:calendar.event:0 -msgid "My Events" -msgstr "Mis eventos" - -#. module: base_calendar -#: view:calendar.attendee:0 -#: view:calendar.event:0 +#: view:crm.meeting:0 msgid "Decline" -msgstr "Rechazar" - -#. module: base_calendar -#: selection:calendar.event,freq:0 -#: selection:calendar.todo,freq:0 -msgid "Weeks" -msgstr "Semanas" +msgstr "" #. module: base_calendar #: selection:calendar.attendee,cutype:0 msgid "Group" -msgstr "Grupo" +msgstr "" #. module: base_calendar -#: field:calendar.event,edit_all:0 -#: field:calendar.todo,edit_all:0 -msgid "Edit All" -msgstr "Editar todo" +#: selection:calendar.event,class:0 +#: selection:calendar.todo,class:0 +#: selection:crm.meeting,class:0 +msgid "Private" +msgstr "" #. module: base_calendar -#: field:base_calendar.invite.attendee,contact_ids:0 -msgid "Contacts" -msgstr "Contactos" +#: view:calendar.event:0 +#: field:calendar.event,class:0 +#: field:calendar.todo,class:0 +#: field:crm.meeting,class:0 +msgid "Privacy" +msgstr "" #. module: base_calendar #: model:ir.model,name:base_calendar.model_res_alarm msgid "Basic Alarm Information" -msgstr "Información sobre la alarma básica" +msgstr "" #. module: base_calendar -#: field:base.calendar.set.exrule,fr:0 #: field:calendar.event,fr:0 #: field:calendar.todo,fr:0 +#: field:crm.meeting,fr:0 msgid "Fri" -msgstr "Vie" +msgstr "" #. module: base_calendar -#: selection:calendar.alarm,trigger_interval:0 -#: selection:calendar.event,freq:0 -#: selection:calendar.todo,freq:0 -#: selection:res.alarm,trigger_interval:0 -msgid "Hours" -msgstr "Horas" - -#. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:1090 -#, python-format -msgid "Count can not be Negative" -msgstr "La cuenta no puede ser negativa" +#: view:calendar.event:0 +msgid "Invitation Detail" +msgstr "" #. module: base_calendar #: field:calendar.attendee,member:0 msgid "Member" -msgstr "Miembro" +msgstr "" #. module: base_calendar #: help:calendar.event,location:0 #: help:calendar.todo,location:0 +#: help:crm.meeting,location:0 msgid "Location of Event" -msgstr "Ubicación del evento" +msgstr "" #. module: base_calendar #: field:calendar.event,rrule:0 #: field:calendar.todo,rrule:0 +#: field:crm.meeting,rrule:0 msgid "Recurrent Rule" -msgstr "Regla recurrente" +msgstr "" #. module: base_calendar #: selection:calendar.alarm,state:0 msgid "Draft" -msgstr "Borrador" +msgstr "" #. module: base_calendar #: field:calendar.alarm,attach:0 msgid "Attachment" -msgstr "Adjunto" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 -msgid "Invitation From" -msgstr "Invitación desde" +#: field:crm.meeting,date_closed:0 +msgid "Closed" +msgstr "" #. module: base_calendar #: view:calendar.event:0 -msgid "End of Recurrency" -msgstr "Fin de recurrencia" +msgid "From" +msgstr "" #. module: base_calendar #: view:calendar.event:0 -#: field:calendar.event.edit.all,alarm_id:0 +#: field:calendar.event,alarm_id:0 +#: field:calendar.todo,alarm_id:0 +#: field:crm.meeting,alarm_id:0 msgid "Reminder" -msgstr "Recordatorio" +msgstr "" #. module: base_calendar -#: view:base.calendar.set.exrule:0 -#: model:ir.model,name:base_calendar.model_base_calendar_set_exrule -msgid "Set Exrule" -msgstr "Establecer Exregla" +#: selection:calendar.event,end_type:0 +#: selection:calendar.todo,end_type:0 +#: selection:crm.meeting,end_type:0 +msgid "Number of repetitions" +msgstr "" + +#. module: base_calendar +#: model:crm.meeting.type,name:base_calendar.categ_meet2 +msgid "Internal Meeting" +msgstr "" #. module: base_calendar #: view:calendar.event:0 #: model:ir.actions.act_window,name:base_calendar.action_view_event #: model:ir.ui.menu,name:base_calendar.menu_events msgid "Events" -msgstr "Eventos" +msgstr "" #. module: base_calendar -#: model:ir.actions.act_window,name:base_calendar.action_view_calendar_invite_attendee_wizard -#: model:ir.model,name:base_calendar.model_base_calendar_invite_attendee -msgid "Invite Attendees" -msgstr "Invitar asistentes" +#: field:calendar.alarm,state:0 +#: field:calendar.attendee,state:0 +#: view:calendar.event:0 +#: field:calendar.event,state:0 +#: field:calendar.todo,state:0 +#: field:crm.meeting,state:0 +msgid "Status" +msgstr "" #. module: base_calendar #: help:calendar.attendee,email:0 msgid "Email of Invited Person" -msgstr "Email del invitado" +msgstr "" #. module: base_calendar -#: field:calendar.alarm,repeat:0 -#: field:calendar.event,count:0 -#: field:calendar.todo,count:0 -#: field:res.alarm,repeat:0 -msgid "Repeat" -msgstr "Repetir" +#: model:crm.meeting.type,name:base_calendar.categ_meet1 +msgid "Customer Meeting" +msgstr "" #. module: base_calendar #: help:calendar.attendee,dir:0 @@ -931,186 +881,193 @@ msgid "" "Reference to the URIthat points to the directory information corresponding " "to the attendee." msgstr "" -"La referencia a la URI que apunta a la información del directorio " -"correspondiente al participante." #. module: base_calendar -#: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 +#: selection:crm.meeting,month_list:0 msgid "August" -msgstr "Agosto" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 +#: selection:crm.meeting,week_list:0 msgid "Monday" -msgstr "Lunes" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,byday:0 -#: selection:calendar.event,byday:0 -#: selection:calendar.todo,byday:0 -msgid "Third" -msgstr "Tercero" +#: model:crm.meeting.type,name:base_calendar.categ_meet4 +msgid "Open Discussion" +msgstr "" + +#. module: base_calendar +#: model:ir.model,name:base_calendar.model_ir_model +msgid "Models" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 +#: selection:crm.meeting,month_list:0 msgid "June" -msgstr "Junio" +msgstr "" #. module: base_calendar -#: field:calendar.alarm,alarm_id:0 -msgid "Basic Alarm" -msgstr "Alarma básica" - -#. module: base_calendar -#: view:base.calendar.set.exrule:0 +#: field:calendar.alarm,event_date:0 +#: field:calendar.attendee,event_date:0 #: view:calendar.event:0 -msgid "The" -msgstr "El" +msgid "Event Date" +msgstr "" + +#. module: base_calendar +#: view:crm.meeting:0 +msgid "Invitations" +msgstr "" + +#. module: base_calendar +#: view:calendar.event:0 +#: view:crm.meeting:0 +msgid "The" +msgstr "" + +#. module: base_calendar +#: field:crm.meeting,write_date:0 +msgid "Write Date" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 #: field:calendar.attendee,delegated_from:0 msgid "Delegated From" -msgstr "Delegado desde" +msgstr "" + +#. module: base_calendar +#: field:crm.meeting,message_is_follower:0 +msgid "Is a Follower" +msgstr "" #. module: base_calendar #: field:calendar.attendee,user_id:0 msgid "User" -msgstr "Usuario" +msgstr "" #. module: base_calendar #: view:calendar.event:0 #: field:calendar.event,date:0 +#: field:crm.meeting,date:0 msgid "Date" -msgstr "Fecha" +msgstr "" + +#. module: base_calendar +#: view:calendar.event:0 +msgid "Start Date" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 +#: selection:crm.meeting,month_list:0 msgid "November" -msgstr "Noviembre" +msgstr "" #. module: base_calendar #: help:calendar.attendee,member:0 msgid "Indicate the groups that the attendee belongs to" -msgstr "Indicar los grupos a los que pertenece el asistente" +msgstr "" #. module: base_calendar -#: view:base_calendar.invite.attendee:0 -msgid "Data" -msgstr "Datos" - -#. module: base_calendar -#: field:base.calendar.set.exrule,mo:0 #: field:calendar.event,mo:0 #: field:calendar.todo,mo:0 +#: field:crm.meeting,mo:0 msgid "Mon" -msgstr "Lun" +msgstr "" #. module: base_calendar -#: field:base.calendar.set.exrule,count:0 -msgid "Count" -msgstr "Total" - -#. module: base_calendar -#: selection:base.calendar.set.exrule,freq:0 -#: selection:calendar.event,freq:0 -#: selection:calendar.todo,freq:0 -msgid "No Repeat" -msgstr "No repetir" - -#. module: base_calendar -#: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 +#: selection:crm.meeting,month_list:0 msgid "October" -msgstr "Octubre" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 +#: selection:calendar.attendee,state:0 #: view:calendar.event:0 +#: selection:calendar.event,state:0 +#: selection:calendar.todo,state:0 +#: view:crm.meeting:0 msgid "Uncertain" -msgstr "Incierto" +msgstr "" #. module: base_calendar -#: field:calendar.attendee,language:0 -msgid "Language" -msgstr "Idioma" +#: constraint:calendar.event:0 +#: constraint:calendar.todo:0 +#: constraint:crm.meeting:0 +msgid "Error ! End date cannot be set before start date." +msgstr "" #. module: base_calendar #: field:calendar.alarm,trigger_occurs:0 #: field:res.alarm,trigger_occurs:0 msgid "Triggers" -msgstr "Disparadores" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 +#: selection:crm.meeting,month_list:0 msgid "January" -msgstr "Enero" +msgstr "" #. module: base_calendar #: field:calendar.alarm,trigger_related:0 #: field:res.alarm,trigger_related:0 msgid "Related to" -msgstr "Relacionado con" +msgstr "" #. module: base_calendar -#: field:base.calendar.set.exrule,interval:0 #: field:calendar.alarm,trigger_interval:0 #: field:res.alarm,trigger_interval:0 msgid "Interval" -msgstr "Intervalo" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 +#: selection:crm.meeting,week_list:0 msgid "Wednesday" -msgstr "Miércoles" - -#. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:1088 -#, python-format -msgid "Interval can not be Negative" -msgstr "El intervalo no puede ser negativo" +msgstr "" #. module: base_calendar #: field:calendar.alarm,name:0 #: view:calendar.event:0 +#: field:crm.meeting,message_summary:0 msgid "Summary" -msgstr "Resumen" +msgstr "" #. module: base_calendar #: field:calendar.alarm,active:0 #: field:calendar.event,active:0 #: field:calendar.todo,active:0 +#: field:crm.meeting,active:0 #: field:res.alarm,active:0 msgid "Active" -msgstr "Activo" +msgstr "" + +#. module: base_calendar +#: code:addons/base_calendar/base_calendar.py:399 +#, python-format +msgid "You cannot duplicate a calendar attendee." +msgstr "" #. module: base_calendar #: view:calendar.event:0 msgid "Choose day in the month where repeat the meeting" -msgstr "Elija el día del mes en que se repetirá la reunión" +msgstr "" #. module: base_calendar #: field:calendar.alarm,action:0 msgid "Action" -msgstr "Acción" - -#. module: base_calendar -#: help:base_calendar.invite.attendee,type:0 -msgid "Select whom you want to Invite" -msgstr "Seleccione a quien quiere invitar" +msgstr "" #. module: base_calendar #: help:calendar.alarm,duration:0 @@ -1119,52 +1076,38 @@ msgid "" "Duration' and 'Repeat' are both optional, but if one occurs, so MUST the " "other" msgstr "" -"Duración' y 'Repetir' son ambos opcionales, pero si uno está activo también " -"debe estarlo el otro" - -#. module: base_calendar -#: model:ir.model,name:base_calendar.model_calendar_event_edit_all -msgid "Calendar Edit all event" -msgstr "Editar todos los eventos del calendario" #. module: base_calendar #: help:calendar.attendee,role:0 msgid "Participation role for the calendar user" -msgstr "Rol de participación para el usuario del calendario." +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 #: field:calendar.attendee,delegated_to:0 msgid "Delegated To" -msgstr "Delegado a" +msgstr "" #. module: base_calendar #: help:calendar.alarm,action:0 msgid "Defines the action to be invoked when an alarm is triggered" -msgstr "Define la acción a invocar cuando salte la alarma" +msgstr "" + +#. module: base_calendar +#: view:crm.meeting:0 +msgid "Starting at" +msgstr "" #. module: base_calendar #: selection:calendar.event,end_type:0 #: selection:calendar.todo,end_type:0 +#: selection:crm.meeting,end_type:0 msgid "End date" -msgstr "Fecha de fin" +msgstr "" #. module: base_calendar #: view:calendar.event:0 msgid "Search Events" -msgstr "Buscar eventos" - -#. module: base_calendar -#: view:calendar.event:0 -msgid "Recurrency Option" -msgstr "Opción de recurrencia" - -#. module: base_calendar -#: selection:base.calendar.set.exrule,freq:0 -#: selection:calendar.event,rrule_type:0 -#: selection:calendar.todo,rrule_type:0 -msgid "Weekly" -msgstr "Semanal" +msgstr "" #. module: base_calendar #: help:calendar.alarm,active:0 @@ -1173,87 +1116,70 @@ msgid "" "If the active field is set to true, it will allow you to hide the event " "alarm information without removing it." msgstr "" -"Si el campo activo es verdadero, le permitirá ocultar la notificación de " -"aviso del evento sin eliminarlo." #. module: base_calendar -#: field:calendar.event,recurrent_id:0 -#: field:calendar.todo,recurrent_id:0 -msgid "Recurrent ID date" -msgstr "ID fecha recurrente" +#: field:calendar.event,end_type:0 +#: field:calendar.todo,end_type:0 +#: field:crm.meeting,end_type:0 +msgid "Recurrence Termination" +msgstr "" #. module: base_calendar -#: sql_constraint:res.users:0 -msgid "You can not have two users with the same login !" -msgstr "¡No puede tener dos usuarios con el mismo identificador de usuario!" - -#. module: base_calendar -#: field:calendar.alarm,state:0 -#: view:calendar.attendee:0 -#: field:calendar.attendee,state:0 -#: view:calendar.event:0 -#: field:calendar.event,state:0 -#: field:calendar.todo,state:0 -msgid "State" -msgstr "Estado" +#: view:crm.meeting:0 +msgid "Until" +msgstr "" #. module: base_calendar #: view:res.alarm:0 msgid "Reminder Details" -msgstr "Detalles del recordatorio" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 -msgid "To Review" -msgstr "A revisar" +#: model:crm.meeting.type,name:base_calendar.categ_meet3 +msgid "Off-site Meeting" +msgstr "" #. module: base_calendar -#: field:base.calendar.set.exrule,freq:0 -#: field:calendar.event,freq:0 -#: field:calendar.todo,freq:0 -msgid "Frequency" -msgstr "Frecuencia" +#: view:crm.meeting:0 +msgid "Day of Month" +msgstr "" #. module: base_calendar #: selection:calendar.alarm,state:0 msgid "Done" -msgstr "Hecho" +msgstr "" #. module: base_calendar #: help:calendar.event,interval:0 #: help:calendar.todo,interval:0 +#: help:crm.meeting,interval:0 msgid "Repeat every (Days/Week/Month/Year)" -msgstr "Repetir cada (días/semana/mes/año)" +msgstr "" #. module: base_calendar -#: view:base_calendar.invite.attendee:0 -#: field:base_calendar.invite.attendee,user_ids:0 -msgid "Users" -msgstr "Usuarios" +#: view:crm.meeting:0 +msgid "All Day?" +msgstr "" #. module: base_calendar -#: view:base.calendar.set.exrule:0 -msgid "of" -msgstr "de" - -#. module: base_calendar -#: view:base_calendar.invite.attendee:0 #: view:calendar.event:0 -#: view:calendar.event.edit.all:0 msgid "Cancel" -msgstr "Cancelar" +msgstr "" #. module: base_calendar -#: model:ir.model,name:base_calendar.model_res_users -msgid "res.users" -msgstr "res.usuarios" - -#. module: base_calendar -#: selection:base.calendar.set.exrule,week_list:0 -#: selection:calendar.event,week_list:0 -#: selection:calendar.todo,week_list:0 -msgid "Tuesday" -msgstr "Martes" +#: model:ir.actions.act_window,help:base_calendar.action_crm_meeting +msgid "" +"

\n" +" Click to schedule a new meeting.\n" +"

\n" +" The calendar is shared between employees and fully integrated " +"with\n" +" other applications such as the employee holidays or the " +"business\n" +" opportunities.\n" +"

\n" +" " +msgstr "" #. module: base_calendar #: help:calendar.alarm,description:0 @@ -1262,129 +1188,103 @@ msgid "" "calendar component, than that provided by the " "\"SUMMARY\" property" msgstr "" -"Facilita una descripción más completa del componente del calendario que la " -"facilitada por la propiedad \"RESUMEN\"" #. module: base_calendar #: view:calendar.event:0 msgid "Responsible User" -msgstr "Usuario responsable" +msgstr "" #. module: base_calendar +#: view:crm.meeting:0 +msgid "Select Weekdays" +msgstr "" + +#. module: base_calendar +#: code:addons/base_calendar/base_calendar.py:1519 #: selection:calendar.attendee,availability:0 #: selection:calendar.event,show_as:0 #: selection:calendar.todo,show_as:0 -#: selection:res.users,availability:0 +#: selection:crm.meeting,show_as:0 +#, python-format msgid "Busy" -msgstr "Ocupado" +msgstr "" #. module: base_calendar #: model:ir.model,name:base_calendar.model_calendar_event msgid "Calendar Event" -msgstr "Evento de calendario" - -#. module: base_calendar -#: selection:calendar.attendee,state:0 -#: selection:calendar.event,state:0 -#: selection:calendar.todo,state:0 -msgid "Tentative" -msgstr "Provisional" - -#. module: base_calendar -#: field:calendar.event,interval:0 -#: field:calendar.todo,interval:0 -msgid "Repeat every" -msgstr "Repetir cada" - -#. module: base_calendar -#: selection:calendar.event,end_type:0 -#: selection:calendar.todo,end_type:0 -msgid "Fix amout of times" -msgstr "Cantidad fija de veces" +msgstr "" #. module: base_calendar #: field:calendar.event,recurrency:0 #: field:calendar.todo,recurrency:0 +#: field:crm.meeting,recurrency:0 msgid "Recurrent" -msgstr "Recurrente" +msgstr "" #. module: base_calendar #: field:calendar.event,rrule_type:0 #: field:calendar.todo,rrule_type:0 +#: field:crm.meeting,rrule_type:0 msgid "Recurrency" -msgstr "Recurrencia" +msgstr "" #. module: base_calendar -#: model:ir.actions.act_window,name:base_calendar.action_view_attendee_form -#: model:ir.ui.menu,name:base_calendar.menu_attendee_invitations -msgid "Event Invitations" -msgstr "Invitaciones al evento" - -#. module: base_calendar -#: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 +#: selection:crm.meeting,week_list:0 msgid "Thursday" -msgstr "Jueves" +msgstr "" #. module: base_calendar #: field:calendar.event,exrule:0 #: field:calendar.todo,exrule:0 +#: field:crm.meeting,exrule:0 msgid "Exception Rule" -msgstr "Regla de excepción" +msgstr "" #. module: base_calendar #: help:calendar.attendee,language:0 msgid "" "To specify the language for text values in aproperty or property parameter." msgstr "" -"Para indicar el idioma de los valores de texto en una propiedad o parámetro " -"de propiedad." #. module: base_calendar #: view:calendar.event:0 msgid "Details" -msgstr "Detalles" +msgstr "" #. module: base_calendar #: help:calendar.event,exrule:0 #: help:calendar.todo,exrule:0 +#: help:crm.meeting,exrule:0 msgid "" "Defines a rule or repeating pattern of time to exclude from the recurring " "rule." msgstr "" -"Define una regla o patrón de repetición de tiempo a excluir de la regla " -"recurrente." #. module: base_calendar -#: field:base.calendar.set.exrule,month_list:0 #: field:calendar.event,month_list:0 #: field:calendar.todo,month_list:0 +#: field:crm.meeting,month_list:0 msgid "Month" -msgstr "Mes" - -#. module: base_calendar -#: view:base_calendar.invite.attendee:0 -#: view:calendar.event:0 -msgid "Invite People" -msgstr "Invitar personas" - -#. module: base_calendar -#: help:calendar.event,rrule:0 -#: help:calendar.todo,rrule:0 -msgid "" -"Defines a rule or repeating pattern for recurring events\n" -"e.g.: Every other month on the last Sunday of the month for 10 occurrences: " -" FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU" msgstr "" -"Define una regla o patrón repetitivo para eventos recurrentes.\n" -"Por ejemplo: Para 10 ocurrencias cada último domingo de cada dos meses : " -"FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU" + +#. module: base_calendar +#: selection:calendar.event,rrule_type:0 +#: selection:calendar.todo,rrule_type:0 +#: selection:crm.meeting,rrule_type:0 +msgid "Day(s)" +msgstr "" + +#. module: base_calendar +#: view:calendar.event:0 +msgid "Confirmed Events" +msgstr "" #. module: base_calendar #: field:calendar.attendee,dir:0 msgid "URI Reference" -msgstr "Referencia URI" +msgstr "" #. module: base_calendar #: field:calendar.alarm,description:0 @@ -1393,110 +1293,115 @@ msgstr "Referencia URI" #: field:calendar.event,name:0 #: field:calendar.todo,description:0 #: field:calendar.todo,name:0 +#: field:crm.meeting,description:0 msgid "Description" -msgstr "Descripción" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 +#: selection:crm.meeting,month_list:0 msgid "May" -msgstr "Mayo" - -#. module: base_calendar -#: field:base_calendar.invite.attendee,type:0 -#: view:calendar.attendee:0 -msgid "Type" -msgstr "Tipo" - -#. module: base_calendar -#: view:calendar.attendee:0 -msgid "Search Invitations" -msgstr "Buscar invitaciones" +msgstr "" #. module: base_calendar #: selection:calendar.alarm,trigger_occurs:0 #: selection:res.alarm,trigger_occurs:0 msgid "After" -msgstr "Después de" +msgstr "" #. module: base_calendar #: selection:calendar.alarm,state:0 msgid "Stop" -msgstr "Parar" +msgstr "" #. module: base_calendar #: model:ir.model,name:base_calendar.model_ir_values msgid "ir.values" -msgstr "ir.valores" +msgstr "" #. module: base_calendar -#: model:ir.model,name:base_calendar.model_ir_model -msgid "Objects" -msgstr "Objetos" +#: view:crm.meeting:0 +msgid "Search Meetings" +msgstr "" + +#. module: base_calendar +#: model:ir.model,name:base_calendar.model_ir_attachment +msgid "ir.attachment" +msgstr "" + +#. module: base_calendar +#: model:ir.model,name:base_calendar.model_crm_meeting_type +msgid "Meeting Type" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 #: selection:calendar.attendee,state:0 msgid "Delegated" -msgstr "Delegada" +msgstr "" #. module: base_calendar -#: field:base.calendar.set.exrule,sa:0 #: field:calendar.event,sa:0 #: field:calendar.todo,sa:0 +#: field:crm.meeting,sa:0 msgid "Sat" -msgstr "Sáb" +msgstr "" #. module: base_calendar -#: view:calendar.event:0 -msgid "Choose day where repeat the meeting" -msgstr "Eligir día en el que repetir la cita" +#: model:ir.actions.act_window,help:base_calendar.action_res_alarm_view +msgid "" +"

\n" +" Click to setup a new alarm type.\n" +"

\n" +" You can define a customized type of calendar alarm that may " +"be\n" +" assigned to calendar events or meetings.\n" +"

\n" +" " +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,freq:0 -msgid "Minutely" -msgstr "Cada minuto" +#: selection:crm.meeting,state:0 +msgid "Unconfirmed" +msgstr "" #. module: base_calendar #: help:calendar.attendee,sent_by:0 msgid "Specify the user that is acting on behalf of the calendar user" msgstr "" -"Indique el usuario que está actuando en nombre del usuario del calendario." #. module: base_calendar #: view:calendar.event:0 -#: field:calendar.event.edit.all,date_deadline:0 +#: field:calendar.event,date_deadline:0 +#: field:calendar.todo,date_deadline:0 +#: field:crm.meeting,date_deadline:0 msgid "End Date" -msgstr "Fecha final" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 +#: selection:crm.meeting,month_list:0 msgid "February" -msgstr "Febrero" - -#. module: base_calendar -#: selection:calendar.event,freq:0 -#: selection:calendar.todo,freq:0 -msgid "Months" -msgstr "Meses" +msgstr "" #. module: base_calendar #: selection:calendar.attendee,cutype:0 msgid "Resource" -msgstr "Recurso" +msgstr "" #. module: base_calendar +#: field:crm.meeting.type,name:0 #: field:res.alarm,name:0 msgid "Name" -msgstr "Nombre" +msgstr "" #. module: base_calendar -#: model:ir.model,name:base_calendar.model_calendar_alarm -msgid "Event alarm information" -msgstr "Información del aviso del evento" +#: field:calendar.event,exdate:0 +#: field:calendar.todo,exdate:0 +#: field:crm.meeting,exdate:0 +msgid "Exception Date/Times" +msgstr "" #. module: base_calendar #: help:calendar.alarm,name:0 @@ -1504,154 +1409,162 @@ msgid "" "Contains the text to be used as the message subject for " "email or contains the text to be used for display" msgstr "" -"Contiene el texto a usar como asunto del mensaje para correos electrónicos, " -"o contiene el texto a mostrar" #. module: base_calendar -#: field:calendar.event,alarm_id:0 -#: field:calendar.event,base_calendar_alarm_id:0 -#: field:calendar.todo,alarm_id:0 -#: field:calendar.todo,base_calendar_alarm_id:0 -msgid "Alarm" -msgstr "Alarma" - -#. module: base_calendar -#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:90 -#, python-format -msgid "Please Apply Recurrency before applying Exception Rule." +#: model:ir.model,name:base_calendar.model_mail_message +msgid "Message" +msgstr "" + +#. module: base_calendar +#: field:calendar.event,base_calendar_alarm_id:0 +#: field:calendar.todo,base_calendar_alarm_id:0 +#: field:crm.meeting,base_calendar_alarm_id:0 +msgid "Alarm" msgstr "" -"Por favor, aplique la repetición antes de aplicar la excepción de la regla" #. module: base_calendar #: field:calendar.attendee,sent_by_uid:0 msgid "Sent By User" -msgstr "Enviado por usuario" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,month_list:0 #: selection:calendar.event,month_list:0 #: selection:calendar.todo,month_list:0 +#: selection:crm.meeting,month_list:0 msgid "April" -msgstr "Abril" +msgstr "" + +#. module: base_calendar +#: code:addons/base_calendar/crm_meeting.py:106 +#, python-format +msgid "Email addresses not found" +msgstr "" #. module: base_calendar #: view:calendar.event:0 msgid "Recurrency period" -msgstr "Periodo de recurrencia" +msgstr "" #. module: base_calendar -#: field:base.calendar.set.exrule,week_list:0 #: field:calendar.event,week_list:0 #: field:calendar.todo,week_list:0 +#: field:crm.meeting,week_list:0 msgid "Weekday" -msgstr "Día de la semana" +msgstr "" + +#. module: base_calendar +#: code:addons/base_calendar/base_calendar.py:1013 +#, python-format +msgid "Interval cannot be negative." +msgstr "" #. module: base_calendar -#: field:base.calendar.set.exrule,byday:0 #: field:calendar.event,byday:0 #: field:calendar.todo,byday:0 +#: field:crm.meeting,byday:0 msgid "By day" -msgstr "Por día" +msgstr "" + +#. module: base_calendar +#: code:addons/base_calendar/base_calendar.py:441 +#, python-format +msgid "First you have to specify the date of the invitation." +msgstr "" #. module: base_calendar #: field:calendar.alarm,model_id:0 msgid "Model" -msgstr "Modelo" +msgstr "" #. module: base_calendar #: selection:calendar.alarm,action:0 msgid "Audio" -msgstr "Audio" +msgstr "" #. module: base_calendar #: field:calendar.event,id:0 #: field:calendar.todo,id:0 +#: field:crm.meeting,id:0 msgid "ID" -msgstr "ID" +msgstr "" #. module: base_calendar #: selection:calendar.attendee,role:0 msgid "For information Purpose" -msgstr "Con propósito informativo" +msgstr "" #. module: base_calendar -#: view:base_calendar.invite.attendee:0 -msgid "Invite" -msgstr "Invitar" +#: field:calendar.event,select1:0 +#: field:calendar.todo,select1:0 +#: field:crm.meeting,select1:0 +msgid "Option" +msgstr "" #. module: base_calendar #: model:ir.model,name:base_calendar.model_calendar_attendee msgid "Attendee information" -msgstr "Información asistentes" +msgstr "" #. module: base_calendar #: field:calendar.alarm,res_id:0 msgid "Resource ID" -msgstr "ID del registro" +msgstr "" #. module: base_calendar #: selection:calendar.attendee,state:0 msgid "Needs Action" -msgstr "Necesita acción" +msgstr "" #. module: base_calendar #: field:calendar.attendee,sent_by:0 msgid "Sent By" -msgstr "Enviado por" +msgstr "" #. module: base_calendar #: field:calendar.event,sequence:0 #: field:calendar.todo,sequence:0 +#: field:crm.meeting,sequence:0 msgid "Sequence" -msgstr "Secuencia" +msgstr "" #. module: base_calendar #: help:calendar.event,alarm_id:0 #: help:calendar.todo,alarm_id:0 +#: help:crm.meeting,alarm_id:0 msgid "Set an alarm at this time, before the event occurs" -msgstr "Configure una alarma en este momento, antes de que ocurra el evento" +msgstr "" #. module: base_calendar -#: selection:base_calendar.invite.attendee,type:0 -msgid "Internal User" -msgstr "Usuario interno" - -#. module: base_calendar -#: view:calendar.attendee:0 #: view:calendar.event:0 +#: view:crm.meeting:0 msgid "Accept" -msgstr "Aceptar" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,week_list:0 #: selection:calendar.event,week_list:0 #: selection:calendar.todo,week_list:0 +#: selection:crm.meeting,week_list:0 msgid "Saturday" -msgstr "Sábado" +msgstr "" #. module: base_calendar -#: view:calendar.attendee:0 -msgid "Invitation To" -msgstr "Invitación a" +#: field:calendar.event,interval:0 +#: field:calendar.todo,interval:0 +#: field:crm.meeting,interval:0 +msgid "Repeat Every" +msgstr "" #. module: base_calendar -#: selection:base.calendar.set.exrule,byday:0 #: selection:calendar.event,byday:0 #: selection:calendar.todo,byday:0 +#: selection:crm.meeting,byday:0 msgid "Second" -msgstr "Segundo" +msgstr "" #. module: base_calendar #: field:calendar.attendee,availability:0 -#: field:res.users,availability:0 msgid "Free/Busy" -msgstr "Libre/Ocupado" - -#. module: base_calendar -#: field:calendar.event,end_type:0 -#: field:calendar.todo,end_type:0 -msgid "Way to end reccurency" -msgstr "Forma de terminar recurrencia" +msgstr "" #. module: base_calendar #: field:calendar.alarm,duration:0 @@ -1659,20 +1572,16 @@ msgstr "Forma de terminar recurrencia" #: field:calendar.event,duration:0 #: field:calendar.todo,date:0 #: field:calendar.todo,duration:0 +#: field:crm.meeting,duration:0 #: field:res.alarm,duration:0 #: field:res.alarm,trigger_duration:0 msgid "Duration" -msgstr "Duración" - -#. module: base_calendar -#: selection:base_calendar.invite.attendee,type:0 -msgid "External Email" -msgstr "Email externo" +msgstr "" #. module: base_calendar #: field:calendar.alarm,trigger_date:0 msgid "Trigger Date" -msgstr "Fecha activación" +msgstr "" #. module: base_calendar #: help:calendar.alarm,attach:0 @@ -1684,19 +1593,10 @@ msgid "" " * Points to a procedure resource, which is invoked when " " the alarm is triggered for procedure." msgstr "" -"* Apunta a un recurso de sonido, que se escucha cuando la alarma se activa " -"por audio.\n" -"* El archivo que está intentando ser enviado como adjunto en el correo " -"electrónico.\n" -"* Apunta a un recurso de procedimiento, que se invoca cuando la alarma se " -"activa por procedimiento." #. module: base_calendar -#: selection:base.calendar.set.exrule,byday:0 #: selection:calendar.event,byday:0 #: selection:calendar.todo,byday:0 +#: selection:crm.meeting,byday:0 msgid "Fifth" -msgstr "Quinto" - -#~ msgid "Set Exclude range" -#~ msgstr "Fijar el rango de exclusión" +msgstr "" diff --git a/addons/base_setup/i18n/nl_BE.po b/addons/base_setup/i18n/nl_BE.po index f22fd2c8adc..518ada07a5c 100644 --- a/addons/base_setup/i18n/nl_BE.po +++ b/addons/base_setup/i18n/nl_BE.po @@ -7,19 +7,19 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2012-10-01 11:22+0000\n" +"PO-Revision-Date: 2013-04-26 16:24+0000\n" "Last-Translator: Els Van Vossel (Agaplan) \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:12+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-04-27 05:44+0000\n" +"X-Generator: Launchpad (build 16580)\n" #. module: base_setup #: view:sale.config.settings:0 msgid "Emails Integration" -msgstr "" +msgstr "E-mailintegratie" #. module: base_setup #: selection:base.setup.terminology,partner:0 @@ -29,18 +29,19 @@ msgstr "Gast" #. module: base_setup #: view:sale.config.settings:0 msgid "Contacts" -msgstr "" +msgstr "Contactpersonen" #. module: base_setup #: model:ir.model,name:base_setup.model_base_config_settings msgid "base.config.settings" -msgstr "" +msgstr "base.config.settings" #. module: base_setup #: field:base.config.settings,module_auth_oauth:0 msgid "" "Use external authentication providers, sign in with google, facebook, ..." msgstr "" +"Gebruik externe verificatieproviders. Meld aan met Google, Facebook, ..." #. module: base_setup #: view:sale.config.settings:0 @@ -54,11 +55,19 @@ msgid "" "OpenERP using specific\n" " plugins for your preferred email application." msgstr "" +"OpenERP maakt het mogelijk om automatisch leads (of andere documenten)\n" +" aan te maken op basis van inkomende e-mails. U " +"kunt automatisch e-mails synchroniseren met OpenERP\n" +" met behulp van reguliere POP / IMAP-accounts, " +"via een direct e-mailintegratiescript voor uw\n" +" e-mailserver, of door zelf uw e-mails naar " +"OpenERP te sturen met behulp van specifieke\n" +" plug-ins voor uw favoriete e-mailprogramma." #. module: base_setup #: field:sale.config.settings,module_sale:0 msgid "SALE" -msgstr "" +msgstr "VERKOOP" #. module: base_setup #: selection:base.setup.terminology,partner:0 @@ -68,24 +77,24 @@ msgstr "Lid" #. module: base_setup #: view:base.config.settings:0 msgid "Portal access" -msgstr "" +msgstr "Portaaltoegang" #. module: base_setup #: view:base.config.settings:0 msgid "Authentication" -msgstr "" +msgstr "Verificatie" #. module: base_setup #: view:sale.config.settings:0 msgid "Quotations and Sales Orders" -msgstr "" +msgstr "Offertes en verkooporders" #. module: base_setup #: view:base.config.settings:0 #: model:ir.actions.act_window,name:base_setup.action_general_configuration #: model:ir.ui.menu,name:base_setup.menu_general_configuration msgid "General Settings" -msgstr "" +msgstr "Algemeen" #. module: base_setup #: selection:base.setup.terminology,partner:0 @@ -95,12 +104,12 @@ msgstr "Donor" #. module: base_setup #: view:base.config.settings:0 msgid "Email" -msgstr "" +msgstr "E-mail" #. module: base_setup #: field:sale.config.settings,module_crm:0 msgid "CRM" -msgstr "" +msgstr "Relatiebeheer" #. module: base_setup #: selection:base.setup.terminology,partner:0 @@ -110,32 +119,32 @@ msgstr "Patiënt" #. module: base_setup #: field:base.config.settings,module_base_import:0 msgid "Allow users to import data from CSV files" -msgstr "" +msgstr "Gebruikers mogen gegevens importeren uit csv-bestanden" #. module: base_setup #: field:base.config.settings,module_multi_company:0 msgid "Manage multiple companies" -msgstr "" +msgstr "Meerdere bedrijven beheren" #. module: base_setup #: view:sale.config.settings:0 msgid "On Mail Client" -msgstr "" +msgstr "Op e-mailclient" #. module: base_setup #: view:base.config.settings:0 msgid "--db-filter=YOUR_DATABAE" -msgstr "" +msgstr "--db-filter=UW_DATABASE" #. module: base_setup #: field:sale.config.settings,module_web_linkedin:0 msgid "Get contacts automatically from linkedIn" -msgstr "" +msgstr "Haal contactpersonen op uit LinkedIn" #. module: base_setup #: field:sale.config.settings,module_plugin_thunderbird:0 msgid "Enable Thunderbird plug-in" -msgstr "" +msgstr "Activeer de Thunderbirdplug-in" #. module: base_setup #: view:base.setup.terminology:0 @@ -145,22 +154,22 @@ msgstr "res_config_contents" #. module: base_setup #: view:sale.config.settings:0 msgid "Customer Features" -msgstr "" +msgstr "Klantenopties" #. module: base_setup #: view:base.config.settings:0 msgid "Import / Export" -msgstr "" +msgstr "Import / Export" #. module: base_setup #: view:sale.config.settings:0 msgid "Sale Features" -msgstr "" +msgstr "Verkoopopties" #. module: base_setup #: field:sale.config.settings,module_plugin_outlook:0 msgid "Enable Outlook plug-in" -msgstr "" +msgstr "Activeer de Outlookplug-in" #. module: base_setup #: view:base.setup.terminology:0 @@ -179,7 +188,7 @@ msgstr "Huurder" #. module: base_setup #: help:base.config.settings,module_share:0 msgid "Share or embbed any screen of openerp." -msgstr "" +msgstr "Gelijk welk scherm van OpenERP delen of insluiten" #. module: base_setup #: selection:base.setup.terminology,partner:0 @@ -192,6 +201,8 @@ msgid "" "When you create a new contact (person or company), you will be able to load " "all the data from LinkedIn (photos, address, etc)." msgstr "" +"Als u een nieuwe contactpersoon maakt (persoon of bedrijf), kunt u alle " +"gegevens van LinkedIn laden (foto, adres, enz.)" #. module: base_setup #: help:base.config.settings,module_multi_company:0 @@ -200,6 +211,9 @@ msgid "" "companies.\n" " This installs the module multi_company." msgstr "" +"Werken in omgevingen met meerdere bedrijven, met de nodige " +"toegangsbeveiliging tussen de bedrijven.\n" +" Hiermee installeert u de module multi_company." #. module: base_setup #: view:base.config.settings:0 @@ -208,6 +222,9 @@ msgid "" "You can\n" " launch the OpenERP Server with the option" msgstr "" +"Het openbare portaal is alleen toegankelijk als u zich in een enkele " +"databasemodus bevindt. U kunt\n" +" de OpenERP-server starten met de optie" #. module: base_setup #: view:base.config.settings:0 @@ -215,11 +232,13 @@ msgid "" "You will find more options in your company details: address for the header " "and footer, overdue payments texts, etc." msgstr "" +"U vindt meer opties bij de bedrijfsgegevens: adres voor de kop- en " +"voettekst, teksten voor achterstallige betalingen, enz." #. module: base_setup #: model:ir.model,name:base_setup.model_sale_config_settings msgid "sale.config.settings" -msgstr "" +msgstr "sale.config.settings" #. module: base_setup #: field:base.setup.terminology,partner:0 @@ -238,6 +257,12 @@ msgid "" "projects,\n" " etc." msgstr "" +"Wanneer u een document naar een klant stuurt,\n" +" (offerte, factuur), kan uw klant\n" +" aanmelden en zijn documenten bekijken,\n" +" uw bedrijfsnieuws lezen, zijn projecten " +"controleren,\n" +" enz." #. module: base_setup #: model:ir.model,name:base_setup.model_base_setup_terminology @@ -253,6 +278,8 @@ msgstr "Cliënt" #: help:base.config.settings,module_portal_anonymous:0 msgid "Enable the public part of openerp, openerp becomes a public website." msgstr "" +"Activeer het openbare deel van OpenERP; OpenERP wordt hiermee een openbare " +"website." #. module: base_setup #: help:sale.config.settings,module_plugin_thunderbird:0 @@ -265,6 +292,13 @@ msgid "" " Partner from the selected emails.\n" " This installs the module plugin_thunderbird." msgstr "" +"Met de plug-in kunt u e-mails met bijlagen koppelen aan de geselecteerde\n" +" OpenERP-objecten. U kunt een relatie of een lead kiezen en\n" +" de gekozen e-mail koppelen als een .eml-bestand als bijlage\n" +" aan het geselecteerde record. U kunt documenten aanmaken " +"voor CRM-lead\n" +" en relaties vanuit de geselecteerde e-mails. Hiermee " +"installeert u de module plugin_thunderbird." #. module: base_setup #: selection:base.setup.terminology,partner:0 @@ -280,7 +314,7 @@ msgstr "Gebruik een andere benaming voor Klant" #: model:ir.actions.act_window,name:base_setup.action_sale_config #: view:sale.config.settings:0 msgid "Configure Sales" -msgstr "" +msgstr "Verkoop instellen" #. module: base_setup #: help:sale.config.settings,module_plugin_outlook:0 @@ -293,16 +327,23 @@ msgid "" " email into an OpenERP mail message with attachments.\n" " This installs the module plugin_outlook." msgstr "" +"Met de Outlookplug-in kunt u een object selecteren dat u wilt toevoegen\n" +" aan uw e-mail en de bijlagen van MS Outlook. U kunt een " +"relatie \n" +" of een lead kiezen en de geselecteerde e-mail archiveren in " +"een\n" +" OpenERP-mailbericht met bijlagen.\n" +" Hiermee installeert u de module plugin_outlook." #. module: base_setup #: view:base.config.settings:0 msgid "Options" -msgstr "" +msgstr "Opties" #. module: base_setup #: field:base.config.settings,module_portal:0 msgid "Activate the customer portal" -msgstr "" +msgstr "Klantenportaal activeren" #. module: base_setup #: view:base.config.settings:0 @@ -311,36 +352,37 @@ msgid "" " Once activated, the login page will be " "replaced by the public website." msgstr "" +"Na activering zal de aanmeldpagina worden vervangen door de openbare website." #. module: base_setup #: field:base.config.settings,module_share:0 msgid "Allow documents sharing" -msgstr "" +msgstr "Sta het delen van documenten toe" #. module: base_setup #: view:base.config.settings:0 msgid "(company news, jobs, contact form, etc.)" -msgstr "" +msgstr "(bedrijfsnieuws, vacatures, contactformulier, enz.)" #. module: base_setup #: field:base.config.settings,module_portal_anonymous:0 msgid "Activate the public portal" -msgstr "" +msgstr "Openbare portaal activeren" #. module: base_setup #: view:base.config.settings:0 msgid "Configure outgoing email servers" -msgstr "" +msgstr "Uitgaande e-mailservers instellen" #. module: base_setup #: view:sale.config.settings:0 msgid "Social Network Integration" -msgstr "" +msgstr "Integratie sociale netwerken" #. module: base_setup #: help:base.config.settings,module_portal:0 msgid "Give your customers access to their documents." -msgstr "" +msgstr "Geef uw klanten toegang tot hun documenten." #. module: base_setup #: view:base.config.settings:0 @@ -352,7 +394,7 @@ msgstr "Afbreken" #: view:base.config.settings:0 #: view:sale.config.settings:0 msgid "Apply" -msgstr "" +msgstr "Toepassen" #. module: base_setup #: view:base.setup.terminology:0 @@ -363,12 +405,12 @@ msgstr "Kies uw terminologie" #: view:base.config.settings:0 #: view:sale.config.settings:0 msgid "or" -msgstr "" +msgstr "of" #. module: base_setup #: view:base.config.settings:0 msgid "Configure your company data" -msgstr "" +msgstr "Uw bedrijfsgegevens instellen" #~ msgid "Logo" #~ msgstr "Logo" diff --git a/addons/base_status/i18n/lt.po b/addons/base_status/i18n/lt.po new file mode 100644 index 00000000000..cdaf9b0db37 --- /dev/null +++ b/addons/base_status/i18n/lt.po @@ -0,0 +1,76 @@ +# Lithuanian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-29 15:17+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Lithuanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-30 05:29+0000\n" +"X-Generator: Launchpad (build 16580)\n" + +#. module: base_status +#: code:addons/base_status/base_state.py:107 +#, python-format +msgid "Error !" +msgstr "" + +#. module: base_status +#: code:addons/base_status/base_state.py:166 +#, python-format +msgid "%s has been opened." +msgstr "" + +#. module: base_status +#: code:addons/base_status/base_state.py:199 +#, python-format +msgid "%s has been renewed." +msgstr "" + +#. module: base_status +#: code:addons/base_status/base_stage.py:210 +#, python-format +msgid "Error!" +msgstr "" + +#. module: base_status +#: code:addons/base_status/base_state.py:107 +#, python-format +msgid "" +"You can not escalate, you are already at the top level regarding your sales-" +"team category." +msgstr "" + +#. module: base_status +#: code:addons/base_status/base_state.py:193 +#, python-format +msgid "%s is now pending." +msgstr "" + +#. module: base_status +#: code:addons/base_status/base_state.py:187 +#, python-format +msgid "%s has been canceled." +msgstr "" + +#. module: base_status +#: code:addons/base_status/base_stage.py:210 +#, python-format +msgid "" +"You are already at the top level of your sales-team category.\n" +"Therefore you cannot escalate furthermore." +msgstr "" + +#. module: base_status +#: code:addons/base_status/base_state.py:181 +#, python-format +msgid "%s has been closed." +msgstr "" diff --git a/addons/contacts/i18n/lt.po b/addons/contacts/i18n/lt.po new file mode 100644 index 00000000000..f785a308009 --- /dev/null +++ b/addons/contacts/i18n/lt.po @@ -0,0 +1,45 @@ +# Lithuanian translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-04-24 18:20+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Lithuanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-04-25 05:20+0000\n" +"X-Generator: Launchpad (build 16580)\n" + +#. module: contacts +#: model:ir.actions.act_window,help:contacts.action_contacts +msgid "" +"

\n" +" Click to add a contact in your address book.\n" +"

\n" +" OpenERP helps you easily track all activities related to\n" +" a customer; discussions, history of business opportunities,\n" +" documents, etc.\n" +"

\n" +" " +msgstr "" +"

\n" +"Spauskite, kad sukurtumėte kontaktą adresų knygoje.\n" +"

\n" +"OpenERP pagalba galima stebėti visus veiksmus susijusius su\n" +"kontaktu; bendravimas, pardavimų galimybių istorija,\n" +"dokumentai, ir t.t.\n" +"

\n" +" " + +#. module: contacts +#: model:ir.actions.act_window,name:contacts.action_contacts +#: model:ir.ui.menu,name:contacts.menu_contacts +msgid "Contacts" +msgstr "Kontaktai" diff --git a/addons/crm/__init__.py b/addons/crm/__init__.py index d78fb09eae7..4e3a704d5f3 100644 --- a/addons/crm/__init__.py +++ b/addons/crm/__init__.py @@ -28,6 +28,7 @@ import report import wizard import res_partner import res_config +import base_partner_merge # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py index 072624a7d98..8e17a882076 100644 --- a/addons/crm/__openerp__.py +++ b/addons/crm/__openerp__.py @@ -97,6 +97,7 @@ Dashboard for CRM will include: 'board_crm_view.xml', 'res_config_view.xml', + 'base_partner_merge_view.xml', ], 'demo': [ 'crm_demo.xml', diff --git a/addons/crm/base_partner_merge.py b/addons/crm/base_partner_merge.py new file mode 100644 index 00000000000..b2645e7fb79 --- /dev/null +++ b/addons/crm/base_partner_merge.py @@ -0,0 +1,760 @@ +#!/usr/bin/env python +from __future__ import absolute_import +from email.utils import parseaddr +import functools +import htmlentitydefs +import itertools +import logging +import operator +import re +from ast import literal_eval +from openerp.tools import mute_logger + +# Validation Library https://pypi.python.org/pypi/validate_email/1.1 +from .validate_email import validate_email + +from openerp.osv import osv, orm +from openerp.osv import fields +from openerp.osv.orm import browse_record +from openerp.tools.translate import _ + +pattern = re.compile("&(\w+?);") + +_logger = logging.getLogger('base.partner.merge') + + +# http://www.php2python.com/wiki/function.html-entity-decode/ +def html_entity_decode_char(m, defs=htmlentitydefs.entitydefs): + try: + return defs[m.group(1)] + except KeyError: + return m.group(0) + + +def html_entity_decode(string): + return pattern.sub(html_entity_decode_char, string) + + +def sanitize_email(email): + assert isinstance(email, basestring) and email + + result = re.subn(r';|/|:', ',', + html_entity_decode(email or ''))[0].split(',') + + emails = [parseaddr(email)[1] + for item in result + for email in item.split()] + + return [email.lower() + for email in emails + if validate_email(email)] + + +def is_integer_list(ids): + return all(isinstance(i, (int, long)) for i in ids) + + +class ResPartner(osv.Model): + _inherit = 'res.partner' + + _columns = { + 'id': fields.integer('Id', readonly=True), + 'create_date': fields.datetime('Create Date', readonly=True), + } + +class MergePartnerLine(osv.TransientModel): + _name = 'base.partner.merge.line' + + _columns = { + 'wizard_id': fields.many2one('base.partner.merge.automatic.wizard', + 'Wizard'), + 'min_id': fields.integer('MinID'), + 'aggr_ids': fields.char('Ids', required=True), + } + + _order = 'min_id asc' + + +class MergePartnerAutomatic(osv.TransientModel): + """ + The idea behind this wizard is to create a list of potential partners to + merge. We use two objects, the first one is the wizard for the end-user. + And the second will contain the partner list to merge. + """ + _name = 'base.partner.merge.automatic.wizard' + + _columns = { + # Group by + 'group_by_email': fields.boolean('Email'), + 'group_by_name': fields.boolean('Name'), + 'group_by_is_company': fields.boolean('Is Company'), + 'group_by_vat': fields.boolean('VAT'), + 'group_by_parent_id': fields.boolean('Parent Company'), + + 'state': fields.selection([('option', 'Option'), + ('selection', 'Selection'), + ('finished', 'Finished')], + 'State', + readonly=True, + required=True), + 'number_group': fields.integer("Group of Contacts", readonly=True), + 'current_line_id': fields.many2one('base.partner.merge.line', 'Current Line'), + 'line_ids': fields.one2many('base.partner.merge.line', 'wizard_id', 'Lines'), + 'partner_ids': fields.many2many('res.partner', string='Contacts'), + + 'exclude_contact': fields.boolean('A user associated to the contact'), + 'exclude_journal_item': fields.boolean('Journal Items associated to the contact'), + 'maximum_group': fields.integer("Maximum of Group of Contacts"), + } + + _defaults = { + 'state': 'option', + } + + def get_fk_on(self, cr, table): + q = """ SELECT cl1.relname as table, + att1.attname as column + FROM pg_constraint as con, pg_class as cl1, pg_class as cl2, + pg_attribute as att1, pg_attribute as att2 + WHERE con.conrelid = cl1.oid + AND con.confrelid = cl2.oid + AND array_lower(con.conkey, 1) = 1 + AND con.conkey[1] = att1.attnum + AND att1.attrelid = cl1.oid + AND cl2.relname = %s + AND att2.attname = 'id' + AND array_lower(con.confkey, 1) = 1 + AND con.confkey[1] = att2.attnum + AND att2.attrelid = cl2.oid + AND con.contype = 'f' + """ + return cr.execute(q, (table,)) + + def _update_foreign_keys(self, cr, uid, src_partners, dst_partner, context=None): + _logger.debug('_update_foreign_keys for dst_partner: %s for src_partners: %r', dst_partner.id, list(map(operator.attrgetter('id'), src_partners))) + + # find the many2one relation to a partner + proxy = self.pool.get('res.partner') + self.get_fk_on(cr, 'res_partner') + + # ignore two tables + + for table, column in cr.fetchall(): + if 'base_partner_merge_' in table: + continue + partner_ids = tuple(map(int, src_partners)) + + query = "SELECT column_name FROM information_schema.columns WHERE table_name LIKE '%s'" % (table) + cr.execute(query, ()) + columns = [] + for data in cr.fetchall(): + if data[0] != column: + columns.append(data[0]) + + query_dic = { + 'table': table, + 'column': column, + 'value': columns[0], + } + if len(columns) <= 1: + # unique key treated + query = """ + UPDATE "%(table)s" as ___tu + SET %(column)s = %%s + WHERE + %(column)s = %%s AND + NOT EXISTS ( + SELECT 1 + FROM "%(table)s" as ___tw + WHERE + %(column)s = %%s AND + ___tu.%(value)s = ___tw.%(value)s + )""" % query_dic + for partner_id in partner_ids: + cr.execute(query, (dst_partner.id, partner_id, dst_partner.id)) + else: + cr.execute("SAVEPOINT recursive_partner_savepoint") + try: + query = 'UPDATE "%(table)s" SET %(column)s = %%s WHERE %(column)s IN %%s' % query_dic + cr.execute(query, (dst_partner.id, partner_ids,)) + + if column == proxy._parent_name and table == 'res_partner': + query = """ + WITH RECURSIVE cycle(id, parent_id) AS ( + SELECT id, parent_id FROM res_partner + UNION + SELECT cycle.id, res_partner.parent_id + FROM res_partner, cycle + WHERE res_partner.id = cycle.parent_id AND + cycle.id != cycle.parent_id + ) + SELECT id FROM cycle WHERE id = parent_id AND id = %s + """ + cr.execute(query, (dst_partner.id,)) + if cr.fetchall(): + cr.execute("ROLLBACK TO SAVEPOINT recursive_partner_savepoint") + finally: + cr.execute("RELEASE SAVEPOINT recursive_partner_savepoint") + + def _update_reference_fields(self, cr, uid, src_partners, dst_partner, context=None): + _logger.debug('_update_reference_fields for dst_partner: %s for src_partners: %r', dst_partner.id, list(map(operator.attrgetter('id'), src_partners))) + + def update_records(model, src, field_model='model', field_id='res_id', context=None): + proxy = self.pool.get(model) + if proxy is None: + return + domain = [(field_model, '=', 'res.partner'), (field_id, '=', src.id)] + ids = proxy.search(cr, uid, domain, context=context) + return proxy.write(cr, uid, ids, {field_id: dst_partner.id}, context=context) + + update_records = functools.partial(update_records, context=context) + + for partner in src_partners: + update_records('base.calendar', src=partner, field_model='model_id.model') + update_records('ir.attachment', src=partner, field_model='res_model') + update_records('mail.followers', src=partner, field_model='res_model') + update_records('mail.message', src=partner) + update_records('marketing.campaign.workitem', src=partner, field_model='object_id.model') + update_records('ir.model.data', src=partner) + + proxy = self.pool['ir.model.fields'] + domain = [('ttype', '=', 'reference')] + record_ids = proxy.search(cr, uid, domain, context=context) + + for record in proxy.browse(cr, uid, record_ids, context=context): + proxy_model = self.pool[record.model] + + field_type = proxy_model._columns.get(record.name).__class__._type + + if field_type == 'function': + continue + + for partner in src_partners: + domain = [ + (record.name, '=', 'res.partner,%d' % partner.id) + ] + model_ids = proxy_model.search(cr, uid, domain, context=context) + values = { + record.name: 'res.partner,%d' % dst_partner.id, + } + proxy_model.write(cr, uid, model_ids, values, context=context) + + def _update_values(self, cr, uid, src_partners, dst_partner, context=None): + _logger.debug('_update_values for dst_partner: %s for src_partners: %r', dst_partner.id, list(map(operator.attrgetter('id'), src_partners))) + + columns = dst_partner._columns + def write_serializer(column, item): + if isinstance(item, browse_record): + return item.id + else: + return item + + values = dict() + for column, field in columns.iteritems(): + if field._type not in ('many2many', 'one2many', 'function'): + for item in itertools.chain(src_partners, [dst_partner]): + if item[column]: + values[column] = write_serializer(column, item[column]) + + values.pop('id', None) + parent_id = values.pop('parent_id', None) + dst_partner.write(values) + if parent_id and parent_id != dst_partner.id: + try: + dst_partner.write({'parent_id': parent_id}) + except (osv.except_osv, orm.except_orm): + _logger.info('Skip recursive partner hierarchies for parent_id %s of partner: %s', parent_id, dst_partner.id) + + @mute_logger('openerp.osv.expression', 'openerp.osv.orm') + def _merge(self, cr, uid, partner_ids, context=None): + proxy = self.pool.get('res.partner') + + partner_ids = proxy.exists(cr, uid, list(partner_ids), context=context) + if len(partner_ids) < 2: + return + + partners = proxy.browse(cr, uid, list(partner_ids), context=context) + ordered_partners = sorted(sorted(partners, + key=operator.attrgetter('create_date'), reverse=True), + key=operator.attrgetter('active'), reverse=True) + + dst_partner = ordered_partners[-1] + src_partners = ordered_partners[:-1] + _logger.info("dst_partner: %s", dst_partner.id) + + call_it = lambda function: function(cr, uid, src_partners, dst_partner, + context=context) + + call_it(self._update_foreign_keys) + call_it(self._update_reference_fields) + call_it(self._update_values) + + _logger.info("---merged---") + + for partner in src_partners: + partner.unlink() + + + def clean_emails(self, cr, uid, context=None): + """ + Clean the email address of the partner, if there is an email field with + a mimum of two addresses, the system will create a new partner, with the + information of the previous one and will copy the new cleaned email into + the email field. + """ + if context is None: + context = {} + + proxy_model = self.pool['ir.model.fields'] + field_ids = proxy_model.search(cr, uid, [('model', '=', 'res.partner'), + ('ttype', 'like', '%2many')], + context=context) + fields = proxy_model.read(cr, uid, field_ids, context=context) + reset_fields = dict((field['name'], []) for field in fields) + + proxy_partner = self.pool['res.partner'] + context['active_test'] = False + ids = proxy_partner.search(cr, uid, [], context=context) + + fields = ['name', 'var' 'partner_id' 'is_company', 'email'] + partners = proxy_partner.read(cr, uid, ids, fields, context=context) + + partners.sort(key=operator.itemgetter('id')) + partners_len = len(partners) + + _logger.info('partner_len: %r', partners_len) + + for idx, partner in enumerate(partners): + if not partner['email']: + continue + + percent = (idx / float(partners_len)) * 100.0 + _logger.info('idx: %r', idx) + _logger.info('percent: %r', percent) + try: + emails = sanitize_email(partner['email']) + head, tail = emails[:1], emails[1:] + email = head[0] if head else False + + proxy_partner.write(cr, uid, [partner['id']], + {'email': email}, context=context) + + for email in tail: + values = dict(reset_fields, email=email) + proxy_partner.copy(cr, uid, partner['id'], values, + context=context) + + except Exception: + _logger.exception("There is a problem with this partner: %r", partner) + raise + return True + + def close_cb(self, cr, uid, ids, context=None): + return {'type': 'ir.actions.act_window_close'} + + def _generate_query(self, fields, maximum_group=100): + group_fields = ', '.join(fields) + + filters = [] + for field in fields: + if field in ['email', 'name']: + filters.append((field, 'IS NOT', 'NULL')) + + criteria = ' AND '.join('%s %s %s' % (field, operator, value) + for field, operator, value in filters) + + text = [ + "SELECT min(id), array_agg(id)", + "FROM res_partner", + ] + + if criteria: + text.append('WHERE %s' % criteria) + + text.extend([ + "GROUP BY %s" % group_fields, + "HAVING COUNT(*) >= 2", + "ORDER BY min(id)", + ]) + + if maximum_group: + text.extend([ + "LIMIT %s" % maximum_group, + ]) + + return ' '.join(text) + + def _compute_selected_groupby(self, this): + group_by_str = 'group_by_' + group_by_len = len(group_by_str) + + fields = [ + key[group_by_len:] + for key in self._columns.keys() + if key.startswith(group_by_str) + ] + + groups = [ + field + for field in fields + if getattr(this, '%s%s' % (group_by_str, field), False) + ] + + if not groups: + raise osv.except_osv(_('Error'), + _("You have to specify a filter for your selection")) + + return groups + + def next_cb(self, cr, uid, ids, context=None): + """ + Don't compute any thing + """ + context = dict(context or {}, active_test=False) + this = self.browse(cr, uid, ids[0], context=context) + if this.current_line_id: + this.current_line_id.unlink() + return self._next_screen(this) + + def _next_screen(self, this): + this.refresh() + values = {} + if this.line_ids: + # in this case, we try to find the next record. + current_line = this.line_ids[0] + current_partner_ids = literal_eval(current_line.aggr_ids) + values.update({ + 'current_line_id': current_line.id, + 'partner_ids': [(6, 0, current_partner_ids)], + 'state': 'selection', + }) + else: + values.update({ + 'current_line_id': False, + 'partner_ids': [], + 'state': 'finished', + }) + + this.write(values) + + return { + 'type': 'ir.actions.act_window', + 'res_model': this._name, + 'res_id': this.id, + 'view_mode': 'form', + 'target': 'new', + } + + def _model_is_installed(self, cr, uid, model, context=None): + proxy = self.pool.get('ir.model') + domain = [('model', '=', model)] + return proxy.search_count(cr, uid, domain, context=context) > 0 + + def _partner_use_in(self, cr, uid, aggr_ids, models, context=None): + """ + Check if there is no occurence of this group of partner in the selected + model + """ + for model, field in models.iteritems(): + proxy = self.pool.get(model) + domain = [(field, 'in', aggr_ids)] + if proxy.search_count(cr, uid, domain, context=context): + return True + return False + + def compute_models(self, cr, uid, ids, context=None): + """ + Compute the different models needed by the system if you want to exclude + some partners. + """ + assert is_integer_list(ids) + + this = self.browse(cr, uid, ids[0], context=context) + + models = {} + if this.exclude_contact: + models['res.users'] = 'partner_id' + + if self._model_is_installed(cr, uid, 'account.move.line', context=context) and this.exclude_journal_item: + models['account.move.line'] = 'partner_id' + + return models + + def _process_query(self, cr, uid, ids, query, context=None): + """ + Execute the select request and write the result in this wizard + """ + proxy = self.pool.get('base.partner.merge.line') + this = self.browse(cr, uid, ids[0], context=context) + models = self.compute_models(cr, uid, ids, context=context) + cr.execute(query) + + counter = 0 + for min_id, aggr_ids in cr.fetchall(): + if models and self._partner_use_in(cr, uid, aggr_ids, models, context=context): + continue + values = { + 'wizard_id': this.id, + 'min_id': min_id, + 'aggr_ids': aggr_ids, + } + + proxy.create(cr, uid, values, context=context) + counter += 1 + + values = { + 'state': 'selection', + 'number_group': counter, + } + + this.write(values) + + _logger.info("counter: %s", counter) + + def start_process_cb(self, cr, uid, ids, context=None): + """ + Start the process. + * Compute the selected groups (with duplication) + * If the user has selected the 'exclude_XXX' fields, avoid the partners. + """ + assert is_integer_list(ids) + + context = dict(context or {}, active_test=False) + this = self.browse(cr, uid, ids[0], context=context) + groups = self._compute_selected_groupby(this) + query = self._generate_query(groups, this.maximum_group) + self._process_query(cr, uid, ids, query, context=context) + + return self._next_screen(this) + + def automatic_process_cb(self, cr, uid, ids, context=None): + assert is_integer_list(ids) + this = self.browse(cr, uid, ids[0], context=context) + this.start_process_cb() + this.refresh() + + for line in this.line_ids: + partner_ids = literal_eval(line.aggr_ids) + self._merge(cr, uid, partner_ids, context=context) + line.unlink() + cr.commit() + + this.write({'state': 'finished'}) + return { + 'type': 'ir.actions.act_window', + 'res_model': this._name, + 'res_id': this.id, + 'view_mode': 'form', + 'target': 'new', + } + + def parent_migration_process_cb(self, cr, uid, ids, context=None): + assert is_integer_list(ids) + + context = dict(context or {}, active_test=False) + this = self.browse(cr, uid, ids[0], context=context) + + query = """ + SELECT + min(p1.id), + array_agg(DISTINCT p1.id) + FROM + res_partner as p1 + INNER join + res_partner as p2 + ON + p1.email = p2.email AND + p1.name = p2.name AND + (p1.parent_id = p2.id OR p1.id = p2.parent_id) + WHERE + p2.id IS NOT NULL + GROUP BY + p1.email, + p1.name, + CASE WHEN p1.parent_id = p2.id THEN p2.id + ELSE p1.id + END + HAVING COUNT(*) >= 2 + ORDER BY + min(p1.id) + """ + + self._process_query(cr, uid, ids, query, context=context) + + for line in this.line_ids: + partner_ids = literal_eval(line.aggr_ids) + self._merge(cr, uid, partner_ids, context=context) + line.unlink() + cr.commit() + + this.write({'state': 'finished'}) + + cr.execute(""" + UPDATE + res_partner + SET + is_company = NULL, + parent_id = NULL + WHERE + parent_id = id + """) + + return { + 'type': 'ir.actions.act_window', + 'res_model': this._name, + 'res_id': this.id, + 'view_mode': 'form', + 'target': 'new', + } + + def update_all_process_cb(self, cr, uid, ids, context=None): + assert is_integer_list(ids) + + # WITH RECURSIVE cycle(id, parent_id) AS ( + # SELECT id, parent_id FROM res_partner + # UNION + # SELECT cycle.id, res_partner.parent_id + # FROM res_partner, cycle + # WHERE res_partner.id = cycle.parent_id AND + # cycle.id != cycle.parent_id + # ) + # UPDATE res_partner + # SET parent_id = NULL + # WHERE id in (SELECT id FROM cycle WHERE id = parent_id); + + this = self.browse(cr, uid, ids[0], context=context) + + self.parent_migration_process_cb(cr, uid, ids, context=None) + + list_merge = [ + {'group_by_vat': True, 'group_by_email': True, 'group_by_name': True}, + # {'group_by_name': True, 'group_by_is_company': True, 'group_by_parent_id': True}, + # {'group_by_email': True, 'group_by_is_company': True, 'group_by_parent_id': True}, + # {'group_by_name': True, 'group_by_vat': True, 'group_by_is_company': True, 'exclude_journal_item': True}, + # {'group_by_email': True, 'group_by_vat': True, 'group_by_is_company': True, 'exclude_journal_item': True}, + # {'group_by_email': True, 'group_by_is_company': True, 'exclude_contact': True, 'exclude_journal_item': True}, + # {'group_by_name': True, 'group_by_is_company': True, 'exclude_contact': True, 'exclude_journal_item': True} + ] + + for merge_value in list_merge: + id = self.create(cr, uid, merge_value, context=context) + self.automatic_process_cb(cr, uid, [id], context=context) + + cr.execute(""" + UPDATE + res_partner + SET + is_company = NULL + WHERE + parent_id IS NOT NULL AND + is_company IS NOT NULL + """) + + # cr.execute(""" + # UPDATE + # res_partner as p1 + # SET + # is_company = NULL, + # parent_id = ( + # SELECT p2.id + # FROM res_partner as p2 + # WHERE p2.email = p1.email AND + # p2.parent_id != p2.id + # LIMIT 1 + # ) + # WHERE + # p1.parent_id = p1.id + # """) + + return self._next_screen(this) + + def merge_cb(self, cr, uid, ids, context=None): + assert is_integer_list(ids) + + context = dict(context or {}, active_test=False) + this = self.browse(cr, uid, ids[0], context=context) + + partner_ids = set(map(int, this.partner_ids)) + if not partner_ids: + this.write({'state': 'finished'}) + return { + 'type': 'ir.actions.act_window', + 'res_model': this._name, + 'res_id': this.id, + 'view_mode': 'form', + 'target': 'new', + } + + self._merge(cr, uid, partner_ids, context=context) + + this.current_line_id.unlink() + + return self._next_screen(this) + + def merge_multi(self, cr, uid, ids, context=None): + + active_model = context.get('active_model') + if active_model != 'res.partner': + raise osv.except_osv( + _('Error'), + _('This wizard can only used with the Partners') + ) + + partner_ids = context.get('active_ids', []) + + MINIMAL_NUMBER = 2 + if len(partner_ids) < MINIMAL_NUMBER: + raise osv.except_osv( + _('Error'), + _("You can't use this wizard with only one Partner") + ) + + self._merge(cr, uid, partner_ids, context=context) + + return True + + def auto_set_parent_id(self, cr, uid, ids, context=None): + assert is_integer_list(ids) + + # select partner who have one least invoice + partner_treated = ['@gmail.com'] + cr.execute(""" SELECT p.id, p.email + FROM res_partner as p + LEFT JOIN account_invoice as a + ON p.id = a.partner_id AND a.state in ('open','paid') + WHERE p.grade_id is NOT NULL + GROUP BY p.id + ORDER BY COUNT(a.id) DESC + """) + re_email = re.compile(r".*@") + for id, email in cr.fetchall(): + # check email domain + email = re_email.sub("@", email or "") + if not email or email in partner_treated: + continue + partner_treated.append(email) + + # don't update the partners if they are more of one who have invoice + cr.execute(""" SELECT * + FROM res_partner as p + WHERE p.id != %s AND p.email LIKE '%%%s' AND + EXISTS (SELECT * FROM account_invoice as a WHERE p.id = a.partner_id AND a.state in ('open','paid')) + """ % (id, email)) + + if len(cr.fetchall()) > 1: + _logger.info("%s MORE OF ONE COMPANY", email) + continue + + # to display changed values + cr.execute(""" SELECT id,email + FROM res_partner + WHERE parent_id != %s AND id != %s AND email LIKE '%%%s' + """ % (id, id, email)) + _logger.info("%r", cr.fetchall()) + + # upgrade + cr.execute(""" UPDATE res_partner + SET parent_id = %s + WHERE id != %s AND email LIKE '%%%s' + """ % (id, id, email)) + return False diff --git a/addons/crm/base_partner_merge_view.xml b/addons/crm/base_partner_merge_view.xml new file mode 100644 index 00000000000..74e7a72d7a8 --- /dev/null +++ b/addons/crm/base_partner_merge_view.xml @@ -0,0 +1,138 @@ + + + + + + + + Deduplicate Contacts + base.partner.merge.automatic.wizard + form + form + new + {'active_test': False} + + + + + + base.partner.merge.automatic.wizard.form + base.partner.merge.automatic.wizard + +
+
+
+ + +

There is no more contacts to merge for this request...

+