diff --git a/addons/account/i18n/hu.po b/addons/account/i18n/hu.po index 113e5f683b4..e648e7d9534 100644 --- a/addons/account/i18n/hu.po +++ b/addons/account/i18n/hu.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-01-31 09:25+0000\n" +"PO-Revision-Date: 2011-02-09 17:14+0000\n" "Last-Translator: NOVOTRADE RENDSZERHÁZ \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: 2011-02-01 04:41+0000\n" +"X-Launchpad-Export-Date: 2011-02-10 04:35+0000\n" "X-Generator: Launchpad (build 12177)\n" #. module: account @@ -2162,7 +2162,7 @@ msgstr "Futó" #: field:product.category,property_account_income_categ:0 #: field:product.template,property_account_income:0 msgid "Income Account" -msgstr "Árbevétel számla" +msgstr "Árbevétel főkönyvi számla" #. module: account #: code:addons/account/invoice.py:352 @@ -4397,7 +4397,7 @@ msgstr "Kezdő dátum" #. module: account #: field:account.chart.template,property_account_income:0 msgid "Income Account on Product Template" -msgstr "Árbevétel számla a termék sablonban" +msgstr "Árbevétel főkönyvi számla a terméksablonban" #. module: account #: help:res.partner,last_reconciliation_date:0 @@ -5087,7 +5087,7 @@ msgstr "Záró/nyitó napló" #: code:addons/account/wizard/account_move_journal.py:63 #, python-format msgid "Configuration Error !" -msgstr "" +msgstr "Beállítási hiba!" #. module: account #: help:account.partner.reconcile.process,to_reconcile:0 @@ -5756,7 +5756,7 @@ msgstr "Értékesítést terhelő adók" #. module: account #: view:account.addtmpl.wizard:0 msgid "Create an Account based on this template" -msgstr "" +msgstr "A sablon alapján főkönyvi számla létrehozása" #. module: account #: view:account.account.type:0 diff --git a/addons/account/i18n/pt_BR.po b/addons/account/i18n/pt_BR.po index 80a20fe38fb..635c1071f25 100644 --- a/addons/account/i18n/pt_BR.po +++ b/addons/account/i18n/pt_BR.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: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-02-09 00:20+0000\n" +"PO-Revision-Date: 2011-02-11 22:50+0000\n" "Last-Translator: Emerson \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: 2011-02-09 04:55+0000\n" -"X-Generator: Launchpad (build 12177)\n" +"X-Launchpad-Export-Date: 2011-02-12 05:00+0000\n" +"X-Generator: Launchpad (build 12351)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -8097,7 +8097,7 @@ msgstr "De" #. module: account #: model:ir.model,name:account.model_account_fiscalyear_close msgid "Fiscalyear Close" -msgstr "" +msgstr "Fechar Ano Fiscal" #. module: account #: sql_constraint:account.account:0 @@ -8520,7 +8520,7 @@ msgstr "Período Inicial" #: code:addons/account/account.py:2333 #, python-format msgid "Cannot locate parent code for template account!" -msgstr "" +msgstr "Impossível localizar o código da conta pai para o modelo de conta!" #. module: account #: field:account.aged.trial.balance,direction_selection:0 @@ -8798,7 +8798,7 @@ msgstr "Extratos Bancários" #: help:account.addtmpl.wizard,cparent_id:0 msgid "" "Creates an account with the selected template under this existing parent." -msgstr "" +msgstr "Cria uma conta com o modelo selecionado abaixo desta conta pai." #. module: account #: selection:account.model.line,date_maturity:0 @@ -9121,7 +9121,7 @@ msgstr "Através :" #: view:account.general.journal:0 #: model:ir.ui.menu,name:account.menu_account_general_journal msgid "General Journals" -msgstr "" +msgstr "Diários Gerais" #. module: account #: view:account.model:0 @@ -9792,6 +9792,12 @@ msgid "" "may keep several types of specialized journals such as a cash journal, " "purchase journal, sales journal..." msgstr "" +"Crie e gerencie os diários de sua empresa neste menu. Um diário é usado para " +"registrar transações de todos os dados contábeis relacionados aos negócios " +"do dia a dia. Ele usa o sistema de dupla partida para manter os registros. " +"Dependendo da natureza das atividades e do número de transações diárias, uma " +"empresa pode ter vários tipos de diários específicos como um diário de " +"caixa, um diário de compras, diários de vendas..." #. module: account #: model:ir.model,name:account.model_account_analytic_chart diff --git a/addons/account_analytic_plans/i18n/hu.po b/addons/account_analytic_plans/i18n/hu.po index 42ed257df9f..24f228efc04 100644 --- a/addons/account_analytic_plans/i18n/hu.po +++ b/addons/account_analytic_plans/i18n/hu.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-03 16:56+0000\n" -"PO-Revision-Date: 2011-02-01 18:15+0000\n" +"PO-Revision-Date: 2011-02-09 11:58+0000\n" "Last-Translator: NOVOTRADE RENDSZERHÁZ \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: 2011-02-02 04:41+0000\n" +"X-Launchpad-Export-Date: 2011-02-10 04:35+0000\n" "X-Generator: Launchpad (build 12177)\n" #. module: account_analytic_plans @@ -78,7 +78,7 @@ msgstr "Felhasználói hiba" #. module: account_analytic_plans #: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance msgid "Analytic Plan Instance" -msgstr "Analitikus terv példa" +msgstr "Analitikus tervpéldány" #. module: account_analytic_plans #: view:analytic.plan.create.model:0 @@ -263,7 +263,7 @@ msgstr "5.gyűjtőkód azonosító" #. module: account_analytic_plans #: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance_line msgid "Analytic Instance Line" -msgstr "Analitikus terv példasor" +msgstr "Analitikus tervpéldány sora" #. module: account_analytic_plans #: field:account.analytic.plan.line,root_analytic_id:0 diff --git a/addons/account_budget/i18n/gl.po b/addons/account_budget/i18n/gl.po index ee4c7410676..cffcba06544 100644 --- a/addons/account_budget/i18n/gl.po +++ b/addons/account_budget/i18n/gl.po @@ -9,14 +9,14 @@ msgstr "" "Project-Id-Version: account-budget-es\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2009-09-08 12:36+0000\n" -"Last-Translator: Fabien (Open ERP) \n" +"PO-Revision-Date: 2011-02-11 13:01+0000\n" +"Last-Translator: Alberto Luengo Cabanillas (Pexego) \n" "Language-Team: Galego \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-01-15 05:45+0000\n" -"X-Generator: Launchpad (build 12177)\n" +"X-Launchpad-Export-Date: 2011-02-12 05:00+0000\n" +"X-Generator: Launchpad (build 12351)\n" #. module: account_budget #: field:crossovered.budget,creating_user_id:0 @@ -38,7 +38,7 @@ msgstr "Posicións presupuestarias" #: code:addons/account_budget/account_budget.py:119 #, python-format msgid "The General Budget '%s' has no Accounts!" -msgstr "" +msgstr "¡O Presuposto Xeral '%s' non ten contas!" #. module: account_budget #: report:account.budget:0 @@ -58,7 +58,7 @@ msgstr "Validar usuario" #. module: account_budget #: model:ir.actions.act_window,name:account_budget.action_account_budget_crossvered_summary_report msgid "Print Summary" -msgstr "" +msgstr "Imprimir Resumo" #. module: account_budget #: field:crossovered.budget.lines,paid_date:0 @@ -99,7 +99,7 @@ msgstr "Moeda:" #. module: account_budget #: model:ir.model,name:account_budget.model_account_budget_crossvered_report msgid "Account Budget crossvered report" -msgstr "" +msgstr "Informe cruzado das contas do presuposto" #. module: account_budget #: selection:crossovered.budget,state:0 @@ -133,11 +133,20 @@ msgid "" "revenue per analytic account and monitor its evolution based on the actuals " "realised during that period." msgstr "" +"Un presuposto é unha previsión dos ingresos e gastos agardados nun periodo " +"futuro da súa compañía. Cun presuposto, unha compañía é quen de revisar " +"cuidadosamente cántos cartos está percibindo nun determinado periodo, e " +"planifica-la mellor maneira de dividilos entre varias categorías. Mantendo-" +"lo rastro da saída dos cartos, tenderá a ser menos propicio ós sobrecostes e " +"acadar máis sinxelamente as súas metas financieiras. Facendo-la previsión " +"dun presuposto detallando-los beneficios agardados por conta analítica e " +"monitoreando a súa evolución basándose nos valores actuais realizados " +"durante ese periodo." #. module: account_budget #: view:account.budget.crossvered.summary.report:0 msgid "This wizard is used to print summary of budgets" -msgstr "" +msgstr "Este asistente emprégase para imprimir un resumo de presupostos" #. module: account_budget #: report:account.budget:0 @@ -154,7 +163,7 @@ msgstr "Descrición" #. module: account_budget #: report:crossovered.budget.report:0 msgid "Currency" -msgstr "" +msgstr "Divisa" #. module: account_budget #: report:crossovered.budget.report:0 @@ -166,17 +175,17 @@ msgstr "Total :" #: field:crossovered.budget,company_id:0 #: field:crossovered.budget.lines,company_id:0 msgid "Company" -msgstr "" +msgstr "Compañía" #. module: account_budget #: view:crossovered.budget:0 msgid "To Approve" -msgstr "" +msgstr "Para aprobar" #. module: account_budget #: view:crossovered.budget:0 msgid "Reset to Draft" -msgstr "" +msgstr "Cambiar a Borrador" #. module: account_budget #: view:account.budget.post:0 @@ -201,7 +210,7 @@ msgstr "Feito" #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Practical Amt" -msgstr "" +msgstr "Amt Práctico" #. module: account_budget #: view:account.analytic.account:0 @@ -209,7 +218,7 @@ msgstr "" #: view:crossovered.budget:0 #: field:crossovered.budget.lines,practical_amount:0 msgid "Practical Amount" -msgstr "Importe real" +msgstr "Importe Real" #. module: account_budget #: field:crossovered.budget,date_to:0 @@ -221,7 +230,7 @@ msgstr "Data final" #: model:ir.model,name:account_budget.model_account_budget_analytic #: model:ir.model,name:account_budget.model_account_budget_report msgid "Account Budget report for analytic account" -msgstr "" +msgstr "Informe contable dos Presupostos por conta analítica" #. module: account_budget #: view:account.analytic.account:0 @@ -240,7 +249,7 @@ msgstr "Nome" #. module: account_budget #: model:ir.model,name:account_budget.model_crossovered_budget_lines msgid "Budget Line" -msgstr "" +msgstr "Liña de Presuposto" #. module: account_budget #: view:account.analytic.account:0 @@ -274,7 +283,7 @@ msgstr "Código" #: view:account.budget.analytic:0 #: view:account.budget.crossvered.report:0 msgid "This wizard is used to print budget" -msgstr "" +msgstr "Este asistente emprégase para imprimi-lo presuposto" #. module: account_budget #: model:ir.actions.act_window,name:account_budget.act_crossovered_budget_view @@ -293,7 +302,7 @@ msgstr "Presupostos" msgid "" "Error! The currency has to be the same as the currency of the selected " "company" -msgstr "" +msgstr "¡Erro! A divisa ten que sela mesma ca da compañía seleccionada" #. module: account_budget #: selection:crossovered.budget,state:0 @@ -303,7 +312,7 @@ msgstr "Cancelado" #. module: account_budget #: view:crossovered.budget:0 msgid "Approve" -msgstr "" +msgstr "Aprobar" #. module: account_budget #: field:crossovered.budget,date_from:0 @@ -329,13 +338,13 @@ msgstr "Comezo do período" #. module: account_budget #: model:ir.model,name:account_budget.model_account_budget_crossvered_summary_report msgid "Account Budget crossvered summary report" -msgstr "" +msgstr "Informe Resumo Contable Cruzado do Presuposto" #. module: account_budget #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Theoretical Amt" -msgstr "" +msgstr "Importe teórico" #. module: account_budget #: view:account.budget.analytic:0 @@ -381,6 +390,33 @@ msgid "" "Budgets per Budgets.\n" "\n" msgstr "" +"Este módulo permite ós contables xestionar os presupostos analíticos e " +"cruzados.\n" +"\n" +"Unha vez que os Presupostos Mestres e os Presupostos defínense (en " +"Contabilidade/Presupostos/),\n" +"os Xestores de Proxecto poden establece-la cantidad planeada para cada Conta " +"Analítica.\n" +"\n" +"O contable ten a posibilidade de ve-lo total da cantidade planeada para " +"cada\n" +"Presuposto e Presuposto Mestre para asegurarse que o total planeado non é\n" +"maior/menor que o que él planificara para este Presuposto (Mestre ou non). " +"Cada lista de\n" +"rexistros pode verse tamén de xeito gráfico.\n" +"\n" +"Están dispoñibles tres informes:\n" +" 1. O primeiro está disponible dende a lista de Presupostos. Proporciona-" +"la desviación das contas Analíticas destes Presupostos por Presuposto " +"Mestre.\n" +"\n" +" 2. O segundo é un resumo do anterior, solo proporciona-la desviación das " +"contas analíticas para os Presupostos seleccionados.\n" +"\n" +" 3.- O derradeiro está dispoñible desde o Plan Analítico de Contas. " +"Proporciona-la desviación das contas Analíticas destes Presupostos por " +"Presuposto Mestre.\n" +"\n" #. module: account_budget #: field:crossovered.budget.lines,analytic_account_id:0 @@ -397,7 +433,7 @@ msgstr "Presuposto:" #: report:account.budget:0 #: report:crossovered.budget.report:0 msgid "Planned Amt" -msgstr "" +msgstr "Importe previsto" #. module: account_budget #: view:account.budget.post:0 @@ -436,7 +472,7 @@ msgstr "Xestión de presupostos" #. module: account_budget #: constraint:account.analytic.account:0 msgid "Error! You can not create recursive analytic accounts." -msgstr "" +msgstr "¡Erro! Non pode crear contas analíticas recorrentes" #. module: account_budget #: report:account.budget:0 diff --git a/addons/account_cancel/i18n/pt.po b/addons/account_cancel/i18n/pt.po index 01e79e9231b..96cf9e33b45 100644 --- a/addons/account_cancel/i18n/pt.po +++ b/addons/account_cancel/i18n/pt.po @@ -8,13 +8,13 @@ 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: 2010-11-26 08:43+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2011-02-09 21:45+0000\n" +"Last-Translator: António Sequeira \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-01-15 05:52+0000\n" +"X-Launchpad-Export-Date: 2011-02-10 04:36+0000\n" "X-Generator: Launchpad (build 12177)\n" #. module: account_cancel @@ -25,6 +25,10 @@ msgid "" "journal. If set to true it allows user to cancel entries & invoices.\n" " " msgstr "" +"\n" +" Incluir o campo 'Permitir cancelar lançamentos' na vista do jornal. Se " +"Verdadeiro, permite ao utilizador cancelar Lançamentos e Facturas.\n" +" " #. module: account_cancel #: model:ir.module.module,shortdesc:account_cancel.module_meta_information diff --git a/addons/account_followup/i18n/es_EC.po b/addons/account_followup/i18n/es_EC.po index d6981a01c4b..d91589ecdc6 100644 --- a/addons/account_followup/i18n/es_EC.po +++ b/addons/account_followup/i18n/es_EC.po @@ -7,14 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2010-09-17 17:41+0000\n" -"Last-Translator: Jordi Esteve (www.zikzakmedia.com) " -"\n" +"PO-Revision-Date: 2011-02-09 21:09+0000\n" +"Last-Translator: Edgar Alejandro \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: 2011-01-15 05:17+0000\n" +"X-Launchpad-Export-Date: 2011-02-10 04:35+0000\n" "X-Generator: Launchpad (build 12177)\n" #. module: account_followup @@ -97,6 +96,8 @@ msgstr "Asunto correo electrónico" msgid "" "Follow up on the reminders sent over to your partners for unpaid invoices." msgstr "" +"Seguimiento de los recordatorios enviados a sus clientes por facturas no " +"pagadas." #. module: account_followup #: view:account.followup.print.all:0 @@ -112,7 +113,7 @@ msgstr "Aceptar" #. module: account_followup #: view:account.followup.print.all:0 msgid "Select Partners to Remind" -msgstr "" +msgstr "Seleccionar empresas a recordar" #. module: account_followup #: constraint:account.move.line:0 diff --git a/addons/account_invoice_layout/i18n/hu.po b/addons/account_invoice_layout/i18n/hu.po index 3f38bd7b28f..a94ea6f48ff 100644 --- a/addons/account_invoice_layout/i18n/hu.po +++ b/addons/account_invoice_layout/i18n/hu.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-02-01 12:12+0000\n" +"PO-Revision-Date: 2011-02-10 13:27+0000\n" "Last-Translator: NOVOTRADE RENDSZERHÁZ \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: 2011-02-02 04:41+0000\n" +"X-Launchpad-Export-Date: 2011-02-11 04:59+0000\n" "X-Generator: Launchpad (build 12177)\n" #. module: account_invoice_layout @@ -25,7 +25,7 @@ msgstr "Részösszesen" #: report:account.invoice.layout:0 #: report:notify_account.invoice:0 msgid "Note:" -msgstr "Note:" +msgstr "Megjegyzés:" #. module: account_invoice_layout #: report:account.invoice.layout:0 @@ -160,7 +160,7 @@ msgstr "Megadja a számlasorok listázási sorrendjét." #: report:account.invoice.layout:0 #: report:notify_account.invoice:0 msgid "Price" -msgstr "Ár" +msgstr "Nettó érték" #. module: account_invoice_layout #: report:account.invoice.layout:0 @@ -247,7 +247,7 @@ msgstr "Számlák elrendezéssel" #: report:account.invoice.layout:0 #: report:notify_account.invoice:0 msgid "Description / Taxes" -msgstr "Megjegyzés / Adók" +msgstr "Termék/szolgáltatás megnevezése / Adók" #. module: account_invoice_layout #: report:account.invoice.layout:0 diff --git a/addons/analytic_user_function/i18n/gl.po b/addons/analytic_user_function/i18n/gl.po index 1fb2d018a89..6356e1f26a1 100644 --- a/addons/analytic_user_function/i18n/gl.po +++ b/addons/analytic_user_function/i18n/gl.po @@ -9,43 +9,43 @@ msgstr "" "Project-Id-Version: analytic-user-function-es\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-03 16:56+0000\n" -"PO-Revision-Date: 2009-08-17 08:29+0000\n" -"Last-Translator: Frco. Javier Rial \n" +"PO-Revision-Date: 2011-02-11 13:07+0000\n" +"Last-Translator: Alberto Luengo Cabanillas (Pexego) \n" "Language-Team: Galego \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-01-06 05:25+0000\n" -"X-Generator: Launchpad (build Unknown)\n" +"X-Launchpad-Export-Date: 2011-02-12 05:00+0000\n" +"X-Generator: Launchpad (build 12351)\n" #. module: analytic_user_function #: field:analytic_user_funct_grid,product_id:0 msgid "Product" -msgstr "Produto" +msgstr "Producto" #. module: analytic_user_function #: code:addons/analytic_user_function/analytic_user_function.py:96 #: code:addons/analytic_user_function/analytic_user_function.py:131 #, python-format msgid "Error !" -msgstr "" +msgstr "¡Erro!" #. module: analytic_user_function #: model:ir.model,name:analytic_user_function.model_hr_analytic_timesheet msgid "Timesheet Line" -msgstr "" +msgstr "Liña de parte de horas" #. module: analytic_user_function #: field:analytic_user_funct_grid,account_id:0 #: model:ir.model,name:analytic_user_function.model_account_analytic_account msgid "Analytic Account" -msgstr "" +msgstr "Conta analítica" #. module: analytic_user_function #: view:account.analytic.account:0 #: field:account.analytic.account,user_product_ids:0 msgid "Users/Products Rel." -msgstr "Rel. usuarios/produtos" +msgstr "Rel. Usuarios/Produtos" #. module: analytic_user_function #: field:analytic_user_funct_grid,user_id:0 @@ -57,19 +57,19 @@ msgstr "Usuario" msgid "" "Error! The currency has to be the same as the currency of the selected " "company" -msgstr "" +msgstr "¡Erro! A divisa ten que sela mesma ca da compañía seleccionada" #. module: analytic_user_function #: code:addons/analytic_user_function/analytic_user_function.py:97 #: code:addons/analytic_user_function/analytic_user_function.py:132 #, python-format msgid "There is no expense account define for this product: \"%s\" (id:%d)" -msgstr "" +msgstr "Non hai conta de gastos definida pra este produto: \"%s\" (id:%d)" #. module: analytic_user_function #: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid msgid "Relation table between users and products on a analytic account" -msgstr "Táboa de relación entre usuarios e produtos dunha conta analítica" +msgstr "Táboa de relación entre usuarios e produtos nunha conta analítica" #. module: analytic_user_function #: model:ir.module.module,description:analytic_user_function.module_meta_information @@ -87,21 +87,34 @@ msgid "" "\n" " " msgstr "" +"\n" +"\n" +" Este módulo permítelle definir cal é a función por defecto dun usuario " +"específico nunha conta dada. Isto é usado maiormente cando un usuario " +"codifica o seu parte de horas: os valores son recuperados e os campos son " +"auto-enchidos... pero a posibilidade para cambiar estes valores está ainda " +"dispoñible.\n" +"\n" +" Obviamente se ningún dato foi gardado para a conta actual, o valor por " +"defecto está dado como de costume polos datos do empregado así que este " +"módulo é perfectamente compatible con configuracións máis antigas.\n" +"\n" +" " #. module: analytic_user_function #: model:ir.module.module,shortdesc:analytic_user_function.module_meta_information msgid "Analytic User Function" -msgstr "" +msgstr "Función Analítica de Usuario" #. module: analytic_user_function #: constraint:account.analytic.account:0 msgid "Error! You can not create recursive analytic accounts." -msgstr "" +msgstr "¡Erro! Non pode crear contas analíticas recorrentes." #. module: analytic_user_function #: view:analytic_user_funct_grid:0 msgid "User's Product for this Analytic Account" -msgstr "Produto do usuario para esta conta analítica" +msgstr "Produto do usuario para esta Conta Analítica" #~ msgid "Invalid XML for View Architecture!" #~ msgstr "¡XML non válido para a definición da vista!" diff --git a/addons/analytic_user_function/i18n/hu.po b/addons/analytic_user_function/i18n/hu.po index 57ab040f206..35fd4d27d45 100644 --- a/addons/analytic_user_function/i18n/hu.po +++ b/addons/analytic_user_function/i18n/hu.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-03 16:56+0000\n" -"PO-Revision-Date: 2011-01-31 09:39+0000\n" +"PO-Revision-Date: 2011-02-09 13:28+0000\n" "Last-Translator: NOVOTRADE RENDSZERHÁZ \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: 2011-02-01 04:41+0000\n" +"X-Launchpad-Export-Date: 2011-02-10 04:35+0000\n" "X-Generator: Launchpad (build 12177)\n" #. module: analytic_user_function @@ -112,4 +112,4 @@ msgstr "Hiba! Nem hozhat létre rekurzív gyűjtőkódokat." #. module: analytic_user_function #: view:analytic_user_funct_grid:0 msgid "User's Product for this Analytic Account" -msgstr "" +msgstr "A gyűjtőkódhoz kapcsolódó felhasználó és termék" diff --git a/addons/auction/i18n/hu.po b/addons/auction/i18n/hu.po index 33b5924fb94..ef2256cb56e 100644 --- a/addons/auction/i18n/hu.po +++ b/addons/auction/i18n/hu.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-01-31 12:36+0000\n" +"PO-Revision-Date: 2011-02-10 13:02+0000\n" "Last-Translator: NOVOTRADE RENDSZERHÁZ \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: 2011-02-01 04:41+0000\n" +"X-Launchpad-Export-Date: 2011-02-11 04:59+0000\n" "X-Generator: Launchpad (build 12177)\n" #. module: auction @@ -413,12 +413,12 @@ msgstr "Tétel leírása" #. module: auction #: field:auction.lots,artist2_id:0 msgid "Artist/Author2" -msgstr "" +msgstr "Művész/Szerző2" #. module: auction #: view:auction.pay.buy:0 msgid "Line1" -msgstr "" +msgstr "1. vonal" #. module: auction #: model:ir.model,name:auction.model_auction_lots_make_invoice_buyer @@ -470,7 +470,7 @@ msgstr "Vásárlói számlák" #. module: auction #: model:ir.actions.report.xml,name:auction.res_w_buyer msgid "Results with buyer" -msgstr "" +msgstr "Eredmények vevőkkel" #. module: auction #: field:auction.bid_line,price:0 @@ -522,7 +522,7 @@ msgstr "" #. module: auction #: view:auction.dates:0 msgid "Last Auction Date" -msgstr "" +msgstr "Utolsó árverési dátum" #. module: auction #: model:account.tax,name:auction.tax_seller @@ -961,7 +961,7 @@ msgstr "Szám" #. module: auction #: view:auction.catalog.flagey:0 msgid "Cancel" -msgstr "" +msgstr "Mégse" #. module: auction #: view:auction.lots:0 @@ -972,12 +972,12 @@ msgstr "" #: view:auction.artists:0 #: field:auction.artists,biography:0 msgid "Biography" -msgstr "" +msgstr "Életrajz" #. module: auction #: view:auction.lots:0 msgid "Inventory" -msgstr "" +msgstr "Készlet" #. module: auction #: view:auction.pay.buy:0 @@ -1270,7 +1270,7 @@ msgstr "" #. module: auction #: view:auction.artists:0 msgid "Author/Artist" -msgstr "" +msgstr "Szerző/Művész" #. module: auction #: field:auction.lots,ach_login:0 @@ -1286,7 +1286,7 @@ msgstr "Prioritás" #. module: auction #: view:board.board:0 msgid "Latest objects" -msgstr "" +msgstr "Legutolsó tételek" #. module: auction #: field:auction.lots,lot_local:0 @@ -2292,4 +2292,4 @@ msgstr "Év" #. module: auction #: field:auction.lots,history_ids:0 msgid "Auction history" -msgstr "" +msgstr "Árverési előzmények" diff --git a/addons/base_calendar/i18n/es_EC.po b/addons/base_calendar/i18n/es_EC.po index 20408e85cbc..3b2d5ceedd1 100644 --- a/addons/base_calendar/i18n/es_EC.po +++ b/addons/base_calendar/i18n/es_EC.po @@ -8,14 +8,14 @@ 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-02-02 22:07+0000\n" +"PO-Revision-Date: 2011-02-11 23:49+0000\n" "Last-Translator: Mario Andrés Correa \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-02-03 04:45+0000\n" -"X-Generator: Launchpad (build 12177)\n" +"X-Launchpad-Export-Date: 2011-02-13 04:38+0000\n" +"X-Generator: Launchpad (build 12351)\n" #. module: base_calendar #: selection:calendar.alarm,trigger_related:0 @@ -135,7 +135,7 @@ msgstr "Público" #. module: base_calendar #: view:calendar.event:0 msgid " " -msgstr "" +msgstr " " #. module: base_calendar #: selection:base.calendar.set.exrule,month_list:0 @@ -181,22 +181,22 @@ msgstr "Libre" #. module: base_calendar #: help:calendar.attendee,rsvp:0 msgid "Indicats whether the favor of a reply is requested" -msgstr "" +msgstr "Indica si es requerida la confirmación de una respuesta." #. module: base_calendar #: model:ir.model,name:base_calendar.model_ir_attachment msgid "ir.attachment" -msgstr "" +msgstr "ir.adjunto" #. module: base_calendar #: help:calendar.attendee,delegated_to:0 msgid "The users that the original request was delegated to" -msgstr "" +msgstr "Los usuarios a los que les fue delegado la petición original" #. module: base_calendar #: field:calendar.attendee,ref:0 msgid "Event Ref" -msgstr "" +msgstr "Referencia de evento" #. module: base_calendar #: field:base.calendar.set.exrule,we:0 @@ -240,7 +240,7 @@ msgstr "Último" #. module: base_calendar #: help:calendar.attendee,state:0 msgid "Status of the attendee's participation" -msgstr "" +msgstr "Estado de la participación de los asistentes" #. module: base_calendar #: selection:calendar.attendee,cutype:0 @@ -274,62 +274,64 @@ msgstr "¡Error!" #. module: base_calendar #: selection:calendar.attendee,role:0 msgid "Chair Person" -msgstr "" +msgstr "Presidente" #. module: base_calendar #: selection:calendar.alarm,action:0 msgid "Procedure" -msgstr "" +msgstr "Procedimiento" #. module: base_calendar #: selection:calendar.event,state:0 #: selection:calendar.todo,state:0 msgid "Cancelled" -msgstr "" +msgstr "Cancelado" #. module: base_calendar #: selection:calendar.alarm,trigger_interval:0 #: selection:res.alarm,trigger_interval:0 msgid "Minutes" -msgstr "" +msgstr "Minutos" #. module: base_calendar #: selection:calendar.alarm,action:0 msgid "Display" -msgstr "" +msgstr "Mostrar" #. module: base_calendar #: view:calendar.event.edit.all:0 msgid "Edit all Occurrences" -msgstr "" +msgstr "Editar todos los eventos" #. module: base_calendar #: view:calendar.attendee:0 msgid "Invitation type" -msgstr "" +msgstr "Tipo de invitación" #. module: base_calendar #: selection:base.calendar.set.exrule,freq:0 msgid "Secondly" -msgstr "" +msgstr "En segundo lugar" #. module: base_calendar #: field:calendar.alarm,event_date:0 #: field:calendar.attendee,event_date:0 #: view:calendar.event:0 msgid "Event Date" -msgstr "" +msgstr "Fecha evento" #. module: base_calendar #: view:calendar.attendee:0 #: view:calendar.event:0 msgid "Group By..." -msgstr "" +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 recibirán esta " +"invitacion." #. module: base_calendar #: model:ir.module.module,description:base_calendar.module_meta_information @@ -340,34 +342,39 @@ msgid "" " - Recurring events\n" " - Invitations to people" 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 "" +msgstr "Especifique el tipo de invitación" #. module: base_calendar #: selection:calendar.event,freq:0 #: selection:calendar.todo,freq:0 msgid "Years" -msgstr "" +msgstr "Años" #. module: base_calendar #: field:calendar.alarm,event_end_date:0 #: field:calendar.attendee,event_end_date:0 msgid "Event End Date" -msgstr "" +msgstr "Fecha del final del evento" #. module: base_calendar #: selection:calendar.attendee,role:0 msgid "Optional Participation" -msgstr "" +msgstr "Participación opcional" #. module: base_calendar #: field:calendar.event,date_deadline:0 #: field:calendar.todo,date_deadline:0 msgid "Deadline" -msgstr "" +msgstr "Fecha límite" #. module: base_calendar #: code:addons/base_calendar/base_calendar.py:385 @@ -375,7 +382,7 @@ msgstr "" #: code:addons/base_calendar/base_calendar.py:1092 #, python-format msgid "Warning!" -msgstr "" +msgstr "¡Advertencia!" #. module: base_calendar #: help:calendar.event,active:0 @@ -388,7 +395,7 @@ msgstr "" #. module: base_calendar #: model:ir.module.module,shortdesc:base_calendar.module_meta_information msgid "Basic Calendar Functionality" -msgstr "" +msgstr "Funcionalidad básica del calendario" #. module: base_calendar #: field:calendar.event,organizer:0 @@ -396,7 +403,7 @@ msgstr "" #: field:calendar.todo,organizer:0 #: field:calendar.todo,organizer_id:0 msgid "Organizer" -msgstr "" +msgstr "Organizador" #. module: base_calendar #: view:calendar.attendee:0 @@ -404,13 +411,13 @@ msgstr "" #: field:calendar.event,user_id:0 #: field:calendar.todo,user_id:0 msgid "Responsible" -msgstr "" +msgstr "Responsable" #. module: base_calendar #: view:calendar.event:0 #: model:res.request.link,name:base_calendar.request_link_meeting msgid "Event" -msgstr "" +msgstr "Evento" #. module: base_calendar #: help:calendar.event,edit_all:0 @@ -422,58 +429,58 @@ msgstr "" #: selection:calendar.alarm,trigger_occurs:0 #: selection:res.alarm,trigger_occurs:0 msgid "Before" -msgstr "" +msgstr "Antes de" #. module: base_calendar #: view:calendar.event:0 #: selection:calendar.event,state:0 #: selection:calendar.todo,state:0 msgid "Confirmed" -msgstr "" +msgstr "Confirmado" #. module: base_calendar #: model:ir.actions.act_window,name:base_calendar.action_calendar_event_edit_all msgid "Edit all events" -msgstr "" +msgstr "Editar todos los eventos" #. module: base_calendar #: field:calendar.alarm,attendee_ids:0 #: field:calendar.event,attendee_ids:0 #: field:calendar.todo,attendee_ids:0 msgid "Attendees" -msgstr "" +msgstr "Participantes" #. module: base_calendar #: view:calendar.event:0 msgid "Confirm" -msgstr "" +msgstr "Confirmar" #. module: base_calendar #: model:ir.model,name:base_calendar.model_calendar_todo msgid "Calendar Task" -msgstr "" +msgstr "Calendario de tareas" #. module: base_calendar #: field:base.calendar.set.exrule,su:0 #: field:calendar.event,su:0 #: field:calendar.todo,su:0 msgid "Sun" -msgstr "" +msgstr "Dom" #. module: base_calendar #: field:calendar.attendee,cutype:0 msgid "Invite Type" -msgstr "" +msgstr "Tipo de invitación" #. module: base_calendar #: help:calendar.attendee,partner_id:0 msgid "Partner related to contact" -msgstr "" +msgstr "Partner relacionado con el contacto" #. module: base_calendar #: view:res.alarm:0 msgid "Reminder details" -msgstr "" +msgstr "Detalles del recordatorio" #. module: base_calendar #: field:calendar.attendee,parent_ids:0 diff --git a/addons/base_report_creator/i18n/es_EC.po b/addons/base_report_creator/i18n/es_EC.po new file mode 100644 index 00000000000..5c2816bf792 --- /dev/null +++ b/addons/base_report_creator/i18n/es_EC.po @@ -0,0 +1,520 @@ +# Spanish (Ecuador) translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +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-02-12 00:54+0000\n" +"Last-Translator: Felipe Mena \n" +"Language-Team: Spanish (Ecuador) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-02-13 04:38+0000\n" +"X-Generator: Launchpad (build 12351)\n" + +#. module: base_report_creator +#: help:base_report_creator.report.filter,expression:0 +msgid "" +"Provide an expression for the field based on which you want to filter the " +"records.\n" +" e.g. res_partner.id=3" +msgstr "" +"Introduzca una expresión para el campo basada en como desea filtrar los " +"registros.\n" +" Por ejemplo res_partner.id=3" + +#. module: base_report_creator +#: model:ir.model,name:base_report_creator.model_report_menu_create +msgid "Menu Create" +msgstr "Menú Crear" + +#. module: base_report_creator +#: field:base_report_creator.report,view_graph_type:0 +msgid "Graph Type" +msgstr "Tipo de gráfico" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "Used View" +msgstr "" + +#. module: base_report_creator +#: wizard_view:base_report_creator.report_filter.fields,set_value_select_field:0 +msgid "Filter Values" +msgstr "Valores de filtro" + +#. module: base_report_creator +#: field:base_report_creator.report.fields,graph_mode:0 +msgid "Graph Mode" +msgstr "Modo gráfico" + +#. module: base_report_creator +#: code:addons/base_report_creator/base_report_creator.py:320 +#, python-format +msgid "" +"These is/are model(s) (%s) in selection which is/are not related to any " +"other model" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "Legend" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "Graph View" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report.filter,expression:0 +msgid "Value" +msgstr "" + +#. module: base_report_creator +#: model:ir.actions.wizard,name:base_report_creator.wizard_set_filter_fields +msgid "Set Filter Fields" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,calendar_mode:0 +msgid "Ending Date" +msgstr "" + +#. module: base_report_creator +#: model:ir.model,name:base_report_creator.model_base_report_creator_report_filter +msgid "Report Filters" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +#: field:base_report_creator.report,sql_query:0 +msgid "SQL Query" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +#: view:report.menu.create:0 +msgid "Create Menu" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,group_method:0 +msgid "Minimum" +msgstr "" + +#. module: base_report_creator +#: wizard_field:base_report_creator.report_filter.fields,set_value_select_field,operator:0 +msgid "Operator" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.filter,condition:0 +#: selection:base_report_creator.report_filter.fields,set_value_select_field,condition:0 +msgid "OR" +msgstr "" + +#. module: base_report_creator +#: model:ir.actions.act_window,name:base_report_creator.base_report_creator_action +msgid "Custom Reports" +msgstr "" + +#. module: base_report_creator +#: code:addons/base_report_creator/base_report_creator.py:320 +#, python-format +msgid "No Related Models!!" +msgstr "" + +#. module: base_report_creator +#: view:report.menu.create:0 +msgid "Menu Information" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,group_method:0 +msgid "Sum" +msgstr "" + +#. module: base_report_creator +#: constraint:base_report_creator.report:0 +msgid "You must have to give calendar view's color,start date and delay." +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report,model_ids:0 +msgid "Reported Objects" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "Field List" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report,type:0 +msgid "Report Type" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "Add filter" +msgstr "" + +#. module: base_report_creator +#: model:ir.actions.act_window,name:base_report_creator.action_report_menu_create +msgid "Create Menu for Report" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report,view_type1:0 +#: selection:base_report_creator.report,view_type2:0 +#: selection:base_report_creator.report,view_type3:0 +msgid "Form" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report,view_type2:0 +#: selection:base_report_creator.report,view_type3:0 +#: selection:base_report_creator.report.fields,calendar_mode:0 +#: selection:base_report_creator.report.fields,graph_mode:0 +msgid "/" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +#: field:base_report_creator.report.fields,report_id:0 +#: field:base_report_creator.report.filter,report_id:0 +#: model:ir.model,name:base_report_creator.model_base_report_creator_report +msgid "Report" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,calendar_mode:0 +msgid "Starting Date" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "Filters on Fields" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report,group_ids:0 +msgid "Authorized Groups" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report,view_type1:0 +#: selection:base_report_creator.report,view_type2:0 +#: selection:base_report_creator.report,view_type3:0 +msgid "Tree" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report,view_graph_orientation:0 +msgid "Graph Orientation" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "Authorized Groups (empty for all)" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "Security" +msgstr "" + +#. module: base_report_creator +#: field:report.menu.create,menu_name:0 +msgid "Menu Name" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.filter,condition:0 +#: selection:base_report_creator.report_filter.fields,set_value_select_field,condition:0 +msgid "AND" +msgstr "" + +#. module: base_report_creator +#: constraint:base_report_creator.report:0 +msgid "You can not display field which are not stored in Database." +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report.fields,calendar_mode:0 +msgid "Calendar Mode" +msgstr "" + +#. module: base_report_creator +#: model:ir.model,name:base_report_creator.model_base_report_creator_report_fields +msgid "Display Fields" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,graph_mode:0 +msgid "Y Axis" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report,view_type1:0 +#: selection:base_report_creator.report,view_type2:0 +#: selection:base_report_creator.report,view_type3:0 +msgid "Calendar" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report,view_type1:0 +#: selection:base_report_creator.report,view_type2:0 +#: selection:base_report_creator.report,view_type3:0 +msgid "Graph" +msgstr "" + +#. module: base_report_creator +#: wizard_field:base_report_creator.report_filter.fields,set_value_select_field,field_id:0 +msgid "Field Name" +msgstr "" + +#. module: base_report_creator +#: wizard_view:base_report_creator.report_filter.fields,set_value_select_field:0 +msgid "Set Filter Values" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report,view_graph_orientation:0 +msgid "Vertical" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report,type:0 +msgid "Rows And Columns Report" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "General Configuration" +msgstr "" + +#. module: base_report_creator +#: help:base_report_creator.report.fields,sequence:0 +msgid "Gives the sequence order when displaying a list of fields." +msgstr "" + +#. module: base_report_creator +#: wizard_view:base_report_creator.report_filter.fields,init:0 +msgid "Select Field to filter" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report,active:0 +msgid "Active" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report,view_graph_orientation:0 +msgid "Horizontal" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report.fields,group_method:0 +msgid "Grouping Method" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report.filter,condition:0 +#: wizard_field:base_report_creator.report_filter.fields,set_value_select_field,condition:0 +msgid "Condition" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,group_method:0 +msgid "Count" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,graph_mode:0 +msgid "X Axis" +msgstr "" + +#. module: base_report_creator +#: field:report.menu.create,menu_parent_id:0 +msgid "Parent Menu" +msgstr "" + +#. module: base_report_creator +#: wizard_button:base_report_creator.report_filter.fields,set_value_select_field,set_value:0 +msgid "Confirm Filter" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report.filter,name:0 +msgid "Filter Name" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "Open Report" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,group_method:0 +msgid "Grouped" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +#: model:ir.module.module,shortdesc:base_report_creator.module_meta_information +msgid "Report Creator" +msgstr "" + +#. module: base_report_creator +#: wizard_button:base_report_creator.report_filter.fields,init,end:0 +#: wizard_button:base_report_creator.report_filter.fields,set_value_select_field,end:0 +#: view:report.menu.create:0 +msgid "Cancel" +msgstr "" + +#. module: base_report_creator +#: constraint:base_report_creator.report:0 +msgid "You can apply aggregate function to the non calculated field." +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report,menu_id:0 +msgid "Menu" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report,view_type1:0 +msgid "First View" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,calendar_mode:0 +msgid "Delay" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report.fields,field_id:0 +msgid "Field" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,calendar_mode:0 +msgid "Unique Colors" +msgstr "" + +#. module: base_report_creator +#: help:base_report_creator.report,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the report " +"without removing it." +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report,view_graph_type:0 +msgid "Pie Chart" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report,view_type3:0 +msgid "Third View" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,calendar_mode:0 +msgid "End Date" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report,name:0 +msgid "Report Name" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "Fields" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,group_method:0 +msgid "Average" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "Use %(uid)s to filter by the connected user" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report.fields,group_method:0 +msgid "Maximum" +msgstr "" + +#. module: base_report_creator +#: wizard_button:base_report_creator.report_filter.fields,init,set_value_select_field:0 +msgid "Continue" +msgstr "" + +#. module: base_report_creator +#: wizard_field:base_report_creator.report_filter.fields,set_value_select_field,value:0 +msgid "Values" +msgstr "" + +#. module: base_report_creator +#: selection:base_report_creator.report,view_graph_type:0 +msgid "Bar Chart" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report,view_type2:0 +msgid "Second View" +msgstr "" + +#. module: base_report_creator +#: view:report.menu.create:0 +msgid "Create Menu For This Report" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +msgid "View parameters" +msgstr "" + +#. module: base_report_creator +#: field:base_report_creator.report.fields,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: base_report_creator +#: wizard_field:base_report_creator.report_filter.fields,init,field_id:0 +msgid "Filter Field" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +#: field:base_report_creator.report,field_ids:0 +msgid "Fields to Display" +msgstr "" + +#. module: base_report_creator +#: view:base_report_creator.report:0 +#: field:base_report_creator.report,filter_ids:0 +msgid "Filters" +msgstr "" + +#. module: base_report_creator +#: model:ir.module.module,description:base_report_creator.module_meta_information +msgid "" +"This module allows you to create any statistic\n" +"report on several objects. It's a SQL query builder and browser\n" +"for and users.\n" +"\n" +"After installing the module, it adds a menu to define custom report in\n" +"the \"Dashboard\" menu.\n" +msgstr "" diff --git a/addons/base_synchro/i18n/tr.po b/addons/base_synchro/i18n/tr.po new file mode 100644 index 00000000000..583871daf84 --- /dev/null +++ b/addons/base_synchro/i18n/tr.po @@ -0,0 +1,289 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +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-02-09 22:26+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-02-10 04:36+0000\n" +"X-Generator: Launchpad (build 12177)\n" + +#. module: base_synchro +#: model:ir.actions.act_window,name:base_synchro.action_view_base_synchro +msgid "Base Synchronization" +msgstr "Temel Eşleştirme" + +#. module: base_synchro +#: field:base.synchro.server,server_db:0 +msgid "Server Database" +msgstr "Sunucu Veritabanı" + +#. module: base_synchro +#: view:base.synchro.server:0 +#: model:ir.model,name:base_synchro.model_base_synchro_server +msgid "Synchronized server" +msgstr "Eşleştirme Sunucusu" + +#. module: base_synchro +#: field:base.synchro.obj.avoid,name:0 +msgid "Field Name" +msgstr "Alan Adı" + +#. module: base_synchro +#: field:base.synchro.obj,synchronize_date:0 +msgid "Latest Synchronization" +msgstr "Son Eşleştirme" + +#. module: base_synchro +#: field:base.synchro,user_id:0 +msgid "Send Result To" +msgstr "Sonuçları gönder" + +#. module: base_synchro +#: model:ir.model,name:base_synchro.model_base_synchro_obj_avoid +msgid "Fields to not synchronize" +msgstr "Senkronize edilmeyecek alanlar" + +#. module: base_synchro +#: view:base.synchro:0 +msgid "_Close" +msgstr "_Kapat" + +#. module: base_synchro +#: view:base.synchro:0 +msgid "Transfer Data To Server" +msgstr "Veriyi sunucuya transfer et" + +#. module: base_synchro +#: model:ir.model,name:base_synchro.model_base_synchro_obj +msgid "Register Class" +msgstr "Sınıfı Kaydet" + +#. module: base_synchro +#: view:base.synchro.obj:0 +#: model:ir.actions.act_window,name:base_synchro.action_transfer_tree +#: model:ir.ui.menu,name:base_synchro.transfer_menu_id +msgid "Synchronized objects" +msgstr "Eşleştirilmiş Nesneler" + +#. module: base_synchro +#: field:base.synchro.server,obj_ids:0 +msgid "Models" +msgstr "Modeller" + +#. module: base_synchro +#: field:base.synchro.obj.avoid,obj_id:0 +#: view:base.synchro.obj.line:0 +#: field:base.synchro.obj.line,obj_id:0 +msgid "Object" +msgstr "Nesne" + +#. module: base_synchro +#: field:base.synchro.server,login:0 +msgid "User Name" +msgstr "Kullanıcı Adı" + +#. module: base_synchro +#: view:base.synchro.obj:0 +#: view:base.synchro.obj.line:0 +msgid "Group By" +msgstr "Grupla" + +#. module: base_synchro +#: selection:base.synchro.obj,action:0 +msgid "Upload" +msgstr "Yükle" + +#. module: base_synchro +#: view:base.synchro.obj:0 +msgid "Latest synchronization" +msgstr "Son eşleştirme" + +#. module: base_synchro +#: model:ir.module.module,description:base_synchro.module_meta_information +msgid "Synchronization with all objects." +msgstr "bütün nesnelerle eşleştirme" + +#. module: base_synchro +#: view:base.synchro.obj.line:0 +#: field:base.synchro.obj.line,name:0 +msgid "Date" +msgstr "Tarih" + +#. module: base_synchro +#: field:base.synchro.server,password:0 +msgid "Password" +msgstr "Şifre" + +#. module: base_synchro +#: field:base.synchro.obj,avoid_ids:0 +msgid "Fields Not Sync." +msgstr "Alanlar eşleşmemiş" + +#. module: base_synchro +#: selection:base.synchro.obj,action:0 +msgid "Both" +msgstr "Her ikisi" + +#. module: base_synchro +#: field:base.synchro.obj,name:0 +msgid "Name" +msgstr "Ad" + +#. module: base_synchro +#: view:base.synchro.obj:0 +msgid "Fields" +msgstr "Alanlar" + +#. module: base_synchro +#: view:base.synchro.obj.line:0 +msgid "Transfered Ids Details" +msgstr "Taşınan IDlerin detayları" + +#. module: base_synchro +#: field:base.synchro.obj,action:0 +msgid "Synchronisation direction" +msgstr "Eşleştirme yönü" + +#. module: base_synchro +#: field:base.synchro.obj,server_id:0 +msgid "Server" +msgstr "Sunucu" + +#. module: base_synchro +#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_obj_line_tree +#: model:ir.model,name:base_synchro.model_base_synchro_obj_line +#: model:ir.ui.menu,name:base_synchro.menu_action_base_synchro_obj_line_tree +msgid "Synchronized instances" +msgstr "Eşleştirilen haller" + +#. module: base_synchro +#: field:base.synchro.obj,active:0 +msgid "Active" +msgstr "Aktif" + +#. module: base_synchro +#: view:base.synchro.obj:0 +#: field:base.synchro.obj,model_id:0 +msgid "Object to synchronize" +msgstr "Eşleştirilecek Nesne" + +#. module: base_synchro +#: model:ir.module.module,shortdesc:base_synchro.module_meta_information +msgid "Base Synchro" +msgstr "Temel Eşleme" + +#. module: base_synchro +#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_server_tree +#: model:ir.ui.menu,name:base_synchro.synchro_server_tree_menu_id +msgid "Servers to be synchronized" +msgstr "Eşleştirilecek Sunucular" + +#. module: base_synchro +#: view:base.synchro.obj:0 +msgid "Transfer Details" +msgstr "Aktarım Ayrıntıları" + +#. module: base_synchro +#: field:base.synchro.obj.line,remote_id:0 +msgid "Remote Id" +msgstr "Uzak ID" + +#. module: base_synchro +#: field:base.synchro.obj,line_id:0 +msgid "Ids Affected" +msgstr "Etkilenen IDler" + +#. module: base_synchro +#: model:ir.ui.menu,name:base_synchro.next_id_63 +msgid "History" +msgstr "Geçmiş" + +#. module: base_synchro +#: model:ir.ui.menu,name:base_synchro.next_id_62 +#: model:ir.ui.menu,name:base_synchro.synch_config +msgid "Synchronization" +msgstr "Eşleştirme" + +#. module: base_synchro +#: field:base.synchro.obj,domain:0 +msgid "Domain" +msgstr "Alan" + +#. module: base_synchro +#: view:base.synchro:0 +msgid "_Synchronize" +msgstr "_Eşleme" + +#. module: base_synchro +#: view:base.synchro:0 +msgid "OK" +msgstr "Tamam" + +#. module: base_synchro +#: field:base.synchro.server,name:0 +msgid "Server name" +msgstr "Sunucu adı" + +#. module: base_synchro +#: field:base.synchro.obj,sequence:0 +msgid "Sequence" +msgstr "Sıra No" + +#. module: base_synchro +#: view:base.synchro:0 +msgid "" +"The synchronisation has been started.You will receive a request when it's " +"done." +msgstr "Eşleştirme başladı. Tamamlandığında bir istek alacaksınız." + +#. module: base_synchro +#: field:base.synchro.server,server_port:0 +msgid "Server Port" +msgstr "Sunucu Portu" + +#. module: base_synchro +#: model:ir.ui.menu,name:base_synchro.menu_action_view_base_synchro +msgid "Synchronize objects" +msgstr "Eşleştirilen Nesneler" + +#. module: base_synchro +#: view:base.synchro:0 +msgid "Synchronization Complited!" +msgstr "Eşleştirme Tamamlandı!" + +#. module: base_synchro +#: model:ir.model,name:base_synchro.model_base_synchro +msgid "base.synchro" +msgstr "base.synchro" + +#. module: base_synchro +#: field:base.synchro.obj.line,local_id:0 +msgid "Local Id" +msgstr "Yerel ID" + +#. module: base_synchro +#: model:ir.actions.act_window,name:base_synchro.actions_regclass_tree +#: model:ir.actions.act_window,name:base_synchro.actions_transfer_line_form +msgid "Filters" +msgstr "Filtreler" + +#. module: base_synchro +#: selection:base.synchro.obj,action:0 +msgid "Download" +msgstr "İndir" + +#. module: base_synchro +#: field:base.synchro,server_url:0 +#: field:base.synchro.server,server_url:0 +msgid "Server URL" +msgstr "Sunucu Adresi" diff --git a/addons/email_gateway/email_gateway.py b/addons/email_gateway/email_gateway.py index 14c31c086e2..d6dc5d494ef 100644 --- a/addons/email_gateway/email_gateway.py +++ b/addons/email_gateway/email_gateway.py @@ -98,7 +98,7 @@ class mailgate_thread(osv.osv): @param uid: the current user’s ID for security checks, @param cases: a browse record list @param keyword: Case action keyword e.g.: If case is closed "Close" keyword is used - @param history: Value True/False, If True it makes entry in case History otherwise in Case Log + @param history: Value True/False, If True it makes entry as a Emails Messages otherwise Log Messages @param email: Email-To / Recipient address @param email_from: Email From / Sender address if any @param email_cc: Comma-Separated list of Carbon Copy Emails To addresse if any @@ -167,6 +167,7 @@ class mailgate_thread(osv.osv): 'partner_id': partner_id, 'references': references, 'message_id': message_id, + 'folder': 'inbox', 'attachment_ids': [(6, 0, attachments)] } obj.create(cr, uid, data, context=context) @@ -226,6 +227,7 @@ class mailgate_tool(osv.osv_memory): 'references': msg.get('references') or msg.get('in-reply-to'), 'res_id': res_id, 'user_id': uid, + 'folder': 'inbox', 'attachment_ids': [(6, 0, attach)] } msg_pool.create(cr, uid, msg_data, context=context) diff --git a/addons/email_template/__init__.py b/addons/email_template/__init__.py index 15a99722203..51cec6064b8 100644 --- a/addons/email_template/__init__.py +++ b/addons/email_template/__init__.py @@ -3,7 +3,7 @@ # # OpenERP, Open Source Management Solution # Copyright (C) 2009 Sharoon Thomas -# Copyright (C) 2010-2010 OpenERP SA () +# Copyright (C) 2010-Today OpenERP SA () # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -19,9 +19,8 @@ # along with this program. If not, see # ############################################################################## - +import mako_template import email_template import wizard # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index cad467a37f9..bde1aa01890 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -3,7 +3,7 @@ # # OpenERP, Open Source Management Solution # Copyright (C) 2009 Sharoon Thomas -# Copyright (C) 2010-2010 OpenERP SA () +# Copyright (C) 2010-Today OpenERP SA () # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -31,90 +31,44 @@ from tools.translate import _ import tools import pooler -try: - from mako.template import Template as MakoTemplate -except ImportError: - logging.getLogger('init').warning("module email_template: Mako templates not installed") - -def get_value(cursor, user, recid, message=None, template=None, context=None): - """ - Evaluates an expression and returns its value - @param cursor: Database Cursor - @param user: ID of current user - @param recid: ID of the target record under evaluation - @param message: The expression to be evaluated - @param template: BrowseRecord object of the current template - @param context: OpenERP Context - @return: Computed message (unicode) or u"" - """ - pool = pooler.get_pool(cursor.dbname) - if message is None: - message = {} - #Returns the computed expression - if message: - try: - message = tools.ustr(message) - object = pool.get(template.model_int_name).browse(cursor, user, recid, context=context) - env = { - 'user':pool.get('res.users').browse(cursor, user, user, context=context), - 'db':cursor.dbname - } - templ = MakoTemplate(message, input_encoding='utf-8') - reply = MakoTemplate(message).render_unicode(object=object, peobject=object, env=env, format_exceptions=True) - return reply or False - except Exception: - logging.exception("can't render %r", message) - return u"" - else: - return message - class email_template(osv.osv): "Templates for sending Email" - + _inherit = 'email.message.template' _name = "email.template" _description = 'Email Templates for Models' - def change_model(self, cursor, user, ids, object_name, context=None): + def get_template_value(self, cr, uid, message=None, model=None, record_id=None, context=None): + import mako_template + return mako_template.get_value(cr, uid, message=message, model=model, record_id=record_id, context=context) + + def get_email_template(self, cr, uid, template_id=False, record_id=None, context=None): + "Return Template Object" + if context is None: + context = {} + if not template_id: + template_id = context.get('template_id', False) + if not template_id: + return False + + template = self.browse(cr, uid, int(template_id), context) + lang = self.get_template_value(cr, uid, template.lang, template.model, record_id, context) + if lang: + # Use translated template if necessary + ctx = context.copy() + ctx['lang'] = lang + template = self.browse(cr, uid, template.id, ctx) + return template + + def onchange_model_id(self, cr, uid, ids, model_id, context=None): mod_name = False - if object_name: - mod_name = self.pool.get('ir.model').browse(cursor, user, object_name, context).model - return {'value':{'model_int_name':mod_name}} + if model_id: + mod_name = self.pool.get('ir.model').browse(cr, uid, model_id, context).model + return {'value':{'model':mod_name}} _columns = { - 'name' : fields.char('Name', size=100, required=True), - 'object_name':fields.many2one('ir.model', 'Resource'), - 'model_int_name':fields.char('Model Internal Name', size=200,), - 'from_account':fields.many2one( - 'email.smtp_server', - string="Email Account", - help="Emails will be sent from this approved account."), - 'def_to':fields.char( - 'Recipient (To)', - size=250, - help="The Recipient of email. " - "Placeholders can be used here. " - "e.g. ${object.email_to}"), - 'def_cc':fields.char( - 'CC', - size=250, - help="Carbon Copy address(es), comma-separated." - " Placeholders can be used here. " - "e.g. ${object.email_cc}"), - 'def_bcc':fields.char( - 'BCC', - size=250, - help="Blind Carbon Copy address(es), comma-separated." - " Placeholders can be used here. " - "e.g. ${object.email_bcc}"), - 'reply_to':fields.char('Reply-To', - size=250, - help="The address recipients should reply to," - " if different from the From address." - " Placeholders can be used here. " - "e.g. ${object.email_reply_to}"), - 'message_id':fields.char('Message-ID', - size=250, - help="Specify the Message-ID SMTP header to use in outgoing emails. Please note that this overrides the Resource tracking option! Placeholders can be used here."), + 'name': fields.char('Name', size=250, required=True), + 'model_id':fields.many2one('ir.model', 'Resource'), + 'model': fields.related('model_id', 'model', string='Model', type="char", size=128, store=True, readonly=True), 'track_campaign_item':fields.boolean('Resource Tracking', help="Enable this is you wish to include a special \ tracking marker in outgoing emails so you can identify replies and link \ @@ -126,25 +80,25 @@ This is useful for CRM leads for example"), help="The default language for the email." " Placeholders can be used here. " "eg. ${object.partner_id.lang}"), - 'def_subject':fields.char( + 'subject':fields.char( 'Subject', size=200, help="The subject of email." " Placeholders can be used here.", translate=True), - 'def_body_text':fields.text( + 'description':fields.text( 'Standard Body (Text)', help="The text version of the mail", translate=True), - 'def_body_html':fields.text( + 'body_html':fields.text( 'Body (Text-Web Client Only)', help="The text version of the mail", translate=True), - 'use_sign':fields.boolean( + 'user_signature':fields.boolean( 'Signature', help="the signature from the User details" " will be appended to the mail"), - 'file_name':fields.char( + 'report_name':fields.char( 'Report Filename', size=200, help="Name of the generated report file. Placeholders can be used in the filename. eg: 2009_SO003.pdf", @@ -226,7 +180,7 @@ This is useful for CRM leads for example"), context = {} action_obj = self.pool.get('ir.actions.act_window') for template in self.browse(cr, uid, ids, context=context): - src_obj = template.object_name.model + src_obj = template.model_id.model vals['ref_ir_act_window'] = action_obj.create(cr, uid, { 'name': template.name, 'type': 'ir.actions.act_window', @@ -401,197 +355,106 @@ This is useful for CRM leads for example"), }) return {'value':result} - def _add_attachment(self, cursor, user, mailbox_id, name, data, filename, context=None): - """ - Add an attachment to a given mailbox entry. - :param data: base64 encoded attachment data to store - """ - attachment_obj = self.pool.get('ir.attachment') - attachment_data = { - 'name': (name or '') + _(' (Email Attachment)'), - 'datas': data, - 'datas_fname': filename, - 'description': name or _('No Description'), - 'res_model':'email.message', - 'res_id': mailbox_id, - } - attachment_id = attachment_obj.create(cursor, user, attachment_data, context) - if attachment_id: - self.pool.get('email.message').write(cursor, user, mailbox_id, - { - 'attachments_ids':[(4, attachment_id)], - 'mail_type':'multipart/mixed' - }, - context) - - def generate_attach_reports(self, cursor, user, template, record_id, mail, context=None): - """ - Generate report to be attached and attach it - to the email, and add any directly attached files as well. - - @param cursor: Database Cursor - @param user: ID of User - @param template: Browse record of - template - @param record_id: ID of the target model - for which this mail has - to be generated - @param mail: Browse record of email object - @return: True - """ - if template.report_template: - reportname = 'report.' + self.pool.get('ir.actions.report.xml').browse(cursor, - user, template.report_template.id, context).report_name - service = netsvc.LocalService(reportname) - data = {} - data['model'] = template.model_int_name - (result, format) = service.create(cursor, user, [record_id], data, context) - fname = tools.ustr(get_value(cursor, user, record_id, - template.file_name, template, context) - or 'Report') - ext = '.' + format - if not fname.endswith(ext): - fname += ext - self._add_attachment(cursor, user, mail.id, mail.subject, base64.b64encode(result), fname, context) - - if template.attachment_ids: - for attachment in template.attachment_ids: - self._add_attachment(cursor, user, mail.id, attachment.name, attachment.datas, attachment.datas_fname, context) - - return True - - def _generate_mailbox_item_from_template(self, cursor, user, template, record_id, context=None): + + def _generate_email(self, cr, uid, template_id, record_id, context=None): """ Generates an email from the template for record record_id of target object - - @param cursor: Database Cursor - @param user: ID of User - @param template: Browse record of - template - @param record_id: ID of the target model - for which this mail has - to be generated - @return: ID of created object """ if context is None: context = {} - #If account to send from is in context select it, else use enforced account - if 'account_id' in context.keys(): - from_account = self.pool.get('email.smtp_server').read(cursor, user, context.get('account_id'), ['name', 'email_id'], context) - else: - from_account = { - 'id':template.from_account.id, - 'name':template.from_account.name, - 'email_id':template.from_account.email_id - } - lang = get_value(cursor, user, record_id, template.lang, template, context) - if lang: - ctx = context.copy() - ctx.update({'lang':lang}) - template = self.browse(cursor, user, template.id, context=ctx) - - # determine name of sender, either it is specified in email_id or we - # use the account name - email_id = from_account['email_id'].strip() + smtp_pool = self.pool.get('email.smtp_server') + email_message_pool = self.pool.get('email.message') + report_xml_pool = self.pool.get('ir.actions.report.xml') + template = self.get_email_template(cr, uid, template_id, record_id, context) + smtp_server_id = context.get('smtp_server_id', False) + if not smtp_server_id: + smtp_server_id = template.smtp_server_id.id + smtp_server = smtp_pool.browse(cr, uid, smtp_server_id, context=context) + # determine name of sender, either it is specified in email_id + + email_id = smtp_server.email_id.strip() email_from = re.findall(r'([^ ,<@]+@[^> ,]+)', email_id)[0] if email_from != email_id: - # we should keep it all, name is probably specified in the address - email_from = from_account['email_id'] + email_from = smtp_server.email_id else: - email_from = tools.ustr(from_account['name']) + "<" + tools.ustr(email_id) + ">" + email_from = tools.ustr(smtp_server.name) + "<" + tools.ustr(email_id) + ">" - # FIXME: should do this in a loop and rename template fields to the corresponding - # mailbox fields. (makes no sense to have different names I think. - mailbox_values = { + model = template.model_id.model + values = { 'email_from': email_from, - 'email_to':get_value(cursor, - user, - record_id, - template.def_to, - template, - context), - 'email_cc':get_value(cursor, - user, - record_id, - template.def_cc, - template, - context), - 'email_bcc':get_value(cursor, - user, - record_id, - template.def_bcc, - template, - context), - 'reply_to':get_value(cursor, - user, - record_id, - template.reply_to, - template, - context), - 'subject':get_value(cursor, - user, - record_id, - template.def_subject, - template, - context), - 'body_text':get_value(cursor, - user, - record_id, - template.def_body_text, - template, - context), - 'body_html':get_value(cursor, - user, - record_id, - template.def_body_html, - template, - context), - #This is a mandatory field when automatic emails are sent - 'state':'na', - 'folder':'drafts', - 'mail_type':'multipart/alternative', - 'template_id': template.id + 'email_to': self.get_template_value(cr, uid, template.email_to, model, record_id, context), + 'email_cc': self.get_template_value(cr, uid, template.email_cc, model, record_id, context), + 'email_bcc': self.get_template_value(cr, uid, template.email_bcc, model, record_id, context), + 'reply_to': self.get_template_value(cr, uid, template.reply_to, model, record_id, context), + 'name': self.get_template_value(cr, uid, template.subject, model, record_id, context), + 'description': self.get_template_value(cr, uid, template.description, model, record_id, context), + #'body_html': self.get_template_value(cr, uid, template.body_html, model, record_id, context), } - if template['message_id']: + if template.message_id: # use provided message_id with placeholders - mailbox_values.update({'message_id': get_value(cursor, user, record_id, template['message_id'], template, context)}) + values.update({'message_id': self.get_template_value(cr, uid, template.message_id, model, record_id, context)}) elif template['track_campaign_item']: # get appropriate message-id - mailbox_values.update({'message_id': tools.misc.generate_tracking_message_id(record_id)}) -# -# if not mailbox_values['account_id']: -# raise Exception("Unable to send the mail. No account linked to the template.") + values.update({'message_id': tools.misc.generate_tracking_message_id(record_id)}) + #Use signatures if allowed - if template.use_sign: - sign = self.pool.get('res.users').read(cursor, user, user, ['signature'], context)['signature'] - if mailbox_values['body_text']: - mailbox_values['body_text'] += sign - if mailbox_values['body_html']: - mailbox_values['body_html'] += sign - mailbox_id = self.pool.get('email.message').create(cursor, user, mailbox_values, context) + if template.user_signature: + sign = self.pool.get('res.users').read(cr, uid, uid, ['signature'], context)['signature'] + if values['description']: + values['description'] += '\n\n' + sign + #if values['body_html']: + # values['body_html'] += sign + + attachment = [] + + # Add report as a Document + if template.report_template: + report_name = template.report_name + reportname = 'report.' + report_xml_pool.browse(cr, uid, template.report_template.id, context).report_name + data = {} + data['model'] = template.model - return mailbox_id + # Ensure report is rendered using template's language + ctx = context.copy() + if template.lang: + ctx['lang'] = self.get_template_value(cr, uid, template.lang, template.model, record_id, context) + service = netsvc.LocalService(reportname) + (result, format) = service.create(cr, uid, [record_id], data, ctx) + result = base64.b64encode(result) + if not report_name: + report_name = reportname + report_name = report_name + "." + format + attachment.append((report_name, result)) + + + # Add document attachments + for attach in template.attachment_ids: + #attach = attahcment_obj.browse(cr, uid, attachment_id, context) + attachment.append((attach.datas_fname, attach.datas)) + + #Send emails + context.update({'notemplate':True}) + email_id = email_message_pool.email_send(cr, uid, values.get('email_from'), values.get('email_to'), values.get('name'), values.get('description'), + model=model, email_cc=values.get('email_cc'), email_bcc=values.get('email_bcc'), reply_to=values.get('reply_to'), + attach=attachment, message_id=values.get('message_id'), openobject_id=record_id, debug=True, subtype='plain', x_headers={}, priority='3', smtp_server_id=smtp_server.id, context=context) + email_message_pool.write(cr, uid, email_id, {'template_id': template.id}) + return email_id - def generate_mail(self, cursor, user, template_id, record_ids, context=None): + + def generate_email(self, cr, uid, ids, record_ids, context=None): if context is None: context = {} - template = self.browse(cursor, user, template_id, context=context) - if not template: - raise Exception("The requested template could not be loaded") - result = True - mailbox_obj = self.pool.get('email.message') - for record_id in record_ids: - mailbox_id = self._generate_mailbox_item_from_template(cursor, user, template, record_id, context) - mail = mailbox_obj.browse(cursor, user, mailbox_id, context=context) - if template.report_template or template.attachment_ids: - self.generate_attach_reports(cursor, user, template, record_id, mail, context ) - mailbox_obj.write(cursor, user, mailbox_id, {'folder':'outbox', 'state': 'waiting'}, context=context) - return result - + email_message_pool = self.pool.get('email.message') + email_ids = [] + for template in self.browse(cr, uid, ids, context=context): + for record_id in record_ids: + email_id = self._generate_email(cr, uid, template.id, record_id, context) + email_ids.append(email_id) + return email_ids email_template() class email_message(osv.osv): @@ -610,6 +473,19 @@ class email_message(osv.osv): attachment_obj.unlink(cr, uid, attachment_ids, context=context) return result + def email_send(self, cr, uid, email_from, email_to, subject, body, model=False, email_cc=None, email_bcc=None, reply_to=False, attach=None, + message_id=False, openobject_id=False, debug=False, subtype='plain', x_headers={}, priority='3', smtp_server_id=False, context=None): + if context is None: + context = {} + notemplate = context.get('notemplate', False) + if (not notemplate) and model and openobject_id: + template_pool = self.pool.get('email.template') + template_ids = template_pool.search(cr, uid, [('model','=',model)]) + if template_ids and len(template_ids): + template_id = template_ids[0] + return template_pool.generate_email(cr, uid, [template_id], openobject_id, context=context) + return super(email_message, self).email_send(cr, uid, email_from, email_to, subject, body, model=model, email_cc=email_cc, email_bcc=email_bc, reply_to=reply_to, attach=attach, + message_id=message_id, openobject_id=openobject_id, debug=debug, subtype=subtype, x_headers=x_headers, priority=priority, smtp_server_id=smtp_server_id, context=context) email_message() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/email_template/email_template_view.xml b/addons/email_template/email_template_view.xml index 019d6d1ff1f..c486461ca9c 100644 --- a/addons/email_template/email_template_view.xml +++ b/addons/email_template/email_template_view.xml @@ -7,45 +7,45 @@ email.template form -
+ - - + + - + - - - - + + + + - + - + - - + + - + @@ -60,7 +60,7 @@