diff --git a/bin/openerp-server.py b/bin/openerp-server.py
deleted file mode 100755
index c61a22858c0..00000000000
--- a/bin/openerp-server.py
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: UTF-8 -*-
-
-import os
-import sys
-
-if __name__ == "__main__":
- print '-' * 70
- print "DEPRECATED: you are starting the OpenERP server with its old path,"
- print "please use the new executable (available in the parent directory)."
- print '-' * 70
-
- # Change to the parent directory ...
- os.chdir(os.path.normpath(os.path.dirname(__file__)))
- os.chdir('..')
- # ... and execute the new executable.
- os.execv('openerp-server', sys.argv)
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/debian/control b/debian/control
index 7a1bfb62bb8..acd4a72c44b 100644
--- a/debian/control
+++ b/debian/control
@@ -23,6 +23,7 @@ Depends:
python-libxslt1,
python-lxml,
python-mako,
+ python-mock,
python-openid,
python-psutil,
python-psycopg2,
@@ -33,6 +34,7 @@ Depends:
python-reportlab,
python-simplejson,
python-tz,
+ python-unittest2,
python-vatnumber,
python-vobject,
python-webdav,
diff --git a/openerp/__init__.py b/openerp/__init__.py
index c874a22c0e2..c9db7076e71 100644
--- a/openerp/__init__.py
+++ b/openerp/__init__.py
@@ -40,7 +40,6 @@ import service
import sql_db
import test
import tools
-import wizard
import workflow
# backward compatilbility
# TODO: This is for the web addons, can be removed later.
diff --git a/openerp/addons/base/i18n/es.po b/openerp/addons/base/i18n/es.po
index 29fce787179..19b3e20976f 100644
--- a/openerp/addons/base/i18n/es.po
+++ b/openerp/addons/base/i18n/es.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-03 16:01+0000\n"
-"PO-Revision-Date: 2012-08-20 15:29+0000\n"
-"Last-Translator: OpenERP Administrators \n"
+"PO-Revision-Date: 2012-12-09 23:26+0000\n"
+"Last-Translator: lambdasoftware \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: 2012-12-04 05:00+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
+"X-Launchpad-Export-Date: 2012-12-10 04:36+0000\n"
+"X-Generator: Launchpad (build 16341)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -24,6 +24,10 @@ msgid ""
"================================================\n"
" "
msgstr ""
+"\n"
+"Módulo para la emisión e impresión de cheques\n"
+"================================================\n"
+" "
#. module: base
#: model:res.country,name:base.sh
@@ -59,7 +63,7 @@ msgstr "Estructura de la vista"
#. module: base
#: model:ir.module.module,summary:base.module_sale_stock
msgid "Quotation, Sale Orders, Delivery & Invoicing Control"
-msgstr ""
+msgstr "Presupuesto, órdenes de venta, entrega y control de facturación"
#. module: base
#: selection:ir.sequence,implementation:0
@@ -88,7 +92,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,summary:base.module_point_of_sale
msgid "Touchscreen Interface for Shops"
-msgstr ""
+msgstr "Interfaz de pantalla táctil para tiendas"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
@@ -140,7 +144,7 @@ msgstr ""
#. module: base
#: help:res.partner,employee:0
msgid "Check this box if this contact is an Employee."
-msgstr ""
+msgstr "Marque si el contacto es un empleado"
#. module: base
#: help:ir.model.fields,domain:0
@@ -171,7 +175,7 @@ msgstr "Ventana destino"
#. module: base
#: field:ir.actions.report.xml,report_rml:0
msgid "Main Report File Path"
-msgstr ""
+msgstr "Ruta de archivo del informe principal"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
@@ -269,7 +273,7 @@ msgstr "creado."
#. module: base
#: field:ir.actions.report.xml,report_xsl:0
msgid "XSL Path"
-msgstr ""
+msgstr "Ruta XSL"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
@@ -295,7 +299,7 @@ msgstr "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
-msgstr ""
+msgstr "Multidivisas"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@@ -319,6 +323,7 @@ msgid ""
"The internal user that is in charge of communicating with this contact if "
"any."
msgstr ""
+"El usuario interno encargado de comunicarse con este contacto si lo hubiese."
#. module: base
#: view:res.partner:0
@@ -531,12 +536,12 @@ msgstr ""
#. module: base
#: field:ir.model.relation,name:0
msgid "Relation Name"
-msgstr ""
+msgstr "Nombre de relación"
#. module: base
#: view:ir.rule:0
msgid "Create Access Right"
-msgstr ""
+msgstr "Otorge derecho de acceso"
#. module: base
#: model:res.country,name:base.tv
@@ -576,7 +581,7 @@ msgstr ""
#. module: base
#: view:workflow.transition:0
msgid "Workflow Transition"
-msgstr ""
+msgstr "Transición del flujo de trabajo"
#. module: base
#: model:res.country,name:base.gf
@@ -699,7 +704,7 @@ msgstr "Colombia"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_mister
msgid "Mister"
-msgstr ""
+msgstr "Señor"
#. module: base
#: help:res.country,code:0
@@ -728,7 +733,7 @@ msgstr "Sin traducir"
#. module: base
#: view:ir.mail_server:0
msgid "Outgoing Mail Server"
-msgstr ""
+msgstr "Servidor de correo saliente"
#. module: base
#: help:ir.actions.act_window,context:0
@@ -922,7 +927,7 @@ msgstr "Sueco / svenska"
#: field:base.language.export,name:0
#: field:ir.attachment,datas_fname:0
msgid "File Name"
-msgstr ""
+msgstr "Nombre del archivo"
#. module: base
#: model:res.country,name:base.rs
@@ -1019,7 +1024,7 @@ msgstr "Preferencias de email"
#: code:addons/base/ir/ir_fields.py:196
#, python-format
msgid "'%s' does not seem to be a valid date for field '%%(field)s'"
-msgstr ""
+msgstr "'%s' no parece ser una fecha valida para el campo '%%(field)s'"
#. module: base
#: view:res.partner:0
@@ -1151,7 +1156,7 @@ msgstr "Usuarios google"
#. module: base
#: model:ir.module.module,shortdesc:base.module_fleet
msgid "Fleet Management"
-msgstr ""
+msgstr "Gestión de flotas"
#. module: base
#: help:ir.server.object.lines,value:0
@@ -2716,7 +2721,7 @@ msgstr "Nombre de acceso rápido"
#. module: base
#: field:res.partner,contact_address:0
msgid "Complete Address"
-msgstr ""
+msgstr "Dirección completa"
#. module: base
#: help:ir.actions.act_window,limit:0
@@ -2788,7 +2793,7 @@ msgstr "ID de registro"
#. module: base
#: view:ir.filters:0
msgid "My Filters"
-msgstr ""
+msgstr "Mis filtros"
#. module: base
#: field:ir.actions.server,email:0
@@ -2874,7 +2879,7 @@ msgstr "Responsable"
#: code:addons/base/ir/ir_model.py:718
#, python-format
msgid "Sorry, you are not allowed to access this document."
-msgstr ""
+msgstr "Lo siento, no está autorizado para acceder a este documento."
#. module: base
#: model:res.country,name:base.py
@@ -2889,7 +2894,7 @@ msgstr "Fiji"
#. module: base
#: view:ir.actions.report.xml:0
msgid "Report Xml"
-msgstr ""
+msgstr "Informe Xml"
#. module: base
#: model:ir.module.module,description:base.module_purchase
@@ -2960,7 +2965,7 @@ msgstr "Hededado"
#: code:addons/base/ir/ir_fields.py:147
#, python-format
msgid "yes"
-msgstr ""
+msgstr "Sí"
#. module: base
#: field:ir.model.fields,serialization_field_id:0
@@ -3051,7 +3056,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_linkedin
msgid "LinkedIn Integration"
-msgstr ""
+msgstr "Integración con LinkedIn"
#. module: base
#: code:addons/orm.py:2021
@@ -3365,7 +3370,7 @@ msgstr "Calendario"
#. module: base
#: model:ir.module.category,name:base.module_category_knowledge_management
msgid "Knowledge"
-msgstr ""
+msgstr "Conocimiento"
#. module: base
#: field:workflow.activity,signal_send:0
@@ -3530,7 +3535,7 @@ msgstr "workflow.actividad"
#. module: base
#: view:base.language.export:0
msgid "Export Complete"
-msgstr ""
+msgstr "Exportación completada"
#. module: base
#: help:ir.ui.view_sc,res_id:0
@@ -3559,7 +3564,7 @@ msgstr "Finlandés / Suomi"
#. module: base
#: view:ir.config_parameter:0
msgid "System Properties"
-msgstr ""
+msgstr "Propiedades de sistema"
#. module: base
#: field:ir.sequence,prefix:0
@@ -3616,7 +3621,7 @@ msgstr ""
#. module: base
#: field:base.language.export,modules:0
msgid "Modules To Export"
-msgstr ""
+msgstr "Módulos a exportar"
#. module: base
#: model:res.country,name:base.mt
@@ -3719,7 +3724,7 @@ msgstr "Antártida"
#. module: base
#: view:res.partner:0
msgid "Persons"
-msgstr ""
+msgstr "Personas"
#. module: base
#: view:base.language.import:0
@@ -3898,7 +3903,7 @@ msgstr "Tayiko / اردو"
#: code:addons/orm.py:3870
#, python-format
msgid "Access Denied"
-msgstr ""
+msgstr "Acceso denegado"
#. module: base
#: field:res.company,name:0
@@ -3991,7 +3996,7 @@ msgstr "%x - Representación apropiada de fecha."
#. module: base
#: view:res.partner:0
msgid "Tag"
-msgstr ""
+msgstr "Etiqueta"
#. module: base
#: view:res.lang:0
@@ -4043,7 +4048,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.sk
msgid "Slovakia"
-msgstr ""
+msgstr "Eslovaquia"
#. module: base
#: model:res.country,name:base.nr
@@ -4594,7 +4599,7 @@ msgstr ""
#. module: base
#: field:ir.module.module,latest_version:0
msgid "Installed Version"
-msgstr ""
+msgstr "Versión instalada"
#. module: base
#: field:ir.module.module,license:0
@@ -4890,7 +4895,7 @@ msgstr "Flujos"
#. module: base
#: model:ir.ui.menu,name:base.next_id_73
msgid "Purchase"
-msgstr ""
+msgstr "Compra"
#. module: base
#: selection:base.language.install,lang:0
@@ -5049,7 +5054,7 @@ msgstr "Establecer a NULL"
#. module: base
#: view:res.users:0
msgid "Save"
-msgstr ""
+msgstr "Guardar"
#. module: base
#: field:ir.actions.report.xml,report_xml:0
@@ -5243,7 +5248,7 @@ msgstr "Tasas"
#. module: base
#: model:ir.module.module,shortdesc:base.module_email_template
msgid "Email Templates"
-msgstr ""
+msgstr "Plantillas de correo electrónico"
#. module: base
#: model:res.country,name:base.sy
@@ -5392,7 +5397,7 @@ msgstr ""
#. module: base
#: view:ir.rule:0
msgid "Write Access Right"
-msgstr ""
+msgstr "Permiso de escritura"
#. module: base
#: model:ir.actions.act_window,help:base.action_res_groups
@@ -5427,7 +5432,7 @@ msgstr "Historial"
#. module: base
#: model:res.country,name:base.im
msgid "Isle of Man"
-msgstr ""
+msgstr "Isla de Man"
#. module: base
#: help:ir.actions.client,res_model:0
@@ -6104,7 +6109,7 @@ msgstr "Nombre del recurso"
#. module: base
#: field:res.partner,is_company:0
msgid "Is a Company"
-msgstr ""
+msgstr "¿Es una empresa?"
#. module: base
#: selection:ir.cron,interval_type:0
@@ -6184,7 +6189,7 @@ msgstr ""
#. module: base
#: sql_constraint:ir.filters:0
msgid "Filter names must be unique"
-msgstr ""
+msgstr "Los nombres de filtro deben ser únicos"
#. module: base
#: help:multi_company.default,object_id:0
@@ -6199,7 +6204,7 @@ msgstr ""
#. module: base
#: field:ir.filters,is_default:0
msgid "Default filter"
-msgstr ""
+msgstr "Filtro por defecto"
#. module: base
#: report:ir.module.reference:0
@@ -6927,7 +6932,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_anonymous
msgid "Anonymous"
-msgstr ""
+msgstr "Anónimo"
#. module: base
#: model:ir.module.module,description:base.module_base_import
@@ -7434,7 +7439,7 @@ msgstr ""
#. module: base
#: model:res.partner.category,name:base.res_partner_category_14
msgid "Manufacturer"
-msgstr ""
+msgstr "Fabricante"
#. module: base
#: help:res.users,company_id:0
@@ -8050,7 +8055,7 @@ msgstr "Francés (CH) / Français (CH)"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_13
msgid "Distributor"
-msgstr ""
+msgstr "Distribuidor"
#. module: base
#: help:ir.actions.server,subject:0
@@ -15506,7 +15511,7 @@ msgstr ""
#. module: base
#: view:res.partner:0
msgid "Internal Notes"
-msgstr ""
+msgstr "Notas internas"
#. module: base
#: selection:res.partner.address,type:0
@@ -15548,7 +15553,7 @@ msgstr "Empresas: "
#. module: base
#: view:res.partner:0
msgid "Is a Company?"
-msgstr ""
+msgstr "¿Es una empresa?"
#. module: base
#: code:addons/base/res/res_company.py:159
@@ -15570,7 +15575,7 @@ msgstr "Crear objeto"
#. module: base
#: model:res.country,name:base.ss
msgid "South Sudan"
-msgstr ""
+msgstr "Sudán del Sur"
#. module: base
#: field:ir.filters,context:0
diff --git a/openerp/addons/base/i18n/es_DO.po b/openerp/addons/base/i18n/es_DO.po
index 1c7eabea1d8..8855ee6a517 100644
--- a/openerp/addons/base/i18n/es_DO.po
+++ b/openerp/addons/base/i18n/es_DO.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-server\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-12-03 16:01+0000\n"
-"PO-Revision-Date: 2012-12-03 14:56+0000\n"
+"PO-Revision-Date: 2012-12-07 15:49+0000\n"
"Last-Translator: Carlos Matos Villar \n"
"Language-Team: Spanish (Dominican Republic) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-04 05:02+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
+"X-Launchpad-Export-Date: 2012-12-08 04:58+0000\n"
+"X-Generator: Launchpad (build 16341)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -3240,12 +3240,12 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:147
#, python-format
msgid "yes"
-msgstr ""
+msgstr "Sí"
#. module: base
#: field:ir.model.fields,serialization_field_id:0
msgid "Serialization Field"
-msgstr ""
+msgstr "Campo serializacion"
#. module: base
#: model:ir.module.module,description:base.module_l10n_be_hr_payroll
@@ -3270,7 +3270,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:175
#, python-format
msgid "'%s' does not seem to be an integer for field '%%(field)s'"
-msgstr ""
+msgstr "'%s' No parece haber un entero para el campo '%%(field)s'"
#. module: base
#: model:ir.module.category,description:base.module_category_report_designer
@@ -3278,11 +3278,13 @@ msgid ""
"Lets you install various tools to simplify and enhance OpenERP's report "
"creation."
msgstr ""
+"Permite instalar varias herramientas para simplificar y mejorar la creación "
+"de informes OpenERP."
#. module: base
#: view:res.lang:0
msgid "%y - Year without century [00,99]."
-msgstr ""
+msgstr "%y - Año sin el siglo [00,99]."
#. module: base
#: model:ir.module.module,description:base.module_account_anglo_saxon
@@ -3306,11 +3308,30 @@ msgid ""
"purchase price and fixed product standard price are booked on a separate \n"
"account."
msgstr ""
+"\n"
+"Este modulo soporta la metodología de cuentas Anglo-Saxon cambiando la "
+"cuenta lógica con transacciones de Stock.\n"
+"============================================================================="
+"=======================\n"
+"\n"
+"La diferencia entre la cuenta de países Anglo-Saxon y el Rin \n"
+"(o también llamada Cuenta Continental) países es el momento de tomar el "
+"Costo de Ventas versus el Costo de Ventas. Las cuentas Anglo-Saxons toman el "
+"costo cuando las facturas de ventas son creadas, las cuentas continentales "
+"serán \n"
+"tomadas de el costo en el momento que los bienes sean enviados.\n"
+"\n"
+"Este modulo agregará esta funcionalidad usando una cuenta provisional, para "
+"almacenar los valores de bienes enviados y volveremos a reservar contra esta "
+"cuenta provisional cuando la factura es creada para transferir este monto a "
+"la cuenta de débito o crédito. En segundo lugar, los precios difieren entre "
+"los precios del producto estándar se anotan en una cuenta \n"
+"separada."
#. module: base
#: model:res.country,name:base.si
msgid "Slovenia"
-msgstr ""
+msgstr "Eslovenia"
#. module: base
#: model:ir.module.module,description:base.module_base_status
@@ -3325,18 +3346,27 @@ msgid ""
" * ``base_stage``: stage management\n"
" "
msgstr ""
+"\n"
+"Este modulo se encarga de estado y etapa. Esto se deriva desde las clases "
+"crm_base y crm_case de crm.\n"
+"============================================================================="
+"=======================\n"
+"\n"
+" *''base_state'':estado administrativo\n"
+" *''base_stage'':etapa administrativa\n"
+" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_linkedin
msgid "LinkedIn Integration"
-msgstr ""
+msgstr "Integración LinkedIn"
#. module: base
#: code:addons/orm.py:2021
#: code:addons/orm.py:2032
#, python-format
msgid "Invalid Object Architecture!"
-msgstr ""
+msgstr "¡Estructura del objeto no válida!"
#. module: base
#: code:addons/base/ir/ir_model.py:364
@@ -3350,27 +3380,27 @@ msgstr ""
#: code:addons/base/module/wizard/base_update_translations.py:38
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "¡Error!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr_rib
msgid "French RIB Bank Details"
-msgstr ""
+msgstr "Detalles CC del banco francés"
#. module: base
#: view:res.lang:0
msgid "%p - Equivalent of either AM or PM."
-msgstr ""
+msgstr "%p - Equivalente a AM o PM."
#. module: base
#: view:ir.actions.server:0
msgid "Iteration Actions"
-msgstr ""
+msgstr "Acciones de iteración"
#. module: base
#: help:multi_company.default,company_id:0
msgid "Company where the user is connected"
-msgstr ""
+msgstr "Compañía en la que pertenece el usuario."
#. module: base
#: model:res.groups,comment:base.group_sale_manager
@@ -3378,18 +3408,20 @@ msgid ""
"the user will have an access to the sales configuration as well as statistic "
"reports."
msgstr ""
+"El usuario tendrá un acceso a la configuración de ventas así como informes y "
+"estadísticas."
#. module: base
#: model:res.country,name:base.nz
msgid "New Zealand"
-msgstr ""
+msgstr "Nueva Zelanda"
#. module: base
#: field:ir.exports.line,name:0
#: view:ir.model.fields:0
#: field:res.partner.bank.type.field,name:0
msgid "Field Name"
-msgstr ""
+msgstr "Nombre de campo"
#. module: base
#: model:ir.actions.act_window,help:base.action_country
@@ -3398,28 +3430,31 @@ msgid ""
"partner records. You can create or delete countries to make sure the ones "
"you are working on will be maintained."
msgstr ""
+"Muestra y gestiona la lista de todos los países que pueden asignarse a los "
+"registros de sus empresas. Puede crear o eliminar países para mantener "
+"aquellos con los que trabaja."
#. module: base
#: model:res.country,name:base.nf
msgid "Norfolk Island"
-msgstr ""
+msgstr "Isla Norfolk"
#. module: base
#: selection:base.language.install,lang:0
msgid "Korean (KR) / 한국어 (KR)"
-msgstr ""
+msgstr "Coreano (KR) / 한국어 (KR)"
#. module: base
#: help:ir.model.fields,model:0
msgid "The technical name of the model this field belongs to"
-msgstr ""
+msgstr "El nombre técnico del modelo al que pertenece este campo."
#. module: base
#: field:ir.actions.server,action_id:0
#: selection:ir.actions.server,state:0
#: view:ir.values:0
msgid "Client Action"
-msgstr ""
+msgstr "Acción del cliente"
#. module: base
#: model:ir.module.module,description:base.module_subscription
@@ -3443,7 +3478,7 @@ msgstr ""
#. module: base
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
-msgstr ""
+msgstr "¡Error! No se pueden crear compañías recursivas."
#. module: base
#: code:addons/base/res/res_users.py:671
@@ -3453,7 +3488,7 @@ msgstr ""
#: view:res.users:0
#, python-format
msgid "Application"
-msgstr ""
+msgstr "Aplicación"
#. module: base
#: model:res.groups,comment:base.group_hr_manager
@@ -3461,6 +3496,8 @@ msgid ""
"the user will have an access to the human resources configuration as well as "
"statistic reports."
msgstr ""
+"El usuario tendrá acceso a la configuración de recursos humanos así como "
+"reportes estáticos."
#. module: base
#: model:ir.module.module,description:base.module_web_shortcuts
@@ -3476,33 +3513,43 @@ msgid ""
"shortcut.\n"
" "
msgstr ""
+"\n"
+"Habilita accesos directos en el cliente web.\n"
+"=========================================\n"
+"\n"
+"Agregar un icono de acceso directo en la bandeja del sistema en orden de "
+"acceder a los accesos directos del usuario (Si los hay).\n"
+"\n"
+"Agregar un icono de acceso directo detrás del titulo de vistas en orden a "
+"agregar/eliminar un acceso directo.\n"
+" "
#. module: base
#: field:ir.actions.client,params_store:0
msgid "Params storage"
-msgstr ""
+msgstr "Almacenamiento de parámetros"
#. module: base
#: code:addons/base/module/module.py:499
#, python-format
msgid "Can not upgrade module '%s'. It is not installed."
-msgstr ""
+msgstr "No puede actualizar el módulo '% s'. No está instalado"
#. module: base
#: model:res.country,name:base.cu
msgid "Cuba"
-msgstr ""
+msgstr "Cuba"
#. module: base
#: code:addons/report_sxw.py:441
#, python-format
msgid "Unknown report type: %s"
-msgstr ""
+msgstr "Tipo de informe desconocido: %s"
#. module: base
#: model:ir.module.module,summary:base.module_hr_expense
msgid "Expenses Validation, Invoicing"
-msgstr ""
+msgstr "Gastos de Validación, Facturación"
#. module: base
#: model:ir.module.module,description:base.module_l10n_be_hr_payroll_account
@@ -3516,23 +3563,23 @@ msgstr ""
#. module: base
#: model:res.country,name:base.am
msgid "Armenia"
-msgstr ""
+msgstr "Armenia"
#. module: base
#: model:ir.module.module,summary:base.module_hr_evaluation
msgid "Periodical Evaluations, Appraisals, Surveys"
-msgstr ""
+msgstr "Evaluaciones Periodicas, Tasaciones, Encuentas"
#. module: base
#: model:ir.actions.act_window,name:base.ir_property_form
#: model:ir.ui.menu,name:base.menu_ir_property_form_all
msgid "Configuration Parameters"
-msgstr ""
+msgstr "Parámetros de configuración"
#. module: base
#: constraint:ir.cron:0
msgid "Invalid arguments"
-msgstr ""
+msgstr "Argumentos no válidos"
#. module: base
#: model:ir.module.module,description:base.module_l10n_fr_hr_payroll
@@ -3565,18 +3612,18 @@ msgstr ""
#. module: base
#: model:res.country,name:base.se
msgid "Sweden"
-msgstr ""
+msgstr "Suecia"
#. module: base
#: field:ir.actions.report.xml,report_file:0
msgid "Report File"
-msgstr ""
+msgstr "Archivo de reporte"
#. module: base
#: selection:ir.actions.act_window.view,view_mode:0
#: selection:ir.ui.view,type:0
msgid "Gantt"
-msgstr ""
+msgstr "Gantt"
#. module: base
#: model:ir.module.module,description:base.module_l10n_in_hr_payroll
@@ -3603,14 +3650,14 @@ msgstr ""
#: code:addons/orm.py:3839
#, python-format
msgid "Missing document(s)"
-msgstr ""
+msgstr "Documentos Perdidos"
#. module: base
#: model:ir.model,name:base.model_res_partner_bank_type
#: field:res.partner.bank,state:0
#: view:res.partner.bank.type:0
msgid "Bank Account Type"
-msgstr ""
+msgstr "Tipo de cuenta bancaria"
#. module: base
#: view:base.language.export:0
@@ -3622,12 +3669,12 @@ msgstr ""
#. module: base
#: field:res.partner,image:0
msgid "Image"
-msgstr ""
+msgstr "Imágen"
#. module: base
#: model:res.country,name:base.at
msgid "Austria"
-msgstr ""
+msgstr "Austria"
#. module: base
#: selection:ir.actions.act_window.view,view_mode:0
@@ -3635,17 +3682,17 @@ msgstr ""
#: model:ir.ui.menu,name:base.menu_calendar_configuration
#: selection:ir.ui.view,type:0
msgid "Calendar"
-msgstr ""
+msgstr "Calendario"
#. module: base
#: model:ir.module.category,name:base.module_category_knowledge_management
msgid "Knowledge"
-msgstr ""
+msgstr "Conocimiento"
#. module: base
#: field:workflow.activity,signal_send:0
msgid "Signal (subflow.*)"
-msgstr ""
+msgstr "Señal (subflow.*)"
#. module: base
#: code:addons/orm.py:4652
@@ -3655,16 +3702,19 @@ msgid ""
"separated list of valid field names (optionally followed by asc/desc for the "
"direction)"
msgstr ""
+"Se ha indicado un \"order\" no válido. Una especificación \"order\" válida "
+"es una lista separada por comas de nombres de campos válidos (opcionalmente "
+"seguidos por asc/desc para indicar la dirección)"
#. module: base
#: model:ir.model,name:base.model_ir_module_module_dependency
msgid "Module dependency"
-msgstr ""
+msgstr "Dependencias de módulos"
#. module: base
#: model:res.country,name:base.bd
msgid "Bangladesh"
-msgstr ""
+msgstr "Bangladés"
#. module: base
#: model:ir.actions.act_window,help:base.action_partner_title_contact
@@ -3673,13 +3723,16 @@ msgid ""
"way you want to print them in letters and other documents. Some example: "
"Mr., Mrs. "
msgstr ""
+"Gestione los títulos de contacto que quiere tener disponibles en su sistema "
+"y la forma en la que quiere que aparezcan impresos en cartas y otros "
+"documentos. Por ejemplo: Sr., Sra. "
#. module: base
#: view:ir.model.access:0
#: view:res.groups:0
#: field:res.groups,model_access:0
msgid "Access Controls"
-msgstr ""
+msgstr "Controles de acceso"
#. module: base
#: code:addons/base/ir/ir_model.py:273
@@ -3688,27 +3741,29 @@ msgid ""
"The Selection Options expression is not a valid Pythonic expression.Please "
"provide an expression in the [('key','Label'), ...] format."
msgstr ""
+"La expresión de opciones de selección no es una expresión Pythonica válida. "
+"Proporcione una expresión en el formato [('clave', 'Etiqueta'), ...]."
#. module: base
#: model:res.groups,name:base.group_survey_user
msgid "Survey / User"
-msgstr ""
+msgstr "Encuesta / Usuario"
#. module: base
#: view:ir.module.module:0
#: field:ir.module.module,dependencies_id:0
msgid "Dependencies"
-msgstr ""
+msgstr "Dependencias"
#. module: base
#: field:multi_company.default,company_id:0
msgid "Main Company"
-msgstr ""
+msgstr "Empresa principal"
#. module: base
#: field:ir.ui.menu,web_icon_hover:0
msgid "Web Icon File (hover)"
-msgstr ""
+msgstr "Archivo icono web (flotar)"
#. module: base
#: model:ir.module.module,description:base.module_document
@@ -3735,16 +3790,38 @@ msgid ""
"database,\n"
" but in the servers rootpad like /server/bin/filestore.\n"
msgstr ""
+"\n"
+"Este es un documento completo de gestión de sistemas.\n"
+"====================================================\n"
+"\n"
+" *Autenticación de Usuarios\n"
+" *Indexación de Documentos:- .pptx y .docx archivos no soportados en la "
+"plataforma de Windows.\n"
+" *Tablero para Documentos que incluidos:\n"
+" *Nuevos Archivos (Lista)\n"
+" *Archivos por tipos de Recursos (Gráficos)\n"
+" *Archivos por Socios (Gráficos)\n"
+" *Tamaño de Archivos por Mes (Gráficos)\n"
+"\n"
+"Atención:\n"
+"-------\n"
+" - Cuando usted instala este modulo en una compañía en curso que tiene "
+"archivos PDF \n"
+" previamente almacenados dentro de una base de datos, usted perderá "
+"todo.\n"
+" - Después de la instalación de este Modulo los PDF ya no se almacenan "
+"dentro la Base de Datos,\n"
+" pero en la raíz del servidor como /server/bin/filestore.\n"
#. module: base
#: help:res.currency,name:0
msgid "Currency Code (ISO 4217)"
-msgstr ""
+msgstr "Código de moneda (ISO 4217)"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_contract
msgid "Employee Contracts"
-msgstr ""
+msgstr "Contratos de los empleados"
#. module: base
#: view:ir.actions.server:0
@@ -3752,50 +3829,52 @@ msgid ""
"If you use a formula type, use a python expression using the variable "
"'object'."
msgstr ""
+"Si utiliza un tipo fórmula, introduzca una expresión Python que incluya la "
+"variable 'object'."
#. module: base
#: field:res.partner,birthdate:0
#: field:res.partner.address,birthdate:0
msgid "Birthdate"
-msgstr ""
+msgstr "Fecha de nacimiento"
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_title_contact
#: model:ir.ui.menu,name:base.menu_partner_title_contact
msgid "Contact Titles"
-msgstr ""
+msgstr "Títulos de contacto"
#. module: base
#: model:ir.module.module,shortdesc:base.module_product_manufacturer
msgid "Products Manufacturers"
-msgstr ""
+msgstr "Fabricantes de los productos"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:238
#, python-format
msgid "SMTP-over-SSL mode unavailable"
-msgstr ""
+msgstr "Modo SMTP sobre SSL no disponible"
#. module: base
#: model:ir.module.module,shortdesc:base.module_survey
#: model:ir.ui.menu,name:base.next_id_10
msgid "Survey"
-msgstr ""
+msgstr "Encuesta"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (DO) / Español (DO)"
-msgstr ""
+msgstr "Spanish (DO) / Español (DO)"
#. module: base
#: model:ir.model,name:base.model_workflow_activity
msgid "workflow.activity"
-msgstr ""
+msgstr "workflow.activity"
#. module: base
#: view:base.language.export:0
msgid "Export Complete"
-msgstr ""
+msgstr "Exportación completada"
#. module: base
#: help:ir.ui.view_sc,res_id:0
@@ -3803,47 +3882,49 @@ msgid ""
"Reference of the target resource, whose model/table depends on the 'Resource "
"Name' field."
msgstr ""
+"Referencia al recurso destino, cuyo modelo/tabla dependa del campo 'Nombre "
+"recurso'."
#. module: base
#: field:ir.model.fields,select_level:0
msgid "Searchable"
-msgstr ""
+msgstr "Búsquedas"
#. module: base
#: model:res.country,name:base.uy
msgid "Uruguay"
-msgstr ""
+msgstr "Uruguay"
#. module: base
#: selection:base.language.install,lang:0
msgid "Finnish / Suomi"
-msgstr ""
+msgstr "Finlandés / Suomi"
#. module: base
#: view:ir.config_parameter:0
msgid "System Properties"
-msgstr ""
+msgstr "Propiedades del Sistema"
#. module: base
#: field:ir.sequence,prefix:0
msgid "Prefix"
-msgstr ""
+msgstr "Prefijo"
#. module: base
#: selection:base.language.install,lang:0
msgid "German / Deutsch"
-msgstr ""
+msgstr "Alemán / Deutsch"
#. module: base
#: view:ir.actions.server:0
msgid "Fields Mapping"
-msgstr ""
+msgstr "Mapeo de campos"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_sir
#: model:res.partner.title,shortcut:base.res_partner_title_sir
msgid "Sir"
-msgstr ""
+msgstr "Sr."
#. module: base
#: model:ir.module.module,description:base.module_l10n_ca
@@ -3857,26 +3938,34 @@ msgid ""
"Canadian accounting charts and localizations.\n"
" "
msgstr ""
+"\n"
+"Este es el modulo para administrar el Ingles y Frances - Plan de Cuentas "
+"Canadienses en OpenERP.\n"
+"============================================================================="
+"=======\n"
+"\n"
+"Plan de Cuentas Canadiense y Localización.\n"
+" "
#. module: base
#: view:base.module.import:0
msgid "Select module package to import (.zip file):"
-msgstr ""
+msgstr "Seleccione el paquete del módulo que quiere importar (archivo .zip):"
#. module: base
#: view:ir.filters:0
msgid "Personal"
-msgstr ""
+msgstr "Personal"
#. module: base
#: field:base.language.export,modules:0
msgid "Modules To Export"
-msgstr ""
+msgstr "Modulos a Exportar"
#. module: base
#: model:res.country,name:base.mt
msgid "Malta"
-msgstr ""
+msgstr "Malta"
#. module: base
#: code:addons/base/ir/ir_model.py:724
@@ -3888,12 +3977,12 @@ msgstr ""
#. module: base
#: field:ir.actions.server,fields_lines:0
msgid "Field Mappings."
-msgstr ""
+msgstr "Mapeo de campos."
#. module: base
#: selection:res.request,priority:0
msgid "High"
-msgstr ""
+msgstr "Alta"
#. module: base
#: model:ir.module.module,description:base.module_mrp
@@ -3931,6 +4020,38 @@ msgid ""
"* Work Order Analysis\n"
" "
msgstr ""
+"\n"
+"Gestiona el proceso Manufacturero en OpenERP\n"
+"=============================================\n"
+"\n"
+"El modulo de manufacturación les permite cubrir la planificación, "
+"ordenación, stocks y la manufacturación o ensamblaje de productos desde "
+"materias primas y componentes. Esto maneja el consumo y producción de "
+"productos acorde a una lista de materiales y las operaciones necesarias en "
+"maquinaria, herramientas o recursos humanos de acuerdo a las rutas.\n"
+"\n"
+"Soporta una integración completa y planificación de bienes stockable, "
+"consumibles o servicios. Los servicios son completamente integrados con el "
+"resto de el sistema. Para las instancias, usted puede ajustar un servicio de "
+"subcontratación en una lista de materiales para automáticamente comprar por "
+"encargo del conjunto de la producción.\n"
+"\n"
+"Características Claves\n"
+"--------------\n"
+"*Crear para Stock/Crear para Orden\n"
+"*Lista de Materiales Multi-Niveles, Sin Limites\n"
+"*Rutas Multi-Niveles, Sin Limites\n"
+"*Rutas y Centro de Trabajo integrado con cuentas analíticas\n"
+"*Calculo de Agenda Periodica \n"
+"*Permite buscar listas de materiales en una estructura completa que incluye "
+"hijas y lista de materiales fantasmas.\n"
+"\n"
+"Tablero / Reportes para MRP incluirá:\n"
+"------------------------------------\n"
+"*Adquisiciones en Excepción (Gráfico)\n"
+"*Variación de Valor Stock\n"
+"*Análisis de Orden de Trabajo\n"
+" "
#. module: base
#: view:ir.attachment:0
@@ -3940,13 +4061,13 @@ msgstr ""
#: view:ir.module.module:0
#: field:ir.module.module,description:0
msgid "Description"
-msgstr ""
+msgstr "Descripción"
#. module: base
#: model:ir.actions.act_window,name:base.action_workflow_instance_form
#: model:ir.ui.menu,name:base.menu_workflow_instance
msgid "Instances"
-msgstr ""
+msgstr "Instancias"
#. module: base
#: model:ir.module.module,description:base.module_purchase_requisition
@@ -3960,61 +4081,69 @@ msgid ""
"easily\n"
"keep track and order all your purchase orders.\n"
msgstr ""
+"\n"
+"Este modulo les permite gestionar sus requisiciones de compras.\n"
+"===========================================================\n"
+"\n"
+"Cuando una orden de compra es creada, usted tiene la oportunidad de guardar\n"
+"la requisición relacionada. Este nuevo objeto reagrupará y les permitirá "
+"fácilmente\n"
+"mantener el rastreo y orden de todas sus ordenes de compras.\n"
#. module: base
#: help:ir.mail_server,smtp_host:0
msgid "Hostname or IP of SMTP server"
-msgstr ""
+msgstr "Nombre de host o dirección IP del servidor SMTP"
#. module: base
#: model:res.country,name:base.aq
msgid "Antarctica"
-msgstr ""
+msgstr "Antártida"
#. module: base
#: view:res.partner:0
msgid "Persons"
-msgstr ""
+msgstr "Personas"
#. module: base
#: view:base.language.import:0
msgid "_Import"
-msgstr ""
+msgstr "_Importar"
#. module: base
#: field:res.users,action_id:0
msgid "Home Action"
-msgstr ""
+msgstr "Acción inicial"
#. module: base
#: field:res.lang,grouping:0
msgid "Separator Format"
-msgstr ""
+msgstr "Separador de Formato"
#. module: base
#: model:ir.module.module,shortdesc:base.module_report_webkit
msgid "Webkit Report Engine"
-msgstr ""
+msgstr "Motor de informes Webkit"
#. module: base
#: model:ir.ui.menu,name:base.next_id_9
msgid "Database Structure"
-msgstr ""
+msgstr "Estructura de la base de datos"
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_mass_mail
msgid "Mass Mailing"
-msgstr ""
+msgstr "Email Masivo"
#. module: base
#: model:res.country,name:base.yt
msgid "Mayotte"
-msgstr ""
+msgstr "Mayotte"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_todo
msgid "Tasks on CRM"
-msgstr ""
+msgstr "Tareas del CRM"
#. module: base
#: help:ir.model.fields,relation_field:0
@@ -4022,27 +4151,29 @@ msgid ""
"For one2many fields, the field on the target model that implement the "
"opposite many2one relationship"
msgstr ""
+"Para campos one2many, el campo del modelo destino que implementa la relación "
+"inversa many2one."
#. module: base
#: view:ir.rule:0
msgid "Interaction between rules"
-msgstr ""
+msgstr "Interacción entre reglas"
#. module: base
#: field:res.company,rml_footer:0
#: field:res.company,rml_footer_readonly:0
msgid "Report Footer"
-msgstr ""
+msgstr "Pie del informe"
#. module: base
#: selection:res.lang,direction:0
msgid "Right-to-Left"
-msgstr ""
+msgstr "Derecha-a-izquierda"
#. module: base
#: model:res.country,name:base.sx
msgid "Sint Maarten (Dutch part)"
-msgstr ""
+msgstr "Sint Maarten (parte holandesa)"
#. module: base
#: view:ir.actions.act_window:0
@@ -4050,45 +4181,46 @@ msgstr ""
#: view:ir.filters:0
#: model:ir.model,name:base.model_ir_filters
msgid "Filters"
-msgstr ""
+msgstr "Filtros"
#. module: base
#: model:ir.actions.act_window,name:base.ir_cron_act
#: view:ir.cron:0
#: model:ir.ui.menu,name:base.menu_ir_cron_act
msgid "Scheduled Actions"
-msgstr ""
+msgstr "Acciones programadas"
#. module: base
#: model:ir.module.category,name:base.module_category_reporting
#: model:ir.ui.menu,name:base.menu_lunch_reporting
#: model:ir.ui.menu,name:base.menu_reporting
msgid "Reporting"
-msgstr ""
+msgstr "Informes"
#. module: base
#: field:res.partner,title:0
#: field:res.partner.address,title:0
#: field:res.partner.title,name:0
msgid "Title"
-msgstr ""
+msgstr "Título"
#. module: base
#: help:ir.property,res_id:0
msgid "If not set, acts as a default value for new resources"
msgstr ""
+"Si no se especifica actúa como valor por defecto para los nuevos recursos."
#. module: base
#: code:addons/orm.py:4213
#, python-format
msgid "Recursivity Detected."
-msgstr ""
+msgstr "Se ha detectado recursividad."
#. module: base
#: code:addons/base/module/module.py:345
#, python-format
msgid "Recursion error in modules dependencies !"
-msgstr ""
+msgstr "¡Error de recurrencia entre dependencias de módulos!"
#. module: base
#: model:ir.module.module,description:base.module_analytic_user_function
@@ -4116,28 +4248,28 @@ msgstr ""
#. module: base
#: view:ir.model:0
msgid "Create a Menu"
-msgstr ""
+msgstr "Crear un menú"
#. module: base
#: model:res.country,name:base.tg
msgid "Togo"
-msgstr ""
+msgstr "Togo"
#. module: base
#: field:ir.actions.act_window,res_model:0
#: field:ir.actions.client,res_model:0
msgid "Destination Model"
-msgstr ""
+msgstr "Modelo de Destino"
#. module: base
#: selection:ir.sequence,implementation:0
msgid "Standard"
-msgstr ""
+msgstr "Estándar"
#. module: base
#: model:res.country,name:base.ru
msgid "Russian Federation"
-msgstr ""
+msgstr "Federación Rusa"
#. module: base
#: selection:base.language.install,lang:0
@@ -4150,12 +4282,12 @@ msgstr ""
#: code:addons/orm.py:3870
#, python-format
msgid "Access Denied"
-msgstr ""
+msgstr "Acceso denegado"
#. module: base
#: field:res.company,name:0
msgid "Company Name"
-msgstr ""
+msgstr "Nombre de la compañía"
#. module: base
#: code:addons/orm.py:2811
@@ -4164,32 +4296,36 @@ msgid ""
"Invalid value for reference field \"%s.%s\" (last part must be a non-zero "
"integer): \"%s\""
msgstr ""
+"Valor no válido para el campo de referencia \"%s.%s\" (la última parte debe "
+"ser un entero distinto de cero): \"%s\""
#. module: base
#: model:ir.actions.act_window,name:base.action_country
#: model:ir.ui.menu,name:base.menu_country_partner
msgid "Countries"
-msgstr ""
+msgstr "Países"
#. module: base
#: selection:ir.translation,type:0
msgid "RML (deprecated - use Report)"
-msgstr ""
+msgstr "RML (obsoleto - usar Informe)"
#. module: base
#: sql_constraint:ir.translation:0
msgid "Language code of translation item must be among known languages"
msgstr ""
+"El código de idioma del elemento de traducción debe estar dentro de los "
+"lenguajes conocidos"
#. module: base
#: view:ir.rule:0
msgid "Record rules"
-msgstr ""
+msgstr "Reglas de registro"
#. module: base
#: view:ir.actions.todo:0
msgid "Search Actions"
-msgstr ""
+msgstr "Acciones de búsqueda"
#. module: base
#: model:ir.module.module,description:base.module_base_calendar
@@ -4206,11 +4342,23 @@ msgid ""
"If you need to manage your meetings, you should install the CRM module.\n"
" "
msgstr ""
+"\n"
+"Esta es una característica completa del calendario del sistema.\n"
+"======================================================\n"
+"\n"
+"Esto Soporta:\n"
+"------------\n"
+" - Calendario de Eventos\n"
+" - Eventos Recurrentes\n"
+"\n"
+"Si usted necesita gestionar sus reuniones, usted debería instalar el Modulo "
+"CRM.\n"
+" "
#. module: base
#: model:res.country,name:base.je
msgid "Jersey"
-msgstr ""
+msgstr "Jersey"
#. module: base
#: model:ir.module.module,description:base.module_auth_anonymous
@@ -4220,51 +4368,55 @@ msgid ""
"==================================\n"
" "
msgstr ""
+"\n"
+"Permite el acceso anónimo a OpenERP.\n"
+"====================================\n"
+" "
#. module: base
#: view:res.lang:0
msgid "12. %w ==> 5 ( Friday is the 6th day)"
-msgstr ""
+msgstr "12. %w ==> 5 (viernes es el 6º día)"
#. module: base
#: constraint:res.partner.category:0
msgid "Error ! You can not create recursive categories."
-msgstr ""
+msgstr "¡Error! No puede crear categorías recursivas."
#. module: base
#: view:res.lang:0
msgid "%x - Appropriate date representation."
-msgstr ""
+msgstr "%x - Representación apropiada de fecha."
#. module: base
#: view:res.partner:0
msgid "Tag"
-msgstr ""
+msgstr "Etiqueta"
#. module: base
#: view:res.lang:0
msgid "%d - Day of the month [01,31]."
-msgstr ""
+msgstr "%d - Día del mes [01,31]."
#. module: base
#: model:res.country,name:base.tj
msgid "Tajikistan"
-msgstr ""
+msgstr "Tajikistán"
#. module: base
#: selection:ir.module.module,license:0
msgid "GPL-2 or later version"
-msgstr ""
+msgstr "GPL-2 o versión posterior"
#. module: base
#: selection:workflow.activity,kind:0
msgid "Stop All"
-msgstr ""
+msgstr "Detener todo"
#. module: base
#: field:res.company,paper_format:0
msgid "Paper Format"
-msgstr ""
+msgstr "Formato de papel"
#. module: base
#: model:ir.module.module,description:base.module_note_pad
@@ -4277,6 +4429,13 @@ msgid ""
"invite.\n"
"\n"
msgstr ""
+"\n"
+"Este modulo actualiza memos dentro de OpenERP para usar un pad externo\n"
+"===================================================================\n"
+"\n"
+"Se usa para actualizar sus memos de texto en tiempo real con los siguientes "
+"usuarios que usted invite.\n"
+"\n"
#. module: base
#: code:addons/base/module/module.py:609
@@ -4285,27 +4444,29 @@ msgid ""
"Can not create the module file:\n"
" %s"
msgstr ""
+"No se puede crear el archivo del módulo:\n"
+" %s"
#. module: base
#: model:res.country,name:base.sk
msgid "Slovakia"
-msgstr ""
+msgstr "Eslovaquia"
#. module: base
#: model:res.country,name:base.nr
msgid "Nauru"
-msgstr ""
+msgstr "Nauru"
#. module: base
#: code:addons/base/res/res_company.py:152
#, python-format
msgid "Reg"
-msgstr ""
+msgstr "Reg"
#. module: base
#: model:ir.model,name:base.model_ir_property
msgid "ir.property"
-msgstr ""
+msgstr "ir.property"
#. module: base
#: selection:ir.actions.act_window,view_type:0
@@ -4313,12 +4474,12 @@ msgstr ""
#: view:ir.ui.view:0
#: selection:ir.ui.view,type:0
msgid "Form"
-msgstr ""
+msgstr "Formulario"
#. module: base
#: model:res.country,name:base.pf
msgid "Polynesia (French)"
-msgstr ""
+msgstr "Polinesia (Francesa)"
#. module: base
#: model:ir.module.module,description:base.module_l10n_it
@@ -4330,16 +4491,20 @@ msgid ""
"Italian accounting chart and localization.\n"
" "
msgstr ""
+"\n"
+"Plan de cuentas y localización italiana.\n"
+"==============================\n"
+" "
#. module: base
#: model:res.country,name:base.me
msgid "Montenegro"
-msgstr ""
+msgstr "Montenegro"
#. module: base
#: model:ir.module.module,shortdesc:base.module_fetchmail
msgid "Email Gateway"
-msgstr ""
+msgstr "Pasarela de e-mail"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:466
@@ -4348,22 +4513,24 @@ msgid ""
"Mail delivery failed via SMTP server '%s'.\n"
"%s: %s"
msgstr ""
+"La entrega de correo falló vía el servidor SMTP '%s'.\n"
+"%s: %s"
#. module: base
#: model:res.country,name:base.tk
msgid "Tokelau"
-msgstr ""
+msgstr "Tokelauano"
#. module: base
#: view:ir.cron:0
#: view:ir.module.module:0
msgid "Technical Data"
-msgstr ""
+msgstr "Datos técnicos"
#. module: base
#: model:ir.model,name:base.model_ir_ui_view
msgid "ir.ui.view"
-msgstr ""
+msgstr "ir.ui.view"
#. module: base
#: model:ir.module.module,description:base.module_account_bank_statement_extensions
@@ -4387,73 +4554,93 @@ msgid ""
" and iban account numbers\n"
" "
msgstr ""
+"\n"
+"Modulo que extiende el objeto estándar account_bank_statement_line para "
+"probar el soporte e-banking.\n"
+"============================================================================="
+"=======================\n"
+"\n"
+"Este Modulo Agrega:\n"
+"--------------\n"
+" - Fecha de Divisa\n"
+" - Pagos por Lotes\n"
+" - Trazabilidad de cambios a lineas declaradas de banco\n"
+" - Vistas declararas de Lineas de Banco\n"
+" - Reporte de Balances de Declaraciones de Banco\n"
+" - mejoras en el rendimiento para la importación digital del estado de "
+"cuenta bancario (vía \n"
+" 'e-banking_import' contexto de bandera)\n"
+" - name_search en res.partner.bank mejorado para permitir la búsqueda en "
+"el Banco \n"
+" y el número de cuenta de IBAN\n"
+" "
#. module: base
#: selection:ir.module.module,state:0
#: selection:ir.module.module.dependency,state:0
msgid "To be upgraded"
-msgstr ""
+msgstr "Para ser actualizado"
#. module: base
#: model:res.country,name:base.ly
msgid "Libya"
-msgstr ""
+msgstr "Libia"
#. module: base
#: model:res.country,name:base.cf
msgid "Central African Republic"
-msgstr ""
+msgstr "República Centro Africana"
#. module: base
#: model:res.country,name:base.li
msgid "Liechtenstein"
-msgstr ""
+msgstr "Liechtenstein"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_issue_sheet
msgid "Timesheet on Issues"
-msgstr ""
+msgstr "Parte de horas para las incidencias"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_ltd
msgid "Ltd"
-msgstr ""
+msgstr "Ltd"
#. module: base
#: field:res.partner,ean13:0
msgid "EAN13"
-msgstr ""
+msgstr "EAN13"
#. module: base
#: code:addons/orm.py:2247
#, python-format
msgid "Invalid Architecture!"
-msgstr ""
+msgstr "¡Estructura no válida!"
#. module: base
#: model:res.country,name:base.pt
msgid "Portugal"
-msgstr ""
+msgstr "Portugal"
#. module: base
#: model:ir.module.module,shortdesc:base.module_share
msgid "Share any Document"
-msgstr ""
+msgstr "Compartir cualquier documento"
#. module: base
#: model:ir.module.module,summary:base.module_crm
msgid "Leads, Opportunities, Phone Calls"
-msgstr ""
+msgstr "Conduce, Oportunidades, Llamadas Teléfono"
#. module: base
#: view:res.lang:0
msgid "6. %d, %m ==> 05, 12"
-msgstr ""
+msgstr "6. %d, %m ==> 05, 12"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_it
msgid "Italy - Accounting"
-msgstr ""
+msgstr "Italia - Contabilidad"
#. module: base
#: field:ir.actions.act_url,help:0
@@ -4465,7 +4652,7 @@ msgstr ""
#: field:ir.actions.server,help:0
#: field:ir.actions.wizard,help:0
msgid "Action description"
-msgstr ""
+msgstr "Descripción de la acción"
#. module: base
#: model:ir.module.module,description:base.module_l10n_ma
@@ -4491,6 +4678,9 @@ msgid ""
"its dependencies are satisfied. If the module has no dependency, it is "
"always installed."
msgstr ""
+"Un módulo auto-instalable se instala automáticamente por el sistema cuando "
+"todas sus dependencias han sido satisfechas. Si el módulo no tiene "
+"dependencias, será instalado siempre."
#. module: base
#: model:ir.actions.act_window,name:base.res_lang_act_window
@@ -4498,7 +4688,7 @@ msgstr ""
#: model:ir.ui.menu,name:base.menu_res_lang_act_window
#: view:res.lang:0
msgid "Languages"
-msgstr ""
+msgstr "Idiomas"
#. module: base
#: model:ir.module.module,description:base.module_point_of_sale
@@ -4528,16 +4718,41 @@ msgid ""
"* Refund previous sales\n"
" "
msgstr ""
+"\n"
+"Rápido y Fácil proceso de ventas.\n"
+"=================================\n"
+"\n"
+"Este modulo les permite gestionar sus tiendas de ventas muy fácilmente con "
+"una completa interfaz táctil web.\n"
+"Esto es compatible con todas las Tabletas y las iPad's ofreciendo múltiples "
+"métodos de pago. \n"
+"\n"
+"La selección de productos puede ser hecha en varias formas: \n"
+"\n"
+"*Usando un lector de código de barra\n"
+"*Navegando a través de las categorías de productos o vía una búsqueda de "
+"texto.\n"
+"\n"
+"Características Principales\n"
+"------------------\n"
+"*Rápida codificación de las ventas\n"
+"*Elija un método (la vía rápida) o dividir el pago entre varios métodos de "
+"pago\n"
+"*Calculo de la cantidad de dinero a regresar\n"
+"*Crear y confirmar la lista de recolección automática\n"
+"*Le Permite al usuario crear una factura automática\n"
+"*Reembolso de ventas anteriores\n"
+" "
#. module: base
#: model:ir.module.category,name:base.module_category_localization_account_charts
msgid "Account Charts"
-msgstr ""
+msgstr "Planes de cuentas"
#. module: base
#: model:ir.ui.menu,name:base.menu_event_main
msgid "Events Organization"
-msgstr ""
+msgstr "Organización de Envetos"
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_customer_form
@@ -4545,27 +4760,27 @@ msgstr ""
#: model:ir.ui.menu,name:base.menu_partner_form
#: view:res.partner:0
msgid "Customers"
-msgstr ""
+msgstr "Clientes"
#. module: base
#: model:res.country,name:base.au
msgid "Australia"
-msgstr ""
+msgstr "Australia"
#. module: base
#: report:ir.module.reference:0
msgid "Menu :"
-msgstr ""
+msgstr "Menú :"
#. module: base
#: selection:ir.model.fields,state:0
msgid "Base Field"
-msgstr ""
+msgstr "Campo base"
#. module: base
#: model:ir.module.category,name:base.module_category_managing_vehicles_and_contracts
msgid "Managing vehicles and contracts"
-msgstr ""
+msgstr "Gestión de Vehiculos y Contratos"
#. module: base
#: model:ir.module.module,description:base.module_base_setup
@@ -4580,62 +4795,70 @@ msgid ""
"\n"
" "
msgstr ""
+"\n"
+"Módulo que permite configurar el sistema cuando se instala una nueva base de "
+"datos.\n"
+"===================================================================\n"
+"\n"
+"Muestra una lista de aplicaciones para instalar.\n"
+"\n"
+" "
#. module: base
#: model:ir.model,name:base.model_res_config
msgid "res.config"
-msgstr ""
+msgstr "res.config"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_pl
msgid "Poland - Accounting"
-msgstr ""
+msgstr "Polonia - Contabilidad"
#. module: base
#: view:ir.cron:0
msgid "Action to Trigger"
-msgstr ""
+msgstr "Acción a activar"
#. module: base
#: field:ir.model.constraint,name:0
#: selection:ir.translation,type:0
msgid "Constraint"
-msgstr ""
+msgstr "Restricción"
#. module: base
#: selection:ir.values,key:0
#: selection:res.partner,type:0
#: selection:res.partner.address,type:0
msgid "Default"
-msgstr ""
+msgstr "Por defecto"
#. module: base
#: model:ir.module.module,summary:base.module_lunch
msgid "Lunch Order, Meal, Food"
-msgstr ""
+msgstr "Orden de Almuerso, Comida, Alimento"
#. module: base
#: view:ir.model.fields:0
#: field:ir.model.fields,required:0
#: field:res.partner.bank.type.field,required:0
msgid "Required"
-msgstr ""
+msgstr "Requerido"
#. module: base
#: model:res.country,name:base.ro
msgid "Romania"
-msgstr ""
+msgstr "Rumanía"
#. module: base
#: field:ir.module.module,summary:0
#: field:res.request.history,name:0
msgid "Summary"
-msgstr ""
+msgstr "Resumen"
#. module: base
#: model:ir.module.category,name:base.module_category_hidden_dependency
msgid "Dependency"
-msgstr ""
+msgstr "Dependencia"
#. module: base
#: model:ir.module.module,description:base.module_portal
@@ -4659,16 +4882,34 @@ msgid ""
"very handy when used in combination with the module 'share'.\n"
" "
msgstr ""
+"\n"
+"Personaliza el acceso a su base de datos de OpenERP a usuarios externos "
+"mediante la creación de portales.\n"
+"============================================================================="
+"=====================\n"
+"Un portal define un menú de usuario especifico y derechos de acceso para sus "
+"miembros. Este\n"
+"menú puede ser visto por los miembros del portal, usuarios anónimos y otros "
+"usuarios que\n"
+"tienen el acceso a características técnicas (por ejemplo: El Administrado).\n"
+"También, cada miembro del portal esta enlazado a un socio especifico.\n"
+"\n"
+"El modulo también asocia grupos de usuarios al portal de usuarios (agregando "
+"un grupo en\n"
+"el portal automáticamente los agrega al portal de usuarios, etc). Esa "
+"característica es\n"
+"muy útil cuando se usa en combinación con el modulo 'Compartir'.\n"
+" "
#. module: base
#: field:multi_company.default,expression:0
msgid "Expression"
-msgstr ""
+msgstr "Expresión"
#. module: base
#: view:res.company:0
msgid "Header/Footer"
-msgstr ""
+msgstr "Cabecera / Pie de página"
#. module: base
#: help:ir.mail_server,sequence:0
@@ -4676,11 +4917,14 @@ msgid ""
"When no specific mail server is requested for a mail, the highest priority "
"one is used. Default priority is 10 (smaller number = higher priority)"
msgstr ""
+"Cuando para un correo no se especifica un servidor de correo en concreto, se "
+"usa el de mayor prioridad. La prioridad por defecto es 10 (número más "
+"pequeño = más prioridad)"
#. module: base
#: field:res.partner,parent_id:0
msgid "Related Company"
-msgstr ""
+msgstr "Compañías Relacionadas"
#. module: base
#: help:ir.actions.act_url,help:0
@@ -4695,52 +4939,54 @@ msgid ""
"Optional help text for the users with a description of the target view, such "
"as its usage and purpose."
msgstr ""
+"Texto de ayuda opcional para los usuarios con una descripción de la vista "
+"destino, como su uso y su propósito."
#. module: base
#: model:res.country,name:base.va
msgid "Holy See (Vatican City State)"
-msgstr ""
+msgstr "Santa Sede (Ciudad Estado del Vaticano)"
#. module: base
#: field:base.module.import,module_file:0
msgid "Module .ZIP file"
-msgstr ""
+msgstr "Archivo .ZIP del módulo"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_17
msgid "Telecom sector"
-msgstr ""
+msgstr "Sector de telecomunicaciones"
#. module: base
#: field:workflow.transition,trigger_model:0
msgid "Trigger Object"
-msgstr ""
+msgstr "Objeto del disparo"
#. module: base
#: sql_constraint:ir.sequence.type:0
msgid "`code` must be unique."
-msgstr ""
+msgstr "'código' debe ser único."
#. module: base
#: model:ir.module.module,shortdesc:base.module_knowledge
msgid "Knowledge Management System"
-msgstr ""
+msgstr "Sistema de Gestión del Conocimiento"
#. module: base
#: view:workflow.activity:0
#: field:workflow.activity,in_transitions:0
msgid "Incoming Transitions"
-msgstr ""
+msgstr "Transiciones entrantes"
#. module: base
#: field:ir.values,value_unpickle:0
msgid "Default value or action reference"
-msgstr ""
+msgstr "Valor por defecto o referencia de acción"
#. module: base
#: model:res.country,name:base.sr
msgid "Suriname"
-msgstr ""
+msgstr "Surinam"
#. module: base
#: model:ir.module.module,description:base.module_account_sequence
@@ -4760,11 +5006,27 @@ msgid ""
" * Number Padding\n"
" "
msgstr ""
+"\n"
+"Este modulo mantiene secuencias de números internas para entradas de "
+"cuentas.\n"
+"============================================================================="
+"=\n"
+"\n"
+"Les permite configurar de secuencias de cuentas para darles mantenimiento. \n"
+"\n"
+"Usted puede personalizar los siguientes atributos de la secuencia:\n"
+"---------------------------------------------------------\n"
+" *Prefijo\n"
+" *Sufijo\n"
+" *Proximo Número\n"
+" *Incremento de Número\n"
+" *Número de Relleno\n"
+" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_timesheet
msgid "Bill Time on Tasks"
-msgstr ""
+msgstr "Facturar tiempo en tareas"
#. module: base
#: model:ir.module.category,name:base.module_category_marketing
@@ -4772,12 +5034,12 @@ msgstr ""
#: model:ir.ui.menu,name:base.marketing_menu
#: model:ir.ui.menu,name:base.menu_report_marketing
msgid "Marketing"
-msgstr ""
+msgstr "Mercadeo"
#. module: base
#: view:res.partner.bank:0
msgid "Bank account"
-msgstr ""
+msgstr "Cuenta bancaria"
#. module: base
#: model:ir.module.module,description:base.module_web_calendar
@@ -4787,53 +5049,57 @@ msgid ""
"==========================\n"
"\n"
msgstr ""
+"\n"
+"Vista de Calendario Web OpenERP.\n"
+"===============================\n"
+"\n"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (HN) / Español (HN)"
-msgstr ""
+msgstr "Español (HN) / Español (HN)"
#. module: base
#: view:ir.sequence.type:0
msgid "Sequence Type"
-msgstr ""
+msgstr "Tipo de secuencia"
#. module: base
#: view:base.language.export:0
msgid "Unicode/UTF-8"
-msgstr ""
+msgstr "Unicode/UTF-8"
#. module: base
#: selection:base.language.install,lang:0
msgid "Hindi / हिंदी"
-msgstr ""
+msgstr "Hindi / हिंदी"
#. module: base
#: view:base.language.install:0
#: model:ir.actions.act_window,name:base.action_view_base_language_install
#: model:ir.ui.menu,name:base.menu_view_base_language_install
msgid "Load a Translation"
-msgstr ""
+msgstr "Cargar una Traducción"
#. module: base
#: field:ir.module.module,latest_version:0
msgid "Installed Version"
-msgstr ""
+msgstr "Versión instalada"
#. module: base
#: field:ir.module.module,license:0
msgid "License"
-msgstr ""
+msgstr "Licencia"
#. module: base
#: field:ir.attachment,url:0
msgid "Url"
-msgstr ""
+msgstr "Url"
#. module: base
#: selection:ir.translation,type:0
msgid "SQL Constraint"
-msgstr ""
+msgstr "Restricción SQL"
#. module: base
#: help:ir.ui.menu,groups_id:0
@@ -4842,6 +5108,9 @@ msgid ""
"groups. If this field is empty, OpenERP will compute visibility based on the "
"related object's read access."
msgstr ""
+"Si tiene grupos, la visibilidad del menú se basará en esos grupos. Si el "
+"campo está vacío, OpenERP otorgará la visibilidad basándose en los permisos "
+"de lectura de los objetos asociados."
#. module: base
#: field:ir.actions.server,srcmodel_id:0
@@ -4853,7 +5122,7 @@ msgstr ""
#: field:ir.model.relation,model:0
#: view:ir.values:0
msgid "Model"
-msgstr ""
+msgstr "Modelo"
#. module: base
#: view:base.language.install:0
@@ -4861,6 +5130,8 @@ msgid ""
"The selected language has been successfully installed. You must change the "
"preferences of the user and open a new menu to view the changes."
msgstr ""
+"El idioma seleccionado ha sido instalado con éxito. Deberá cambiar las "
+"preferencias del usuario y abrir un nuevo menú para apreciar los cambios."
#. module: base
#: field:ir.actions.act_window.view,view_id:0
@@ -4868,7 +5139,7 @@ msgstr ""
#: selection:ir.translation,type:0
#: view:ir.ui.view:0
msgid "View"
-msgstr ""
+msgstr "Vista"
#. module: base
#: model:ir.module.module,description:base.module_crm_partner_assign
@@ -4888,21 +5159,36 @@ msgid ""
"You can also use the geolocalization without using the GPS coordinates.\n"
" "
msgstr ""
+"\n"
+"Este es el modulo usado por OpenERP SA para redirigir clientes a sus socios, "
+"basados en geolocalización.\n"
+"============================================================================="
+"======================\n"
+"\n"
+"Usted puede geolocalizar sus oportunidades mediante el uso de este modulo.\n"
+"\n"
+"Use la geolocalización cuando se asignen oportunidades a los socios.\n"
+"Determine las coordenadas GPS de acuerdo a la dirección de el socio.\n"
+"\n"
+"Los socios mas apropiados pueden ser asignados.\n"
+"Usted puede también usar la geolocalización sin el uso de las coordenadas de "
+"GPS.\n"
+" "
#. module: base
#: view:ir.actions.act_window:0
msgid "Open a Window"
-msgstr ""
+msgstr "Abrir una ventana"
#. module: base
#: model:res.country,name:base.gq
msgid "Equatorial Guinea"
-msgstr ""
+msgstr "Guinea ecuatorial"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_api
msgid "OpenERP Web API"
-msgstr ""
+msgstr "Aplicación Web OpenERP"
#. module: base
#: model:ir.module.module,description:base.module_l10n_fr_rib
@@ -4946,22 +5232,58 @@ msgid ""
"Accounts in OpenERP: the first with the type 'RIB', the second with the type "
"'IBAN'. \n"
msgstr ""
+"\n"
+"Este modulo deja a los usuarios entrar a los detalles del banco de Socios en "
+"el formato RIB (Estándar Francés para los detalles de bancos)\n"
+"============================================================================="
+"=========================\n"
+"\n"
+"Las Cuentas de Banco RIB pueden ser entradas en la pestaña de "
+"\"Contabilidad\" de el formulario de el Socio mediante la especificación de "
+"cuenta tipo \"RIB\". \n"
+"\n"
+"Los cuatros campos estándares RIB se convertirán en mandatarios:\n"
+"------------------------------------------------------ \n"
+" - Código de Banco\n"
+" - Código de Oficina\n"
+" - Número de Cuenta\n"
+" - Clave RIB\n"
+" \n"
+"Como una medida de seguridad, OpenERP verificará las claves RIB cuando "
+"quiera que un RIB sea guardado, y \n"
+"se rechazará al fichero de datos si la clave es incorrecta. Por favor tenga "
+"en mente que esto solo puede suceder cuando el usuario presione el botón "
+"'Guardar', por ejemplo en el Formulario de Socios. Desde cada cuenta "
+"bancaria debe relacionar a un banco, los usuarios deberán entrar los códigos "
+"de banco RIB en el Formulario de Banco - esto será el pre-llenado el código "
+"RIB de el banco cuando ellos seleccionen el Banco. Para hacer esto más "
+"fácil, este modulo también les permitirá a los usuarios encontrar Bancos "
+"usando sus códigos RIB.\n"
+"\n"
+"El modulo base_iban puede ser un agregado útil a este modulo, porque los "
+"bancos Franceses\n"
+"ahora están progresivamente adoptando el formato IBAN internacional en vez "
+"de el Formato RIB.\n"
+"Los códigos RIB y IBAN para una sola cuenta puede ser entrado mediante la "
+"grabación de dos Cuentas de\n"
+"Bancos en OpenERP: La primera con el tipo 'RIB', la segunda con el tipo "
+"'IBAN'. \n"
#. module: base
#: model:ir.model,name:base.model_ir_actions_report_xml
#: selection:ir.ui.menu,action:0
msgid "ir.actions.report.xml"
-msgstr ""
+msgstr "ir.actions.report.xml"
#. module: base
#: model:res.country,name:base.ps
msgid "Palestinian Territory, Occupied"
-msgstr ""
+msgstr "Territorio Palestino Ocupado"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ch
msgid "Switzerland - Accounting"
-msgstr ""
+msgstr "Suiza - Contabilidad"
#. module: base
#: field:res.bank,zip:0
@@ -4970,18 +5292,18 @@ msgstr ""
#: field:res.partner.address,zip:0
#: field:res.partner.bank,zip:0
msgid "Zip"
-msgstr ""
+msgstr "C.P."
#. module: base
#: view:ir.module.module:0
#: field:ir.module.module,author:0
msgid "Author"
-msgstr ""
+msgstr "Autor"
#. module: base
#: view:res.lang:0
msgid "%c - Appropriate date and time representation."
-msgstr ""
+msgstr "%c - Representación apropiada de fecha y hora."
#. module: base
#: code:addons/base/res/res_config.py:388
@@ -4991,31 +5313,34 @@ msgid ""
"\n"
"Click 'Continue' and enjoy your OpenERP experience..."
msgstr ""
+"Su base de datos está ahora completamente configurada.\n"
+"\n"
+"Haga clic en 'Continuar' y disfrute de su experiencia OpenERP ..."
#. module: base
#: model:ir.module.category,description:base.module_category_marketing
msgid "Helps you manage your marketing campaigns step by step."
-msgstr ""
+msgstr "Le ayuda a gestionar sus campañas de marketing paso a paso."
#. module: base
#: selection:base.language.install,lang:0
msgid "Hebrew / עִבְרִי"
-msgstr ""
+msgstr "Hebreo / עִבְרִי"
#. module: base
#: model:res.country,name:base.bo
msgid "Bolivia"
-msgstr ""
+msgstr "Bolivia"
#. module: base
#: model:res.country,name:base.gh
msgid "Ghana"
-msgstr ""
+msgstr "Ghana"
#. module: base
#: field:res.lang,direction:0
msgid "Direction"
-msgstr ""
+msgstr "Dirección"
#. module: base
#: view:ir.actions.act_window:0
@@ -5028,34 +5353,35 @@ msgstr ""
#: model:ir.ui.menu,name:base.menu_action_ui_view
#: view:ir.ui.view:0
msgid "Views"
-msgstr ""
+msgstr "Vistas"
#. module: base
#: view:res.groups:0
#: field:res.groups,rule_groups:0
msgid "Rules"
-msgstr ""
+msgstr "Reglas"
#. module: base
#: field:ir.mail_server,smtp_host:0
msgid "SMTP Server"
-msgstr ""
+msgstr "Servidor SMTP"
#. module: base
#: code:addons/base/module/module.py:299
#, python-format
msgid "You try to remove a module that is installed or will be installed"
msgstr ""
+"Está tratando de eliminar un módulo que está instalado o será instalado"
#. module: base
#: view:base.module.upgrade:0
msgid "The selected modules have been updated / installed !"
-msgstr ""
+msgstr "¡Los módulos seleccionados han sido actualizados / instalados !"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (PR) / Español (PR)"
-msgstr ""
+msgstr "Español (PR) / Español (PR)"
#. module: base
#: model:ir.module.module,description:base.module_crm_profiling
@@ -5078,11 +5404,30 @@ msgid ""
"since it's the same which has been renamed.\n"
" "
msgstr ""
+"\n"
+"Este modulo permite a los usuarios realizar la segmentación dentro de los "
+"socios.\n"
+"============================================================================="
+"\n"
+"\n"
+"Estos usan los criterios de perfiles desde el modulo de segmentación "
+"anterior y probar este. \n"
+"Gracias al nuevo concepto de cuestionarios. Usted ahora puede reagrupar "
+"preguntas en un \n"
+"cuestionario y directamente usarlo sobre un socio.\n"
+"\n"
+"Esto también ha sido fusionado con la herramienta de segmentación CRM y SRM "
+"anterior porque ellos \n"
+"estaban superponiendo.\n"
+"\n"
+" **Nota:** Este modulo no es compatible con el modulo de segmentación, ya "
+"que es el mismo al que se le ha cambiado el nombre.\n"
+" "
#. module: base
#: model:res.country,name:base.gt
msgid "Guatemala"
-msgstr ""
+msgstr "Guatemala"
#. module: base
#: help:ir.actions.server,message:0
@@ -5091,18 +5436,21 @@ msgid ""
"the same values as those available in the condition field, e.g. `Dear [[ "
"object.partner_id.name ]]`"
msgstr ""
+"Contenido del e-mail, que debe contener expresiones encerradas en dobles "
+"corchetes basadas en los mismos valores disponibles en el campo condición. "
+"Por ejemplo: 'Estimado [[ object.partner_id.name ]]'"
#. module: base
#: model:ir.actions.act_window,name:base.action_workflow_form
#: model:ir.ui.menu,name:base.menu_workflow
#: model:ir.ui.menu,name:base.menu_workflow_root
msgid "Workflows"
-msgstr ""
+msgstr "Flujos de Trabajo"
#. module: base
#: model:ir.ui.menu,name:base.next_id_73
msgid "Purchase"
-msgstr ""
+msgstr "Compra"
#. module: base
#: selection:base.language.install,lang:0
@@ -5112,33 +5460,33 @@ msgstr ""
#. module: base
#: model:ir.model,name:base.model_ir_needaction_mixin
msgid "ir.needaction_mixin"
-msgstr ""
+msgstr "ir.needaction_mixin"
#. module: base
#: view:base.language.export:0
msgid "This file was generated using the universal"
-msgstr ""
+msgstr "Este archivo fue generado usando el universal"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_7
msgid "IT Services"
-msgstr ""
+msgstr "Servicios TI"
#. module: base
#: model:ir.module.category,name:base.module_category_specific_industry_applications
msgid "Specific Industry Applications"
-msgstr ""
+msgstr "Aplicaciones específicas de la industria"
#. module: base
#: model:ir.module.module,shortdesc:base.module_google_docs
msgid "Google Docs integration"
-msgstr ""
+msgstr "Documentos Integrados de Google"
#. module: base
#: code:addons/base/ir/ir_fields.py:328
#, python-format
msgid "name"
-msgstr ""
+msgstr "nombre"
#. module: base
#: model:ir.module.module,description:base.module_mrp_operations
@@ -5179,22 +5527,22 @@ msgstr ""
#. module: base
#: view:res.config.installer:0
msgid "Skip"
-msgstr ""
+msgstr "Saltar"
#. module: base
#: model:ir.module.module,shortdesc:base.module_event_sale
msgid "Events Sales"
-msgstr ""
+msgstr "Eventos de Ventas"
#. module: base
#: model:res.country,name:base.ls
msgid "Lesotho"
-msgstr ""
+msgstr "Lesoto"
#. module: base
#: view:base.language.export:0
msgid ", or your preferred text editor"
-msgstr ""
+msgstr ", O usted preferiría un editor de texto?"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_partner_assign
@@ -5204,64 +5552,64 @@ msgstr ""
#. module: base
#: model:res.country,name:base.ke
msgid "Kenya"
-msgstr ""
+msgstr "Kenia"
#. module: base
#: model:ir.actions.act_window,name:base.action_translation
#: model:ir.ui.menu,name:base.menu_action_translation
msgid "Translated Terms"
-msgstr ""
+msgstr "Términos traducidos"
#. module: base
#: selection:base.language.install,lang:0
msgid "Abkhazian / аҧсуа"
-msgstr ""
+msgstr "Abkhazian / аҧсуа"
#. module: base
#: view:base.module.configuration:0
msgid "System Configuration Done"
-msgstr ""
+msgstr "Configuración del sistema realizada"
#. module: base
#: code:addons/orm.py:1540
#, python-format
msgid "Error occurred while validating the field(s) %s: %s"
-msgstr ""
+msgstr "Ha ocurrido un error mientras se validaban los campo(s) %s: %s"
#. module: base
#: view:ir.property:0
msgid "Generic"
-msgstr ""
+msgstr "Genérico"
#. module: base
#: model:ir.module.module,shortdesc:base.module_document_ftp
msgid "Shared Repositories (FTP)"
-msgstr ""
+msgstr "Repositorios compartidos (FTP)"
#. module: base
#: model:res.country,name:base.sm
msgid "San Marino"
-msgstr ""
+msgstr "San Marino"
#. module: base
#: model:res.country,name:base.bm
msgid "Bermuda"
-msgstr ""
+msgstr "Bermudas"
#. module: base
#: model:res.country,name:base.pe
msgid "Peru"
-msgstr ""
+msgstr "Perú"
#. module: base
#: selection:ir.model.fields,on_delete:0
msgid "Set NULL"
-msgstr ""
+msgstr "Establecer a NULL"
#. module: base
#: view:res.users:0
msgid "Save"
-msgstr ""
+msgstr "Grabar"
#. module: base
#: field:ir.actions.report.xml,report_xml:0
@@ -5271,23 +5619,23 @@ msgstr ""
#. module: base
#: model:res.country,name:base.bj
msgid "Benin"
-msgstr ""
+msgstr "Benín"
#. module: base
#: model:ir.actions.act_window,name:base.action_res_partner_bank_type_form
#: model:ir.ui.menu,name:base.menu_action_res_partner_bank_typeform
msgid "Bank Account Types"
-msgstr ""
+msgstr "Tipos de cuentas bancarias"
#. module: base
#: help:ir.sequence,suffix:0
msgid "Suffix value of the record for the sequence"
-msgstr ""
+msgstr "Valor del sufijo del registro para la secuencia."
#. module: base
#: help:ir.mail_server,smtp_user:0
msgid "Optional username for SMTP authentication"
-msgstr ""
+msgstr "Nombre de usuario opcional para la autenticación SMTP"
#. module: base
#: model:ir.model,name:base.model_ir_actions_actions
@@ -5297,18 +5645,18 @@ msgstr ""
#. module: base
#: selection:ir.model.fields,select_level:0
msgid "Not Searchable"
-msgstr ""
+msgstr "No puede ser buscado"
#. module: base
#: view:ir.config_parameter:0
#: field:ir.config_parameter,key:0
msgid "Key"
-msgstr ""
+msgstr "Clave"
#. module: base
#: field:res.company,rml_header:0
msgid "RML Header"
-msgstr ""
+msgstr "Cabecera RML"
#. module: base
#: help:res.country,address_format:0
@@ -5327,139 +5675,156 @@ msgid ""
" \n"
"%(country_code)s: the code of the country"
msgstr ""
+"Puede colocar aquí el formato habitual que se usa en las direcciones "
+"pertenecientes a este país.\n"
+"\n"
+"Puede usar patrones de cadena de estilo python con todos los campos de la "
+"dirección (por ejemplo, usar '%(street)s' para mostrar el campo 'street') "
+"más:\n"
+"\n"
+"%(state_name)s: para el nombre de la provincia, región o estado\n"
+"\n"
+"%(state_code)s: para el código de la provincia, región o estado\n"
+"\n"
+"%(country_name)s: para el nombre del país\n"
+"\n"
+"%(country_code)s: para el código del país"
#. module: base
#: model:res.country,name:base.mu
msgid "Mauritius"
-msgstr ""
+msgstr "Mauricio"
#. module: base
#: view:ir.model.access:0
msgid "Full Access"
-msgstr ""
+msgstr "Acceso completo"
#. module: base
#: view:ir.actions.act_window:0
#: view:ir.actions.report.xml:0
#: model:ir.ui.menu,name:base.menu_security
msgid "Security"
-msgstr ""
+msgstr "Seguridad"
#. module: base
#: selection:base.language.install,lang:0
msgid "Portuguese / Português"
-msgstr ""
+msgstr "Portugues / Português"
#. module: base
#: code:addons/base/ir/ir_model.py:364
#, python-format
msgid "Changing the storing system for field \"%s\" is not allowed."
msgstr ""
+"No está permitido cambiar el sistema de almacenamiento para el campo \"%s\"."
#. module: base
#: help:res.partner.bank,company_id:0
msgid "Only if this bank account belong to your company"
-msgstr ""
+msgstr "Sólo si esta cuenta bancaria pertenece a su compañía"
#. module: base
#: code:addons/base/ir/ir_fields.py:338
#, python-format
msgid "Unknown sub-field '%s'"
-msgstr ""
+msgstr "Sub-campo '%s' Desconocido"
#. module: base
#: model:res.country,name:base.za
msgid "South Africa"
-msgstr ""
+msgstr "Sudáfrica"
#. module: base
#: view:ir.module.module:0
#: selection:ir.module.module,state:0
#: selection:ir.module.module.dependency,state:0
msgid "Installed"
-msgstr ""
+msgstr "Instalado"
#. module: base
#: selection:base.language.install,lang:0
msgid "Ukrainian / українська"
-msgstr ""
+msgstr "Ucraniano / українська"
#. module: base
#: model:res.country,name:base.sn
msgid "Senegal"
-msgstr ""
+msgstr "Senegal"
#. module: base
#: model:res.country,name:base.hu
msgid "Hungary"
-msgstr ""
+msgstr "Hungría"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_recruitment
msgid "Recruitment Process"
-msgstr ""
+msgstr "Proceso de selección"
#. module: base
#: model:res.country,name:base.br
msgid "Brazil"
-msgstr ""
+msgstr "Brasil"
#. module: base
#: view:res.lang:0
msgid "%M - Minute [00,59]."
-msgstr ""
+msgstr "%M - Minuto [00,59]."
#. module: base
#: selection:ir.module.module,license:0
msgid "Affero GPL-3"
-msgstr ""
+msgstr "Affero GPL-3"
#. module: base
#: field:ir.sequence,number_next:0
msgid "Next Number"
-msgstr ""
+msgstr "Número siguiente"
#. module: base
#: help:workflow.transition,condition:0
msgid "Expression to be satisfied if we want the transition done."
msgstr ""
+"Expresión que debe ser satisfecha si queremos que la transición sea "
+"realizada."
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (PA) / Español (PA)"
-msgstr ""
+msgstr "Español (PA) / Español (PA)"
#. module: base
#: view:res.currency:0
#: field:res.currency,rate_ids:0
msgid "Rates"
-msgstr ""
+msgstr "Tasas"
#. module: base
#: model:ir.module.module,shortdesc:base.module_email_template
msgid "Email Templates"
-msgstr ""
+msgstr "Plantillas email"
#. module: base
#: model:res.country,name:base.sy
msgid "Syria"
-msgstr ""
+msgstr "Siria"
#. module: base
#: view:res.lang:0
msgid "======================================================"
-msgstr ""
+msgstr "======================================================"
#. module: base
#: sql_constraint:ir.model:0
msgid "Each model must be unique!"
-msgstr ""
+msgstr "¡Cada modelo debe ser único!"
#. module: base
#: model:ir.module.category,name:base.module_category_localization
#: model:ir.ui.menu,name:base.menu_localisation
msgid "Localization"
-msgstr ""
+msgstr "Localización"
#. module: base
#: model:ir.module.module,description:base.module_web_api
@@ -5469,11 +5834,14 @@ msgid ""
"================\n"
"\n"
msgstr ""
+"\n"
+"Aplicación Web OpenERP.\n"
+"\n"
#. module: base
#: selection:res.request,state:0
msgid "draft"
-msgstr ""
+msgstr "borrador"
#. module: base
#: selection:ir.property,type:0
@@ -5482,12 +5850,12 @@ msgstr ""
#: field:res.partner,date:0
#: field:res.request,date_sent:0
msgid "Date"
-msgstr ""
+msgstr "Fecha"
#. module: base
#: model:ir.module.module,shortdesc:base.module_event_moodle
msgid "Event Moodle"
-msgstr ""
+msgstr "Evento Moodle"
#. module: base
#: model:ir.module.module,description:base.module_email_template
@@ -5538,55 +5906,56 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_partner_category_form
msgid "Partner Tags"
-msgstr ""
+msgstr "Etiquetas de Socios"
#. module: base
#: view:res.company:0
msgid "Preview Header/Footer"
-msgstr ""
+msgstr "Vista Preliminar Cabezera/Pies"
#. module: base
#: field:ir.ui.menu,parent_id:0
#: field:wizard.ir.model.menu.create,menu_id:0
msgid "Parent Menu"
-msgstr ""
+msgstr "Menú padre"
#. module: base
#: field:res.partner.bank,owner_name:0
msgid "Account Owner Name"
-msgstr ""
+msgstr "Nombre del propietario de la cuenta"
#. module: base
#: code:addons/base/ir/ir_model.py:412
#, python-format
msgid "Cannot rename column to %s, because that column already exists!"
msgstr ""
+"¡No se puede renombrar la columna a %s, porqué ya existe esa columna!"
#. module: base
#: view:ir.attachment:0
msgid "Attached To"
-msgstr ""
+msgstr "Adjuntado a"
#. module: base
#: field:res.lang,decimal_point:0
msgid "Decimal Separator"
-msgstr ""
+msgstr "Separador de decimales"
#. module: base
#: code:addons/orm.py:5245
#, python-format
msgid "Missing required value for the field '%s'."
-msgstr ""
+msgstr "Falta valor requerido para el campo '%s'."
#. module: base
#: model:ir.model,name:base.model_res_partner_address
msgid "res.partner.address"
-msgstr ""
+msgstr "res.partner.address"
#. module: base
#: view:ir.rule:0
msgid "Write Access Right"
-msgstr ""
+msgstr "Escribir Derechos de Acceso"
#. module: base
#: model:ir.actions.act_window,help:base.action_res_groups
@@ -5598,54 +5967,60 @@ msgid ""
"to see. Whether they can have a read, write, create and delete access right "
"can be managed from here."
msgstr ""
+"Un grupo es un conjunto de áreas funcionales que se asignarán al usuario "
+"para darle acceso y derechos a aplicaciones específicas y tareas en el "
+"sistema. Puede crear grupos personalizados o editar los existentes para "
+"personalizar la vista de menús que los usuarios podrán ver. La gestión de "
+"los permisos de lectura, escritura, creación y eliminación se hace desde "
+"aquí."
#. module: base
#: view:ir.filters:0
#: field:ir.filters,name:0
msgid "Filter Name"
-msgstr ""
+msgstr "Nombre del filtro"
#. module: base
#: view:ir.attachment:0
#: view:res.partner:0
#: field:res.request,history:0
msgid "History"
-msgstr ""
+msgstr "Historial"
#. module: base
#: model:res.country,name:base.im
msgid "Isle of Man"
-msgstr ""
+msgstr "Isla del Hombre"
#. module: base
#: help:ir.actions.client,res_model:0
msgid "Optional model, mostly used for needactions."
-msgstr ""
+msgstr "Modelo opcional, mayormente usado para acciones necesarias."
#. module: base
#: field:ir.attachment,create_uid:0
msgid "Creator"
-msgstr ""
+msgstr "Creador"
#. module: base
#: model:res.country,name:base.bv
msgid "Bouvet Island"
-msgstr ""
+msgstr "Isla Bouvet"
#. module: base
#: field:ir.model.constraint,type:0
msgid "Constraint Type"
-msgstr ""
+msgstr "Tipo de Restrinciones"
#. module: base
#: field:res.company,child_ids:0
msgid "Child Companies"
-msgstr ""
+msgstr "Compañías hijas"
#. module: base
#: model:res.country,name:base.ni
msgid "Nicaragua"
-msgstr ""
+msgstr "Nicaragua"
#. module: base
#: model:ir.module.module,description:base.module_stock_invoice_directly
@@ -5659,11 +6034,19 @@ msgid ""
"wizard if the delivery is to be invoiced.\n"
" "
msgstr ""
+"\n"
+"Asistente de facturación para Entregar.\n"
+"=====================================\n"
+"\n"
+"Cuando usted envía o entrega bienes, este modulo automáticamente lanza el "
+"asistente de facturación\n"
+"si la entrega será facturada.\n"
+" "
#. module: base
#: selection:ir.translation,type:0
msgid "Wizard Button"
-msgstr ""
+msgstr "Botón asistente"
#. module: base
#: view:ir.model.fields:0
@@ -5671,22 +6054,22 @@ msgstr ""
#: selection:ir.translation,type:0
#: field:multi_company.default,field_id:0
msgid "Field"
-msgstr ""
+msgstr "Campo"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_long_term
msgid "Long Term Projects"
-msgstr ""
+msgstr "Proyectos a largo plazo"
#. module: base
#: model:res.country,name:base.ve
msgid "Venezuela"
-msgstr ""
+msgstr "Venezuela"
#. module: base
#: view:res.lang:0
msgid "9. %j ==> 340"
-msgstr ""
+msgstr "9. %j ==> 340"
#. module: base
#: model:ir.module.module,description:base.module_auth_signup
@@ -5696,26 +6079,30 @@ msgid ""
"=======================\n"
" "
msgstr ""
+"\n"
+"Permite a los usuarios iniciar sesión.\n"
+"===============================\n"
+" "
#. module: base
#: model:res.country,name:base.zm
msgid "Zambia"
-msgstr ""
+msgstr "Zambia"
#. module: base
#: view:ir.actions.todo:0
msgid "Launch Configuration Wizard"
-msgstr ""
+msgstr "Iniciar asistente de configuración"
#. module: base
#: model:ir.module.module,summary:base.module_mrp
msgid "Manufacturing Orders, Bill of Materials, Routing"
-msgstr ""
+msgstr "Ordenes de Producción, Lista de Materiales, Rutas"
#. module: base
#: view:ir.module.module:0
msgid "Cancel Upgrade"
-msgstr ""
+msgstr "Cancelar actualización"
#. module: base
#: model:ir.module.module,description:base.module_report_webkit
@@ -5778,27 +6165,27 @@ msgstr ""
#. module: base
#: model:res.groups,name:base.group_sale_salesman_all_leads
msgid "See all Leads"
-msgstr ""
+msgstr "Ver todos los Conduces"
#. module: base
#: model:res.country,name:base.ci
msgid "Ivory Coast (Cote D'Ivoire)"
-msgstr ""
+msgstr "Costa de Marfil"
#. module: base
#: model:res.country,name:base.kz
msgid "Kazakhstan"
-msgstr ""
+msgstr "Kazajstán"
#. module: base
#: view:res.lang:0
msgid "%w - Weekday number [0(Sunday),6]."
-msgstr ""
+msgstr "%w - Día de la semana [0(domingo),6]."
#. module: base
#: model:ir.ui.menu,name:base.menu_ir_filters
msgid "User-defined Filters"
-msgstr ""
+msgstr "Usuario- Filtros Definidos"
#. module: base
#: field:ir.actions.act_window_close,name:0
@@ -5830,7 +6217,7 @@ msgstr ""
#: field:workflow,name:0
#: field:workflow.activity,name:0
msgid "Name"
-msgstr ""
+msgstr "Nombre"
#. module: base
#: help:ir.actions.act_window,multi:0
@@ -5838,27 +6225,29 @@ msgid ""
"If set to true, the action will not be displayed on the right toolbar of a "
"form view"
msgstr ""
+"Si se marca esta opción, la acción no se mostrará en la barra de "
+"herramientas de la derecha en la vista formulario."
#. module: base
#: model:res.country,name:base.ms
msgid "Montserrat"
-msgstr ""
+msgstr "Montserrat"
#. module: base
#: model:ir.module.module,shortdesc:base.module_decimal_precision
msgid "Decimal Precision Configuration"
-msgstr ""
+msgstr "Configuración de la precisión decimal"
#. module: base
#: model:ir.model,name:base.model_ir_actions_act_url
#: selection:ir.ui.menu,action:0
msgid "ir.actions.act_url"
-msgstr ""
+msgstr "ir.actions.act_url"
#. module: base
#: model:ir.ui.menu,name:base.menu_translation_app
msgid "Application Terms"
-msgstr ""
+msgstr "Términos de la aplicación"
#. module: base
#: model:ir.actions.act_window,help:base.open_module_tree
@@ -5879,22 +6268,22 @@ msgstr ""
#: report:ir.module.reference:0
#: field:ir.translation,module:0
msgid "Module"
-msgstr ""
+msgstr "Módulo"
#. module: base
#: selection:base.language.install,lang:0
msgid "English (UK)"
-msgstr ""
+msgstr "Inglés (Reino Unido)"
#. module: base
#: selection:base.language.install,lang:0
msgid "Japanese / 日本語"
-msgstr ""
+msgstr "Japonés / 日本語"
#. module: base
#: model:ir.model,name:base.model_base_language_import
msgid "Language Import"
-msgstr ""
+msgstr "Importación de idioma"
#. module: base
#: help:workflow.transition,act_from:0
@@ -5902,12 +6291,14 @@ msgid ""
"Source activity. When this activity is over, the condition is tested to "
"determine if we can start the ACT_TO activity."
msgstr ""
+"Actividad origen. Cuando esta actividad se ha terminado, se testea la "
+"condición para determinar si se puede empezar la actividad destino ACT_TO."
#. module: base
#: model:ir.module.category,name:base.module_category_generic_modules_accounting
#: view:res.company:0
msgid "Accounting"
-msgstr ""
+msgstr "Contabilidad"
#. module: base
#: model:ir.module.module,description:base.module_base_vat
@@ -5957,28 +6348,28 @@ msgstr ""
#. module: base
#: model:ir.model,name:base.model_ir_actions_act_window_view
msgid "ir.actions.act_window.view"
-msgstr ""
+msgstr "ir.actions.act_window.view"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web
#: report:ir.module.reference:0
msgid "Web"
-msgstr ""
+msgstr "Web"
#. module: base
#: model:ir.module.module,shortdesc:base.module_lunch
msgid "Lunch Orders"
-msgstr ""
+msgstr "Pedidos de comida"
#. module: base
#: selection:base.language.install,lang:0
msgid "English (CA)"
-msgstr ""
+msgstr "Inglés (Canadá)"
#. module: base
#: model:ir.module.category,name:base.module_category_human_resources
msgid "Human Resources"
-msgstr ""
+msgstr "Recursos humanos"
#. module: base
#: model:ir.module.module,description:base.module_l10n_syscohada
@@ -6000,118 +6391,135 @@ msgid ""
" Replica of Democratic Congo, Senegal, Chad, Togo.\n"
" "
msgstr ""
+"\n"
+"Este modulo implementa el plan de contabilidad para el área OHADA.\n"
+"===================================================================\n"
+" \n"
+"Esto le permite a cualquier empresa o asociación gestionar su contabilidad "
+"financiera.\n"
+"\n"
+"Los países que usan OHADA son los siguientes:\n"
+"----------------------------------------\n"
+" Benin, Burkina Faso, Cameroon, Central African Republic, Comoros, "
+"Congo,\n"
+" \n"
+" Ivory Coast, Gabon, Guinea, Guinea Bissau, Equatorial Guinea, Mali, "
+"Niger,\n"
+" \n"
+" Replica of Democratic Congo, Senegal, Chad, Togo.\n"
+" "
#. module: base
#: view:ir.translation:0
msgid "Comments"
-msgstr ""
+msgstr "Comentarios"
#. module: base
#: model:res.country,name:base.et
msgid "Ethiopia"
-msgstr ""
+msgstr "Etiopía"
#. module: base
#: model:ir.module.category,name:base.module_category_authentication
msgid "Authentication"
-msgstr ""
+msgstr "Autentificación"
#. module: base
#: model:res.country,name:base.sj
msgid "Svalbard and Jan Mayen Islands"
-msgstr ""
+msgstr "Islas Jan Mayen y Svalbard"
#. module: base
#: model:ir.model,name:base.model_ir_actions_wizard
#: selection:ir.ui.menu,action:0
msgid "ir.actions.wizard"
-msgstr ""
+msgstr "ir.actions.wizard"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_kanban
msgid "Base Kanban"
-msgstr ""
+msgstr "Kanban web"
#. module: base
#: view:ir.actions.act_window:0
#: view:ir.actions.report.xml:0
#: view:ir.actions.server:0
msgid "Group By"
-msgstr ""
+msgstr "Agrupar por"
#. module: base
#: view:res.config.installer:0
msgid "title"
-msgstr ""
+msgstr "título"
#. module: base
#: code:addons/base/ir/ir_fields.py:147
#, python-format
msgid "true"
-msgstr ""
+msgstr "verdadero"
#. module: base
#: model:ir.model,name:base.model_base_language_install
msgid "Install Language"
-msgstr ""
+msgstr "Instalar idioma"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_11
msgid "Services"
-msgstr ""
+msgstr "Servicios"
#. module: base
#: view:ir.translation:0
msgid "Translation"
-msgstr ""
+msgstr "Traducción"
#. module: base
#: selection:res.request,state:0
msgid "closed"
-msgstr ""
+msgstr "cerrado"
#. module: base
#: selection:base.language.export,state:0
msgid "get"
-msgstr ""
+msgstr "obtener"
#. module: base
#: help:ir.model.fields,on_delete:0
msgid "On delete property for many2one fields"
-msgstr ""
+msgstr "Propiedad de Eliminar para los campos many2one"
#. module: base
#: model:ir.module.category,name:base.module_category_accounting_and_finance
msgid "Accounting & Finance"
-msgstr ""
+msgstr "Contabilidad y finanzas"
#. module: base
#: field:ir.actions.server,write_id:0
msgid "Write Id"
-msgstr ""
+msgstr "Id escritura"
#. module: base
#: model:ir.ui.menu,name:base.menu_product
msgid "Products"
-msgstr ""
+msgstr "Productos"
#. module: base
#: model:ir.actions.act_window,name:base.act_values_form_defaults
#: model:ir.ui.menu,name:base.menu_values_form_defaults
#: view:ir.values:0
msgid "User-defined Defaults"
-msgstr ""
+msgstr "Predeterminados definidos por el usuario"
#. module: base
#: model:ir.module.category,name:base.module_category_usability
#: view:res.users:0
msgid "Usability"
-msgstr ""
+msgstr "Usabilidad"
#. module: base
#: field:ir.actions.act_window,domain:0
msgid "Domain Value"
-msgstr ""
+msgstr "Valor de dominio"
#. module: base
#: model:ir.module.module,description:base.module_association
@@ -6125,6 +6533,14 @@ msgid ""
"membership products (schemes).\n"
" "
msgstr ""
+"\n"
+"Este modulo es para configurar los módulos relacionados a una asociación.\n"
+"=========================================================================\n"
+"\n"
+"Esto instala el perfil para la asociación de gestión de eventos, "
+"registraciones, membresías, \n"
+"productos de membresías (Esquemas).\n"
+" "
#. module: base
#: model:ir.ui.menu,name:base.menu_base_config
@@ -6138,7 +6554,7 @@ msgstr ""
#: view:res.company:0
#: view:res.config:0
msgid "Configuration"
-msgstr ""
+msgstr "Configuración"
#. module: base
#: model:ir.module.module,description:base.module_edi
@@ -6157,17 +6573,30 @@ msgid ""
"documentation at http://doc.openerp.com.\n"
" "
msgstr ""
+"\n"
+"Provee una plataforma EDI común que otras aplicaciones pueden usar.\n"
+"=================================================================\n"
+"\n"
+"OpenERP especifica un formato general para intercambio de documentos de "
+"negocios entre \n"
+"diferentes sistemas, y provee mecanismos genéricos para importación y "
+"exportación de ellos.\n"
+"\n"
+"Más detalles acerca del formato EDI de OpenERP puede ser encontrado en la "
+"documentación técnica de OpenERP \n"
+"en http://doc.openerp.com\n"
+" "
#. module: base
#: code:addons/base/ir/workflow/workflow.py:99
#, python-format
msgid "Operation forbidden"
-msgstr ""
+msgstr "Operación prohibida"
#. module: base
#: view:ir.actions.server:0
msgid "SMS Configuration"
-msgstr ""
+msgstr "Configuración SMS"
#. module: base
#: help:ir.rule,active:0
@@ -6180,7 +6609,7 @@ msgstr ""
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (BO) / Español (BO)"
-msgstr ""
+msgstr "Español (BO) / Español (BO)"
#. module: base
#: model:ir.module.module,description:base.module_board
@@ -6197,12 +6626,12 @@ msgstr ""
#: model:ir.actions.act_window,name:base.ir_access_act
#: model:ir.ui.menu,name:base.menu_ir_access_act
msgid "Access Controls List"
-msgstr ""
+msgstr "Lista controles de acceso"
#. module: base
#: model:res.country,name:base.um
msgid "USA Minor Outlying Islands"
-msgstr ""
+msgstr "EE.UU. Islas Exteriores Menores"
#. module: base
#: help:ir.cron,numbercall:0
@@ -6210,37 +6639,39 @@ msgid ""
"How many times the method is called,\n"
"a negative number indicates no limit."
msgstr ""
+"Cuántas veces es llamado el método,\n"
+"Un número negativo indica que no hay límite."
#. module: base
#: field:res.partner.bank.type.field,bank_type_id:0
msgid "Bank Type"
-msgstr ""
+msgstr "Tipo de banco"
#. module: base
#: code:addons/base/res/res_users.py:103
#, python-format
msgid "The name of the group can not start with \"-\""
-msgstr ""
+msgstr "El nombre del grupo no puede empezar con \"-\""
#. module: base
#: view:ir.module.module:0
msgid "Apps"
-msgstr ""
+msgstr "Aplicaciones"
#. module: base
#: view:ir.ui.view_sc:0
msgid "Shortcut"
-msgstr ""
+msgstr "Acceso rápido"
#. module: base
#: field:ir.model.data,date_init:0
msgid "Init Date"
-msgstr ""
+msgstr "Fecha inicial"
#. module: base
#: selection:base.language.install,lang:0
msgid "Gujarati / ગુજરાતી"
-msgstr ""
+msgstr "Gujarati / ગુજરાતી"
#. module: base
#: code:addons/base/module/module.py:340
@@ -6248,53 +6679,55 @@ msgstr ""
msgid ""
"Unable to process module \"%s\" because an external dependency is not met: %s"
msgstr ""
+"Imposible procesar el modulo \"%s\" por que no se resolvió la dependencia "
+"externa: %s"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_hr_payroll
msgid "Belgium - Payroll"
-msgstr ""
+msgstr "Bélgica - Nóminas"
#. module: base
#: view:workflow.activity:0
#: field:workflow.activity,flow_start:0
msgid "Flow Start"
-msgstr ""
+msgstr "Flujo de inicio"
#. module: base
#: model:ir.model,name:base.model_res_partner_title
msgid "res.partner.title"
-msgstr ""
+msgstr "res.partner.title"
#. module: base
#: view:res.partner.bank:0
msgid "Bank Account Owner"
-msgstr ""
+msgstr "Titular de la cuenta bancaria"
#. module: base
#: model:ir.module.category,name:base.module_category_uncategorized
msgid "Uncategorized"
-msgstr ""
+msgstr "Sin categoría"
#. module: base
#: field:ir.attachment,res_name:0
#: field:ir.ui.view_sc,resource:0
msgid "Resource Name"
-msgstr ""
+msgstr "Nombre del recurso"
#. module: base
#: field:res.partner,is_company:0
msgid "Is a Company"
-msgstr ""
+msgstr "Es una Empresa"
#. module: base
#: selection:ir.cron,interval_type:0
msgid "Hours"
-msgstr ""
+msgstr "Horas"
#. module: base
#: model:res.country,name:base.gp
msgid "Guadeloupe (French)"
-msgstr ""
+msgstr "Guadalupe (Francesa)"
#. module: base
#: code:addons/base/res/res_lang.py:185
@@ -6302,7 +6735,7 @@ msgstr ""
#: code:addons/base/res/res_lang.py:189
#, python-format
msgid "User Error"
-msgstr ""
+msgstr "Error de usuario"
#. module: base
#: help:workflow.transition,signal:0
@@ -6311,6 +6744,9 @@ msgid ""
"form, signal tests the name of the pressed button. If signal is NULL, no "
"button is necessary to validate this transition."
msgstr ""
+"Cuando la operación de la transición viene de un botón pulsado en el "
+"formulario de cliente, la señal comprueba el nombre del botón pulsado. Si la "
+"señal es NULL, ningún botón es necesario para validar esta transición."
#. module: base
#: model:ir.module.module,description:base.module_web_kanban
@@ -6320,23 +6756,28 @@ msgid ""
"========================\n"
"\n"
msgstr ""
+"\n"
+"Vista Web OpenERP kanban.\n"
+"============================\n"
+"\n"
#. module: base
#: code:addons/base/ir/ir_fields.py:183
#, python-format
msgid "'%s' does not seem to be a number for field '%%(field)s'"
-msgstr ""
+msgstr "'%s' no parece haber un número para el campo '%%(field)s'"
#. module: base
#: help:res.country.state,name:0
msgid ""
"Administrative divisions of a country. E.g. Fed. State, Departement, Canton"
msgstr ""
+"División administrativa de países. Por Ejemplo. Estado, Departamento, Canton"
#. module: base
#: view:res.partner.bank:0
msgid "My Banks"
-msgstr ""
+msgstr "Bancos"
#. module: base
#: model:ir.module.module,description:base.module_hr_recruitment
@@ -6357,16 +6798,31 @@ msgid ""
"You can define the different phases of interviews and easily rate the "
"applicant from the kanban view.\n"
msgstr ""
+"\n"
+"Gestiona las posiciones de trabajo y los procesos de reclutamiento\n"
+"========================================================\n"
+"\n"
+"Esta aplicación permite fácilmente mantener el rastreo de sus trabajos, "
+"vacantes, aplicaciones, entrevistas...\n"
+"\n"
+"Se integra con la pasarela de correo para recuperar automáticamente el "
+"correo electrónico enviado a en la lista de "
+"aplicaciones. También integrada con el administrador de documentos del "
+"sistema para almacenar y buscar en la base de CV y buscar los candidatos "
+"que usted esta buscando. Similarmente, esta integrado con el modulo de "
+"encuestas que te permite definir entrevistas para diferentes trabajos.\n"
+"Usted puede definir las diferentes fases de entrevistas y rango de "
+"aplicaciones de la vista kanban.\n"
#. module: base
#: sql_constraint:ir.filters:0
msgid "Filter names must be unique"
-msgstr ""
+msgstr "Los nombres de los filtros deben ser unicos"
#. module: base
#: help:multi_company.default,object_id:0
msgid "Object affected by this rule"
-msgstr ""
+msgstr "Objeto afectado por esta regla"
#. module: base
#: selection:ir.actions.act_window,target:0
@@ -6376,22 +6832,22 @@ msgstr ""
#. module: base
#: field:ir.filters,is_default:0
msgid "Default filter"
-msgstr ""
+msgstr "Filtro por Defecto"
#. module: base
#: report:ir.module.reference:0
msgid "Directory"
-msgstr ""
+msgstr "Directorio"
#. module: base
#: field:wizard.ir.model.menu.create,name:0
msgid "Menu Name"
-msgstr ""
+msgstr "Nombre menú"
#. module: base
#: field:ir.values,key2:0
msgid "Qualifier"
-msgstr ""
+msgstr "Calificador"
#. module: base
#: model:ir.module.module,description:base.module_l10n_be_coda
@@ -6493,34 +6949,34 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_reset_password
msgid "Reset Password"
-msgstr ""
+msgstr "Restablecer contraseña"
#. module: base
#: view:ir.attachment:0
msgid "Month"
-msgstr ""
+msgstr "Mes"
#. module: base
#: model:res.country,name:base.my
msgid "Malaysia"
-msgstr ""
+msgstr "Malasia"
#. module: base
#: code:addons/base/ir/ir_sequence.py:105
#: code:addons/base/ir/ir_sequence.py:131
#, python-format
msgid "Increment number must not be zero."
-msgstr ""
+msgstr "El incremento de números debe ser cero."
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_cancel
msgid "Cancel Journal Entries"
-msgstr ""
+msgstr "Cancelar asientos"
#. module: base
#: field:res.partner,tz_offset:0
msgid "Timezone offset"
-msgstr ""
+msgstr "Ajuste de Zona Horaria"
#. module: base
#: model:ir.module.module,description:base.module_marketing_campaign
@@ -6559,6 +7015,41 @@ msgid ""
" CRM Leads.\n"
" "
msgstr ""
+"\n"
+"Este modulo provee conduces automáticos a través de campañas de marketing "
+"(las campañas de hecho pueden ser definidas en cualquier recurso, no solo "
+"los conduces CRM).\n"
+"============================================================================="
+"=========================\n"
+"\n"
+"Las campañas son dinámicas y multi-canales. Los procesos son como sigue:\n"
+"--------------------------------------------------------------------------\n"
+" * Diseñar campañas de marketing como flujos de trabajos, incluyendo "
+"plantillas de envío\n"
+" de email, informes a imprimir y enviar por email, acciones "
+"personalizadas\n"
+" * Definir segmentos de entrada que seleccionarán los artículos que "
+"deberán ser incluidos\n"
+" en la campaña (Por Ejemplo: conduces desde ciertos países.)\n"
+" * Correr su campaña en modo simulación para probar el tiempo real o "
+"acelerado,\n"
+" y lo refinara\n"
+" * Usted también iniciará la campaña real en modo manual, donde cada "
+"acción\n"
+" requiere validación manual\n"
+" * Finalmente lanzar su compañía viva, y observar las estadísticas como "
+"las\n"
+" campañas hacen todo totalmente automáticamente.\n"
+"\n"
+"Mientras la campaña corre, usted puede por supuesto continuar de refinar los "
+"parámetros,\n"
+"segmentos de entradas, flujos de trabajo.\n"
+"\n"
+"**Notas:** Si usted necesita datos de demostración, usted puede instalar el "
+"modulo marketing_campaing_crm_demo\n"
+" pero, este también instalará la aplicación CRM tal como depende de los "
+"conduces CRM.\n"
+" "
#. module: base
#: help:ir.mail_server,smtp_debug:0
@@ -6566,6 +7057,9 @@ msgid ""
"If enabled, the full output of SMTP sessions will be written to the server "
"log at DEBUG level(this is very verbose and may include confidential info!)"
msgstr ""
+"Si está habilitado, la salida completa de las sesiones SMTP serán escritas "
+"en el registro del servidor en el nivel DEBUG (¿esto es muy detallado y "
+"puede incluir información confidencial!"
#. module: base
#: model:ir.module.module,description:base.module_sale_margin
@@ -6578,11 +7072,18 @@ msgid ""
"Price and Cost Price.\n"
" "
msgstr ""
+"\n"
+"Este modulo agrega los \"Margenes\" en ordenes de ventas.\n"
+"===================================================\n"
+"\n"
+"Esto da la rentabilidad de calcular la diferencia entre\n"
+"el Precio de Unidad y el Precio de Costo.\n"
+" "
#. module: base
#: selection:ir.actions.todo,type:0
msgid "Launch Automatically"
-msgstr ""
+msgstr "Iniciar automáticamente"
#. module: base
#: help:ir.model.fields,translate:0
@@ -6590,21 +7091,24 @@ msgid ""
"Whether values for this field can be translated (enables the translation "
"mechanism for that field)"
msgstr ""
+"Si los valores de este campo pueden ser traducidos (activa el mecanismo de "
+"traducción para este campo)."
#. module: base
#: selection:base.language.install,lang:0
msgid "Indonesian / Bahasa Indonesia"
-msgstr ""
+msgstr "Indonesio / Bahasa Indonesia"
#. module: base
#: model:res.country,name:base.cv
msgid "Cape Verde"
-msgstr ""
+msgstr "Cabo Verde"
#. module: base
#: model:res.groups,comment:base.group_sale_salesman
msgid "the user will have access to his own data in the sales application."
msgstr ""
+"El usuario tendrá acceso a su propia data en la aplicación de ventas."
#. module: base
#: model:res.groups,comment:base.group_user
@@ -6612,12 +7116,15 @@ msgid ""
"the user will be able to manage his own human resources stuff (leave "
"request, timesheets, ...), if he is linked to an employee in the system."
msgstr ""
+"el usuario podrá gestionar sus propias cosas de recursos humanos "
+"(solicitudes de salida, hojas por horas de servicios, ...), si esta enlazado "
+"a un empleado del sistema."
#. module: base
#: code:addons/orm.py:2247
#, python-format
msgid "There is no view of type '%s' defined for the structure!"
-msgstr ""
+msgstr "¡No existe una vista del tipo '%s' definida para la estructura!"
#. module: base
#: help:ir.values,key:0
@@ -6625,58 +7132,60 @@ msgid ""
"- Action: an action attached to one slot of the given model\n"
"- Default: a default value for a model field"
msgstr ""
+"- Acción: una acción adjunta al modelo dado\n"
+"- Por defecto: un valor por defecto para el campo del modelo"
#. module: base
#: field:base.module.update,add:0
msgid "Number of modules added"
-msgstr ""
+msgstr "Número de módulos añadidos"
#. module: base
#: view:res.currency:0
msgid "Price Accuracy"
-msgstr ""
+msgstr "Precisión del precio"
#. module: base
#: selection:base.language.install,lang:0
msgid "Latvian / latviešu valoda"
-msgstr ""
+msgstr "Letón / latviešu valoda"
#. module: base
#: selection:base.language.install,lang:0
msgid "French / Français"
-msgstr ""
+msgstr "Francés / Français"
#. module: base
#: view:ir.module.module:0
msgid "Created Menus"
-msgstr ""
+msgstr "Menús creados"
#. module: base
#: code:addons/base/module/module.py:475
#: view:ir.module.module:0
#, python-format
msgid "Uninstall"
-msgstr ""
+msgstr "Desinstalar"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_budget
msgid "Budgets Management"
-msgstr ""
+msgstr "Gestión de presupuestos"
#. module: base
#: field:workflow.triggers,workitem_id:0
msgid "Workitem"
-msgstr ""
+msgstr "Elemento de trabajo"
#. module: base
#: model:ir.module.module,shortdesc:base.module_anonymization
msgid "Database Anonymization"
-msgstr ""
+msgstr "Anonimización de la base de datos"
#. module: base
#: selection:ir.mail_server,smtp_encryption:0
msgid "SSL/TLS"
-msgstr ""
+msgstr "SSL/TLS"
#. module: base
#: view:ir.actions.todo:0
@@ -6691,27 +7200,27 @@ msgstr ""
#: field:ir.ui.menu,action:0
#: selection:ir.values,key:0
msgid "Action"
-msgstr ""
+msgstr "Acción"
#. module: base
#: view:ir.actions.server:0
msgid "Email Configuration"
-msgstr ""
+msgstr "Configuración Email"
#. module: base
#: model:ir.model,name:base.model_ir_cron
msgid "ir.cron"
-msgstr ""
+msgstr "ir.cron"
#. module: base
#: model:res.country,name:base.cw
msgid "Curaçao"
-msgstr ""
+msgstr "Curaçao"
#. module: base
#: view:ir.sequence:0
msgid "Current Year without Century: %(y)s"
-msgstr ""
+msgstr "Año actual sin centuria: %(y)s"
#. module: base
#: help:ir.actions.client,tag:0
@@ -6719,16 +7228,19 @@ msgid ""
"An arbitrary string, interpreted by the client according to its own needs "
"and wishes. There is no central tag repository across clients."
msgstr ""
+"Una cadena arbitraria, interpretada por el cliente de acuerdo con sus "
+"propias necesidades y deseos. No hay repositorio central de etiqueta a "
+"través de clientes."
#. module: base
#: sql_constraint:ir.rule:0
msgid "Rule must have at least one checked access right !"
-msgstr ""
+msgstr "¡La regla debe tener por lo menos un derecho de acceso marcado!"
#. module: base
#: field:res.partner.bank.type,format_layout:0
msgid "Format Layout"
-msgstr ""
+msgstr "Formato de presentación"
#. module: base
#: model:ir.module.module,description:base.module_document_ftp
@@ -6743,27 +7255,34 @@ msgid ""
"using the\n"
"FTP client.\n"
msgstr ""
+"\n"
+"Módulo de soporte del interfaz FTP para el sistema de gestión de "
+"documentos.\n"
+"================================================================\n"
+"\n"
+"Este módulo permite acceder a los documentos, además de a través de OpenERP, "
+"a través de un cliente FTP.\n"
#. module: base
#: field:ir.model.fields,size:0
msgid "Size"
-msgstr ""
+msgstr "Tamaño"
#. module: base
#: model:ir.module.module,shortdesc:base.module_audittrail
msgid "Audit Trail"
-msgstr ""
+msgstr "Rastro de auditoría"
#. module: base
#: code:addons/base/ir/ir_fields.py:265
#, python-format
msgid "Value '%s' not found in selection field '%%(field)s'"
-msgstr ""
+msgstr "Valor '%s' no encontrado en campo seleccionado '%%(field)s'"
#. module: base
#: model:res.country,name:base.sd
msgid "Sudan"
-msgstr ""
+msgstr "Sudán"
#. module: base
#: model:ir.actions.act_window,name:base.action_currency_rate_type_form
@@ -6771,7 +7290,7 @@ msgstr ""
#: field:res.currency.rate,currency_rate_type_id:0
#: view:res.currency.rate.type:0
msgid "Currency Rate Type"
-msgstr ""
+msgstr "Tipo de tasa de cambio"
#. module: base
#: model:ir.module.module,description:base.module_l10n_fr
@@ -6813,18 +7332,18 @@ msgstr ""
#. module: base
#: model:res.country,name:base.fm
msgid "Micronesia"
-msgstr ""
+msgstr "Micronesia"
#. module: base
#: field:ir.module.module,menus_by_module:0
#: view:res.groups:0
msgid "Menus"
-msgstr ""
+msgstr "Menús"
#. module: base
#: selection:ir.actions.todo,type:0
msgid "Launch Manually Once"
-msgstr ""
+msgstr "Iniciar manualmente una vez"
#. module: base
#: view:workflow:0
@@ -6834,44 +7353,44 @@ msgstr ""
#: field:workflow.transition,wkf_id:0
#: field:workflow.workitem,wkf_id:0
msgid "Workflow"
-msgstr ""
+msgstr "Flujo de trabajo"
#. module: base
#: selection:base.language.install,lang:0
msgid "Serbian (Latin) / srpski"
-msgstr ""
+msgstr "Serbio (Latín) / srpski"
#. module: base
#: model:res.country,name:base.il
msgid "Israel"
-msgstr ""
+msgstr "Israel"
#. module: base
#: code:addons/base/res/res_config.py:444
#, python-format
msgid "Cannot duplicate configuration!"
-msgstr ""
+msgstr "No se puede configurar la configuración!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_syscohada
msgid "OHADA - Accounting"
-msgstr ""
+msgstr "OHADA - Contabilidad"
#. module: base
#: help:res.bank,bic:0
msgid "Sometimes called BIC or Swift."
-msgstr ""
+msgstr "Algunas veces llamado BIC o Swift"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in
msgid "Indian - Accounting"
-msgstr ""
+msgstr "Contabilidad - India"
#. module: base
#: field:res.partner,mobile:0
#: field:res.partner.address,mobile:0
msgid "Mobile"
-msgstr ""
+msgstr "Móvil"
#. module: base
#: model:ir.module.module,description:base.module_l10n_mx
@@ -6883,11 +7402,17 @@ msgid ""
"Mexican accounting chart and localization.\n"
" "
msgstr ""
+"\n"
+"Módulo para gestionar el plan de cuentas para México en OpenERP\n"
+"=====================================================\n"
+"\n"
+"Plan de cuentas y localización mexicanos.\n"
+" "
#. module: base
#: field:res.lang,time_format:0
msgid "Time Format"
-msgstr ""
+msgstr "Formato de hora"
#. module: base
#: field:res.company,rml_header3:0
@@ -6897,22 +7422,22 @@ msgstr ""
#. module: base
#: model:res.groups,name:base.group_partner_manager
msgid "Contact Creation"
-msgstr ""
+msgstr "Creación de Contacto"
#. module: base
#: view:ir.module.module:0
msgid "Defined Reports"
-msgstr ""
+msgstr "Informes definidos"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_gtd
msgid "Todo Lists"
-msgstr ""
+msgstr "Lista de tareas pendientes"
#. module: base
#: view:ir.actions.report.xml:0
msgid "Report xml"
-msgstr ""
+msgstr "Informe XML"
#. module: base
#: model:ir.actions.act_window,name:base.action_module_open_categ
@@ -6921,7 +7446,7 @@ msgstr ""
#: model:ir.ui.menu,name:base.menu_management
#: model:ir.ui.menu,name:base.menu_module_tree
msgid "Modules"
-msgstr ""
+msgstr "Módulos"
#. module: base
#: view:workflow.activity:0
@@ -6929,7 +7454,7 @@ msgstr ""
#: field:workflow.activity,subflow_id:0
#: field:workflow.workitem,subflow_id:0
msgid "Subflow"
-msgstr ""
+msgstr "Subflujo"
#. module: base
#: model:ir.actions.act_window,name:base.action_res_bank_form
@@ -6937,7 +7462,7 @@ msgstr ""
#: view:res.bank:0
#: field:res.partner,bank_ids:0
msgid "Banks"
-msgstr ""
+msgstr "Bancos"
#. module: base
#: model:ir.module.module,description:base.module_web
@@ -6949,122 +7474,129 @@ msgid ""
"This module provides the core of the OpenERP Web Client.\n"
" "
msgstr ""
+"\n"
+"Modulo principal OpenERP Web.\n"
+"===========================\n"
+"\n"
+"Este modulo provee núcleo del Cliente Web de OpenERP.\n"
+" "
#. module: base
#: view:ir.sequence:0
msgid "Week of the Year: %(woy)s"
-msgstr ""
+msgstr "Semana del Año: %(woy)s"
#. module: base
#: field:res.users,id:0
msgid "ID"
-msgstr ""
+msgstr "ID (identificación)"
#. module: base
#: field:ir.cron,doall:0
msgid "Repeat Missed"
-msgstr ""
+msgstr "Repetir perdidos"
#. module: base
#: code:addons/base/module/wizard/base_module_import.py:67
#, python-format
msgid "Can not create the module file: %s !"
-msgstr ""
+msgstr "¡No se puede crear el archivo de módulo: %s!"
#. module: base
#: field:ir.server.object.lines,server_id:0
msgid "Object Mapping"
-msgstr ""
+msgstr "Mapeado de objetos"
#. module: base
#: field:ir.module.category,xml_id:0
#: field:ir.ui.view,xml_id:0
msgid "External ID"
-msgstr ""
+msgstr "ID externo"
#. module: base
#: help:res.currency.rate,rate:0
msgid "The rate of the currency to the currency of rate 1"
-msgstr ""
+msgstr "La tasa de cambio de la moneda respecto a la moneda de tasa 1"
#. module: base
#: model:res.country,name:base.uk
msgid "United Kingdom"
-msgstr ""
+msgstr "Reino Unido"
#. module: base
#: view:res.config:0
msgid "res_config_contents"
-msgstr ""
+msgstr "res_config_contents"
#. module: base
#: help:res.partner.category,active:0
msgid "The active field allows you to hide the category without removing it."
msgstr ""
+"El campo activo le permite ocultar la categoría sin tener que eliminarla."
#. module: base
#: report:ir.module.reference:0
msgid "Object:"
-msgstr ""
+msgstr "Objeto:"
#. module: base
#: model:res.country,name:base.bw
msgid "Botswana"
-msgstr ""
+msgstr "Botsuana"
#. module: base
#: view:res.partner.title:0
msgid "Partner Titles"
-msgstr ""
+msgstr "Títulos de empresa"
#. module: base
#: code:addons/base/ir/ir_fields.py:197
#: code:addons/base/ir/ir_fields.py:228
#, python-format
msgid "Use the format '%s'"
-msgstr ""
+msgstr "Use el formato '%s'"
#. module: base
#: help:ir.actions.act_window,auto_refresh:0
msgid "Add an auto-refresh on the view"
-msgstr ""
+msgstr "Añadir una actualización automática a la vista"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_profiling
msgid "Customer Profiling"
-msgstr ""
+msgstr "Perfiles de clientes"
#. module: base
#: selection:ir.cron,interval_type:0
msgid "Work Days"
-msgstr ""
+msgstr "Días laborables"
#. module: base
#: model:ir.module.module,shortdesc:base.module_multi_company
msgid "Multi-Company"
-msgstr ""
+msgstr "Multi-compañía"
#. module: base
#: model:ir.actions.act_window,name:base.action_workflow_workitem_form
#: model:ir.ui.menu,name:base.menu_workflow_workitem
msgid "Workitems"
-msgstr ""
+msgstr "Elementos de trabajo"
#. module: base
#: code:addons/base/res/res_bank.py:195
#, python-format
msgid "Invalid Bank Account Type Name format."
-msgstr ""
+msgstr "Tipo de formato del nombre invalido en Cuenta de Banco."
#. module: base
#: view:ir.filters:0
msgid "Filters visible only for one user"
-msgstr ""
+msgstr "Filtros visibles solo para un usuario"
#. module: base
#: model:ir.model,name:base.model_ir_attachment
msgid "ir.attachment"
-msgstr ""
+msgstr "ir.attachment"
#. module: base
#: code:addons/orm.py:4315
@@ -7073,11 +7605,14 @@ msgid ""
"You cannot perform this operation. New Record Creation is not allowed for "
"this object as this object is for reporting purpose."
msgstr ""
+"No puede realizar esta operación. La creación de nuevos registros no está "
+"permitida para este objeto ya que este objeto tiene como finalidad la "
+"generación de informes."
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_anonymous
msgid "Anonymous"
-msgstr ""
+msgstr "Anónimo"
#. module: base
#: model:ir.module.module,description:base.module_base_import
@@ -7107,12 +7642,12 @@ msgstr ""
#. module: base
#: selection:res.currency,position:0
msgid "After Amount"
-msgstr ""
+msgstr "Después del importe"
#. module: base
#: selection:base.language.install,lang:0
msgid "Lithuanian / Lietuvių kalba"
-msgstr ""
+msgstr "Lituano / Lietuvių kalba"
#. module: base
#: help:ir.actions.server,record_id:0
@@ -7120,6 +7655,9 @@ msgid ""
"Provide the field name where the record id is stored after the create "
"operations. If it is empty, you can not track the new record."
msgstr ""
+"Indique el nombre de campo donde se almacena el id del registro después de "
+"las operaciones de creación. Si está vacío, no podrá realizar un seguimiento "
+"del registro nuevo."
#. module: base
#: model:res.groups,comment:base.group_hr_user
@@ -7129,17 +7667,17 @@ msgstr ""
#. module: base
#: field:ir.ui.menu,needaction_enabled:0
msgid "Target model uses the need action mechanism"
-msgstr ""
+msgstr "El objetivo modelo usa el mecanismo de acción necesitado"
#. module: base
#: help:ir.model.fields,relation:0
msgid "For relationship fields, the technical name of the target model"
-msgstr ""
+msgstr "Para campos de relación, el nombre técnico del modelo destino."
#. module: base
#: view:res.lang:0
msgid "%S - Seconds [00,61]."
-msgstr ""
+msgstr "%S - Segundos [00,61]."
#. module: base
#: help:base.language.import,overwrite:0
@@ -7147,16 +7685,18 @@ msgid ""
"If you enable this option, existing translations (including custom ones) "
"will be overwritten and replaced by those in this file"
msgstr ""
+"Si habilita esta opción, las traducciones existentes (incluidas las "
+"personalizadas) serán sobreescritas y reemplazadas por las de este archivo"
#. module: base
#: field:ir.ui.view,inherit_id:0
msgid "Inherited View"
-msgstr ""
+msgstr "Vista Heredada"
#. module: base
#: view:ir.translation:0
msgid "Source Term"
-msgstr ""
+msgstr "Término original"
#. module: base
#: model:ir.module.category,name:base.module_category_project_management
@@ -7164,35 +7704,35 @@ msgstr ""
#: model:ir.ui.menu,name:base.menu_project_config
#: model:ir.ui.menu,name:base.menu_project_report
msgid "Project"
-msgstr ""
+msgstr "Proyecto"
#. module: base
#: field:ir.ui.menu,web_icon_hover_data:0
msgid "Web Icon Image (hover)"
-msgstr ""
+msgstr "Imagen icono web (inmóvil)"
#. module: base
#: view:base.module.import:0
msgid "Module file successfully imported!"
-msgstr ""
+msgstr "¡Archivo de módulo importado con éxito!"
#. module: base
#: model:ir.actions.act_window,name:base.action_model_constraint
#: view:ir.model.constraint:0
#: model:ir.ui.menu,name:base.ir_model_constraint_menu
msgid "Model Constraints"
-msgstr ""
+msgstr "Modelo de Restrinciones"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_timesheet
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_sheet
msgid "Timesheets"
-msgstr ""
+msgstr "Hojas de servicios"
#. module: base
#: help:ir.values,company_id:0
msgid "If set, action binding only applies for this company"
-msgstr ""
+msgstr "Si se establece, la acción vinculada sólo se aplica a esta compañía"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cn
@@ -7207,7 +7747,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.lc
msgid "Saint Lucia"
-msgstr ""
+msgstr "Santa Lucía"
#. module: base
#: help:res.users,new_password:0
@@ -7216,23 +7756,26 @@ msgid ""
"password, otherwise leave empty. After a change of password, the user has to "
"login again."
msgstr ""
+"Especifique un valor sólo cuando esté creando un usuario o si está cambiando "
+"la contraseña del mismo. En otro caso déjelo vacío. Después de un cambio de "
+"contraseña, el usuario debe iniciar sesión de nuevo."
#. module: base
#: model:res.country,name:base.so
msgid "Somalia"
-msgstr ""
+msgstr "Somalia"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_doctor
msgid "Dr."
-msgstr ""
+msgstr "Dr."
#. module: base
#: model:res.groups,name:base.group_user
#: field:res.partner,employee:0
#: model:res.partner.category,name:base.res_partner_category_3
msgid "Employee"
-msgstr ""
+msgstr "Empleado"
#. module: base
#: model:ir.module.module,description:base.module_project_issue
@@ -7251,7 +7794,7 @@ msgstr ""
#. module: base
#: field:ir.model.access,perm_create:0
msgid "Create Access"
-msgstr ""
+msgstr "Permiso para crear"
#. module: base
#: model:ir.module.module,description:base.module_hr_timesheet
@@ -7273,6 +7816,20 @@ msgid ""
"up a management by affair.\n"
" "
msgstr ""
+"\n"
+"Este modulo implementa un sistema de hojas por horas de servicio.\n"
+"=============================================================\n"
+"\n"
+"Cada empleado puede codificar y rastrear el tiempo invertido en sus "
+"diferentes proyectos.\n"
+"Un proyecto es una cuenta analítica y el tiempo invertido en un proyecto "
+"genera costos\n"
+"sobre la cuenta analítica.\n"
+"\n"
+"Esto esta completamente integrado con el costo del modulo Contabilidad. Esto "
+"les permite establecer\n"
+"un sistema de gestión de aventuras.\n"
+" "
#. module: base
#: field:res.bank,state:0
@@ -7280,53 +7837,53 @@ msgstr ""
#: field:res.partner.address,state_id:0
#: field:res.partner.bank,state_id:0
msgid "Fed. State"
-msgstr ""
+msgstr "Estado Federal"
#. module: base
#: field:ir.actions.server,copy_object:0
msgid "Copy Of"
-msgstr ""
+msgstr "Copia de"
#. module: base
#: field:ir.model.data,display_name:0
msgid "Record Name"
-msgstr ""
+msgstr "Grabar Nombre"
#. module: base
#: model:ir.model,name:base.model_ir_actions_client
#: selection:ir.ui.menu,action:0
msgid "ir.actions.client"
-msgstr ""
+msgstr "ir.actions.client"
#. module: base
#: model:res.country,name:base.io
msgid "British Indian Ocean Territory"
-msgstr ""
+msgstr "Territorio Británico del Océano Índico"
#. module: base
#: model:ir.actions.server,name:base.action_server_module_immediate_install
msgid "Module Immediate Install"
-msgstr ""
+msgstr "Instalar modulo inmediato"
#. module: base
#: view:ir.actions.server:0
msgid "Field Mapping"
-msgstr ""
+msgstr "Mapeo de campo"
#. module: base
#: field:ir.model.fields,ttype:0
msgid "Field Type"
-msgstr ""
+msgstr "Tipo de campo"
#. module: base
#: field:res.country.state,code:0
msgid "State Code"
-msgstr ""
+msgstr "Codigo de Estado"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_multilang
msgid "Multi Language Chart of Accounts"
-msgstr ""
+msgstr "Plan de cuentas multi lenguaje"
#. module: base
#: model:ir.module.module,description:base.module_l10n_gt
@@ -7344,34 +7901,34 @@ msgstr ""
#. module: base
#: selection:res.lang,direction:0
msgid "Left-to-Right"
-msgstr ""
+msgstr "De izquierda a derecha"
#. module: base
#: field:ir.model.fields,translate:0
#: view:res.lang:0
#: field:res.lang,translatable:0
msgid "Translatable"
-msgstr ""
+msgstr "Traducible"
#. module: base
#: help:base.language.import,code:0
msgid "ISO Language and Country code, e.g. en_US"
-msgstr ""
+msgstr "Idioma ISO y Código de País, Ejemplo: en_US"
#. module: base
#: model:res.country,name:base.vn
msgid "Vietnam"
-msgstr ""
+msgstr "Vietnam"
#. module: base
#: field:res.users,signature:0
msgid "Signature"
-msgstr ""
+msgstr "Firma"
#. module: base
#: field:res.partner.category,complete_name:0
msgid "Full Name"
-msgstr ""
+msgstr "Nombre completo"
#. module: base
#: view:ir.attachment:0
@@ -7382,17 +7939,17 @@ msgstr ""
#: code:addons/base/module/module.py:284
#, python-format
msgid "The name of the module must be unique !"
-msgstr ""
+msgstr "¡El nombre del módulo debe ser único!"
#. module: base
#: view:ir.property:0
msgid "Parameters that are used by all resources."
-msgstr ""
+msgstr "Parámetros usados por todos los recursos."
#. module: base
#: model:res.country,name:base.mz
msgid "Mozambique"
-msgstr ""
+msgstr "Mozambique"
#. module: base
#: help:ir.values,action_id:0
@@ -7400,22 +7957,24 @@ msgid ""
"Action bound to this entry - helper field for binding an action, will "
"automatically set the correct reference"
msgstr ""
+"Acción vinculada a esta entrada - campo accesorio que permite enlazar una "
+"acción, que establecerá automáticamente la referencia correcta"
#. module: base
#: model:ir.ui.menu,name:base.menu_project_long_term
msgid "Long Term Planning"
-msgstr ""
+msgstr "Planificación a largo plazo"
#. module: base
#: field:ir.actions.server,message:0
msgid "Message"
-msgstr ""
+msgstr "Mensaje"
#. module: base
#: field:ir.actions.act_window.view,multi:0
#: field:ir.actions.report.xml,multi:0
msgid "On Multiple Doc."
-msgstr ""
+msgstr "En múltiples doc."
#. module: base
#: view:base.language.export:0
@@ -7431,17 +7990,17 @@ msgstr ""
#: view:res.users:0
#: view:wizard.ir.model.menu.create:0
msgid "or"
-msgstr ""
+msgstr "ó"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_accountant
msgid "Accounting and Finance"
-msgstr ""
+msgstr "Contabilidad y finanzas"
#. module: base
#: view:ir.module.module:0
msgid "Upgrade"
-msgstr ""
+msgstr "Actualizar"
#. module: base
#: model:ir.module.module,description:base.module_base_action_rule
@@ -7463,54 +8022,54 @@ msgstr ""
#. module: base
#: field:res.partner,function:0
msgid "Job Position"
-msgstr ""
+msgstr "Posición de Trabajo"
#. module: base
#: view:res.partner:0
#: field:res.partner,child_ids:0
msgid "Contacts"
-msgstr ""
+msgstr "Contactos"
#. module: base
#: model:res.country,name:base.fo
msgid "Faroe Islands"
-msgstr ""
+msgstr "Islas Feroe"
#. module: base
#: field:ir.mail_server,smtp_encryption:0
msgid "Connection Security"
-msgstr ""
+msgstr "Seguridad de la conexión"
#. module: base
#: code:addons/base/ir/ir_actions.py:607
#, python-format
msgid "Please specify an action to launch !"
-msgstr ""
+msgstr "¡ Por favor, indique una acción a ejecutar !"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ec
msgid "Ecuador - Accounting"
-msgstr ""
+msgstr "Ecuador - Contabilidad"
#. module: base
#: field:res.partner.category,name:0
msgid "Category Name"
-msgstr ""
+msgstr "Nombre de categoría"
#. module: base
#: model:res.country,name:base.mp
msgid "Northern Mariana Islands"
-msgstr ""
+msgstr "Islas Marianas del Norte"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_hn
msgid "Honduras - Accounting"
-msgstr ""
+msgstr "Honduras - Contabilidad"
#. module: base
#: model:ir.module.module,shortdesc:base.module_report_intrastat
msgid "Intrastat Reporting"
-msgstr ""
+msgstr "Informe Intrastat"
#. module: base
#: code:addons/base/res/res_users.py:135
@@ -7519,6 +8078,8 @@ msgid ""
"Please use the change password wizard (in User Preferences or User menu) to "
"change your own password."
msgstr ""
+"Utilice el asistente de cambio de contraseña (en Preferencias de usuario o "
+"menú Usuario) para cambiar su propia contraseña."
#. module: base
#: model:ir.module.module,description:base.module_project_long_term
@@ -7553,12 +8114,12 @@ msgstr ""
#: code:addons/orm.py:2021
#, python-format
msgid "Insufficient fields for Calendar View!"
-msgstr ""
+msgstr "¡Insuficientes campos para la vista calendario!"
#. module: base
#: selection:ir.property,type:0
msgid "Integer"
-msgstr ""
+msgstr "Entero"
#. module: base
#: help:ir.actions.report.xml,report_rml:0
@@ -7566,26 +8127,28 @@ msgid ""
"The path to the main report file (depending on Report Type) or NULL if the "
"content is in another data field"
msgstr ""
+"La ruta al archivo principal del informe (dependiendo del tipo de informe) o "
+"NULL si el contenido está en otro campo de datos."
#. module: base
#: model:res.partner.category,name:base.res_partner_category_14
msgid "Manufacturer"
-msgstr ""
+msgstr "Fabricante"
#. module: base
#: help:res.users,company_id:0
msgid "The company this user is currently working for."
-msgstr ""
+msgstr "La compañía para la cual trabaja este usuario actualmente."
#. module: base
#: model:ir.model,name:base.model_wizard_ir_model_menu_create
msgid "wizard.ir.model.menu.create"
-msgstr ""
+msgstr "wizard.ir.model.menu.create"
#. module: base
#: view:workflow.transition:0
msgid "Transition"
-msgstr ""
+msgstr "Transición"
#. module: base
#: field:ir.cron,active:0
@@ -7603,17 +8166,17 @@ msgstr ""
#: view:workflow.instance:0
#: view:workflow.workitem:0
msgid "Active"
-msgstr ""
+msgstr "Activo"
#. module: base
#: model:res.country,name:base.na
msgid "Namibia"
-msgstr ""
+msgstr "Namibia"
#. module: base
#: field:res.partner.category,child_ids:0
msgid "Child Categories"
-msgstr ""
+msgstr "Categorías hijas"
#. module: base
#: code:addons/base/ir/ir_actions.py:607
@@ -7642,7 +8205,7 @@ msgstr ""
#: code:addons/orm.py:3929
#, python-format
msgid "Error"
-msgstr ""
+msgstr "Error"
#. module: base
#: help:res.partner,tz:0
@@ -7656,22 +8219,22 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_analytic_default
msgid "Account Analytic Defaults"
-msgstr ""
+msgstr "Valores por defecto en la contabilidad analítica"
#. module: base
#: selection:ir.ui.view,type:0
msgid "mdx"
-msgstr ""
+msgstr "mdx"
#. module: base
#: view:ir.cron:0
msgid "Scheduled Action"
-msgstr ""
+msgstr "Acciones Planificadas"
#. module: base
#: model:res.country,name:base.bi
msgid "Burundi"
-msgstr ""
+msgstr "Burundi"
#. module: base
#: view:base.language.export:0
@@ -7679,22 +8242,22 @@ msgstr ""
#: view:base.module.configuration:0
#: view:base.module.update:0
msgid "Close"
-msgstr ""
+msgstr "Cerrar"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (MX) / Español (MX)"
-msgstr ""
+msgstr "Español (MX) / Español (MX)"
#. module: base
#: view:ir.actions.todo:0
msgid "Wizards to be Launched"
-msgstr ""
+msgstr "Asistentes pendientes de lanzamiento"
#. module: base
#: model:res.country,name:base.bt
msgid "Bhutan"
-msgstr ""
+msgstr "Bhután"
#. module: base
#: model:ir.module.module,description:base.module_portal_event
@@ -7710,48 +8273,48 @@ msgstr ""
#. module: base
#: help:ir.sequence,number_next:0
msgid "Next number of this sequence"
-msgstr ""
+msgstr "Número siguiente de esta secuencia."
#. module: base
#: view:res.partner:0
msgid "at"
-msgstr ""
+msgstr "en"
#. module: base
#: view:ir.rule:0
msgid "Rule Definition (Domain Filter)"
-msgstr ""
+msgstr "Definición de Regla (Filtro de Dominio)"
#. module: base
#: selection:ir.actions.act_url,target:0
msgid "This Window"
-msgstr ""
+msgstr "Esta ventana"
#. module: base
#: field:base.language.export,format:0
msgid "File Format"
-msgstr ""
+msgstr "Formato del archivo"
#. module: base
#: field:res.lang,iso_code:0
msgid "ISO code"
-msgstr ""
+msgstr "Código ISO"
#. module: base
#: model:ir.module.module,shortdesc:base.module_association
msgid "Associations Management"
-msgstr ""
+msgstr "Gestión de asociaciones"
#. module: base
#: help:ir.model,modules:0
msgid "List of modules in which the object is defined or inherited"
-msgstr ""
+msgstr "Lista de módulos en los cuales el objeto es definido o heredado"
#. module: base
#: model:ir.module.category,name:base.module_category_localization_payroll
#: model:ir.module.module,shortdesc:base.module_hr_payroll
msgid "Payroll"
-msgstr ""
+msgstr "Nómina"
#. module: base
#: model:ir.actions.act_window,help:base.action_country_state
@@ -7764,28 +8327,28 @@ msgstr ""
#. module: base
#: view:workflow.workitem:0
msgid "Workflow Workitems"
-msgstr ""
+msgstr "Elementos del flujo de trabajo"
#. module: base
#: model:res.country,name:base.vc
msgid "Saint Vincent & Grenadines"
-msgstr ""
+msgstr "San Vicente y las Granadinas"
#. module: base
#: field:ir.mail_server,smtp_pass:0
#: field:res.users,password:0
msgid "Password"
-msgstr ""
+msgstr "Contraseña"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_claim
msgid "Portal Claim"
-msgstr ""
+msgstr "Portal de Reclamaciones"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_pe
msgid "Peru Localization Chart Account"
-msgstr ""
+msgstr "Plan de Cuentas Localización de Perú"
#. module: base
#: model:ir.module.module,description:base.module_auth_oauth
@@ -7794,6 +8357,9 @@ msgid ""
"Allow users to login through OAuth2 Provider.\n"
"=============================================\n"
msgstr ""
+"\n"
+"Permite a los usuarios iniciar sesión a través del proveedor OAuth2.\n"
+"==============================================================\n"
#. module: base
#: model:ir.actions.act_window,name:base.action_model_fields
@@ -7803,27 +8369,27 @@ msgstr ""
#: view:ir.model.fields:0
#: model:ir.ui.menu,name:base.ir_model_model_fields
msgid "Fields"
-msgstr ""
+msgstr "Campos"
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_employee_form
msgid "Employees"
-msgstr ""
+msgstr "Empleados"
#. module: base
#: field:res.company,rml_header2:0
msgid "RML Internal Header"
-msgstr ""
+msgstr "Cabecera interna RML"
#. module: base
#: field:ir.actions.act_window,search_view_id:0
msgid "Search View Ref."
-msgstr ""
+msgstr "Ref. vista búsqueda"
#. module: base
#: help:res.users,partner_id:0
msgid "Partner-related data of the user"
-msgstr ""
+msgstr "Socios - datos relacionados de el usuario"
#. module: base
#: model:ir.module.module,description:base.module_crm_todo
@@ -7833,36 +8399,40 @@ msgid ""
"==========================================\n"
" "
msgstr ""
+"\n"
+"Lista Todo para conduces CRM y oportunidades.\n"
+"================================================\n"
+" "
#. module: base
#: view:ir.mail_server:0
msgid "Test Connection"
-msgstr ""
+msgstr "Probar conexión"
#. module: base
#: field:res.partner,address:0
msgid "Addresses"
-msgstr ""
+msgstr "Direcciones"
#. module: base
#: model:res.country,name:base.mm
msgid "Myanmar"
-msgstr ""
+msgstr "Birmania"
#. module: base
#: help:ir.model.fields,modules:0
msgid "List of modules in which the field is defined"
-msgstr ""
+msgstr "Lista de módulos en los cuales el campo esta definido"
#. module: base
#: selection:base.language.install,lang:0
msgid "Chinese (CN) / 简体中文"
-msgstr ""
+msgstr "Chino (CN) / 简体中文"
#. module: base
#: field:ir.model.fields,selection:0
msgid "Selection Options"
-msgstr ""
+msgstr "Opciones de selección"
#. module: base
#: field:res.bank,street:0
@@ -7871,17 +8441,17 @@ msgstr ""
#: field:res.partner.address,street:0
#: field:res.partner.bank,street:0
msgid "Street"
-msgstr ""
+msgstr "Calle"
#. module: base
#: model:res.country,name:base.yu
msgid "Yugoslavia"
-msgstr ""
+msgstr "Yugoslavia"
#. module: base
#: field:res.partner.category,parent_right:0
msgid "Right parent"
-msgstr ""
+msgstr "Padre derecho"
#. module: base
#: model:ir.module.module,description:base.module_fetchmail
@@ -7929,17 +8499,17 @@ msgstr ""
#. module: base
#: field:res.currency,rounding:0
msgid "Rounding Factor"
-msgstr ""
+msgstr "Factor de redondeo"
#. module: base
#: model:res.country,name:base.ca
msgid "Canada"
-msgstr ""
+msgstr "Canadá"
#. module: base
#: view:base.language.export:0
msgid "Launchpad"
-msgstr ""
+msgstr "Launchpad"
#. module: base
#: help:res.currency.rate,currency_rate_type_id:0
@@ -7947,22 +8517,25 @@ msgid ""
"Allow you to define your own currency rate types, like 'Average' or 'Year to "
"Date'. Leave empty if you simply want to use the normal 'spot' rate type"
msgstr ""
+"Permite definir tipos de tasa de cambio personalizados, como 'Promedio' o "
+"'Año atrás'. Dejar vacío si simplemente se quiere usar el tipo normal "
+"'exacto' de tasa de cambio."
#. module: base
#: selection:ir.module.module.dependency,state:0
msgid "Unknown"
-msgstr ""
+msgstr "Desconocido"
#. module: base
#: model:ir.actions.act_window,name:base.action_res_users_my
msgid "Change My Preferences"
-msgstr ""
+msgstr "Cambiar mis preferencias"
#. module: base
#: code:addons/base/ir/ir_actions.py:172
#, python-format
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nombre de modelo no válido en la definición de acción."
#. module: base
#: model:ir.module.module,description:base.module_l10n_ro
@@ -7976,74 +8549,82 @@ msgid ""
"Romanian accounting chart and localization.\n"
" "
msgstr ""
+"\n"
+"Módulo para administrar el plan de cuentas, estructura de impuestos y número "
+"de registro de Rumania en OpenERP.\n"
+"============================================================================="
+"==============\n"
+"\n"
+"Plan de cuentas y localización de Rumania.\n"
+" "
#. module: base
#: model:res.country,name:base.cm
msgid "Cameroon"
-msgstr ""
+msgstr "Camerún"
#. module: base
#: model:res.country,name:base.bf
msgid "Burkina Faso"
-msgstr ""
+msgstr "Burkina Faso"
#. module: base
#: selection:ir.model.fields,state:0
msgid "Custom Field"
-msgstr ""
+msgstr "Campo personalizado"
#. module: base
#: model:ir.module.module,summary:base.module_account_accountant
msgid "Financial and Analytic Accounting"
-msgstr ""
+msgstr "Contabilidad Análitica y Financiera"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_project
msgid "Portal Project"
-msgstr ""
+msgstr "Portal de Proyectos"
#. module: base
#: model:res.country,name:base.cc
msgid "Cocos (Keeling) Islands"
-msgstr ""
+msgstr "Islas Cocos (Keeling)"
#. module: base
#: selection:base.language.install,state:0
#: selection:base.module.import,state:0
#: selection:base.module.update,state:0
msgid "init"
-msgstr ""
+msgstr "init"
#. module: base
#: view:res.partner:0
#: field:res.partner,user_id:0
msgid "Salesperson"
-msgstr ""
+msgstr "Vendedor"
#. module: base
#: view:res.lang:0
msgid "11. %U or %W ==> 48 (49th week)"
-msgstr ""
+msgstr "11. %U or %W ==> 48 (49ª semana)"
#. module: base
#: model:ir.model,name:base.model_res_partner_bank_type_field
msgid "Bank type fields"
-msgstr ""
+msgstr "Campos tipo de banco"
#. module: base
#: constraint:ir.rule:0
msgid "Rules can not be applied on Transient models."
-msgstr ""
+msgstr "Las reglas no pueden ser aplicadas en modelos transitorios."
#. module: base
#: selection:base.language.install,lang:0
msgid "Dutch / Nederlands"
-msgstr ""
+msgstr "Holandés / Nederlands"
#. module: base
#: selection:res.company,paper_format:0
msgid "US Letter"
-msgstr ""
+msgstr "Carta de EEUU"
#. module: base
#: model:ir.module.module,description:base.module_marketing
@@ -8055,28 +8636,35 @@ msgid ""
"Contains the installer for marketing-related modules.\n"
" "
msgstr ""
+"\n"
+"Menú para Marketing.\n"
+"===================\n"
+"\n"
+"Contiene el instalador para los módulos relacionados con marketing.\n"
+" "
#. module: base
#: model:ir.actions.act_window,name:base.bank_account_update
msgid "Company Bank Accounts"
-msgstr ""
+msgstr "Cuentas bancarias de la compañía"
#. module: base
#: code:addons/base/res/res_users.py:470
#, python-format
msgid "Setting empty passwords is not allowed for security reasons!"
msgstr ""
+"¡No se permite establecer contraseñas vacías por motivos de seguridad!"
#. module: base
#: help:ir.mail_server,smtp_pass:0
msgid "Optional password for SMTP authentication"
-msgstr ""
+msgstr "Contraseña opcional para la autenticación SMTP"
#. module: base
#: code:addons/base/ir/ir_model.py:719
#, python-format
msgid "Sorry, you are not allowed to modify this document."
-msgstr ""
+msgstr "Lo sentimos, usted no tiene permitido modificar este documento."
#. module: base
#: code:addons/base/res/res_config.py:350
@@ -8086,57 +8674,60 @@ msgid ""
"\n"
"This addon is already installed on your system"
msgstr ""
+"\n"
+"\n"
+"Este módulo ya está instalado en su sistema."
#. module: base
#: help:ir.cron,interval_number:0
msgid "Repeat every x."
-msgstr ""
+msgstr "Repetir cada x."
#. module: base
#: model:res.partner.bank.type,name:base.bank_normal
msgid "Normal Bank Account"
-msgstr ""
+msgstr "Cuenta bancaria habitual"
#. module: base
#: view:ir.actions.wizard:0
msgid "Wizard"
-msgstr ""
+msgstr "Asistente"
#. module: base
#: code:addons/base/ir/ir_fields.py:304
#, python-format
msgid "database id"
-msgstr ""
+msgstr "ID de la Base de Datos"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_import
msgid "Base import"
-msgstr ""
+msgstr "Importar Base"
#. module: base
#: report:ir.module.reference:0
msgid "1cm 28cm 20cm 28cm"
-msgstr ""
+msgstr "1cm 28cm 20cm 28cm"
#. module: base
#: field:ir.module.module,maintainer:0
msgid "Maintainer"
-msgstr ""
+msgstr "Mantenedor"
#. module: base
#: field:ir.sequence,suffix:0
msgid "Suffix"
-msgstr ""
+msgstr "Sufijo"
#. module: base
#: model:res.country,name:base.mo
msgid "Macau"
-msgstr ""
+msgstr "Macao"
#. module: base
#: model:ir.actions.report.xml,name:base.res_partner_address_report
msgid "Labels"
-msgstr ""
+msgstr "Etiquetas"
#. module: base
#: help:res.partner,use_parent_address:0
@@ -8144,26 +8735,28 @@ msgid ""
"Select this if you want to set company's address information for this "
"contact"
msgstr ""
+"Marque esta si usted quiere ajustar la dirección de compañías para este "
+"contacto"
#. module: base
#: field:ir.default,field_name:0
msgid "Object Field"
-msgstr ""
+msgstr "Campo del objeto"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (PE) / Español (PE)"
-msgstr ""
+msgstr "Español (PE) / Español (PE)"
#. module: base
#: selection:base.language.install,lang:0
msgid "French (CH) / Français (CH)"
-msgstr ""
+msgstr "Francés (CH) / Français (CH)"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_13
msgid "Distributor"
-msgstr ""
+msgstr "Distribuidor"
#. module: base
#: help:ir.actions.server,subject:0
@@ -8172,6 +8765,9 @@ msgid ""
"the same values as those available in the condition field, e.g. `Hello [[ "
"object.partner_id.name ]]`"
msgstr ""
+"Asunto del e-mail, que puede contener expresiones encerradas entre corchetes "
+"dobles basadas en los mismos valores que los disponibles en el campo "
+"\"Condición\". Por ejemplo. 'Hola [[ object.partner_id.name ]]'."
#. module: base
#: help:res.partner,image:0
@@ -8179,11 +8775,13 @@ msgid ""
"This field holds the image used as avatar for this contact, limited to "
"1024x1024px"
msgstr ""
+"Este campo sostiene la imagen usada como avatar para este contacto, limitado "
+"a 1024x1024px"
#. module: base
#: model:res.country,name:base.to
msgid "Tonga"
-msgstr ""
+msgstr "Tonga"
#. module: base
#: help:ir.model.fields,serialization_field_id:0
@@ -8192,11 +8790,14 @@ msgid ""
"serialization field, instead of having its own database column. This cannot "
"be changed after creation."
msgstr ""
+"Si está establecido, este campo se almacenará en la estructura del campo de "
+"serialización en lugar de tener su propia columna en la base de datos. No "
+"puede ser modificado después de la creación"
#. module: base
#: view:res.partner.bank:0
msgid "Bank accounts belonging to one of your companies"
-msgstr ""
+msgstr "Cuentas bancarias pertencientes a alguna de sus compañías"
#. module: base
#: model:ir.module.module,description:base.module_account_analytic_plans
@@ -8253,7 +8854,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_sequence
msgid "Entries Sequence Numbering"
-msgstr ""
+msgstr "Numeración de la secuencia de asientos"
#. module: base
#: view:base.language.export:0
@@ -8263,17 +8864,17 @@ msgstr ""
#. module: base
#: view:ir.values:0
msgid "Client Actions"
-msgstr ""
+msgstr "Acciones cliente"
#. module: base
#: field:res.partner.bank.type,field_ids:0
msgid "Type Fields"
-msgstr ""
+msgstr "Escribir Campos"
#. module: base
#: model:ir.module.module,summary:base.module_hr_recruitment
msgid "Jobs, Recruitment, Applications, Job Interviews"
-msgstr ""
+msgstr "Trabajos, Reclutamiento, Aplicaciones, Entrevistas de Trabajo"
#. module: base
#: code:addons/base/module/module.py:513
@@ -8282,11 +8883,13 @@ msgid ""
"You try to upgrade a module that depends on the module: %s.\n"
"But this module is not available in your system."
msgstr ""
+"Intenta actualizar un módulo que depende del módulo: %s.\n"
+"Pero este módulo no está disponible en su sistema."
#. module: base
#: field:workflow.transition,act_to:0
msgid "Destination Activity"
-msgstr ""
+msgstr "Actividad destino"
#. module: base
#: help:res.currency,position:0
@@ -8294,6 +8897,8 @@ msgid ""
"Determines where the currency symbol should be placed after or before the "
"amount."
msgstr ""
+"Determina si el símbolo de moneda debe situarse antes o después de la "
+"cantidad."
#. module: base
#: model:ir.module.module,shortdesc:base.module_pad_project
@@ -8303,7 +8908,7 @@ msgstr ""
#. module: base
#: model:ir.model,name:base.model_base_update_translations
msgid "base.update.translations"
-msgstr ""
+msgstr "base.actualizar.tranducciones"
#. module: base
#: code:addons/base/ir/ir_sequence.py:105
@@ -8311,27 +8916,27 @@ msgstr ""
#: code:addons/base/res/res_users.py:470
#, python-format
msgid "Warning!"
-msgstr ""
+msgstr "Advertencia!"
#. module: base
#: view:ir.rule:0
msgid "Full Access Right"
-msgstr ""
+msgstr "Derechos de Acceso Completo"
#. module: base
#: field:res.partner.category,parent_id:0
msgid "Parent Category"
-msgstr ""
+msgstr "Categoría padre"
#. module: base
#: model:res.country,name:base.fi
msgid "Finland"
-msgstr ""
+msgstr "Finlandia"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_shortcuts
msgid "Web Shortcuts"
-msgstr ""
+msgstr "Atajos Web"
#. module: base
#: view:res.partner:0
@@ -8340,52 +8945,52 @@ msgstr ""
#: selection:res.partner.title,domain:0
#: view:res.users:0
msgid "Contact"
-msgstr ""
+msgstr "Contacto"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_at
msgid "Austria - Accounting"
-msgstr ""
+msgstr "Austria - Contabilidad"
#. module: base
#: model:ir.model,name:base.model_ir_ui_menu
msgid "ir.ui.menu"
-msgstr ""
+msgstr "ir.ui.menu"
#. module: base
#: model:ir.module.module,shortdesc:base.module_project
msgid "Project Management"
-msgstr ""
+msgstr "Gestión de proyectos"
#. module: base
#: view:ir.module.module:0
msgid "Cancel Uninstall"
-msgstr ""
+msgstr "Cancelar desinstalación"
#. module: base
#: view:res.bank:0
msgid "Communication"
-msgstr ""
+msgstr "Comunicación"
#. module: base
#: model:ir.module.module,shortdesc:base.module_analytic
msgid "Analytic Accounting"
-msgstr ""
+msgstr "Contabilidad analítica"
#. module: base
#: model:ir.model,name:base.model_ir_model_constraint
msgid "ir.model.constraint"
-msgstr ""
+msgstr "ir.model.constraint"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_graph
msgid "Graph Views"
-msgstr ""
+msgstr "Vistas Gráficas"
#. module: base
#: help:ir.model.relation,name:0
msgid "PostgreSQL table name implementing a many2many relation."
-msgstr ""
+msgstr "Implementando Nombre de Tabla PostgreSQL a una relación many2many"
#. module: base
#: model:ir.module.module,description:base.module_base
@@ -8394,36 +8999,39 @@ msgid ""
"The kernel of OpenERP, needed for all installation.\n"
"===================================================\n"
msgstr ""
+"\n"
+"El núcleo de OpenERP, necesitado para toda la instalación.\n"
+"========================================================\n"
#. module: base
#: model:ir.model,name:base.model_ir_server_object_lines
msgid "ir.server.object.lines"
-msgstr ""
+msgstr "ir.server.object.lines"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be
msgid "Belgium - Accounting"
-msgstr ""
+msgstr "Bélgica - Contabilidad"
#. module: base
#: view:ir.model.access:0
msgid "Access Control"
-msgstr ""
+msgstr "Control de Acceso"
#. module: base
#: model:res.country,name:base.kw
msgid "Kuwait"
-msgstr ""
+msgstr "Kuwait"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_followup
msgid "Payment Follow-up Management"
-msgstr ""
+msgstr "Seguimiento de Gestión de Pago"
#. module: base
#: field:workflow.workitem,inst_id:0
msgid "Instance"
-msgstr ""
+msgstr "Instancia"
#. module: base
#: help:ir.actions.report.xml,attachment:0
@@ -8432,6 +9040,9 @@ msgid ""
"Keep empty to not save the printed reports. You can use a python expression "
"with the object and time variables."
msgstr ""
+"Éste es el nombre del archivo del adjunto utilizado para almacenar el "
+"resultado de impresión. Déjelo vacío para no guardar los informes impresos. "
+"Puede utilizar una expresión Python con las variables objeto y fecha/hora."
#. module: base
#: sql_constraint:ir.model.data:0
@@ -8439,82 +9050,84 @@ msgid ""
"You cannot have multiple records with the same external ID in the same "
"module!"
msgstr ""
+"¡No puede haber múltiples registros con el mismo ID externo en el mismo "
+"módulo!"
#. module: base
#: selection:ir.property,type:0
msgid "Many2One"
-msgstr ""
+msgstr "Many2One"
#. module: base
#: model:res.country,name:base.ng
msgid "Nigeria"
-msgstr ""
+msgstr "Nigeria"
#. module: base
#: code:addons/base/ir/ir_model.py:332
#, python-format
msgid "For selection fields, the Selection Options must be given!"
-msgstr ""
+msgstr "¡Para campos selection debe indicar las opciones de selección!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_iban
msgid "IBAN Bank Accounts"
-msgstr ""
+msgstr "Cuentas bancarias IBAN"
#. module: base
#: field:res.company,user_ids:0
msgid "Accepted Users"
-msgstr ""
+msgstr "Usuarios aceptados"
#. module: base
#: field:ir.ui.menu,web_icon_data:0
msgid "Web Icon Image"
-msgstr ""
+msgstr "Imagen icono web"
#. module: base
#: field:ir.actions.server,wkf_model_id:0
msgid "Target Object"
-msgstr ""
+msgstr "Objeto objetivo"
#. module: base
#: selection:ir.model.fields,select_level:0
msgid "Always Searchable"
-msgstr ""
+msgstr "Siempre puede ser buscado"
#. module: base
#: help:res.country.state,code:0
msgid "The state code in max. three chars."
-msgstr ""
+msgstr "El máximo codigo de estado. 3 caracteres"
#. module: base
#: model:res.country,name:base.hk
msgid "Hong Kong"
-msgstr ""
+msgstr "Hong Kong"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_sale
msgid "Portal Sale"
-msgstr ""
+msgstr "Portal de Ventas"
#. module: base
#: field:ir.default,ref_id:0
msgid "ID Ref."
-msgstr ""
+msgstr "Ref. ID"
#. module: base
#: model:res.country,name:base.ph
msgid "Philippines"
-msgstr ""
+msgstr "Filipinas"
#. module: base
#: model:ir.module.module,summary:base.module_hr_timesheet_sheet
msgid "Timesheets, Attendances, Activities"
-msgstr ""
+msgstr "Hoja de horas por servicio, Asistencia, Actividades"
#. module: base
#: model:res.country,name:base.ma
msgid "Morocco"
-msgstr ""
+msgstr "Marruecos"
#. module: base
#: help:ir.values,model_id:0
@@ -8522,11 +9135,13 @@ msgid ""
"Model to which this entry applies - helper field for setting a model, will "
"automatically set the correct model name"
msgstr ""
+"Modelo para el que se aplica esta entrada - campo auxiliar para establecer "
+"un modelo, que será automáticamente establecido al nombre de modelo correcto"
#. module: base
#: view:res.lang:0
msgid "2. %a ,%A ==> Fri, Friday"
-msgstr ""
+msgstr "2. %a ,%A ==> Vie, Viernes"
#. module: base
#: code:addons/base/ir/ir_translation.py:341
@@ -8535,6 +9150,8 @@ msgid ""
"Translation features are unavailable until you install an extra OpenERP "
"translation."
msgstr ""
+"Las Características de Traducción no están disponibles hasta que usted "
+"instala una traducción extra en OpenERP."
#. module: base
#: model:ir.module.module,description:base.module_l10n_nl
@@ -8578,16 +9195,56 @@ msgid ""
"\n"
" "
msgstr ""
+"\n"
+"Este es el modulo para gestionar el plan de cuenta para Neerlandés en "
+"OpenERP.\n"
+"============================================================================="
+"=======\n"
+"\n"
+"Lea los cambios en el archivo __openerp__.py para la versión de "
+"información.\n"
+"Read changelog in file __openerp__.py for version information.\n"
+"Dit is een basismodule om een uitgebreid grootboek- en BTW schema voor\n"
+"Nederlandse bedrijven te installeren in OpenERP versie 7.0.\n"
+"\n"
+"De BTW rekeningen zijn waar nodig gekoppeld om de juiste rapportage te "
+"genereren,\n"
+"denk b.v. aan intracommunautaire verwervingen waarbij u 21% BTW moet "
+"opvoeren,\n"
+"maar tegelijkertijd ook 21% als voorheffing weer mag aftrekken.\n"
+"\n"
+"Na installatie van deze module word de configuratie wizard voor 'Accounting' "
+"aangeroepen.\n"
+"* U krijgt een lijst met grootboektemplates aangeboden waarin zich ook het\n"
+"Nederlandse grootboekschema bevind.\n"
+"\n"
+"* Als de configuratie wizard start, wordt u gevraagd om de naam van uw "
+"bedrijf\n"
+"in te voeren, welke grootboekschema te installeren, uit hoeveel cijfers een\n"
+"grootboekrekening mag bestaan, het rekeningnummer van uw bank en de "
+"currency\n"
+"om Journalen te creeren.\n"
+"\n"
+"Let op!! -> De template van het Nederlandse rekeningschema is opgebouwd uit "
+"4\n"
+"cijfers. Dit is het minimale aantal welk u moet invullen, u mag het aantal "
+"verhogen.\n"
+"De extra cijfers worden dan achter het rekeningnummer aangevult met "
+"'nullen'.\n"
+"\n"
+" "
#. module: base
#: help:ir.rule,global:0
msgid "If no group is specified the rule is global and applied to everyone"
msgstr ""
+"Si no se especifica ningún grupo, la regla es global y se aplica a todo el "
+"mundo."
#. module: base
#: model:res.country,name:base.td
msgid "Chad"
-msgstr ""
+msgstr "Chad"
#. module: base
#: help:ir.cron,priority:0
@@ -8595,31 +9252,33 @@ msgid ""
"The priority of the job, as an integer: 0 means higher priority, 10 means "
"lower priority."
msgstr ""
+"Prioridad del trabajo, expresada con un entero: 0 significa la máxima "
+"prioridad, 10 significa la prioridad más baja."
#. module: base
#: model:ir.model,name:base.model_workflow_transition
msgid "workflow.transition"
-msgstr ""
+msgstr "workflow.transition"
#. module: base
#: view:res.lang:0
msgid "%a - Abbreviated weekday name."
-msgstr ""
+msgstr "%a - Nombre abreviado del día de la semana."
#. module: base
#: view:ir.ui.menu:0
msgid "Submenus"
-msgstr ""
+msgstr "Submenús"
#. module: base
#: report:ir.module.reference:0
msgid "Introspection report on objects"
-msgstr ""
+msgstr "Introspección informe sobre los objetos"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_analytics
msgid "Google Analytics"
-msgstr ""
+msgstr "Google Analytics"
#. module: base
#: model:ir.module.module,description:base.module_note
@@ -8642,83 +9301,84 @@ msgstr ""
#. module: base
#: model:res.country,name:base.dm
msgid "Dominica"
-msgstr ""
+msgstr "Dominica"
#. module: base
#: field:ir.translation,name:0
msgid "Translated field"
-msgstr ""
+msgstr "Campos Traducidos"
#. module: base
#: model:ir.module.module,shortdesc:base.module_stock_location
msgid "Advanced Routes"
-msgstr ""
+msgstr "Rutas avanzadas"
#. module: base
#: model:ir.module.module,shortdesc:base.module_pad
msgid "Collaborative Pads"
-msgstr ""
+msgstr "Pads colaborativos"
#. module: base
#: model:res.country,name:base.np
msgid "Nepal"
-msgstr ""
+msgstr "Nepal"
#. module: base
#: model:ir.module.module,shortdesc:base.module_document_page
msgid "Document Page"
-msgstr ""
+msgstr "Página de Documentos"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ar
msgid "Argentina Localization Chart Account"
-msgstr ""
+msgstr "Plan de Cuenta Localización Argentina"
#. module: base
#: field:ir.module.module,description_html:0
msgid "Description HTML"
-msgstr ""
+msgstr "HTML de Descripción"
#. module: base
#: help:res.groups,implied_ids:0
msgid "Users of this group automatically inherit those groups"
msgstr ""
+"Los usuarios de este grupo automaticamente heredan de aquellos grupos"
#. module: base
#: model:ir.module.module,summary:base.module_note
msgid "Sticky notes, Collaborative, Memos"
-msgstr ""
+msgstr "Notas adesivas, Colaborativas, Memos"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_attendance
#: model:res.groups,name:base.group_hr_attendance
msgid "Attendances"
-msgstr ""
+msgstr "Asistencias"
#. module: base
#: model:ir.module.module,shortdesc:base.module_warning
msgid "Warning Messages and Alerts"
-msgstr ""
+msgstr "Mensajes de aviso y alertas"
#. module: base
#: model:ir.actions.act_window,name:base.action_ui_view_custom
#: model:ir.ui.menu,name:base.menu_action_ui_view_custom
#: view:ir.ui.view.custom:0
msgid "Customized Views"
-msgstr ""
+msgstr "Vistas personalizadas"
#. module: base
#: view:base.module.import:0
#: model:ir.actions.act_window,name:base.action_view_base_module_import
msgid "Module Import"
-msgstr ""
+msgstr "Importación de módulo"
#. module: base
#: model:ir.actions.act_window,name:base.act_values_form_action
#: model:ir.ui.menu,name:base.menu_values_form_action
#: view:ir.values:0
msgid "Action Bindings"
-msgstr ""
+msgstr "Enlaces de acciones"
#. module: base
#: help:res.partner,lang:0
@@ -8726,6 +9386,9 @@ msgid ""
"If the selected language is loaded in the system, all documents related to "
"this contact will be printed in this language. If not, it will be English."
msgstr ""
+"Si el lenguaje seleccionado esta cargado en el sistema, todos los documentos "
+"relacionados a este contacto serán impresos en este lenguaje. Si no, este "
+"será Ingles."
#. module: base
#: model:ir.module.module,description:base.module_hr_evaluation
@@ -8763,7 +9426,7 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_view_base_module_update
msgid "Update Modules List"
-msgstr ""
+msgstr "Actualizar lista de módulos"
#. module: base
#: code:addons/base/module/module.py:338
@@ -8771,11 +9434,13 @@ msgstr ""
msgid ""
"Unable to upgrade module \"%s\" because an external dependency is not met: %s"
msgstr ""
+"Imposible actualizar el módulo \"%s\" porqué hay una dependencia externa no "
+"resuelta: %s"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account
msgid "eInvoicing"
-msgstr ""
+msgstr "Facturación electrónica"
#. module: base
#: code:addons/base/res/res_users.py:175
@@ -8786,37 +9451,41 @@ msgid ""
"sure to save and close all forms before switching to a different company. "
"(You can click on Cancel in the User Preferences now)"
msgstr ""
+"Tenga en cuenta que los documentos que se muestran actualmente pueden no ser "
+"relevantes después de cambiar a otra compañía. Asegúrese de guardar y cerrar "
+"todas los formularios modificados antes de cambiar a una compañía diferente "
+"(ahora puede hacer clic en Cancelar en las preferencias del usuario)"
#. module: base
#: code:addons/orm.py:2821
#, python-format
msgid "The value \"%s\" for the field \"%s.%s\" is not in the selection"
-msgstr ""
+msgstr "El valor \"%s\" para el campo \"%s.%s\" no está en la selección"
#. module: base
#: view:ir.actions.configuration.wizard:0
msgid "Continue"
-msgstr ""
+msgstr "Siguiente"
#. module: base
#: selection:base.language.install,lang:0
msgid "Thai / ภาษาไทย"
-msgstr ""
+msgstr "Tailandés / ภาษาไทย"
#. module: base
#: view:res.lang:0
msgid "%j - Day of the year [001,366]."
-msgstr ""
+msgstr "%j - Día del año [001,366]."
#. module: base
#: selection:base.language.install,lang:0
msgid "Slovenian / slovenščina"
-msgstr ""
+msgstr "Esloveno / slovenščina"
#. module: base
#: field:res.currency,position:0
msgid "Symbol Position"
-msgstr ""
+msgstr "Posición de Simbolo"
#. module: base
#: model:ir.module.module,description:base.module_l10n_de
@@ -8830,16 +9499,20 @@ msgid ""
"German accounting chart and localization.\n"
" "
msgstr ""
+"\n"
+"Plan de cuentas y localización alemana.\n"
+"===============================\n"
+" "
#. module: base
#: field:ir.actions.report.xml,attachment_use:0
msgid "Reload from Attachment"
-msgstr ""
+msgstr "Recargar desde adjunto"
#. module: base
#: model:res.country,name:base.mx
msgid "Mexico"
-msgstr ""
+msgstr "México"
#. module: base
#: code:addons/orm.py:3871
@@ -8850,11 +9523,15 @@ msgid ""
"\n"
"(Document type: %s)"
msgstr ""
+"Para este tipo de documentos, usted solo puede acceder a archivos que usted "
+"mismo creó.\n"
+"\n"
+"(Tipo de Documento: %s)"
#. module: base
#: view:base.language.export:0
msgid "documentation"
-msgstr ""
+msgstr "documentación"
#. module: base
#: help:ir.model,osv_memory:0
@@ -8862,62 +9539,64 @@ msgid ""
"This field specifies whether the model is transient or not (i.e. if records "
"are automatically deleted from the database or not)"
msgstr ""
+"Este campo especifica si el modelo es trascendente o no (Ejemplo: Si los "
+"archivos son automáticamente eliminados desde la base de datos o no)"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:441
#, python-format
msgid "Missing SMTP Server"
-msgstr ""
+msgstr "Servidor SMTP ausente"
#. module: base
#: field:ir.attachment,name:0
msgid "Attachment Name"
-msgstr ""
+msgstr "Nombre del adjunto"
#. module: base
#: field:base.language.export,data:0
#: field:base.language.import,data:0
msgid "File"
-msgstr ""
+msgstr "Archivo"
#. module: base
#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade_install
msgid "Module Upgrade Install"
-msgstr ""
+msgstr "Instalar actualizar módulo"
#. module: base
#: model:ir.model,name:base.model_ir_actions_configuration_wizard
msgid "ir.actions.configuration.wizard"
-msgstr ""
+msgstr "ir.actions.configuration.wizard"
#. module: base
#: view:res.lang:0
msgid "%b - Abbreviated month name."
-msgstr ""
+msgstr "%b - Nombre abreviado del mes."
#. module: base
#: code:addons/base/ir/ir_model.py:721
#, python-format
msgid "Sorry, you are not allowed to delete this document."
-msgstr ""
+msgstr "Lo sentimos, usted no tiene permitod eliminar este documento."
#. module: base
#: constraint:ir.rule:0
msgid "Rules can not be applied on the Record Rules model."
-msgstr ""
+msgstr "Las reglas no pueden ser aplicadas en el archivo modelo de reglas."
#. module: base
#: field:res.partner,supplier:0
#: field:res.partner.address,is_supplier_add:0
#: model:res.partner.category,name:base.res_partner_category_1
msgid "Supplier"
-msgstr ""
+msgstr "Proveedor"
#. module: base
#: view:ir.actions.server:0
#: selection:ir.actions.server,state:0
msgid "Multi Actions"
-msgstr ""
+msgstr "Multi acciones"
#. module: base
#: model:ir.module.module,summary:base.module_mail
@@ -8944,91 +9623,109 @@ msgid ""
"* Show all costs associated to a vehicle or to a type of service\n"
"* Analysis graph for costs\n"
msgstr ""
+"\n"
+"Vehículo, Alquiler, seguros, costos\n"
+"================================\n"
+"Con este modulo, OpenERP les ayuda a administrar todos sus vehículos, \n"
+"los contratos asociados a esos vehículos así como el servicio, log de\n"
+"entradas de combustible, costos y algunas otras características necesarias "
+"para la gestión \n"
+"de sus fletes de vehículo(s)\n"
+"\n"
+"Características Principales\n"
+"------------------\n"
+"*Agrega vehículos a sus fletes\n"
+"*Gestiona contratos para vehículos\n"
+"*Recordatorios cuando un contrato alcanza su fecha de expiración\n"
+"*Agregar servicios, entradas de log de combustible, valores de cuenta "
+"kilómetros para todos los vehículos\n"
+"*Muestra todo el costo asociado a un vehículo o a un tipo de servicio\n"
+"*Análisis gráficos para costos\n"
#. module: base
#: field:multi_company.default,company_dest_id:0
msgid "Default Company"
-msgstr ""
+msgstr "Compañía por defecto"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (EC) / Español (EC)"
-msgstr ""
+msgstr "Español (EC) / Español (EC)"
#. module: base
#: help:ir.ui.view,xml_id:0
msgid "ID of the view defined in xml file"
-msgstr ""
+msgstr "El ID de la vista definido en el archivo xml."
#. module: base
#: model:ir.model,name:base.model_base_module_import
msgid "Import Module"
-msgstr ""
+msgstr "Importar módulo"
#. module: base
#: model:res.country,name:base.as
msgid "American Samoa"
-msgstr ""
+msgstr "Samoa Americana"
#. module: base
#: view:ir.attachment:0
msgid "My Document(s)"
-msgstr ""
+msgstr "Mis Documentos"
#. module: base
#: help:ir.actions.act_window,res_model:0
msgid "Model name of the object to open in the view window"
-msgstr ""
+msgstr "Nombre del modelo del objeto a abrir en la ventana de la vista."
#. module: base
#: field:ir.model.fields,selectable:0
msgid "Selectable"
-msgstr ""
+msgstr "Seleccionable"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:220
#, python-format
msgid "Everything seems properly set up!"
-msgstr ""
+msgstr "¡Todo parece correctamente configurado!"
#. module: base
#: view:res.request.link:0
msgid "Request Link"
-msgstr ""
+msgstr "Solicitar enlace"
#. module: base
#: view:ir.attachment:0
#: selection:ir.attachment,type:0
#: field:ir.module.module,url:0
msgid "URL"
-msgstr ""
+msgstr "URL"
#. module: base
#: help:res.country,name:0
msgid "The full name of the country."
-msgstr ""
+msgstr "El nombre completo del país."
#. module: base
#: selection:ir.actions.server,state:0
msgid "Iteration"
-msgstr ""
+msgstr "Iteración"
#. module: base
#: code:addons/orm.py:4213
#: code:addons/orm.py:4314
#, python-format
msgid "UserError"
-msgstr ""
+msgstr "Error de usuario"
#. module: base
#: model:ir.module.module,summary:base.module_project_issue
msgid "Support, Bug Tracker, Helpdesk"
-msgstr ""
+msgstr "Soporte, Rastreador de Bug, Ayudante de Escritorio"
#. module: base
#: model:res.country,name:base.ae
msgid "United Arab Emirates"
-msgstr ""
+msgstr "Emiratos Árabes Unidos"
#. module: base
#: help:ir.ui.menu,needaction_enabled:0
@@ -9044,21 +9741,23 @@ msgstr ""
msgid ""
"Unable to delete this document because it is used as a default property"
msgstr ""
+"No se ha podido eliminar este documento ya que se utiliza como una propiedad "
+"por defecto"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_5
msgid "Silver"
-msgstr ""
+msgstr "Plateado"
#. module: base
#: field:res.partner.title,shortcut:0
msgid "Abbreviation"
-msgstr ""
+msgstr "Abreviación"
#. module: base
#: model:ir.ui.menu,name:base.menu_crm_case_job_req_main
msgid "Recruitment"
-msgstr ""
+msgstr "Proceso de selección"
#. module: base
#: model:ir.module.module,description:base.module_l10n_gr
@@ -9070,11 +9769,17 @@ msgid ""
"Greek accounting chart and localization.\n"
" "
msgstr ""
+"\n"
+"Módulo para administrar el plan de cuentas para Grecia.\n"
+"============================================\n"
+"\n"
+"Plan de cuentas y localización griego.\n"
+" "
#. module: base
#: view:ir.values:0
msgid "Action Reference"
-msgstr ""
+msgstr "Referencia de la acción"
#. module: base
#: model:ir.module.module,description:base.module_auth_ldap
diff --git a/openerp/addons/base/i18n/fr.po b/openerp/addons/base/i18n/fr.po
index f17c570b31a..548314881e4 100644
--- a/openerp/addons/base/i18n/fr.po
+++ b/openerp/addons/base/i18n/fr.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-03 16:01+0000\n"
-"PO-Revision-Date: 2012-12-03 11:15+0000\n"
+"PO-Revision-Date: 2012-12-06 10:07+0000\n"
"Last-Translator: Quentin THEURET \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: 2012-12-04 04:55+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
+"X-Launchpad-Export-Date: 2012-12-07 04:34+0000\n"
+"X-Generator: Launchpad (build 16341)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -26,7 +26,7 @@ msgid ""
msgstr ""
"\n"
"Module pour l'écriture et l'impression de chèques.\n"
-"================================================\n"
+"==================================================\n"
" "
#. module: base
@@ -129,10 +129,10 @@ msgid ""
msgstr ""
"\n"
"Ce module ajoute des fabricants et des attributs sur le formulaire produit.\n"
-"==========================================================\n"
+"===========================================================================\n"
"\n"
"Vous pouvez maintenant définir pour un produit:\n"
-"-------------------------------------------------------------------\n"
+"-----------------------------------------------\n"
" * un fabricant\n"
" * le nom du produit chez le fabricant\n"
" * le code produit chez le fabricant\n"
@@ -153,7 +153,7 @@ msgid ""
msgstr ""
"\n"
"Ce module ajoute les utilisateurs Google dans res.user.\n"
-"========================================\n"
+"=======================================================\n"
#. module: base
#: help:res.partner,employee:0
@@ -212,7 +212,7 @@ msgid ""
msgstr ""
"\n"
"Génère vos factures à partir des dépenses et des feuilles de temps.\n"
-"=====================================================\n"
+"===================================================================\n"
"\n"
"Module pour générer les factures basées sur les coûts (RH, dépenses…).\n"
"\n"
@@ -253,8 +253,8 @@ msgid ""
"* Opportunities by Stage (graph)\n"
msgstr ""
"\n"
-"Le module générique de Gestion de la Relation Client d'OpenERP\n"
-"===================================================\n"
+"Le module générique de Gestion de la Relation Client d'OpenERP (CRM)\n"
+"====================================================================\n"
"Cette application permet à un groupe de personnes de gérer intelligemment et "
"efficacement les pistes, les opportunités, les réunions et les appels "
"téléphoniques.\n"
@@ -277,8 +277,8 @@ msgstr ""
"automatiquement à l'équipe appropriée et s'assurer que les correspondances "
"futures se fassent au bon endroit.\n"
"\n"
-"Le tableau de bord GRC inclura :\n"
-"--------------------------------------------\n"
+"Le tableau de bord CRM inclura :\n"
+"--------------------------------\n"
"* Le revenu planifié par étape et par utilisateur (graphique)\n"
"* Les opportunités par étape (graphique)\n"
@@ -364,7 +364,7 @@ msgid ""
msgstr ""
"\n"
"Comptabilité chilienne et mise en place des taxes pour le Chili\n"
-"================================================\n"
+"===============================================================\n"
"Plan comptable chilien et taxes en accord avec la législation en vigueur.\n"
"\n"
" "
@@ -418,10 +418,10 @@ msgid ""
msgstr ""
"\n"
"Ajoute des informations de date additionnelles au commandes de vente.\n"
-"==========================================================\n"
+"=====================================================================\n"
"\n"
"Vous pouvez ajouter les dates suivantes à un bon de commande:\n"
-"-----------------------------------------------------------\n"
+"-------------------------------------------------------------\n"
" * Date de la demande\n"
" * Date de confirmation\n"
" * Date Effective\n"
@@ -486,7 +486,7 @@ msgid ""
msgstr ""
"\n"
"Installateur invisible pour la base de connaissances\n"
-"==========================================\n"
+"====================================================\n"
"\n"
"Rend disponible la configuration de l’application des connaissances depuis "
"l'endroit où vous\n"
@@ -514,7 +514,7 @@ msgstr ""
"Permet d'ajouter des méthodes de livraison dans les commandes de vente et "
"dans les livraisons.\n"
"============================================================================="
-"\n"
+"=================\n"
"\n"
"Vous pouvez définir vos propres transporteurs et grilles de prix de "
"livraison. Quand vous créez \n"
@@ -701,7 +701,7 @@ msgid ""
msgstr ""
"\n"
"Module de définition des comptes analytiques.\n"
-"========================================\n"
+"=============================================\n"
"\n"
"Dans OpenERP, les comptes analytiques sont liés à des comptes financiers "
"mais sont traités\n"
@@ -734,14 +734,14 @@ msgid ""
msgstr ""
"\n"
"Gestion et organisation d'événements\n"
-"=================================\n"
+"====================================\n"
"\n"
"Le module 'event' vous permet d'organiser efficacement des événements et "
"toutes les tâches liées : planification, suivi des inscriptions,\n"
"des présences, etc.\n"
"\n"
"Fonctionnalités clés\n"
-"----------------------------\n"
+"--------------------\n"
"* Gestion des événements et des inscriptions\n"
"* Utilisation d'e-mails pour automatiquement confirmer et envoyer des "
"accusés de réception pour chaque inscription à un événement\n"
@@ -941,10 +941,10 @@ msgid ""
msgstr ""
"\n"
"Comptabilité et gestion financière\n"
-"================================\n"
+"==================================\n"
"\n"
"Le module de comptabilité et de finance couvre :\n"
-"---------------------------------------------------------------------\n"
+"------------------------------------------------\n"
" * Comptabilité générale\n"
" * Comptabilité de coût / comptabilité analytique\n"
" * Comptabilité de tiers\n"
@@ -955,8 +955,7 @@ msgstr ""
" * Lettrages par partenaire\n"
"\n"
"Il créé également un tableau de bord pour les comptables qui inclut :\n"
-"-----------------------------------------------------------------------------"
-"------------------\n"
+"---------------------------------------------------------------------\n"
" * Une liste des factures clients à approuver\n"
" * L'analyse de la société\n"
" * Un graphe de la trésorerie\n"
@@ -1008,7 +1007,7 @@ msgid ""
msgstr ""
"\n"
"Module LinkedIn pour OpenERP Web.\n"
-"===============================\n"
+"=================================\n"
"Ce module fournit l'intégration de LinkedIn avec OpenERP.\n"
" "
@@ -1153,6 +1152,33 @@ msgid ""
"also possible in order to automatically create a meeting when a holiday "
"request is accepted by setting up a type of meeting in Leave Type.\n"
msgstr ""
+"\n"
+"Gère les absences et les demandes de congés\n"
+"===========================================\n"
+"\n"
+"Cette application contrôle la programmation des congés de votre société. Il "
+"permet aux employés de faire des demandes de congés. Ensuite, les managers "
+"peuvent examiner les demandes et les approuver ou les rejeter. De cette "
+"façon, vous pouvez contrôler le planning de l'ensemble des congés de votre "
+"société ou de votre département.\n"
+"\n"
+"Vous pouvez configurer plusieurs sortes d'absences (maladie, congés payés, "
+"congés sans soldes…) et allouer rapidement ces absences à un employé ou un "
+"département en utilisant les demandes de congés. Un employée peut aussi "
+"faire une demande de congés pour plus de jours en ajoutant une allocation. "
+"Cela va augmenter le total des jours disponibles pour ce type de congés (si "
+"la demande est accepté).\n"
+"\n"
+"Vous pouvez suivre les absences de différentes façons grâce aux rapports "
+"suivants : \n"
+"\n"
+"* Résumé des absences\n"
+"* Absences par département\n"
+"* Analyse des absences\n"
+"\n"
+"Une synchronisation avec les agendas internes (Réunions du module CRM) est "
+"aussi possible dans le but de créer automatiquement une réunion quand une "
+"demande de congés est accepté en ajoutant une type de réunion Absence.\n"
#. module: base
#: selection:base.language.install,lang:0
@@ -1257,6 +1283,13 @@ msgid ""
" * the Tax Code Chart for Luxembourg\n"
" * the main taxes used in Luxembourg"
msgstr ""
+"\n"
+"Ceci est le module de base pour gérer le plan de comptes pour le Luxembourg\n"
+"===========================================================================\n"
+"\n"
+" * le plan de compte KLUWER\n"
+" * le plan de codes de taxes pour le Luxembourg\n"
+" * les taxes principales utilisées au Luxembourg"
#. module: base
#: model:res.country,name:base.om
@@ -1281,7 +1314,7 @@ msgid ""
msgstr ""
"\n"
"Module de pointage des heures pour les employés.\n"
-"==========================================\n"
+"================================================\n"
"\n"
"Comptabilise les temps de présence des employés sur la base des\n"
"pointages (Entrée / Sorties) réalisés.\n"
@@ -1725,7 +1758,7 @@ msgstr ""
"dans la configuration du serveur.\n"
"\n"
"Paramètres de configuration du serveur :\n"
-"-------------------------------\n"
+"----------------------------------------\n"
"[webdav]:\n"
"+++++++++ \n"
" * enable = True ; Sert le webdav à travers les serveurs http(s)\n"
@@ -1801,7 +1834,7 @@ msgstr ""
"Ce module ajoute un menu pour les réclamations et les fonctionnalités pour "
"votre portail si les modules claim et portal sont installés.\n"
"============================================================================="
-"=======================================\n"
+"==========================================================\n"
" "
#. module: base
@@ -1895,7 +1928,7 @@ msgid ""
msgstr ""
"\n"
"Le module de base pour gérer les repas.\n"
-"====================================\n"
+"=======================================\n"
"\n"
"Des sociétés commandent des sandwiches, des pizzas et d'autres repas, à des "
"fournisseurs, pour leurs employés pour leur offrir plus de commodités.\n"
@@ -2114,7 +2147,7 @@ msgstr ""
"Ce module fournit le plan comptable standard pour l'Autriche qui est basé "
"sur le modèle BMF.gv.at.\n"
"============================================================================="
-"======================== \n"
+"===================== \n"
"Veuillez garder à l'esprit que vous devez le revoir et l'adapter avec votre "
"comptable avant de l'utiliser dans un environnement de production.\n"
@@ -2137,7 +2170,7 @@ msgid ""
msgstr ""
"\n"
"Droits d'accès à la comptabilité\n"
-"==========================\n"
+"================================\n"
"Cela donne à l'administrateur les droits d'accès à toutes les "
"fonctionnalités comptables telles que les mouvements comptables et le plan "
"de comptes.\n"
@@ -2234,7 +2267,7 @@ msgstr ""
"Ce module ajoute les outils de partage générique pour votre base de données "
"OpenERP actuelle.\n"
"============================================================================="
-"============\n"
+"================\n"
"\n"
"Il ajoute spécifiquement un bouton 'Partager' qui est disponible dans le "
"client web pour\n"
@@ -2342,7 +2375,8 @@ msgstr ""
"\n"
"Synchronisation les entrées dans les tâches avec les entrées dans les "
"feuilles de temps.\n"
-"=========================================================================\n"
+"============================================================================="
+"===========\n"
"\n"
"Ce module vous permet de transférer les entrées sous les tâches définies "
"pour la gestion de\n"
@@ -2421,7 +2455,7 @@ msgid ""
msgstr ""
"\n"
"Module de base pour gérer le plan comptable pour l'Équateur dans OpenERP.\n"
-"==============================================================\n"
+"=========================================================================\n"
"\n"
"Module pour la comptabilité équatorienne\n"
" "
@@ -2472,13 +2506,13 @@ msgid ""
msgstr ""
"\n"
"Gestion des devis et des commandes de vente\n"
-"=========================================\n"
+"===========================================\n"
"\n"
"Ce module fait le lien entre les ventes et les applications de gestion des "
"entrepôts.\n"
"\n"
"Préférences\n"
-"-------------------\n"
+"-----------\n"
"* Expédition : Choix de la livraison en une fois ou une livraison partielle\n"
"* Facturation : Choisir comment les factures vont être payées\n"
"* Incoterms : International Commercial terms\n"
@@ -2677,6 +2711,29 @@ msgid ""
"* Maximal difference between timesheet and attendances\n"
" "
msgstr ""
+"\n"
+"Enregistrer et valider facilement les feuilles de temps et les présences\n"
+"========================================================================\n"
+"\n"
+"Cette application fournie un nouvel écran vous permettant de gérer à la fois "
+"les présences (entrées/sorties) et l'enregistrement du travail (feuille de "
+"temps) par période. Les saisies dans la feuille de temps sont faites par les "
+"employés chaque jour. À la fin de la période définie, les employés valident "
+"leurs feuilles de temps et le responsable doit approuver les saisies de son "
+"équipe. Les périodes sont définis dans le formulaire de la société et vous "
+"pouvez les paramétrer sur une base mensuelle ou hebdomadaire.\n"
+"\n"
+"Le processus complet de la validation des feuilles de temps est :\n"
+"-----------------------------------------------------------------\n"
+"* Feuille en brouillon\n"
+"* Confirmation de la feuille à la fin de la période par les employées\n"
+"* Validation par le responsable du projet\n"
+"\n"
+"La validation peut être paramétrée dans la société :\n"
+"----------------------------------------------------\n"
+"* Durée de la période (jour, semaine, mois)\n"
+"* Différence maximale entre la feuille de temps et les présences\n"
+" "
#. module: base
#: code:addons/base/ir/ir_fields.py:342
@@ -2844,7 +2901,7 @@ msgid ""
msgstr ""
"\n"
"Gestion de Support (Helpdesk).\n"
-"====================\n"
+"==============================\n"
"\n"
"Les dossiers et le traitement des réclamations sont bien suivis et tracés "
"avec le Helpdesk.\n"
@@ -2932,11 +2989,25 @@ msgid ""
" * Date\n"
" "
msgstr ""
+"\n"
+"Définir des valeurs par défaut pour les comptes analytiques.\n"
+"============================================================\n"
+"\n"
+"Permet de sélectionner automatiquement les comptes analytiques selon des "
+"critères :\n"
+"-----------------------------------------------------------------------------"
+"------\n"
+" * Article\n"
+" * Partenaire\n"
+" * Utilisateur\n"
+" * Société\n"
+" * Date\n"
+" "
#. module: base
#: field:res.company,rml_header1:0
msgid "Company Slogan"
-msgstr ""
+msgstr "Slogan de la société"
#. module: base
#: model:res.country,name:base.bb
@@ -2960,7 +3031,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_oauth_signup
msgid "Signup with OAuth2 Authentication"
-msgstr ""
+msgstr "Se connecter avec l'authentification OAuth2"
#. module: base
#: selection:ir.model,state:0
@@ -3021,6 +3092,10 @@ msgid ""
"==================================\n"
" "
msgstr ""
+"\n"
+"États-Unis d'Amérique - Plan comptable.\n"
+"=======================================\n"
+" "
#. module: base
#: field:ir.actions.act_url,target:0
@@ -3055,7 +3130,7 @@ msgstr "Nom du raccourci"
#. module: base
#: field:res.partner,contact_address:0
msgid "Complete Address"
-msgstr ""
+msgstr "Adresse complète"
#. module: base
#: help:ir.actions.act_window,limit:0
@@ -3127,7 +3202,7 @@ msgstr "ID de l’enregistrement"
#. module: base
#: view:ir.filters:0
msgid "My Filters"
-msgstr ""
+msgstr "Mes filtres"
#. module: base
#: field:ir.actions.server,email:0
@@ -3141,12 +3216,16 @@ msgid ""
"Module to attach a google document to any model.\n"
"================================================\n"
msgstr ""
+"\n"
+"Module pour attacher des documents Google à n'importe quel objet.\n"
+"=================================================================\n"
#. module: base
#: code:addons/base/ir/ir_fields.py:334
#, python-format
msgid "Found multiple matches for field '%%(field)s' (%d matches)"
msgstr ""
+"Plusieurs résultats ont été trouvés pour le champ '%%(field)s' (%d résultats)"
#. module: base
#: selection:base.language.install,lang:0
@@ -3180,7 +3259,7 @@ msgstr "Arguments envoyés au client avec la vue"
#. module: base
#: model:ir.module.module,summary:base.module_contacts
msgid "Contacts, People and Companies"
-msgstr ""
+msgstr "Contacts, personnes et sociétés"
#. module: base
#: model:res.country,name:base.tt
@@ -3213,7 +3292,7 @@ msgstr "Responsable"
#: code:addons/base/ir/ir_model.py:718
#, python-format
msgid "Sorry, you are not allowed to access this document."
-msgstr ""
+msgstr "Désolé, vous n'êtes pas autorisé à accéder à ce document."
#. module: base
#: model:res.country,name:base.py
@@ -3329,7 +3408,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:175
#, python-format
msgid "'%s' does not seem to be an integer for field '%%(field)s'"
-msgstr ""
+msgstr "'%s' ne semble pas être un entier pour le champ '%%(field)s'"
#. module: base
#: model:ir.module.category,description:base.module_category_report_designer
@@ -3390,7 +3469,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_linkedin
msgid "LinkedIn Integration"
-msgstr ""
+msgstr "Intégration avec LinkedIn"
#. module: base
#: code:addons/orm.py:2021
@@ -3439,6 +3518,8 @@ msgid ""
"the user will have an access to the sales configuration as well as statistic "
"reports."
msgstr ""
+"l'utilisateur aura un accès à la configuration des ventes ainsi qu'aux "
+"rapports statistiques."
#. module: base
#: model:res.country,name:base.nz
@@ -3585,7 +3666,7 @@ msgstr "Arménie"
#. module: base
#: model:ir.module.module,summary:base.module_hr_evaluation
msgid "Periodical Evaluations, Appraisals, Surveys"
-msgstr ""
+msgstr "Évaluations périodiques, appréciations, sondages"
#. module: base
#: model:ir.actions.act_window,name:base.ir_property_form
@@ -3625,6 +3706,31 @@ msgid ""
" payslip interface, but not in the payslip report\n"
" "
msgstr ""
+"\n"
+"Règles pour la paie française.\n"
+"==============================\n"
+"\n"
+" - Configuration du module hr_payroll pour la localisation française\n"
+" - Toutes les principales règles de contribution pour la fiche de paie "
+"française, pour les cadres et les non-cadres\n"
+" - Nouveau rapport des feuilles de paie\n"
+"\n"
+"Reste à faire :\n"
+"---------------\n"
+" - Intégration avec le module de gestion des congés pour la déduction des "
+"congés et la gestion des indemnités\n"
+" - Intégration avec le module hr_payroll_account pour la création des "
+"lignes d'écritures \n"
+" depuis la feuille de paie\n"
+" - Continuer l'intégration des contributions. Seules les principales "
+"contributions sont \n"
+" actuellement implémentées.\n"
+" - Retravailler le rapport sous webkit\n"
+" - Les lignes de paie avec appears_in_payslip = False doivent apparaître "
+"dans\n"
+" l'interface des fiches de paie, mais pas dans le rapport des fiches de "
+"paie.\n"
+" "
#. module: base
#: model:res.country,name:base.se
@@ -3634,7 +3740,7 @@ msgstr "Suède"
#. module: base
#: field:ir.actions.report.xml,report_file:0
msgid "Report File"
-msgstr ""
+msgstr "Fichier de rapport"
#. module: base
#: selection:ir.actions.act_window.view,view_mode:0
@@ -3667,7 +3773,7 @@ msgstr ""
#: code:addons/orm.py:3839
#, python-format
msgid "Missing document(s)"
-msgstr ""
+msgstr "Document(s) manquant(s)"
#. module: base
#: model:ir.model,name:base.model_res_partner_bank_type
@@ -3682,6 +3788,8 @@ msgid ""
"For more details about translating OpenERP in your language, please refer to "
"the"
msgstr ""
+"Pour plus de détails concernant la traduction d'OpenERP dans votre langue, "
+"veuillez vous référer à"
#. module: base
#: field:res.partner,image:0
@@ -3807,6 +3915,28 @@ msgid ""
"database,\n"
" but in the servers rootpad like /server/bin/filestore.\n"
msgstr ""
+"\n"
+"Ceci est un système complet de gestion de documents.\n"
+"=====================================================\n"
+"\n"
+" * Authentification des utilisateurs\n"
+" * Indexation des documents ; les fichiers .pptx et .docx ne sont pas "
+"supportés sous Windows.\n"
+" * Tableau de bord des documents qui inclut :\n"
+" * Nouveaux fichiers (liste)\n"
+" * Fichiers par type de ressources (graphique)\n"
+" * Fichiers par partenaire (graphique)\n"
+" * Taille des fichiers par mois (graphique)\n"
+"\n"
+"ATTENTION :\n"
+"-----------\n"
+"\n"
+" - Quand vous installez ce module en production dans une société qui a "
+"déjà des fichiers PDF\n"
+" enregistrés dans la base de données, ils seront tous perdus.\n"
+" - Après l'installation de ce module les PDF ne seront plus enregistrés "
+"dans la base de données,\n"
+" mais à la racine du serveur dans /server/bin/filestore.\n"
#. module: base
#: help:res.currency,name:0
@@ -3898,7 +4028,7 @@ msgstr "Finlandais / Suomi"
#. module: base
#: view:ir.config_parameter:0
msgid "System Properties"
-msgstr ""
+msgstr "Propriétés système"
#. module: base
#: field:ir.sequence,prefix:0
@@ -3955,7 +4085,7 @@ msgstr "Personnel"
#. module: base
#: field:base.language.export,modules:0
msgid "Modules To Export"
-msgstr ""
+msgstr "Modules à exporter"
#. module: base
#: model:res.country,name:base.mt
@@ -3968,6 +4098,8 @@ msgstr "Malte"
msgid ""
"Only users with the following access level are currently allowed to do that"
msgstr ""
+"Seuls les utilisateurs avec les niveaux d'accès suivants sont actuellement "
+"autorisé à faire cela"
#. module: base
#: field:ir.actions.server,fields_lines:0
@@ -4128,7 +4260,7 @@ msgstr "De droite à gauche"
#. module: base
#: model:res.country,name:base.sx
msgid "Sint Maarten (Dutch part)"
-msgstr ""
+msgstr "Saint-Martin (partie néerlandaise)"
#. module: base
#: view:ir.actions.act_window:0
diff --git a/openerp/addons/base/i18n/hr.po b/openerp/addons/base/i18n/hr.po
index 908dc21eed1..ef10cfa1019 100644
--- a/openerp/addons/base/i18n/hr.po
+++ b/openerp/addons/base/i18n/hr.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-03 16:01+0000\n"
-"PO-Revision-Date: 2012-11-24 21:10+0000\n"
+"PO-Revision-Date: 2012-12-09 19:36+0000\n"
"Last-Translator: Goran Kliska \n"
"Language-Team: openerp-translators\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-04 04:59+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
+"X-Launchpad-Export-Date: 2012-12-10 04:36+0000\n"
+"X-Generator: Launchpad (build 16341)\n"
"Language: hr\n"
#. module: base
@@ -532,7 +532,7 @@ msgstr "Naziv relacije"
#. module: base
#: view:ir.rule:0
msgid "Create Access Right"
-msgstr ""
+msgstr "Kreiraj pravo pristupa"
#. module: base
#: model:res.country,name:base.tv
@@ -582,7 +582,7 @@ msgstr "Francuska Guyana"
#. module: base
#: model:ir.module.module,summary:base.module_hr
msgid "Jobs, Departments, Employees Details"
-msgstr ""
+msgstr "Radna mjesta, odjeli, podaci o radnicima"
#. module: base
#: model:ir.module.module,description:base.module_analytic
@@ -695,7 +695,7 @@ msgstr "Kolumbija"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_mister
msgid "Mister"
-msgstr ""
+msgstr "Gospodin"
#. module: base
#: help:res.country,code:0
@@ -828,6 +828,11 @@ msgid ""
"This module provides the Integration of the LinkedIn with OpenERP.\n"
" "
msgstr ""
+"\n"
+"OpenERP Web LinkedIn modul.\n"
+"============================\n"
+"Integracija LinkedIn-a sa OpenERP-om.\n"
+" "
#. module: base
#: help:ir.actions.act_window,src_model:0
@@ -1132,7 +1137,7 @@ msgstr "Google korisnici"
#. module: base
#: model:ir.module.module,shortdesc:base.module_fleet
msgid "Fleet Management"
-msgstr ""
+msgstr "Upravljanje flotom (automobili)"
#. module: base
#: help:ir.server.object.lines,value:0
@@ -1234,7 +1239,7 @@ msgstr "Zadnja verzija"
#. module: base
#: view:ir.rule:0
msgid "Delete Access Right"
-msgstr ""
+msgstr "Prava brisanja"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:213
@@ -1304,7 +1309,7 @@ msgstr "Vidljivo"
#. module: base
#: model:ir.actions.client,name:base.action_client_base_menu
msgid "Open Settings Menu"
-msgstr ""
+msgstr "Otvori izbornik postavki"
#. module: base
#: selection:base.language.install,lang:0
@@ -1427,7 +1432,7 @@ msgstr "Haiti"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr_hr_payroll
msgid "French Payroll"
-msgstr ""
+msgstr "Francuska plaća"
#. module: base
#: view:ir.ui.view:0
@@ -2571,7 +2576,7 @@ msgstr "Grčka / Ελληνικά"
#. module: base
#: field:res.company,custom_footer:0
msgid "Custom Footer"
-msgstr ""
+msgstr "Prilagođeno podnožje"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_crm
@@ -2879,7 +2884,7 @@ msgstr "Naslijeđeno"
#: code:addons/base/ir/ir_fields.py:147
#, python-format
msgid "yes"
-msgstr ""
+msgstr "da"
#. module: base
#: field:ir.model.fields,serialization_field_id:0
@@ -14826,7 +14831,7 @@ msgstr ""
#. module: base
#: field:ir.sequence,implementation:0
msgid "Implementation"
-msgstr ""
+msgstr "Implementacija"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ve
@@ -14931,7 +14936,7 @@ msgstr "Ažuriranje sustava"
#: field:ir.actions.report.xml,report_sxw_content:0
#: field:ir.actions.report.xml,report_sxw_content_data:0
msgid "SXW Content"
-msgstr ""
+msgstr "SXW Sadržaj"
#. module: base
#: help:ir.sequence,prefix:0
@@ -14946,7 +14951,7 @@ msgstr "Sejšeli"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_4
msgid "Gold"
-msgstr ""
+msgstr "Zlatni"
#. module: base
#: code:addons/base/res/res_company.py:159
@@ -14973,7 +14978,7 @@ msgstr "Opći podaci"
#. module: base
#: field:ir.model.data,complete_name:0
msgid "Complete ID"
-msgstr ""
+msgstr "Puni ID"
#. module: base
#: model:res.country,name:base.tc
@@ -14985,7 +14990,7 @@ msgstr "Turks and Caicos Islands"
msgid ""
"Tax Identification Number. Check the box if this contact is subjected to "
"taxes. Used by the some of the legal statements."
-msgstr ""
+msgstr "Porezni broj (OIB) ."
#. module: base
#: field:res.partner.bank,partner_id:0
@@ -15070,7 +15075,7 @@ msgstr ""
#. module: base
#: view:res.partner:0
msgid "Internal Notes"
-msgstr ""
+msgstr "Interne bilješke"
#. module: base
#: selection:res.partner.address,type:0
@@ -15086,7 +15091,7 @@ msgstr "Corp."
#. module: base
#: model:ir.module.module,shortdesc:base.module_purchase_requisition
msgid "Purchase Requisitions"
-msgstr ""
+msgstr "Natječaji u nabavi"
#. module: base
#: selection:ir.actions.act_window,target:0
@@ -15112,7 +15117,7 @@ msgstr "Partneri: "
#. module: base
#: view:res.partner:0
msgid "Is a Company?"
-msgstr ""
+msgstr "Je tvrtka="
#. module: base
#: code:addons/base/res/res_company.py:159
@@ -15134,7 +15139,7 @@ msgstr "Kreiraj objekt"
#. module: base
#: model:res.country,name:base.ss
msgid "South Sudan"
-msgstr ""
+msgstr "Južni Sudan"
#. module: base
#: field:ir.filters,context:0
diff --git a/openerp/addons/base/i18n/it.po b/openerp/addons/base/i18n/it.po
index 2ff4d0bb006..b7b9d50b453 100644
--- a/openerp/addons/base/i18n/it.po
+++ b/openerp/addons/base/i18n/it.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-03 16:01+0000\n"
-"PO-Revision-Date: 2012-12-01 13:29+0000\n"
-"Last-Translator: Sergio Corato \n"
+"PO-Revision-Date: 2012-12-09 12:05+0000\n"
+"Last-Translator: Davide Corio - agilebg.com \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: 2012-12-04 04:57+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
+"X-Launchpad-Export-Date: 2012-12-10 04:36+0000\n"
+"X-Generator: Launchpad (build 16341)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -92,7 +92,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,summary:base.module_point_of_sale
msgid "Touchscreen Interface for Shops"
-msgstr "Interfaccia Touchscreen per Negozzi"
+msgstr "Interfaccia Touchscreen per Negozi"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
@@ -140,6 +140,9 @@ msgid ""
"The module adds google user in res user.\n"
"========================================\n"
msgstr ""
+"\n"
+"Aggiunge lo username Google a res.user.\n"
+"========================================\n"
#. module: base
#: help:res.partner,employee:0
@@ -322,7 +325,7 @@ msgstr "Gestione Vendite"
msgid ""
"The internal user that is in charge of communicating with this contact if "
"any."
-msgstr ""
+msgstr "L'utente responsabile delle comunicazioni con questo contatto."
#. module: base
#: view:res.partner:0
diff --git a/openerp/addons/base/i18n/pt.po b/openerp/addons/base/i18n/pt.po
index da684ab1a89..1ee4820f500 100644
--- a/openerp/addons/base/i18n/pt.po
+++ b/openerp/addons/base/i18n/pt.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-03 16:01+0000\n"
-"PO-Revision-Date: 2012-08-20 15:49+0000\n"
-"Last-Translator: Tiago Rodrigues \n"
+"PO-Revision-Date: 2012-12-07 10:59+0000\n"
+"Last-Translator: Rui Franco (multibase.pt) \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: 2012-12-04 04:59+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
+"X-Launchpad-Export-Date: 2012-12-08 04:58+0000\n"
+"X-Generator: Launchpad (build 16341)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -33,7 +33,7 @@ msgstr "Santa Helena"
#. module: base
#: view:ir.actions.report.xml:0
msgid "Other Configuration"
-msgstr "Outras Configurações"
+msgstr "Outras configurações"
#. module: base
#: selection:ir.property,type:0
@@ -69,12 +69,12 @@ msgstr "Sem espaços"
#. module: base
#: selection:base.language.install,lang:0
msgid "Hungarian / Magyar"
-msgstr "Húngaro / Magyar"
+msgstr "Húngaro"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (PY) / Español (PY)"
-msgstr "Spanish (PY) / Español (PY)"
+msgstr "Espanhol (PY) / Español (PY)"
#. module: base
#: model:ir.module.category,description:base.module_category_project_management
@@ -88,7 +88,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,summary:base.module_point_of_sale
msgid "Touchscreen Interface for Shops"
-msgstr ""
+msgstr "Interface \"touchscreen\" para lojas"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
@@ -126,7 +126,7 @@ msgstr ""
#. module: base
#: field:ir.actions.client,params:0
msgid "Supplementary arguments"
-msgstr "Argumentos Suplementares"
+msgstr "Argumentos suplementares"
#. module: base
#: model:ir.module.module,description:base.module_google_base_account
@@ -149,8 +149,8 @@ msgid ""
"[('color','=','red')]"
msgstr ""
"O domínio opcional para restringir os valores possíveis para os campos de "
-"relacionamento, especificado como uma expressão Python definir uma lista de "
-"trigémeos. por exemplo: [('color','=','red')]"
+"relacionamento, especificado como uma expressão Python para definir uma "
+"lista de trigémeos. por exemplo: [('color','=','red')]"
#. module: base
#: field:res.partner,ref:0
@@ -160,12 +160,12 @@ msgstr "Referência"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_invoice_bba
msgid "Belgium - Structured Communication"
-msgstr "Bélgica - Comunicação Estruturada"
+msgstr "Bélgica - Comunicação estruturada"
#. module: base
#: field:ir.actions.act_window,target:0
msgid "Target Window"
-msgstr "Janela Alvo"
+msgstr "Janela alvo"
#. module: base
#: field:ir.actions.report.xml,report_rml:0
@@ -241,7 +241,7 @@ msgstr ""
#: code:addons/osv.py:130
#, python-format
msgid "Constraint Error"
-msgstr "Erro restrição"
+msgstr "Erro de restrição"
#. module: base
#: model:ir.model,name:base.model_ir_ui_view_custom
@@ -257,7 +257,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.sz
msgid "Swaziland"
-msgstr "Swaziland"
+msgstr "Suazilândia"
#. module: base
#: code:addons/orm.py:4453
@@ -268,7 +268,7 @@ msgstr "Criado"
#. module: base
#: field:ir.actions.report.xml,report_xsl:0
msgid "XSL Path"
-msgstr ""
+msgstr "Caminho do XSL"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
@@ -278,13 +278,13 @@ msgstr "Turquia - Contabilidade"
#. module: base
#: field:ir.sequence,number_increment:0
msgid "Increment Number"
-msgstr "Incrementar Número"
+msgstr "Incrementar número"
#. module: base
#: model:ir.actions.act_window,name:base.action_res_company_tree
#: model:ir.ui.menu,name:base.menu_action_res_company_tree
msgid "Company's Structure"
-msgstr "Estrutura da Empresa"
+msgstr "Estrutura da empresa"
#. module: base
#: selection:base.language.install,lang:0
@@ -294,7 +294,7 @@ msgstr "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
-msgstr ""
+msgstr "Multidivisas"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@@ -310,7 +310,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale
msgid "Sales Management"
-msgstr "Gestão de Vendas"
+msgstr "Gestão de vendas"
#. module: base
#: help:res.partner,user_id:0
@@ -322,12 +322,12 @@ msgstr ""
#. module: base
#: view:res.partner:0
msgid "Search Partner"
-msgstr "Localizar Parceiro"
+msgstr "Localizar parceiro"
#. module: base
#: field:ir.module.category,module_nr:0
msgid "Number of Modules"
-msgstr "Número de Módulos"
+msgstr "Número de módulos"
#. module: base
#: help:multi_company.default,company_dest_id:0
@@ -363,7 +363,7 @@ msgstr ""
#. module: base
#: field:res.partner.address,name:0
msgid "Contact Name"
-msgstr "Nome do Contato"
+msgstr "Nome do contacto"
#. module: base
#: help:ir.values,key2:0
@@ -379,7 +379,7 @@ msgstr ""
#. module: base
#: sql_constraint:res.lang:0
msgid "The name of the language must be unique !"
-msgstr "O nome da língua deve ser único"
+msgstr "O nome da língua deve ser único!"
#. module: base
#: selection:res.request,state:0
@@ -407,7 +407,7 @@ msgstr ""
#. module: base
#: model:ir.module.category,name:base.module_category_customer_relationship_management
msgid "Customer Relationship Management"
-msgstr "Gestão da Relação do Cliente"
+msgstr "Gestão da relação com os clientes"
#. module: base
#: model:ir.module.module,description:base.module_delivery
@@ -444,14 +444,14 @@ msgstr "Aplicações Descendentes"
#. module: base
#: field:res.partner,credit_limit:0
msgid "Credit Limit"
-msgstr "Limite de Crédito"
+msgstr "Limite de crédito"
#. module: base
#: field:ir.model.constraint,date_update:0
#: field:ir.model.data,date_update:0
#: field:ir.model.relation,date_update:0
msgid "Update Date"
-msgstr "Atualizar Data"
+msgstr "Atualizar data"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_action_rule
@@ -466,7 +466,7 @@ msgstr "Dono"
#. module: base
#: view:ir.actions.act_window:0
msgid "Source Object"
-msgstr "Objeto Fonte"
+msgstr "Objeto fonte"
#. module: base
#: model:res.partner.bank.type,format_layout:base.bank_normal
@@ -476,7 +476,7 @@ msgstr "%(bank_name)s: %(acc_number)s"
#. module: base
#: view:ir.actions.todo:0
msgid "Config Wizard Steps"
-msgstr "Configurar os Passos do Assistente"
+msgstr "Configurar os passos do assistente"
#. module: base
#: model:ir.model,name:base.model_ir_ui_view_sc
@@ -530,7 +530,7 @@ msgstr ""
#. module: base
#: view:ir.rule:0
msgid "Create Access Right"
-msgstr ""
+msgstr "Criar direito de acesso"
#. module: base
#: model:res.country,name:base.tv
@@ -545,7 +545,7 @@ msgstr "Próximo assistente"
#. module: base
#: field:res.lang,date_format:0
msgid "Date Format"
-msgstr "Formato da Data"
+msgstr "Formato da data"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_report_designer
@@ -570,17 +570,17 @@ msgstr ""
#. module: base
#: view:workflow.transition:0
msgid "Workflow Transition"
-msgstr ""
+msgstr "Transição do fluxo de trabalho"
#. module: base
#: model:res.country,name:base.gf
msgid "French Guyana"
-msgstr "Guyana Francesa"
+msgstr "Guiana Francesa"
#. module: base
#: model:ir.module.module,summary:base.module_hr
msgid "Jobs, Departments, Employees Details"
-msgstr ""
+msgstr "Funções, departamentos, informações sobre os empregados"
#. module: base
#: model:ir.module.module,description:base.module_analytic
@@ -600,7 +600,7 @@ msgstr ""
#. module: base
#: field:ir.ui.view.custom,ref_id:0
msgid "Original View"
-msgstr "Vista Original"
+msgstr "Vista original"
#. module: base
#: model:ir.module.module,description:base.module_event
@@ -623,7 +623,7 @@ msgstr ""
#. module: base
#: selection:base.language.install,lang:0
msgid "Bosnian / bosanski jezik"
-msgstr "Bósnia / bosanski jezik"
+msgstr "Bósnio / bosanski jezik"
#. module: base
#: model:ir.module.module,description:base.module_base_gengo
@@ -662,12 +662,12 @@ msgstr "Angola"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (VE) / Español (VE)"
-msgstr "Spanish (VE) / Español (VE)"
+msgstr "Espanhol (VE) / Español (VE)"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice
msgid "Invoice on Timesheets"
-msgstr "Faturar Folha de Horas"
+msgstr "Faturar folha de horas"
#. module: base
#: view:base.module.upgrade:0
@@ -683,7 +683,7 @@ msgstr "Texto"
#. module: base
#: field:res.country,name:0
msgid "Country Name"
-msgstr "Nome do País"
+msgstr "Nome do país"
#. module: base
#: model:res.country,name:base.co
@@ -717,12 +717,12 @@ msgstr "Vendas & Compras"
#. module: base
#: view:ir.translation:0
msgid "Untranslated"
-msgstr "Não Traduzidas"
+msgstr "Por traduzir"
#. module: base
#: view:ir.mail_server:0
msgid "Outgoing Mail Server"
-msgstr ""
+msgstr "Servidor de correio (para envio)"
#. module: base
#: help:ir.actions.act_window,context:0
@@ -744,7 +744,7 @@ msgstr "Assistentes"
#: code:addons/base/ir/ir_model.py:337
#, python-format
msgid "Custom fields must have a name that starts with 'x_' !"
-msgstr "Os Campos Personalizados devem ter um nome que começe com 'x_' !"
+msgstr "Os campos personalizados devem ter um nome iniciado por 'x_'!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_mx
@@ -759,7 +759,7 @@ msgstr "Selecione a Janela Ação, Relatório, Assistente para ser executado."
#. module: base
#: sql_constraint:ir.config_parameter:0
msgid "Key must be unique."
-msgstr "Chave deve ser única."
+msgstr "A chave deve ser única."
#. module: base
#: model:ir.module.module,shortdesc:base.module_plugin_outlook
@@ -802,7 +802,7 @@ msgstr ""
#: view:ir.model:0
#: field:ir.model,name:0
msgid "Model Description"
-msgstr "Descrição do Modelo"
+msgstr "Descrição do modelo"
#. module: base
#: model:ir.actions.act_window,help:base.action_partner_customer_form
@@ -847,7 +847,7 @@ msgstr "Jordânia"
#. module: base
#: help:ir.cron,nextcall:0
msgid "Next planned execution date for this job."
-msgstr "Data próxima execução prevista para este trabalho."
+msgstr "Data da próxima execução prevista para este trabalho."
#. module: base
#: model:res.country,name:base.er
@@ -862,7 +862,7 @@ msgstr "O nome da empresa deve ser único!"
#. module: base
#: model:ir.ui.menu,name:base.menu_base_action_rule_admin
msgid "Automated Actions"
-msgstr "Ações Automáticas"
+msgstr "Ações automáticas"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ro
@@ -872,7 +872,7 @@ msgstr "Roménia - Contabilidade"
#. module: base
#: model:ir.model,name:base.model_res_config_settings
msgid "res.config.settings"
-msgstr ""
+msgstr "res.config.settings"
#. module: base
#: help:res.partner,image_small:0
@@ -901,7 +901,7 @@ msgstr "Segurança e autentificação"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_calendar
msgid "Web Calendar"
-msgstr ""
+msgstr "Calendário web"
#. module: base
#: selection:base.language.install,lang:0
@@ -912,7 +912,7 @@ msgstr "Sueco / svenska"
#: field:base.language.export,name:0
#: field:ir.attachment,datas_fname:0
msgid "File Name"
-msgstr ""
+msgstr "Nome do ficheiro"
#. module: base
#: model:res.country,name:base.rs
@@ -922,12 +922,12 @@ msgstr "Sérvia"
#. module: base
#: selection:ir.translation,type:0
msgid "Wizard View"
-msgstr "Ver Assistente"
+msgstr "Vista de Assistente"
#. module: base
#: model:res.country,name:base.kh
msgid "Cambodia, Kingdom of"
-msgstr "Cambodja, Reino de"
+msgstr "Camboja"
#. module: base
#: field:base.language.import,overwrite:0
@@ -967,7 +967,7 @@ msgstr ""
#. module: base
#: selection:base.language.install,lang:0
msgid "Albanian / Shqip"
-msgstr "Albanian / Shqip"
+msgstr "Albanês / Shqip"
#. module: base
#: model:ir.ui.menu,name:base.menu_crm_config_opportunity
@@ -1002,7 +1002,7 @@ msgstr "Repositórios partilhados (WebDAV)"
#. module: base
#: view:res.users:0
msgid "Email Preferences"
-msgstr "Preferências de Email"
+msgstr "Preferências de email"
#. module: base
#: code:addons/base/ir/ir_fields.py:196
@@ -1018,7 +1018,7 @@ msgstr "Meus parceiros"
#. module: base
#: model:res.country,name:base.zw
msgid "Zimbabwe"
-msgstr "Zimbabwe"
+msgstr "Zimbabué"
#. module: base
#: help:ir.model.constraint,type:0
@@ -1041,7 +1041,8 @@ msgstr "Espanha"
msgid ""
"Optional domain filtering of the destination data, as a Python expression"
msgstr ""
-"Domínio opcional filtra os dados do destinatário como uma expressão Python"
+"Domínio opcional para filtrar os dados do destinatário (formato de expressão "
+"Python)"
#. module: base
#: model:ir.model,name:base.model_base_module_upgrade
@@ -1068,7 +1069,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.om
msgid "Oman"
-msgstr "Oman"
+msgstr "Omã"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp
@@ -1095,7 +1096,7 @@ msgstr "Niue"
#. module: base
#: model:ir.module.module,shortdesc:base.module_membership
msgid "Membership Management"
-msgstr "Gestor de Membros"
+msgstr "Gestor de membros"
#. module: base
#: selection:ir.module.module,license:0
@@ -1111,7 +1112,7 @@ msgstr ""
#: model:ir.actions.act_window,name:base.act_menu_create
#: view:wizard.ir.model.menu.create:0
msgid "Create Menu"
-msgstr "Criar Menu"
+msgstr "Criar menu"
#. module: base
#: model:res.country,name:base.in
@@ -1132,7 +1133,7 @@ msgstr "Utilizadores Google"
#. module: base
#: model:ir.module.module,shortdesc:base.module_fleet
msgid "Fleet Management"
-msgstr ""
+msgstr "Gestão de frota"
#. module: base
#: help:ir.server.object.lines,value:0
@@ -1153,7 +1154,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.ad
msgid "Andorra, Principality of"
-msgstr "Andorra, Principado de"
+msgstr "Andorra"
#. module: base
#: field:ir.rule,perm_read:0
@@ -1180,7 +1181,7 @@ msgstr "Arquivo TGZ"
msgid ""
"Users added to this group are automatically added in the following groups."
msgstr ""
-"Utilizadores adicionados a este grupo são adicionados automaticamente nos "
+"Utilizadores adicionados a este grupo são adicionados automaticamente aos "
"seguintes grupos."
#. module: base
@@ -1188,12 +1189,12 @@ msgstr ""
#: code:addons/base/ir/ir_model.py:727
#, python-format
msgid "Document model"
-msgstr ""
+msgstr "Modelo de documento"
#. module: base
#: view:res.lang:0
msgid "%B - Full month name."
-msgstr "%B - Nome do mês completo."
+msgstr "%B - Nome completo do mês."
#. module: base
#: field:ir.actions.todo,type:0
@@ -1238,24 +1239,24 @@ msgstr "O nome do país tem de ser único!"
#. module: base
#: field:ir.module.module,installed_version:0
msgid "Latest Version"
-msgstr ""
+msgstr "Versão mais recente"
#. module: base
#: view:ir.rule:0
msgid "Delete Access Right"
-msgstr ""
+msgstr "Eliminar direito de acesso"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:213
#, python-format
msgid "Connection test failed!"
-msgstr "Teste de conexão falhou!"
+msgstr "Teste de ligação falhou!"
#. module: base
#: selection:ir.actions.server,state:0
#: selection:workflow.activity,kind:0
msgid "Dummy"
-msgstr "Dummy"
+msgstr "Teste"
#. module: base
#: constraint:ir.ui.view:0
@@ -1270,7 +1271,7 @@ msgstr "Ilhas Caimão"
#. module: base
#: view:ir.rule:0
msgid "Record Rule"
-msgstr ""
+msgstr "Regra de gravação"
#. module: base
#: model:res.country,name:base.kr
@@ -1313,12 +1314,12 @@ msgstr "Visível"
#. module: base
#: model:ir.actions.client,name:base.action_client_base_menu
msgid "Open Settings Menu"
-msgstr ""
+msgstr "Abrir o menu de configuração"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (AR) / Español (AR)"
-msgstr "Spanhol (AR) / Español (AR)"
+msgstr "Espanhol (AR) / Español (AR)"
#. module: base
#: model:res.country,name:base.ug
@@ -1328,7 +1329,7 @@ msgstr "Uganda"
#. module: base
#: field:ir.model.access,perm_unlink:0
msgid "Delete Access"
-msgstr "Acesso a eliminar"
+msgstr "Eliminar acesso"
#. module: base
#: model:res.country,name:base.ne
@@ -1338,7 +1339,7 @@ msgstr "Níger"
#. module: base
#: selection:base.language.install,lang:0
msgid "Chinese (HK)"
-msgstr "Chinês (HK)"
+msgstr "Cantonês (Hong Kong, Macau, Cantão)"
#. module: base
#: model:res.country,name:base.ba
@@ -1348,17 +1349,17 @@ msgstr "Bósnia-Herzegovina"
#. module: base
#: selection:ir.translation,type:0
msgid "Wizard Field"
-msgstr "Campo Assistente"
+msgstr "Campo de assistente"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (GT) / Español (GT)"
-msgstr "Spanish (GT) / Español (GT)"
+msgstr "Espanhol (GT) / Español (GT)"
#. module: base
#: field:ir.mail_server,smtp_port:0
msgid "SMTP Port"
-msgstr "Porta SMTP"
+msgstr "Porto de SMTP"
#. module: base
#: help:res.users,login:0
@@ -1404,18 +1405,18 @@ msgstr ""
#. module: base
#: field:ir.ui.view_sc,res_id:0
msgid "Resource Ref."
-msgstr "Referência do Recurso"
+msgstr "Referencia do recurso"
#. module: base
#: field:ir.actions.act_url,url:0
msgid "Action URL"
-msgstr "URL Ação"
+msgstr "URL de ação"
#. module: base
#: field:base.module.import,module_name:0
#: field:ir.module.module,shortdesc:0
msgid "Module Name"
-msgstr "Nome do Módulo"
+msgstr "Nome do módulo"
#. module: base
#: model:res.country,name:base.mh
@@ -1467,12 +1468,12 @@ msgstr "Aplicação Ascendente"
#: code:addons/base/res/res_users.py:135
#, python-format
msgid "Operation Canceled"
-msgstr "Operação Cancelada"
+msgstr "Operação cancelada"
#. module: base
#: model:ir.module.module,shortdesc:base.module_document
msgid "Document Management System"
-msgstr "Sistema de Gestão de Documentos"
+msgstr "Sistema de gestão de documentos"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_claim
@@ -1588,7 +1589,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.mf
msgid "Saint Martin (French part)"
-msgstr ""
+msgstr "Saint Martin (zona francesa)"
#. module: base
#: model:ir.model,name:base.model_ir_exports
@@ -1605,7 +1606,7 @@ msgstr "Não existe um idioma com o código \"%s\""
#: model:ir.module.category,name:base.module_category_social_network
#: model:ir.module.module,shortdesc:base.module_mail
msgid "Social Network"
-msgstr ""
+msgstr "Rede social"
#. module: base
#: view:res.lang:0
@@ -1615,7 +1616,7 @@ msgstr "%Y - ."
#. module: base
#: view:res.company:0
msgid "Report Footer Configuration"
-msgstr ""
+msgstr "Configuração do rodapé de relatório"
#. module: base
#: field:ir.translation,comments:0
@@ -1716,7 +1717,7 @@ msgstr ""
#. module: base
#: field:workflow,on_create:0
msgid "On Create"
-msgstr "Em Criação"
+msgstr "Na criação"
#. module: base
#: code:addons/base/ir/ir_model.py:905
@@ -1774,7 +1775,7 @@ msgstr ""
#. module: base
#: field:res.partner,image_small:0
msgid "Small-sized image"
-msgstr ""
+msgstr "Imagem pequena"
#. module: base
#: model:ir.module.module,shortdesc:base.module_stock
@@ -1789,20 +1790,20 @@ msgstr "res.request.link"
#. module: base
#: field:ir.actions.wizard,name:0
msgid "Wizard Info"
-msgstr "Informação do Assistente"
+msgstr "Informação do assistente"
#. module: base
#: model:ir.actions.act_window,name:base.action_wizard_lang_export
#: model:ir.ui.menu,name:base.menu_wizard_lang_export
msgid "Export Translation"
-msgstr "Exportar Tradução"
+msgstr "Exportar tradução"
#. module: base
#: model:ir.actions.act_window,name:base.action_server_action
#: view:ir.actions.server:0
#: model:ir.ui.menu,name:base.menu_server_action
msgid "Server Actions"
-msgstr "Ações do Servidor"
+msgstr "Ações de servidor"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_lu
@@ -1812,7 +1813,7 @@ msgstr "Luxemburgo - Contabilidade"
#. module: base
#: model:res.country,name:base.tp
msgid "East Timor"
-msgstr "Timor-Leste"
+msgstr "Timor Leste"
#. module: base
#: code:addons/base/module/module.py:388
@@ -1824,7 +1825,7 @@ msgstr "Instalar"
#. module: base
#: field:res.currency,accuracy:0
msgid "Computational Accuracy"
-msgstr "Exactidão Computacional"
+msgstr "Exatidão computacional"
#. module: base
#: model:ir.module.module,description:base.module_l10n_at
@@ -1841,7 +1842,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.kg
msgid "Kyrgyz Republic (Kyrgyzstan)"
-msgstr "Kyrgyz Republic (Kyrgyzstan)"
+msgstr "Quirguistão"
#. module: base
#: model:ir.module.module,description:base.module_account_accountant
@@ -1886,7 +1887,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.nl
msgid "Netherlands"
-msgstr "Holanda"
+msgstr "Países Baixos"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_event
@@ -1896,7 +1897,7 @@ msgstr ""
#. module: base
#: selection:ir.translation,state:0
msgid "Translation in Progress"
-msgstr ""
+msgstr "Tradução em progresso"
#. module: base
#: model:ir.model,name:base.model_ir_rule
@@ -1911,13 +1912,13 @@ msgstr "Dias"
#. module: base
#: model:ir.module.module,summary:base.module_fleet
msgid "Vehicle, leasing, insurances, costs"
-msgstr ""
+msgstr "Veículo, 'leasing', seguros, custos"
#. module: base
#: view:ir.model.access:0
#: field:ir.model.access,perm_read:0
msgid "Read Access"
-msgstr "Acesso para Leitura"
+msgstr "Direito de leitura"
#. module: base
#: model:ir.module.module,description:base.module_share
@@ -1943,7 +1944,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_process
msgid "Enterprise Process"
-msgstr "Processo da Empresa"
+msgstr "Processo da empresa"
#. module: base
#: help:res.partner,supplier:0
@@ -1987,23 +1988,23 @@ msgstr "Parceiros"
#. module: base
#: field:res.partner.category,parent_left:0
msgid "Left parent"
-msgstr "Left parent"
+msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_project_mrp
msgid "Create Tasks on SO"
-msgstr "Criar Tarefas em SO"
+msgstr "Criar tarefas no SO"
#. module: base
#: code:addons/base/ir/ir_model.py:316
#, python-format
msgid "This column contains module data and cannot be removed!"
-msgstr ""
+msgstr "Esta coluna contém dados do módulo e não pode ser removida!"
#. module: base
#: field:ir.attachment,res_model:0
msgid "Attached Model"
-msgstr "Modelo Anexado"
+msgstr "Modelo ligado"
#. module: base
#: field:res.partner.bank,footer:0
@@ -2046,7 +2047,7 @@ msgstr ""
#. module: base
#: field:workflow.transition,act_from:0
msgid "Source Activity"
-msgstr "Atividade Fonte"
+msgstr "Atividade fonte"
#. module: base
#: view:ir.sequence:0
@@ -2062,7 +2063,7 @@ msgstr "Fórmula"
#: code:addons/base/res/res_users.py:311
#, python-format
msgid "Can not remove root user!"
-msgstr "Não pode remover o utilizador raíz!"
+msgstr "Não pode remover o utilizador raiz!"
#. module: base
#: model:res.country,name:base.mw
@@ -2103,13 +2104,13 @@ msgstr "%s (cópia)"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_chart
msgid "Template of Charts of Accounts"
-msgstr "Templates de Planos de Contas"
+msgstr "Modelos de planos de contas"
#. module: base
#: field:res.partner,type:0
#: field:res.partner.address,type:0
msgid "Address Type"
-msgstr "Tipo de Endereço"
+msgstr "Tipo de endereço"
#. module: base
#: model:ir.module.module,description:base.module_sale_stock
@@ -2193,7 +2194,7 @@ msgstr ""
#. module: base
#: field:ir.actions.act_window,view_mode:0
msgid "View Mode"
-msgstr "Modo de Vista"
+msgstr "Modo de vista"
#. module: base
#: help:res.partner.bank,footer:0
@@ -2207,17 +2208,17 @@ msgstr ""
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish / Español"
-msgstr "Spanhol / Español"
+msgstr "Espanhol / Español"
#. module: base
#: selection:base.language.install,lang:0
msgid "Korean (KP) / 한국어 (KP)"
-msgstr "Korean (KP) / 한국어 (KP)"
+msgstr "Coreano (KP) / 한국어 (KP)"
#. module: base
#: model:res.country,name:base.ax
msgid "Åland Islands"
-msgstr ""
+msgstr "Ilhas Åland"
#. module: base
#: field:res.company,logo:0
@@ -2233,12 +2234,12 @@ msgstr "Costa Rica - Contabilidade"
#: selection:ir.actions.act_url,target:0
#: selection:ir.actions.act_window,target:0
msgid "New Window"
-msgstr "Nova Janela"
+msgstr "Nova janela"
#. module: base
#: field:ir.values,action_id:0
msgid "Action (change only)"
-msgstr "Ação (alterar apenas)"
+msgstr "Ação (apenas alteração)"
#. module: base
#: model:ir.module.module,shortdesc:base.module_subscription
@@ -2258,7 +2259,7 @@ msgstr ""
#. module: base
#: model:ir.module.category,name:base.module_category_tools
msgid "Extra Tools"
-msgstr "Ferramentas Extra"
+msgstr "Ferramentas extras"
#. module: base
#: view:ir.attachment:0
@@ -2290,7 +2291,7 @@ msgstr "Método"
#. module: base
#: view:workflow.activity:0
msgid "Workflow Activity"
-msgstr "Atividade Workflow"
+msgstr "Atividade do fluxo de trabalho"
#. module: base
#: model:ir.module.module,description:base.module_hr_timesheet_sheet
@@ -2363,7 +2364,7 @@ msgstr "Grupos"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (CL) / Español (CL)"
-msgstr "Spanish (CL) / Español (CL)"
+msgstr "Espanhol (CL) / Español (CL)"
#. module: base
#: model:res.country,name:base.bz
@@ -2431,18 +2432,18 @@ msgstr ""
#: code:addons/orm.py:3811
#, python-format
msgid "A document was modified since you last viewed it (%s:%d)"
-msgstr "Um documento foi modificado desde a última visita que (%s:%d)"
+msgstr "Um documento foi modificado desde a última vez que o viu (%s:%d)"
#. module: base
#: view:workflow:0
msgid "Workflow Editor"
-msgstr "Editor de Workflow"
+msgstr "Editor de fluxo de trabalho"
#. module: base
#: selection:ir.module.module,state:0
#: selection:ir.module.module.dependency,state:0
msgid "To be removed"
-msgstr "A ser removido"
+msgstr "A remover"
#. module: base
#: model:ir.model,name:base.model_ir_sequence
@@ -2559,7 +2560,7 @@ msgstr ""
#. module: base
#: field:res.company,rml_header1:0
msgid "Company Slogan"
-msgstr ""
+msgstr "Lema da empresa"
#. module: base
#: model:res.country,name:base.bb
@@ -2577,7 +2578,8 @@ msgstr "Madagáscar"
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
-"O nome do objeto deve começar com x_ e não pode conter um caracter especial!"
+"O nome do objeto deve começar por \"x_\" e não pode conter um carater "
+"especial!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_oauth_signup
@@ -2587,7 +2589,7 @@ msgstr ""
#. module: base
#: selection:ir.model,state:0
msgid "Custom Object"
-msgstr "Objeto Personalizado"
+msgstr "Objeto personalizado"
#. module: base
#: model:ir.actions.act_window,name:base.action_menu_admin
@@ -2599,17 +2601,17 @@ msgstr "Menu"
#. module: base
#: field:res.currency,rate:0
msgid "Current Rate"
-msgstr "Taxa Atual"
+msgstr "Taxa atual"
#. module: base
#: selection:base.language.install,lang:0
msgid "Greek / Ελληνικά"
-msgstr "Grego"
+msgstr "Grego / Ελληνικά"
#. module: base
#: field:res.company,custom_footer:0
msgid "Custom Footer"
-msgstr ""
+msgstr "Rodapé personalizado"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_crm
@@ -2640,7 +2642,7 @@ msgstr ""
#. module: base
#: field:ir.actions.act_url,target:0
msgid "Action Target"
-msgstr "Ação Alvo"
+msgstr "Ação alvo"
#. module: base
#: model:res.country,name:base.ai
@@ -2665,12 +2667,12 @@ msgstr "Faturação"
#. module: base
#: field:ir.ui.view_sc,name:0
msgid "Shortcut Name"
-msgstr "Nome do Atalho"
+msgstr "Nome do atalho"
#. module: base
#: field:res.partner,contact_address:0
msgid "Complete Address"
-msgstr ""
+msgstr "Endereço completo"
#. module: base
#: help:ir.actions.act_window,limit:0
@@ -2742,12 +2744,12 @@ msgstr "ID do Registo"
#. module: base
#: view:ir.filters:0
msgid "My Filters"
-msgstr ""
+msgstr "Os meus filtros"
#. module: base
#: field:ir.actions.server,email:0
msgid "Email Address"
-msgstr "Endereço de Email"
+msgstr "Endereço eletrónico"
#. module: base
#: model:ir.module.module,description:base.module_google_docs
@@ -2785,7 +2787,7 @@ msgstr ""
#: view:ir.actions.server:0
#: field:workflow.activity,action_id:0
msgid "Server Action"
-msgstr "Ação do Servidor"
+msgstr "Ação do servidor"
#. module: base
#: help:ir.actions.client,params:0
@@ -2795,7 +2797,7 @@ msgstr "Argumentos enviados ao cliente junto com a tag vista"
#. module: base
#: model:ir.module.module,summary:base.module_contacts
msgid "Contacts, People and Companies"
-msgstr ""
+msgstr "Contactos, pessoas e empresas"
#. module: base
#: model:res.country,name:base.tt
@@ -2810,12 +2812,12 @@ msgstr "Letónia"
#. module: base
#: view:ir.actions.server:0
msgid "Field Mappings"
-msgstr "Mapeamento de Campos"
+msgstr "Mapeamento de campos"
#. module: base
#: view:base.language.export:0
msgid "Export Translations"
-msgstr "Exportar Traduções"
+msgstr "Exportar traduções"
#. module: base
#: model:res.groups,name:base.group_hr_manager
@@ -2828,7 +2830,7 @@ msgstr "Gestor"
#: code:addons/base/ir/ir_model.py:718
#, python-format
msgid "Sorry, you are not allowed to access this document."
-msgstr ""
+msgstr "Infelizmente, não está autorizado a aceder a este documento."
#. module: base
#: model:res.country,name:base.py
@@ -2843,7 +2845,7 @@ msgstr "Fiji"
#. module: base
#: view:ir.actions.report.xml:0
msgid "Report Xml"
-msgstr ""
+msgstr "XML de Relatório"
#. module: base
#: model:ir.module.module,description:base.module_purchase
@@ -2914,12 +2916,12 @@ msgstr "Herdado"
#: code:addons/base/ir/ir_fields.py:147
#, python-format
msgid "yes"
-msgstr ""
+msgstr "sim"
#. module: base
#: field:ir.model.fields,serialization_field_id:0
msgid "Serialization Field"
-msgstr "Campo de Serialização"
+msgstr "Campo de serialização"
#. module: base
#: model:ir.module.module,description:base.module_l10n_be_hr_payroll
@@ -3005,14 +3007,14 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_linkedin
msgid "LinkedIn Integration"
-msgstr ""
+msgstr "Integração com o LinkedIn"
#. module: base
#: code:addons/orm.py:2021
#: code:addons/orm.py:2032
#, python-format
msgid "Invalid Object Architecture!"
-msgstr "Objeto de Arquitetura Inválido!"
+msgstr "Arquitetura de objeto Inválida!"
#. module: base
#: code:addons/base/ir/ir_model.py:364
@@ -3031,7 +3033,7 @@ msgstr "Erro!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr_rib
msgid "French RIB Bank Details"
-msgstr "Detalhes Bancários do RIB Francês"
+msgstr "Detalhes bancários do RIB francês"
#. module: base
#: view:res.lang:0
@@ -3041,7 +3043,7 @@ msgstr "%p - Equivalente do AM or PM."
#. module: base
#: view:ir.actions.server:0
msgid "Iteration Actions"
-msgstr "Ações de Iteração"
+msgstr "Ações de iteração"
#. module: base
#: help:multi_company.default,company_id:0
@@ -3065,7 +3067,7 @@ msgstr "Nova Zelândia"
#: view:ir.model.fields:0
#: field:res.partner.bank.type.field,name:0
msgid "Field Name"
-msgstr "Nome do Campo"
+msgstr "Nome do campo"
#. module: base
#: model:ir.actions.act_window,help:base.action_country
@@ -3086,19 +3088,19 @@ msgstr "Ilha Norfolk"
#. module: base
#: selection:base.language.install,lang:0
msgid "Korean (KR) / 한국어 (KR)"
-msgstr "Korean (KR) / 한국어 (KR)"
+msgstr "Coreano (KR) / 한국어 (KR)"
#. module: base
#: help:ir.model.fields,model:0
msgid "The technical name of the model this field belongs to"
-msgstr "O nome técnico do modelo este campo pertence a"
+msgstr "O nome técnico do modelo a que este campo pertence"
#. module: base
#: field:ir.actions.server,action_id:0
#: selection:ir.actions.server,state:0
#: view:ir.values:0
msgid "Client Action"
-msgstr "Ação do Cliente"
+msgstr "Ação de cliente"
#. module: base
#: model:ir.module.module,description:base.module_subscription
@@ -3122,7 +3124,7 @@ msgstr ""
#. module: base
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
-msgstr "Erro! Não pode criar empresas recursivas."
+msgstr "Erro! Não pode criar empresas recursivamente."
#. module: base
#: code:addons/base/res/res_users.py:671
@@ -3165,7 +3167,8 @@ msgstr "Salvaguarda de parâmetros"
#: code:addons/base/module/module.py:499
#, python-format
msgid "Can not upgrade module '%s'. It is not installed."
-msgstr "Não é possível atualizar o módulo '%s'. Não está instalado."
+msgstr ""
+"Não é possível atualizar o módulo '%s' porque este não está instalado."
#. module: base
#: model:res.country,name:base.cu
@@ -3181,7 +3184,7 @@ msgstr "Tipo de relatório desconhecido: %s"
#. module: base
#: model:ir.module.module,summary:base.module_hr_expense
msgid "Expenses Validation, Invoicing"
-msgstr ""
+msgstr "Validação de despesas, faturação"
#. module: base
#: model:ir.module.module,description:base.module_l10n_be_hr_payroll_account
@@ -3249,7 +3252,7 @@ msgstr "Suécia"
#. module: base
#: field:ir.actions.report.xml,report_file:0
msgid "Report File"
-msgstr ""
+msgstr "Ficheiro de relatório"
#. module: base
#: selection:ir.actions.act_window.view,view_mode:0
@@ -3282,14 +3285,14 @@ msgstr ""
#: code:addons/orm.py:3839
#, python-format
msgid "Missing document(s)"
-msgstr ""
+msgstr "Documento(s) em falta"
#. module: base
#: model:ir.model,name:base.model_res_partner_bank_type
#: field:res.partner.bank,state:0
#: view:res.partner.bank.type:0
msgid "Bank Account Type"
-msgstr "Tipo de Conta Bancária"
+msgstr "Tipo de conta bancária"
#. module: base
#: view:base.language.export:0
@@ -3297,6 +3300,8 @@ msgid ""
"For more details about translating OpenERP in your language, please refer to "
"the"
msgstr ""
+"Para mais informações acerca da tradução do OpenERP para o seu idioma, por "
+"favor, veja em"
#. module: base
#: field:res.partner,image:0
@@ -3341,7 +3346,7 @@ msgstr ""
#. module: base
#: model:ir.model,name:base.model_ir_module_module_dependency
msgid "Module dependency"
-msgstr "Dependência do Módulo"
+msgstr "Dependência do módulo"
#. module: base
#: model:res.country,name:base.bd
@@ -3363,7 +3368,7 @@ msgstr ""
#: view:res.groups:0
#: field:res.groups,model_access:0
msgid "Access Controls"
-msgstr "Controlos de Acesso"
+msgstr "Controlos de acesso"
#. module: base
#: code:addons/base/ir/ir_model.py:273
@@ -3389,12 +3394,12 @@ msgstr "Dependências"
#. module: base
#: field:multi_company.default,company_id:0
msgid "Main Company"
-msgstr "Empresa Principal"
+msgstr "Empresa principal"
#. module: base
#: field:ir.ui.menu,web_icon_hover:0
msgid "Web Icon File (hover)"
-msgstr "Ícone da Web do Ficheiro (hover)"
+msgstr "Ficheiro com o ícone web (a aparecer quando o rato passa por cima)"
#. module: base
#: model:ir.module.module,description:base.module_document
@@ -3425,12 +3430,12 @@ msgstr ""
#. module: base
#: help:res.currency,name:0
msgid "Currency Code (ISO 4217)"
-msgstr "Código da moeda(ISO 4217)"
+msgstr "Código da divisa(ISO 4217)"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_contract
msgid "Employee Contracts"
-msgstr "Contratos de Funcionários"
+msgstr "Contratos de funcionários"
#. module: base
#: view:ir.actions.server:0
@@ -3438,25 +3443,25 @@ msgid ""
"If you use a formula type, use a python expression using the variable "
"'object'."
msgstr ""
-"Se usa um tipo de formula, use uma expressão python com o uso de uma "
-"variável 'objeto'"
+"Se usa um tipo de fórmula, use uma expressão Python com o uso de uma "
+"variável do tipo 'objeto'"
#. module: base
#: field:res.partner,birthdate:0
#: field:res.partner.address,birthdate:0
msgid "Birthdate"
-msgstr "Data de Nascimento"
+msgstr "Data de nascimento"
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_title_contact
#: model:ir.ui.menu,name:base.menu_partner_title_contact
msgid "Contact Titles"
-msgstr "Títulos do Contato"
+msgstr "Títulos de contacto"
#. module: base
#: model:ir.module.module,shortdesc:base.module_product_manufacturer
msgid "Products Manufacturers"
-msgstr "Fabricantes de Artigos"
+msgstr "Fabricantes de artigos"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:238
@@ -3473,7 +3478,7 @@ msgstr "Questionário"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (DO) / Español (DO)"
-msgstr "Spanish (DO) / Español (DO)"
+msgstr "Espanhol (DO) / Español (DO)"
#. module: base
#: model:ir.model,name:base.model_workflow_activity
@@ -3483,7 +3488,7 @@ msgstr "workflow.activity"
#. module: base
#: view:base.language.export:0
msgid "Export Complete"
-msgstr ""
+msgstr "Exportação concluída"
#. module: base
#: help:ir.ui.view_sc,res_id:0
@@ -3491,8 +3496,8 @@ msgid ""
"Reference of the target resource, whose model/table depends on the 'Resource "
"Name' field."
msgstr ""
-"Referência do recurso de destino, cujo modelo/tabela depende campo 'Nome do "
-"Recurso'."
+"Referência do recurso de destino, cujo modelo/tabela depende do campo 'Nome "
+"do Recurso'."
#. module: base
#: field:ir.model.fields,select_level:0
@@ -3507,12 +3512,12 @@ msgstr "Uruguai"
#. module: base
#: selection:base.language.install,lang:0
msgid "Finnish / Suomi"
-msgstr "Finnish / Suomi"
+msgstr "Finlandês / Suomi"
#. module: base
#: view:ir.config_parameter:0
msgid "System Properties"
-msgstr ""
+msgstr "Propriedades do sistema"
#. module: base
#: field:ir.sequence,prefix:0
@@ -3533,7 +3538,7 @@ msgstr "Relação dos campos"
#: model:res.partner.title,name:base.res_partner_title_sir
#: model:res.partner.title,shortcut:base.res_partner_title_sir
msgid "Sir"
-msgstr "Senhor"
+msgstr "Sr."
#. module: base
#: model:ir.module.module,description:base.module_l10n_ca
@@ -3556,12 +3561,12 @@ msgstr "Selecione pacote do módulo a importar (ficheiro zip.)"
#. module: base
#: view:ir.filters:0
msgid "Personal"
-msgstr ""
+msgstr "Pessoal"
#. module: base
#: field:base.language.export,modules:0
msgid "Modules To Export"
-msgstr ""
+msgstr "Módulos a exportar"
#. module: base
#: model:res.country,name:base.mt
@@ -3574,6 +3579,8 @@ msgstr "Malta"
msgid ""
"Only users with the following access level are currently allowed to do that"
msgstr ""
+"Apenas utilizadores com o nível de acesso indicado de seguida estão "
+"autorizados a fazer isso"
#. module: base
#: field:ir.actions.server,fields_lines:0
@@ -3659,12 +3666,12 @@ msgstr "Hostname ou IP do servidor SMTP"
#. module: base
#: model:res.country,name:base.aq
msgid "Antarctica"
-msgstr "Antártica"
+msgstr "Antártida"
#. module: base
#: view:res.partner:0
msgid "Persons"
-msgstr ""
+msgstr "Pessoas"
#. module: base
#: view:base.language.import:0
@@ -3674,17 +3681,17 @@ msgstr "_Importar"
#. module: base
#: field:res.users,action_id:0
msgid "Home Action"
-msgstr "Ação Principal"
+msgstr "Ação principal"
#. module: base
#: field:res.lang,grouping:0
msgid "Separator Format"
-msgstr "Formato do Separador"
+msgstr "Formato do separador"
#. module: base
#: model:ir.module.module,shortdesc:base.module_report_webkit
msgid "Webkit Report Engine"
-msgstr "Motor de Relatórios Webkit"
+msgstr "Motor de relatórios Webkit"
#. module: base
#: model:ir.ui.menu,name:base.next_id_9
@@ -3718,13 +3725,13 @@ msgstr ""
#. module: base
#: view:ir.rule:0
msgid "Interaction between rules"
-msgstr "Interação entre Regras"
+msgstr "Interação entre regras"
#. module: base
#: field:res.company,rml_footer:0
#: field:res.company,rml_footer_readonly:0
msgid "Report Footer"
-msgstr ""
+msgstr "Rodapé do relatório"
#. module: base
#: selection:res.lang,direction:0
@@ -3734,7 +3741,7 @@ msgstr "Da direita para a esquerda"
#. module: base
#: model:res.country,name:base.sx
msgid "Sint Maarten (Dutch part)"
-msgstr ""
+msgstr "Saint Martin (zona holandesa)"
#. module: base
#: view:ir.actions.act_window:0
@@ -3749,7 +3756,7 @@ msgstr "Filtros"
#: view:ir.cron:0
#: model:ir.ui.menu,name:base.menu_ir_cron_act
msgid "Scheduled Actions"
-msgstr "Ações Agendadas"
+msgstr "Ações agendadas"
#. module: base
#: model:ir.module.category,name:base.module_category_reporting
@@ -3768,19 +3775,19 @@ msgstr "Título"
#. module: base
#: help:ir.property,res_id:0
msgid "If not set, acts as a default value for new resources"
-msgstr "Se não definido, atua como um valor padrão para novos registos."
+msgstr "Se não for definido, atua como um valor padrão para novos registos."
#. module: base
#: code:addons/orm.py:4213
#, python-format
msgid "Recursivity Detected."
-msgstr "Recursividade Detetada."
+msgstr "Recursividade detetada."
#. module: base
#: code:addons/base/module/module.py:345
#, python-format
msgid "Recursion error in modules dependencies !"
-msgstr "Erro de recursão nas dependências dos módulos !"
+msgstr "Erro de recursividade nas dependências dos módulos !"
#. module: base
#: model:ir.module.module,description:base.module_analytic_user_function
@@ -3808,7 +3815,7 @@ msgstr ""
#. module: base
#: view:ir.model:0
msgid "Create a Menu"
-msgstr "Criar um Menu"
+msgstr "Criar um menu"
#. module: base
#: model:res.country,name:base.tg
@@ -3824,12 +3831,12 @@ msgstr ""
#. module: base
#: selection:ir.sequence,implementation:0
msgid "Standard"
-msgstr "Por omissão"
+msgstr "Padrão"
#. module: base
#: model:res.country,name:base.ru
msgid "Russian Federation"
-msgstr "Federação Russa"
+msgstr "Rússia"
#. module: base
#: selection:base.language.install,lang:0
@@ -3842,12 +3849,12 @@ msgstr "Urdu / اردو"
#: code:addons/orm.py:3870
#, python-format
msgid "Access Denied"
-msgstr ""
+msgstr "Acesso negado"
#. module: base
#: field:res.company,name:0
msgid "Company Name"
-msgstr "Nome da Empresa"
+msgstr "Nome da empresa"
#. module: base
#: code:addons/orm.py:2811
@@ -3873,14 +3880,12 @@ msgstr "RML (desatualizado - use Report)"
#. module: base
#: sql_constraint:ir.translation:0
msgid "Language code of translation item must be among known languages"
-msgstr ""
-"Linguagem do código do item de tradução deve estar entre as linguagens "
-"conhecidas"
+msgstr "O código de idioma da tradução deve pertencer aos idiomas conhecidos"
#. module: base
#: view:ir.rule:0
msgid "Record rules"
-msgstr "Regras de Gravação"
+msgstr "Regras de gravação"
#. module: base
#: view:ir.actions.todo:0
@@ -3906,7 +3911,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.je
msgid "Jersey"
-msgstr ""
+msgstr "Jersey"
#. module: base
#: model:ir.module.module,description:base.module_auth_anonymous
@@ -3925,7 +3930,7 @@ msgstr "12. %w ==> 5 ( Sexta-feira é o 6º dia)"
#. module: base
#: constraint:res.partner.category:0
msgid "Error ! You can not create recursive categories."
-msgstr "Erro ! Não pode criar categorias recursivas."
+msgstr "Erro ! Não pode criar categorias recursivamente."
#. module: base
#: view:res.lang:0
@@ -3935,7 +3940,7 @@ msgstr "%x - Apresentação apropriada da data."
#. module: base
#: view:res.partner:0
msgid "Tag"
-msgstr ""
+msgstr "Etiqueta"
#. module: base
#: view:res.lang:0
@@ -3955,12 +3960,12 @@ msgstr "GPL-2 ou versão anterior"
#. module: base
#: selection:workflow.activity,kind:0
msgid "Stop All"
-msgstr "Parar Tudo"
+msgstr "Parar tudo"
#. module: base
#: field:res.company,paper_format:0
msgid "Paper Format"
-msgstr "Formatar papel"
+msgstr "Formato da folha"
#. module: base
#: model:ir.module.module,description:base.module_note_pad
@@ -3987,7 +3992,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.sk
msgid "Slovakia"
-msgstr ""
+msgstr "Eslováquia"
#. module: base
#: model:res.country,name:base.nr
@@ -4016,7 +4021,7 @@ msgstr "Formulário"
#. module: base
#: model:res.country,name:base.pf
msgid "Polynesia (French)"
-msgstr "Polinésia"
+msgstr "Polinésia Francesa"
#. module: base
#: model:ir.module.module,description:base.module_l10n_it
@@ -4052,13 +4057,13 @@ msgstr ""
#. module: base
#: model:res.country,name:base.tk
msgid "Tokelau"
-msgstr "Tokelau"
+msgstr "Toquelau"
#. module: base
#: view:ir.cron:0
#: view:ir.module.module:0
msgid "Technical Data"
-msgstr "Dados Técnicos"
+msgstr "Dados técnicos"
#. module: base
#: model:ir.model,name:base.model_ir_ui_view
@@ -4143,7 +4148,7 @@ msgstr "Partilhar qualquer documento"
#. module: base
#: model:ir.module.module,summary:base.module_crm
msgid "Leads, Opportunities, Phone Calls"
-msgstr ""
+msgstr "Dicas, oportunidades, telefonemas"
#. module: base
#: view:res.lang:0
@@ -4235,12 +4240,12 @@ msgstr ""
#. module: base
#: model:ir.module.category,name:base.module_category_localization_account_charts
msgid "Account Charts"
-msgstr "Planos de Conta"
+msgstr "Planos de contas"
#. module: base
#: model:ir.ui.menu,name:base.menu_event_main
msgid "Events Organization"
-msgstr ""
+msgstr "Organização de eventos"
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_customer_form
@@ -4263,12 +4268,12 @@ msgstr "Menu :"
#. module: base
#: selection:ir.model.fields,state:0
msgid "Base Field"
-msgstr "Campo Base"
+msgstr "Campo base"
#. module: base
#: model:ir.module.category,name:base.module_category_managing_vehicles_and_contracts
msgid "Managing vehicles and contracts"
-msgstr ""
+msgstr "Gestão de veículos e contratos"
#. module: base
#: model:ir.module.module,description:base.module_base_setup
@@ -4306,7 +4311,7 @@ msgstr "Polónia - Contabilidade"
#. module: base
#: view:ir.cron:0
msgid "Action to Trigger"
-msgstr "Ação a Ativar"
+msgstr "Ação a ativar"
#. module: base
#: field:ir.model.constraint,name:0
@@ -4319,7 +4324,7 @@ msgstr "Restrição"
#: selection:res.partner,type:0
#: selection:res.partner.address,type:0
msgid "Default"
-msgstr "Por Omissão"
+msgstr "Por omissão"
#. module: base
#: model:ir.module.module,summary:base.module_lunch
@@ -4416,7 +4421,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.va
msgid "Holy See (Vatican City State)"
-msgstr "Santa Sé (Cidade do Vaticano)"
+msgstr "Vaticano"
#. module: base
#: field:base.module.import,module_file:0
@@ -4518,7 +4523,7 @@ msgstr "Tipo de Sequência"
#. module: base
#: view:base.language.export:0
msgid "Unicode/UTF-8"
-msgstr ""
+msgstr "Unicode/UTF-8"
#. module: base
#: selection:base.language.install,lang:0
@@ -4530,12 +4535,12 @@ msgstr "Hindi / हिंदी"
#: model:ir.actions.act_window,name:base.action_view_base_language_install
#: model:ir.ui.menu,name:base.menu_view_base_language_install
msgid "Load a Translation"
-msgstr ""
+msgstr "Carregar uma tradução"
#. module: base
#: field:ir.module.module,latest_version:0
msgid "Installed Version"
-msgstr ""
+msgstr "Versão instalada"
#. module: base
#: field:ir.module.module,license:0
@@ -4678,7 +4683,7 @@ msgstr "ir.actions.report.xml"
#. module: base
#: model:res.country,name:base.ps
msgid "Palestinian Territory, Occupied"
-msgstr ""
+msgstr "Palestina"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ch
@@ -4835,12 +4840,12 @@ msgstr ""
#. module: base
#: selection:base.language.install,lang:0
msgid "Portuguese (BR) / Português (BR)"
-msgstr ""
+msgstr "Português (BR)"
#. module: base
#: model:ir.model,name:base.model_ir_needaction_mixin
msgid "ir.needaction_mixin"
-msgstr ""
+msgstr "ir.needaction_mixin"
#. module: base
#: view:base.language.export:0
@@ -4860,13 +4865,13 @@ msgstr "Aplicações para uma Indústria Específica"
#. module: base
#: model:ir.module.module,shortdesc:base.module_google_docs
msgid "Google Docs integration"
-msgstr ""
+msgstr "Integração com o Google Docs"
#. module: base
#: code:addons/base/ir/ir_fields.py:328
#, python-format
msgid "name"
-msgstr ""
+msgstr "nome"
#. module: base
#: model:ir.module.module,description:base.module_mrp_operations
@@ -4922,7 +4927,7 @@ msgstr "Lesoto"
#. module: base
#: view:base.language.export:0
msgid ", or your preferred text editor"
-msgstr ""
+msgstr ", ou o seu editor de texto preferido"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_partner_assign
@@ -4989,12 +4994,12 @@ msgstr "Definir como Nulo"
#. module: base
#: view:res.users:0
msgid "Save"
-msgstr ""
+msgstr "Gravar"
#. module: base
#: field:ir.actions.report.xml,report_xml:0
msgid "XML Path"
-msgstr ""
+msgstr "Caminho do XML"
#. module: base
#: model:res.country,name:base.bj
@@ -5076,7 +5081,7 @@ msgstr "Segurança"
#. module: base
#: selection:base.language.install,lang:0
msgid "Portuguese / Português"
-msgstr ""
+msgstr "Português"
#. module: base
#: code:addons/base/ir/ir_model.py:364
@@ -5167,7 +5172,7 @@ msgstr "Taxas"
#. module: base
#: model:ir.module.module,shortdesc:base.module_email_template
msgid "Email Templates"
-msgstr ""
+msgstr "Modelos de mensagens"
#. module: base
#: model:res.country,name:base.sy
@@ -5272,7 +5277,7 @@ msgstr ""
#. module: base
#: view:res.company:0
msgid "Preview Header/Footer"
-msgstr ""
+msgstr "Antevisão do Cabeçalho/Rodapé"
#. module: base
#: field:ir.ui.menu,parent_id:0
@@ -5310,7 +5315,7 @@ msgstr ""
#. module: base
#: model:ir.model,name:base.model_res_partner_address
msgid "res.partner.address"
-msgstr ""
+msgstr "res.partner.address"
#. module: base
#: view:ir.rule:0
@@ -5349,7 +5354,7 @@ msgstr "Histórico"
#. module: base
#: model:res.country,name:base.im
msgid "Isle of Man"
-msgstr ""
+msgstr "Ilha de Man"
#. module: base
#: help:ir.actions.client,res_model:0
@@ -5512,7 +5517,7 @@ msgstr ""
#. module: base
#: model:res.groups,name:base.group_sale_salesman_all_leads
msgid "See all Leads"
-msgstr ""
+msgstr "Ver todas as dicas"
#. module: base
#: model:res.country,name:base.ci
@@ -5589,7 +5594,7 @@ msgstr "Configuração de precisão decimal"
#: model:ir.model,name:base.model_ir_actions_act_url
#: selection:ir.ui.menu,action:0
msgid "ir.actions.act_url"
-msgstr ""
+msgstr "ir.actions.act_ur"
#. module: base
#: model:ir.ui.menu,name:base.menu_translation_app
@@ -5742,7 +5747,7 @@ msgstr ""
#. module: base
#: view:ir.translation:0
msgid "Comments"
-msgstr ""
+msgstr "Comentários"
#. module: base
#: model:res.country,name:base.et
@@ -5752,7 +5757,7 @@ msgstr "Etiópia"
#. module: base
#: model:ir.module.category,name:base.module_category_authentication
msgid "Authentication"
-msgstr ""
+msgstr "Autenticação"
#. module: base
#: model:res.country,name:base.sj
@@ -5786,7 +5791,7 @@ msgstr "Título"
#: code:addons/base/ir/ir_fields.py:147
#, python-format
msgid "true"
-msgstr ""
+msgstr "verdadeiro"
#. module: base
#: model:ir.model,name:base.model_base_language_install
@@ -5796,7 +5801,7 @@ msgstr "Instalar Idioma"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_11
msgid "Services"
-msgstr ""
+msgstr "Serviços"
#. module: base
#: view:ir.translation:0
@@ -5900,7 +5905,7 @@ msgstr ""
#: code:addons/base/ir/workflow/workflow.py:99
#, python-format
msgid "Operation forbidden"
-msgstr ""
+msgstr "Operação proibida"
#. module: base
#: view:ir.actions.server:0
@@ -5992,7 +5997,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_hr_payroll
msgid "Belgium - Payroll"
-msgstr ""
+msgstr "Bélgica - folha de pagamentos"
#. module: base
#: view:workflow.activity:0
@@ -6024,7 +6029,7 @@ msgstr "Nome do Recurso"
#. module: base
#: field:res.partner,is_company:0
msgid "Is a Company"
-msgstr ""
+msgstr "É uma empresa"
#. module: base
#: selection:ir.cron,interval_type:0
@@ -6075,6 +6080,7 @@ msgstr ""
msgid ""
"Administrative divisions of a country. E.g. Fed. State, Departement, Canton"
msgstr ""
+"Divisões administrativas de um país. Exemplos: Distrito, Concelho, Freguesia"
#. module: base
#: view:res.partner.bank:0
@@ -6104,7 +6110,7 @@ msgstr ""
#. module: base
#: sql_constraint:ir.filters:0
msgid "Filter names must be unique"
-msgstr ""
+msgstr "Os nomes dos filtros devem ser únicos"
#. module: base
#: help:multi_company.default,object_id:0
@@ -6119,7 +6125,7 @@ msgstr ""
#. module: base
#: field:ir.filters,is_default:0
msgid "Default filter"
-msgstr ""
+msgstr "Filtro padrão"
#. module: base
#: report:ir.module.reference:0
@@ -6236,7 +6242,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_reset_password
msgid "Reset Password"
-msgstr ""
+msgstr "Repor a senha"
#. module: base
#: view:ir.attachment:0
@@ -6253,7 +6259,7 @@ msgstr "Malásia"
#: code:addons/base/ir/ir_sequence.py:131
#, python-format
msgid "Increment number must not be zero."
-msgstr ""
+msgstr "O valor de incremento não pode ser zero."
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_cancel
@@ -6453,7 +6459,7 @@ msgstr "ir.cron"
#. module: base
#: model:res.country,name:base.cw
msgid "Curaçao"
-msgstr ""
+msgstr "Curaçao"
#. module: base
#: view:ir.sequence:0
@@ -6600,7 +6606,7 @@ msgstr "Israel"
#: code:addons/base/res/res_config.py:444
#, python-format
msgid "Cannot duplicate configuration!"
-msgstr ""
+msgstr "Não se pode duplicar a configuração!"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_syscohada
@@ -6654,7 +6660,7 @@ msgstr ""
#. module: base
#: model:res.groups,name:base.group_partner_manager
msgid "Contact Creation"
-msgstr ""
+msgstr "Criação de contacto"
#. module: base
#: view:ir.module.module:0
@@ -6710,7 +6716,7 @@ msgstr ""
#. module: base
#: view:ir.sequence:0
msgid "Week of the Year: %(woy)s"
-msgstr ""
+msgstr "Semana (do ano): %(woy)s"
#. module: base
#: field:res.users,id:0
@@ -6779,7 +6785,7 @@ msgstr "Títulos do Parceiro"
#: code:addons/base/ir/ir_fields.py:228
#, python-format
msgid "Use the format '%s'"
-msgstr ""
+msgstr "Use o formato '%s'"
#. module: base
#: help:ir.actions.act_window,auto_refresh:0
@@ -6811,12 +6817,12 @@ msgstr "WorkItems"
#: code:addons/base/res/res_bank.py:195
#, python-format
msgid "Invalid Bank Account Type Name format."
-msgstr ""
+msgstr "Formato inválido para o nome do tipo de conta bancária."
#. module: base
#: view:ir.filters:0
msgid "Filters visible only for one user"
-msgstr ""
+msgstr "Filtros visíveis só para o utilizador"
#. module: base
#: model:ir.model,name:base.model_ir_attachment
@@ -6836,7 +6842,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_anonymous
msgid "Anonymous"
-msgstr ""
+msgstr "Anónimo"
#. module: base
#: model:ir.module.module,description:base.module_base_import
@@ -6992,7 +6998,7 @@ msgstr "Somália"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_doctor
msgid "Dr."
-msgstr ""
+msgstr "Dr."
#. module: base
#: model:res.groups,name:base.group_user
@@ -7057,7 +7063,7 @@ msgstr "Copiar de"
#. module: base
#: field:ir.model.data,display_name:0
msgid "Record Name"
-msgstr ""
+msgstr "Nome do registo"
#. module: base
#: model:ir.model,name:base.model_ir_actions_client
@@ -7073,7 +7079,7 @@ msgstr "Território Britânico do Oceano Índico"
#. module: base
#: model:ir.actions.server,name:base.action_server_module_immediate_install
msgid "Module Immediate Install"
-msgstr ""
+msgstr "Instalação imediata do módulo"
#. module: base
#: view:ir.actions.server:0
@@ -7200,7 +7206,7 @@ msgstr "Em múltiplos docs"
#: view:res.users:0
#: view:wizard.ir.model.menu.create:0
msgid "or"
-msgstr ""
+msgstr "ou"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_accountant
@@ -7343,7 +7349,7 @@ msgstr ""
#. module: base
#: model:res.partner.category,name:base.res_partner_category_14
msgid "Manufacturer"
-msgstr ""
+msgstr "Fabricante"
#. module: base
#: help:res.users,company_id:0
@@ -7793,7 +7799,7 @@ msgstr "init"
#: view:res.partner:0
#: field:res.partner,user_id:0
msgid "Salesperson"
-msgstr ""
+msgstr "Vendedor"
#. module: base
#: view:res.lang:0
@@ -7851,7 +7857,7 @@ msgstr "Password opcional para autenticação SMTP"
#: code:addons/base/ir/ir_model.py:719
#, python-format
msgid "Sorry, you are not allowed to modify this document."
-msgstr ""
+msgstr "Infelizmente, não pode alterar este documento."
#. module: base
#: code:addons/base/res/res_config.py:350
@@ -7941,7 +7947,7 @@ msgstr "Francês (CH) / Français (CH)"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_13
msgid "Distributor"
-msgstr ""
+msgstr "Distribuidor"
#. module: base
#: help:ir.actions.server,subject:0
@@ -8156,7 +8162,7 @@ msgstr "Contabilidade Analítica"
#. module: base
#: model:ir.model,name:base.model_ir_model_constraint
msgid "ir.model.constraint"
-msgstr ""
+msgstr "ir.model.constraint"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_graph
@@ -8189,7 +8195,7 @@ msgstr "Bélgica - Contabilidade"
#. module: base
#: view:ir.model.access:0
msgid "Access Control"
-msgstr ""
+msgstr "Controlo de acesso"
#. module: base
#: model:res.country,name:base.kw
@@ -8293,7 +8299,7 @@ msgstr "Filipinas"
#. module: base
#: model:ir.module.module,summary:base.module_hr_timesheet_sheet
msgid "Timesheets, Attendances, Activities"
-msgstr ""
+msgstr "Folhas de horas, assiduidade, atividades"
#. module: base
#: model:res.country,name:base.ma
@@ -8406,7 +8412,7 @@ msgstr "Relatório de introspeção em objetos"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_analytics
msgid "Google Analytics"
-msgstr ""
+msgstr "Google Analytics"
#. module: base
#: model:ir.module.module,description:base.module_note
@@ -8434,7 +8440,7 @@ msgstr "Dominica"
#. module: base
#: field:ir.translation,name:0
msgid "Translated field"
-msgstr ""
+msgstr "Traduzir campo"
#. module: base
#: model:ir.module.module,shortdesc:base.module_stock_location
@@ -8648,7 +8654,7 @@ msgstr ""
#. module: base
#: view:base.language.export:0
msgid "documentation"
-msgstr ""
+msgstr "documentação"
#. module: base
#: help:ir.model,osv_memory:0
@@ -8693,7 +8699,7 @@ msgstr "%b - Nome do mês abreviado."
#: code:addons/base/ir/ir_model.py:721
#, python-format
msgid "Sorry, you are not allowed to delete this document."
-msgstr ""
+msgstr "Infelizmente, não pode apagar este documento."
#. module: base
#: constraint:ir.rule:0
@@ -8767,7 +8773,7 @@ msgstr "Samoa Americana"
#. module: base
#: view:ir.attachment:0
msgid "My Document(s)"
-msgstr ""
+msgstr "Os meus documentos"
#. module: base
#: help:ir.actions.act_window,res_model:0
@@ -8849,7 +8855,7 @@ msgstr ""
#. module: base
#: field:res.partner.title,shortcut:0
msgid "Abbreviation"
-msgstr ""
+msgstr "Abreviatura"
#. module: base
#: model:ir.ui.menu,name:base.menu_crm_case_job_req_main
@@ -9046,7 +9052,7 @@ msgstr ""
#. module: base
#: model:ir.module.category,name:base.module_category_warehouse_management
msgid "Warehouse"
-msgstr ""
+msgstr "Armazém"
#. module: base
#: field:ir.exports,resource:0
@@ -9095,7 +9101,7 @@ msgstr "Relatório"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_prof
msgid "Prof."
-msgstr ""
+msgstr "Prof."
#. module: base
#: code:addons/base/ir/ir_mail_server.py:239
@@ -9227,7 +9233,7 @@ msgstr "Ref. do Parceiro"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_expense
msgid "Expense Management"
-msgstr ""
+msgstr "Gestão de despesas"
#. module: base
#: field:ir.attachment,create_date:0
@@ -9306,7 +9312,7 @@ msgstr "Modelos"
#: code:addons/base/module/module.py:472
#, python-format
msgid "The `base` module cannot be uninstalled"
-msgstr ""
+msgstr "O módulo \"base\" não pode ser desinstalado"
#. module: base
#: code:addons/base/ir/ir_cron.py:390
@@ -9333,7 +9339,7 @@ msgstr "osv_memory.autovacuum"
#: code:addons/base/ir/ir_model.py:720
#, python-format
msgid "Sorry, you are not allowed to create this kind of document."
-msgstr ""
+msgstr "Infelizmente, não pode criar este tipo de documento."
#. module: base
#: field:base.language.export,lang:0
@@ -9375,7 +9381,7 @@ msgstr "%H - Hora (24-horas) [00,23]."
#. module: base
#: field:ir.model.fields,on_delete:0
msgid "On Delete"
-msgstr ""
+msgstr "Ao apagar"
#. module: base
#: code:addons/base/ir/ir_model.py:340
@@ -9583,7 +9589,7 @@ msgstr "O código da moeda deve ser único por empresa!"
#: code:addons/base/module/wizard/base_export_language.py:38
#, python-format
msgid "New Language (Empty translation template)"
-msgstr ""
+msgstr "Novo idioma (modelo de tradução limpo)"
#. module: base
#: model:ir.module.module,description:base.module_auth_reset_password
@@ -9653,7 +9659,7 @@ msgstr "Egipto"
#. module: base
#: view:ir.attachment:0
msgid "Creation"
-msgstr ""
+msgstr "Criação"
#. module: base
#: help:ir.actions.server,model_id:0
@@ -9725,7 +9731,7 @@ msgstr ""
#. module: base
#: field:res.partner,use_parent_address:0
msgid "Use Company Address"
-msgstr ""
+msgstr "Usar o endereço da empresa"
#. module: base
#: model:ir.module.module,summary:base.module_hr_holidays
@@ -10106,7 +10112,7 @@ msgstr "Gravar Regras"
#. module: base
#: view:multi_company.default:0
msgid "Multi Company"
-msgstr ""
+msgstr "Multi-empresas"
#. module: base
#: model:ir.module.category,name:base.module_category_portal
@@ -10117,13 +10123,13 @@ msgstr "Portal"
#. module: base
#: selection:ir.translation,state:0
msgid "To Translate"
-msgstr ""
+msgstr "Para traduzir"
#. module: base
#: code:addons/base/ir/ir_fields.py:295
#, python-format
msgid "See all possible values"
-msgstr ""
+msgstr "Ver todos os valores possíveis"
#. module: base
#: model:ir.module.module,description:base.module_claim_from_delivery
@@ -10290,7 +10296,7 @@ msgstr "Itália"
#. module: base
#: model:res.groups,name:base.group_sale_salesman
msgid "See Own Leads"
-msgstr ""
+msgstr "Ver as próprias dicas"
#. module: base
#: view:ir.actions.todo:0
@@ -10522,7 +10528,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_stock
msgid "Sales and Warehouse Management"
-msgstr ""
+msgstr "Gestão de vendas e de armazém"
#. module: base
#: field:ir.model.fields,model:0
@@ -10663,7 +10669,7 @@ msgstr ""
#: code:addons/base/ir/ir_model.py:1023
#, python-format
msgid "Permission Denied"
-msgstr ""
+msgstr "Permissão negada"
#. module: base
#: field:ir.ui.menu,child_id:0
@@ -10808,7 +10814,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.bl
msgid "Saint Barthélémy"
-msgstr ""
+msgstr "Saint Barthélémy"
#. module: base
#: selection:ir.module.module,license:0
@@ -10889,12 +10895,12 @@ msgstr ""
#: model:ir.actions.act_window,name:base.action_inventory_form
#: model:ir.ui.menu,name:base.menu_action_inventory_form
msgid "Default Company per Object"
-msgstr ""
+msgstr "Empresa padrão por objeto"
#. module: base
#: field:ir.ui.menu,needaction_counter:0
msgid "Number of actions the user has to perform"
-msgstr ""
+msgstr "Número de ações que o utilizador tem de realizar"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_hello
@@ -11003,7 +11009,7 @@ msgstr "Este campo é usado para obter/fixar a localização do utilizador"
#. module: base
#: view:ir.filters:0
msgid "Shared"
-msgstr ""
+msgstr "Partilhado"
#. module: base
#: code:addons/base/module/module.py:336
@@ -11194,13 +11200,13 @@ msgstr "Operações de Produção"
#. module: base
#: view:base.language.export:0
msgid "Here is the exported translation file:"
-msgstr ""
+msgstr "Aqui está o ficheiro de tradução:"
#. module: base
#: field:ir.actions.report.xml,report_rml_content:0
#: field:ir.actions.report.xml,report_rml_content_data:0
msgid "RML Content"
-msgstr ""
+msgstr "Conteúdo RML"
#. module: base
#: view:res.lang:0
@@ -11367,7 +11373,7 @@ msgstr "A4"
#. module: base
#: view:res.config.installer:0
msgid "Configuration Installer"
-msgstr ""
+msgstr "Instalador de Configuração"
#. module: base
#: field:res.partner,customer:0
@@ -11458,13 +11464,13 @@ msgstr ""
#. module: base
#: model:ir.model,name:base.model_ir_fields_converter
msgid "ir.fields.converter"
-msgstr ""
+msgstr "ir.fields.converter"
#. module: base
#: code:addons/base/res/res_partner.py:436
#, python-format
msgid "Couldn't create contact without email address !"
-msgstr ""
+msgstr "Não foi possível criar o contacto sem o endereço eletrónico!"
#. module: base
#: model:ir.module.category,name:base.module_category_manufacturing
@@ -11486,7 +11492,7 @@ msgstr "Cancelar Instalação"
#. module: base
#: model:ir.model,name:base.model_ir_model_relation
msgid "ir.model.relation"
-msgstr ""
+msgstr "ir.model.relation"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_check_writing
@@ -11716,7 +11722,7 @@ msgstr "UK - Contabilidade"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_madam
msgid "Mrs."
-msgstr ""
+msgstr "Srª."
#. module: base
#: code:addons/base/ir/ir_model.py:424
@@ -11752,7 +11758,7 @@ msgstr "Repetição da Expressão"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_16
msgid "Retailer"
-msgstr ""
+msgstr "Revendedor"
#. module: base
#: view:ir.model.fields:0
@@ -11920,7 +11926,7 @@ msgstr "Ajuda na gestão de cotações, ordens de venda e faturação."
#. module: base
#: field:res.users,login_date:0
msgid "Latest connection"
-msgstr ""
+msgstr "Ultima ligação"
#. module: base
#: field:res.groups,implied_ids:0
@@ -12003,7 +12009,7 @@ msgstr "Binário"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_doctor
msgid "Doctor"
-msgstr ""
+msgstr "Doutor"
#. module: base
#: model:ir.module.module,description:base.module_mrp_repair
@@ -12222,7 +12228,7 @@ msgstr ""
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_mister
msgid "Mr."
-msgstr ""
+msgstr "Sr."
#. module: base
#: model:res.country,name:base.mv
@@ -12718,7 +12724,7 @@ msgstr "Chipre"
#. module: base
#: field:res.users,new_password:0
msgid "Set Password"
-msgstr ""
+msgstr "Definir Senha"
#. module: base
#: field:ir.actions.server,subject:0
@@ -12839,7 +12845,7 @@ msgstr "Servidores Mail Outgoing"
#. module: base
#: model:ir.ui.menu,name:base.menu_custom
msgid "Technical"
-msgstr ""
+msgstr "Técnico"
#. module: base
#: model:res.country,name:base.cn
@@ -13734,7 +13740,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:147
#, python-format
msgid "no"
-msgstr ""
+msgstr "não"
#. module: base
#: field:ir.actions.server,trigger_obj_id:0
@@ -13764,7 +13770,7 @@ msgstr "Configuração do Sistema Concluída"
#: view:ir.config_parameter:0
#: model:ir.ui.menu,name:base.ir_config_menu
msgid "System Parameters"
-msgstr ""
+msgstr "Parametros do Sistema"
#. module: base
#: model:ir.module.module,description:base.module_l10n_ch
@@ -14131,7 +14137,7 @@ msgstr "Taxa de Câmbio"
#: view:base.module.upgrade:0
#: field:base.module.upgrade,module_info:0
msgid "Modules to Update"
-msgstr ""
+msgstr "Módulos a Atualizar"
#. module: base
#: model:ir.ui.menu,name:base.menu_custom_multicompany
@@ -14249,7 +14255,7 @@ msgstr "Utilização da Ação"
#. module: base
#: field:ir.module.module,name:0
msgid "Technical Name"
-msgstr ""
+msgstr "Nome Técnico"
#. module: base
#: model:ir.model,name:base.model_workflow_workitem
@@ -14298,7 +14304,7 @@ msgstr "Alemanha - Contabilidade"
#. module: base
#: view:ir.sequence:0
msgid "Day of the Year: %(doy)s"
-msgstr ""
+msgstr "Dia do Ano: %(doy)s"
#. module: base
#: field:ir.ui.menu,web_icon:0
@@ -14465,7 +14471,7 @@ msgstr "Acesso"
#: field:res.partner,vat:0
#, python-format
msgid "TIN"
-msgstr ""
+msgstr "TIN"
#. module: base
#: model:res.country,name:base.aw
@@ -14568,7 +14574,7 @@ msgstr "Serviços Pós-Venda"
#. module: base
#: field:base.language.import,code:0
msgid "ISO Code"
-msgstr ""
+msgstr "Código ISO"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr
@@ -14887,7 +14893,7 @@ msgstr "Spanish (SV) / Español (SV)"
#. module: base
#: model:ir.actions.act_window,name:base.open_module_tree
msgid "Install a Module"
-msgstr ""
+msgstr "Instalar um Módulo"
#. module: base
#: field:ir.module.module,auto_install:0
@@ -15114,7 +15120,7 @@ msgstr "Atualização do Sistema"
#: field:ir.actions.report.xml,report_sxw_content:0
#: field:ir.actions.report.xml,report_sxw_content_data:0
msgid "SXW Content"
-msgstr ""
+msgstr "Conteúdo SXW"
#. module: base
#: help:ir.sequence,prefix:0
@@ -15156,7 +15162,7 @@ msgstr "Informação Geral"
#. module: base
#: field:ir.model.data,complete_name:0
msgid "Complete ID"
-msgstr ""
+msgstr "ID Completo"
#. module: base
#: model:res.country,name:base.tc
@@ -15257,7 +15263,7 @@ msgstr ""
#. module: base
#: view:res.partner:0
msgid "Internal Notes"
-msgstr ""
+msgstr "Notas Internas"
#. module: base
#: selection:res.partner.address,type:0
@@ -15321,7 +15327,7 @@ msgstr "Criar Objeto"
#. module: base
#: model:res.country,name:base.ss
msgid "South Sudan"
-msgstr ""
+msgstr "Sudão do Sul"
#. module: base
#: field:ir.filters,context:0
diff --git a/openerp/addons/base/i18n/pt_BR.po b/openerp/addons/base/i18n/pt_BR.po
index 2c18674f450..ad649948427 100644
--- a/openerp/addons/base/i18n/pt_BR.po
+++ b/openerp/addons/base/i18n/pt_BR.po
@@ -7,14 +7,15 @@ msgstr ""
"Project-Id-Version: pt_BR\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-03 16:01+0000\n"
-"PO-Revision-Date: 2012-12-03 09:37+0000\n"
-"Last-Translator: Cristiano Korndörfer \n"
+"PO-Revision-Date: 2012-12-07 22:22+0000\n"
+"Last-Translator: Fábio Martinelli - http://zupy.com.br "
+"\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: 2012-12-04 05:02+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
+"X-Launchpad-Export-Date: 2012-12-08 04:58+0000\n"
+"X-Generator: Launchpad (build 16341)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -3424,7 +3425,7 @@ msgstr "Armênia"
#. module: base
#: model:ir.module.module,summary:base.module_hr_evaluation
msgid "Periodical Evaluations, Appraisals, Surveys"
-msgstr ""
+msgstr "Avaliações Periódicas, Pesquisas, Avaliações"
#. module: base
#: model:ir.actions.act_window,name:base.ir_property_form
@@ -4184,7 +4185,7 @@ msgstr "%x - Representação apropriada para data."
#. module: base
#: view:res.partner:0
msgid "Tag"
-msgstr ""
+msgstr "Tag"
#. module: base
#: view:res.lang:0
@@ -4396,7 +4397,7 @@ msgstr "Compartilhar Qualquer Documento"
#. module: base
#: model:ir.module.module,summary:base.module_crm
msgid "Leads, Opportunities, Phone Calls"
-msgstr ""
+msgstr "Prospectos, Oportunidades, Ligações Telefônicas"
#. module: base
#: view:res.lang:0
@@ -5119,7 +5120,7 @@ msgstr "Este arquivo foi gerado usando o universal"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_7
msgid "IT Services"
-msgstr ""
+msgstr "Serviços de TI"
#. module: base
#: model:ir.module.category,name:base.module_category_specific_industry_applications
@@ -5181,7 +5182,7 @@ msgstr "Saltar"
#. module: base
#: model:ir.module.module,shortdesc:base.module_event_sale
msgid "Events Sales"
-msgstr ""
+msgstr "Venda de Eventos"
#. module: base
#: model:res.country,name:base.ls
@@ -5191,7 +5192,7 @@ msgstr "Lesoto"
#. module: base
#: view:base.language.export:0
msgid ", or your preferred text editor"
-msgstr ""
+msgstr ", ou seu editor de texto preferido"
#. module: base
#: model:ir.module.module,shortdesc:base.module_crm_partner_assign
@@ -5488,7 +5489,7 @@ msgstr "Data"
#. module: base
#: model:ir.module.module,shortdesc:base.module_event_moodle
msgid "Event Moodle"
-msgstr ""
+msgstr "Evento Moodle"
#. module: base
#: model:ir.module.module,description:base.module_email_template
@@ -5539,7 +5540,7 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_partner_category_form
msgid "Partner Tags"
-msgstr ""
+msgstr "Tags de Parceiros"
#. module: base
#: view:res.company:0
@@ -5587,7 +5588,7 @@ msgstr "res.partner.address"
#. module: base
#: view:ir.rule:0
msgid "Write Access Right"
-msgstr ""
+msgstr "Permissão de Escrita"
#. module: base
#: model:ir.actions.act_window,help:base.action_res_groups
@@ -5666,6 +5667,14 @@ msgid ""
"wizard if the delivery is to be invoiced.\n"
" "
msgstr ""
+"\n"
+"Assistente de faturamento para entrega.\n"
+"============================\n"
+"\n"
+"Quando você enviar ou entregar mercadorias, este módulo ativa "
+"automaticamente o\n"
+"assistente de faturamento se a entrega deve ser faturada.\n"
+" "
#. module: base
#: selection:ir.translation,type:0
@@ -5703,6 +5712,10 @@ msgid ""
"=======================\n"
" "
msgstr ""
+"\n"
+"Permitir que usuários se cadastrem.\n"
+"=======================\n"
+" "
#. module: base
#: model:res.country,name:base.zm
@@ -5717,7 +5730,7 @@ msgstr "Iniciar o Assistente de Configuração"
#. module: base
#: model:ir.module.module,summary:base.module_mrp
msgid "Manufacturing Orders, Bill of Materials, Routing"
-msgstr ""
+msgstr "Ordens de produção, lista de materiais, roteamento"
#. module: base
#: view:ir.module.module:0
@@ -6209,6 +6222,12 @@ msgid ""
"Allows users to create custom dashboard.\n"
" "
msgstr ""
+"\n"
+"Permite que o usuário crie um painel personalizado.\n"
+"========================================\n"
+"\n"
+"Permite aos usuários criar um painel personalizado.\n"
+" "
#. module: base
#: model:ir.actions.act_window,name:base.ir_access_act
@@ -6358,7 +6377,7 @@ msgstr "'%s' não parece ser um número para o campo '%% (field)s'"
#: help:res.country.state,name:0
msgid ""
"Administrative divisions of a country. E.g. Fed. State, Departement, Canton"
-msgstr ""
+msgstr "Divisões administrativas de um país. Ex: Estados, Cidades"
#. module: base
#: view:res.partner.bank:0
@@ -6537,7 +6556,7 @@ msgstr "Malásia"
#: code:addons/base/ir/ir_sequence.py:131
#, python-format
msgid "Increment number must not be zero."
-msgstr ""
+msgstr "Número de incremento não deve ser zero."
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_cancel
@@ -6782,6 +6801,13 @@ msgid ""
"using the\n"
"FTP client.\n"
msgstr ""
+"\n"
+"Esta é uma interface FTP com sistema de gerenciamento de documentos.\n"
+"================================================================\n"
+"\n"
+"Com este módulo você pode não apenas acessar documentos através do OpenERP\n"
+"mas também conectar-se a eles através do sistema de arquivos usando um\n"
+"cliente FTP.\n"
#. module: base
#: field:ir.model.fields,size:0
@@ -7093,7 +7119,7 @@ msgstr "Itens de trabalho"
#: code:addons/base/res/res_bank.py:195
#, python-format
msgid "Invalid Bank Account Type Name format."
-msgstr ""
+msgstr "Formato de Tipo de Conta Bancária inválido"
#. module: base
#: view:ir.filters:0
@@ -7841,7 +7867,7 @@ msgstr "Senha"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_claim
msgid "Portal Claim"
-msgstr ""
+msgstr "Portal de Solicitações"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_pe
@@ -8356,7 +8382,7 @@ msgstr "Tipo de campos"
#. module: base
#: model:ir.module.module,summary:base.module_hr_recruitment
msgid "Jobs, Recruitment, Applications, Job Interviews"
-msgstr ""
+msgstr "Empregos, Recrutamento, Candidaturas, Entrevistas de Emprego"
#. module: base
#: code:addons/base/module/module.py:513
@@ -8401,7 +8427,7 @@ msgstr "Aviso!"
#. module: base
#: view:ir.rule:0
msgid "Full Access Right"
-msgstr ""
+msgstr "Todos os direitos de acesso"
#. module: base
#: field:res.partner.category,parent_id:0
@@ -8506,7 +8532,7 @@ msgstr "Kuwait"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_followup
msgid "Payment Follow-up Management"
-msgstr ""
+msgstr "Gestão de acompanhamento de pagamentos"
#. module: base
#: field:workflow.workitem,inst_id:0
@@ -8602,7 +8628,7 @@ msgstr "Filipinas"
#. module: base
#: model:ir.module.module,summary:base.module_hr_timesheet_sheet
msgid "Timesheets, Attendances, Activities"
-msgstr ""
+msgstr "Planilhas, Atendimentos, Atividades"
#. module: base
#: model:res.country,name:base.ma
@@ -9421,6 +9447,17 @@ msgid ""
"\n"
" "
msgstr ""
+"\n"
+"Este módulo mostra os processos básicos envolvidos nos módulos selecionados "
+"e na seqüência em que ocorrem.\n"
+"============================================================================="
+"===================\n"
+"\n"
+" **Nota: ** Isso se aplica aos módulos contendo modulename_process.xml.\n"
+"\n"
+"**Ex: ** produto / processo / product_process.xml.\n"
+"\n"
+" "
#. module: base
#: view:res.lang:0
@@ -9482,7 +9519,7 @@ msgstr "Nenhum"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_holidays
msgid "Leave Management"
-msgstr ""
+msgstr "Gerenciamento de Folgas"
#. module: base
#: model:res.company,overdue_msg:base.main_company
@@ -9965,6 +10002,13 @@ msgid ""
"Allow administrator to click a button to send a \"Reset Password\" request "
"to a user.\n"
msgstr ""
+"\n"
+"Trocar Senha\n"
+"==============\n"
+"\n"
+"Permite aos usuários trocar sua senha a partir da pagina de login.\n"
+"Permite ao administrador clicar no botão para requisitar ao usuário que "
+"troque sua senha.\n"
#. module: base
#: help:ir.actions.server,email:0
@@ -10108,7 +10152,7 @@ msgstr "Usar o endereço da empresa"
#. module: base
#: model:ir.module.module,summary:base.module_hr_holidays
msgid "Holidays, Allocation and Leave Requests"
-msgstr ""
+msgstr "Pedidos de Alocação de férias e licenças"
#. module: base
#: model:ir.module.module,description:base.module_web_hello
@@ -10357,7 +10401,7 @@ msgstr ""
#. module: base
#: sql_constraint:ir.model.constraint:0
msgid "Constraints with the same name are unique per module."
-msgstr ""
+msgstr "Constraints com o mesmo nome são únicas por módulo."
#. module: base
#: model:ir.module.module,description:base.module_report_intrastat
@@ -10402,7 +10446,7 @@ msgstr "res.request"
#. module: base
#: field:res.partner,image_medium:0
msgid "Medium-sized image"
-msgstr ""
+msgstr "Imagem de tamanho Médio"
#. module: base
#: view:ir.model:0
@@ -10429,7 +10473,7 @@ msgstr "Conteúdo do arquivo"
#: view:ir.model.relation:0
#: model:ir.ui.menu,name:base.ir_model_relation_menu
msgid "ManyToMany Relations"
-msgstr ""
+msgstr "Relação muitos para muitos"
#. module: base
#: model:res.country,name:base.pa
@@ -10467,7 +10511,7 @@ msgstr "Ilhas Pitcairn"
#. module: base
#: field:res.partner,category_id:0
msgid "Tags"
-msgstr ""
+msgstr "Marcadores"
#. module: base
#: view:base.module.upgrade:0
@@ -10487,7 +10531,7 @@ msgstr "Registro de Regras"
#. module: base
#: view:multi_company.default:0
msgid "Multi Company"
-msgstr ""
+msgstr "Multi-Empresa"
#. module: base
#: model:ir.module.category,name:base.module_category_portal
@@ -10498,13 +10542,13 @@ msgstr "Portal"
#. module: base
#: selection:ir.translation,state:0
msgid "To Translate"
-msgstr ""
+msgstr "Para traduzir"
#. module: base
#: code:addons/base/ir/ir_fields.py:295
#, python-format
msgid "See all possible values"
-msgstr ""
+msgstr "Ver valores válidos"
#. module: base
#: model:ir.module.module,description:base.module_claim_from_delivery
@@ -10539,7 +10583,7 @@ msgstr ""
#. module: base
#: help:ir.model.constraint,name:0
msgid "PostgreSQL constraint or foreign key name."
-msgstr ""
+msgstr "Nome da constraint PostgreSQL ou chave estrangeira(FK)"
#. module: base
#: view:res.lang:0
@@ -10559,12 +10603,12 @@ msgstr "Guiné Bissau"
#. module: base
#: field:ir.actions.report.xml,header:0
msgid "Add RML Header"
-msgstr ""
+msgstr "Adicionar cabeçalho RML"
#. module: base
#: help:res.company,rml_footer:0
msgid "Footer text displayed at the bottom of all reports."
-msgstr ""
+msgstr "Texto a ser mostrado no rodapé de todos os relatórios."
#. module: base
#: model:ir.module.module,shortdesc:base.module_note_pad
@@ -10675,7 +10719,7 @@ msgstr "Itália"
#. module: base
#: model:res.groups,name:base.group_sale_salesman
msgid "See Own Leads"
-msgstr ""
+msgstr "Ver seus Leads"
#. module: base
#: view:ir.actions.todo:0
@@ -10705,6 +10749,8 @@ msgid ""
"Insufficient fields to generate a Calendar View for %s, missing a date_stop "
"or a date_delay"
msgstr ""
+"Campos insuficiente para gerar uma visão de calendário (% s), faltando um "
+"date_stop ou um date_delay"
#. module: base
#: field:workflow.activity,action:0
@@ -10771,6 +10817,7 @@ msgstr "ir.translation"
msgid ""
"Please contact your system administrator if you think this is an error."
msgstr ""
+"Contacte seu administrador do sistema se você acha que isto é um erro."
#. module: base
#: code:addons/base/module/module.py:519
@@ -10778,7 +10825,7 @@ msgstr ""
#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade
#, python-format
msgid "Apply Schedule Upgrade"
-msgstr ""
+msgstr "Aplicar atualizações agendas"
#. module: base
#: view:workflow.activity:0
@@ -10811,6 +10858,8 @@ msgid ""
"One of the documents you are trying to access has been deleted, please try "
"again after refreshing."
msgstr ""
+"Um dos documentos que você está tentando acessar foi excluído. Atualize sua "
+"tela."
#. module: base
#: model:ir.model,name:base.model_ir_mail_server
@@ -10823,6 +10872,8 @@ msgid ""
"If the target model uses the need action mechanism, this field gives the "
"number of actions the current user has to perform."
msgstr ""
+"Se o modelo de destino necessita do mecanismo de ação, este campo indica o "
+"número de ações que o usuário atual tem para executar."
#. module: base
#: selection:base.language.install,lang:0
@@ -10919,7 +10970,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_stock
msgid "Sales and Warehouse Management"
-msgstr ""
+msgstr "Gestão de vendas e armazens"
#. module: base
#: field:ir.model.fields,model:0
@@ -10965,7 +11016,7 @@ msgstr ""
#. module: base
#: help:res.partner,ean13:0
msgid "BarCode"
-msgstr ""
+msgstr "Código de barras"
#. module: base
#: help:ir.model.fields,model_id:0
@@ -10986,7 +11037,7 @@ msgstr "Martinica(França)"
#. module: base
#: help:res.partner,is_company:0
msgid "Check if the contact is a company, otherwise it is a person"
-msgstr ""
+msgstr "Marque se o contato é uma empresa."
#. module: base
#: view:ir.sequence.type:0
@@ -10997,7 +11048,7 @@ msgstr "Tipo de Sequências"
#: code:addons/base/res/res_bank.py:195
#, python-format
msgid "Formating Error"
-msgstr ""
+msgstr "Erro de Formatação"
#. module: base
#: model:res.country,name:base.ye
@@ -11068,7 +11119,7 @@ msgstr ""
#: code:addons/base/ir/ir_model.py:1023
#, python-format
msgid "Permission Denied"
-msgstr ""
+msgstr "Permissão negada"
#. module: base
#: field:ir.ui.menu,child_id:0
@@ -11139,7 +11190,7 @@ msgstr "E-mail"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_12
msgid "Office Supplies"
-msgstr ""
+msgstr "Materiais de escritório"
#. module: base
#: code:addons/custom.py:550
@@ -11227,7 +11278,7 @@ msgstr "Equador"
#. module: base
#: view:ir.rule:0
msgid "Read Access Right"
-msgstr ""
+msgstr "Direitos de leitura"
#. module: base
#: model:ir.module.module,shortdesc:base.module_analytic_user_function
@@ -11287,18 +11338,18 @@ msgstr "Arabic / الْعَرَبيّة"
#. module: base
#: selection:ir.translation,state:0
msgid "Translated"
-msgstr ""
+msgstr "Traduzido"
#. module: base
#: model:ir.actions.act_window,name:base.action_inventory_form
#: model:ir.ui.menu,name:base.menu_action_inventory_form
msgid "Default Company per Object"
-msgstr ""
+msgstr "Empresa Padrão por Objeto"
#. module: base
#: field:ir.ui.menu,needaction_counter:0
msgid "Number of actions the user has to perform"
-msgstr ""
+msgstr "Número de ações que o usuário tem para realizar"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_hello
@@ -11328,7 +11379,7 @@ msgstr "Domínio"
#: code:addons/base/ir/ir_fields.py:167
#, python-format
msgid "Use '1' for yes and '0' for no"
-msgstr ""
+msgstr "Use '1' para sim e '0' para não"
#. module: base
#: model:ir.module.module,shortdesc:base.module_marketing_campaign
@@ -11349,7 +11400,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:314
#, python-format
msgid "Invalid database id '%s' for the field '%%(field)s'"
-msgstr ""
+msgstr "Base de dados invalida(%s) para o campo '%%(field)s'"
#. module: base
#: view:res.lang:0
@@ -11408,7 +11459,7 @@ msgstr ""
#. module: base
#: view:ir.filters:0
msgid "Shared"
-msgstr ""
+msgstr "Compartilhado"
#. module: base
#: code:addons/base/module/module.py:336
@@ -11486,6 +11537,9 @@ msgid ""
"Allow users to sign up through OAuth2 Provider.\n"
"===============================================\n"
msgstr ""
+"\n"
+"Permite que os usuários se inscrevam através de um serviço OAuth2.\n"
+"============================================================\n"
#. module: base
#: view:ir.cron:0
@@ -11507,12 +11561,12 @@ msgstr "Porto Rico"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_tests_demo
msgid "Demonstration of web/javascript tests"
-msgstr ""
+msgstr "Demonstração de testes web/jsvascript"
#. module: base
#: field:workflow.transition,signal:0
msgid "Signal (Button Name)"
-msgstr ""
+msgstr "Sinal(Nome do botão)"
#. module: base
#: view:ir.actions.act_window:0
@@ -11542,7 +11596,7 @@ msgstr "Granada"
#. module: base
#: help:res.partner,customer:0
msgid "Check this box if this contact is a customer."
-msgstr ""
+msgstr "Marque se o contato é um cliente."
#. module: base
#: view:ir.actions.server:0
@@ -11570,7 +11624,7 @@ msgstr ""
#. module: base
#: field:res.users,partner_id:0
msgid "Related Partner"
-msgstr ""
+msgstr "Parceiro Relacionado"
#. module: base
#: code:addons/osv.py:151
@@ -11598,13 +11652,13 @@ msgstr "Operações de Produção"
#. module: base
#: view:base.language.export:0
msgid "Here is the exported translation file:"
-msgstr ""
+msgstr "Aqui está o arquivo de tradução exportado:"
#. module: base
#: field:ir.actions.report.xml,report_rml_content:0
#: field:ir.actions.report.xml,report_rml_content_data:0
msgid "RML Content"
-msgstr ""
+msgstr "Conteúdo RML"
#. module: base
#: view:res.lang:0
@@ -11762,6 +11816,13 @@ msgid ""
"\n"
"The decimal precision is configured per company.\n"
msgstr ""
+"\n"
+"Configurar a precisão dos valores para diferentes tipos de uso: "
+"contabilidade, vendas, compras.\n"
+"============================================================================="
+"=========\n"
+"\n"
+"A precisão decimal é configurada por empresa.\n"
#. module: base
#: selection:res.company,paper_format:0
@@ -11771,7 +11832,7 @@ msgstr "A4"
#. module: base
#: view:res.config.installer:0
msgid "Configuration Installer"
-msgstr ""
+msgstr "Instalador de configuração"
#. module: base
#: field:res.partner,customer:0
@@ -11858,17 +11919,20 @@ msgid ""
"(if you delete a native ACL, it will be re-created when you reload the "
"module."
msgstr ""
+"Se você desmarcar o campo ativo, ele irá desativar a ACL sem excluí-lo.(Se "
+"você excluir uma ACL nativa, ela será recriada quando você recarregar o "
+"módulo)."
#. module: base
#: model:ir.model,name:base.model_ir_fields_converter
msgid "ir.fields.converter"
-msgstr ""
+msgstr "ir.fields.converter"
#. module: base
#: code:addons/base/res/res_partner.py:436
#, python-format
msgid "Couldn't create contact without email address !"
-msgstr ""
+msgstr "Não posso criar contatos sem endereço de email!"
#. module: base
#: model:ir.module.category,name:base.module_category_manufacturing
@@ -11890,12 +11954,12 @@ msgstr "Cancelar Instalação"
#. module: base
#: model:ir.model,name:base.model_ir_model_relation
msgid "ir.model.relation"
-msgstr ""
+msgstr "ir.model.relation"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_check_writing
msgid "Check Writing"
-msgstr ""
+msgstr "Verifique a redação"
#. module: base
#: model:ir.module.module,description:base.module_plugin_outlook
@@ -12120,7 +12184,7 @@ msgstr "UK - Contabilidade"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_madam
msgid "Mrs."
-msgstr ""
+msgstr "Sra."
#. module: base
#: code:addons/base/ir/ir_model.py:424
@@ -12141,7 +12205,7 @@ msgstr "Ref. Usuário"
#: code:addons/base/ir/ir_fields.py:227
#, python-format
msgid "'%s' does not seem to be a valid datetime for field '%%(field)s'"
-msgstr ""
+msgstr "'%s' não parece ser um campo datetime válido '%%(field)s'"
#. module: base
#: model:res.partner.bank.type.field,name:base.bank_normal_field_bic
@@ -12156,7 +12220,7 @@ msgstr "Expressão de repetição"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_16
msgid "Retailer"
-msgstr ""
+msgstr "Varejista"
#. module: base
#: view:ir.model.fields:0
@@ -12207,6 +12271,8 @@ msgstr ""
msgid ""
"Please make sure no workitems refer to an activity before deleting it!"
msgstr ""
+"Certifique-se de que não há itens de trabalho para a atividade antes de "
+"excluí-la!"
#. module: base
#: model:res.country,name:base.tr
@@ -12295,7 +12361,7 @@ msgstr "Informações da Conexão"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_prof
msgid "Professor"
-msgstr ""
+msgstr "Professor"
#. module: base
#: model:res.country,name:base.hm
@@ -12324,7 +12390,7 @@ msgstr "Ajuda você a lidar com suas cotações, pedidos e faturamento."
#. module: base
#: field:res.users,login_date:0
msgid "Latest connection"
-msgstr ""
+msgstr "Última conecção"
#. module: base
#: field:res.groups,implied_ids:0
@@ -12407,7 +12473,7 @@ msgstr "Binário"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_doctor
msgid "Doctor"
-msgstr ""
+msgstr "Doutor"
#. module: base
#: model:ir.module.module,description:base.module_mrp_repair
@@ -12464,7 +12530,7 @@ msgstr "Outros Parceiros"
#: view:workflow.workitem:0
#: field:workflow.workitem,state:0
msgid "Status"
-msgstr ""
+msgstr "Estado"
#. module: base
#: model:ir.actions.act_window,name:base.action_currency_form
@@ -12476,7 +12542,7 @@ msgstr "Moedas"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_8
msgid "Consultancy Services"
-msgstr ""
+msgstr "Serviços de consultoria"
#. module: base
#: help:ir.values,value:0
@@ -12496,7 +12562,7 @@ msgstr "O nome do grupo deve ser único!"
#. module: base
#: help:ir.translation,module:0
msgid "Module this term belongs to"
-msgstr ""
+msgstr "Este termo pertence ao módulo"
#. module: base
#: model:ir.module.module,description:base.module_web_view_editor
@@ -12591,7 +12657,7 @@ msgstr "Aquisições"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_6
msgid "Bronze"
-msgstr ""
+msgstr "Bronze"
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_payroll_account
@@ -12621,12 +12687,12 @@ msgstr "Mês de Criação"
#. module: base
#: field:ir.module.module,demo:0
msgid "Demo Data"
-msgstr ""
+msgstr "Dados de Demonstração"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_mister
msgid "Mr."
-msgstr ""
+msgstr "Sr."
#. module: base
#: model:res.country,name:base.mv
@@ -12636,7 +12702,7 @@ msgstr "Ilhas Maldivas"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_crm
msgid "Portal CRM"
-msgstr ""
+msgstr "Portal CRM"
#. module: base
#: model:ir.ui.menu,name:base.next_id_4
@@ -12781,7 +12847,7 @@ msgstr ""
#. module: base
#: field:ir.actions.report.xml,report_sxw:0
msgid "SXW Path"
-msgstr ""
+msgstr "Endereço do SXW"
#. module: base
#: model:ir.module.module,description:base.module_account_asset
@@ -12814,7 +12880,7 @@ msgstr "Banco"
#: model:ir.module.category,name:base.module_category_point_of_sale
#: model:ir.module.module,shortdesc:base.module_point_of_sale
msgid "Point of Sale"
-msgstr ""
+msgstr "Ponto de Venda"
#. module: base
#: model:ir.module.module,description:base.module_mail
@@ -13011,7 +13077,7 @@ msgstr "Filtrar em meus documentos"
#. module: base
#: model:ir.module.module,summary:base.module_project_gtd
msgid "Personal Tasks, Contexts, Timeboxes"
-msgstr ""
+msgstr "Tarefas pessoais, Contextos, Planilhas"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cr
@@ -13059,7 +13125,7 @@ msgstr "Gabão"
#. module: base
#: model:ir.module.module,summary:base.module_stock
msgid "Inventory, Logistic, Storage"
-msgstr ""
+msgstr "Inventário, Logística, Armazenamento"
#. module: base
#: view:ir.actions.act_window:0
@@ -13123,7 +13189,7 @@ msgstr "Chipre"
#. module: base
#: field:res.users,new_password:0
msgid "Set Password"
-msgstr ""
+msgstr "Definir Senha"
#. module: base
#: field:ir.actions.server,subject:0
@@ -13171,7 +13237,7 @@ msgstr "Preferências"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_9
msgid "Components Buyer"
-msgstr ""
+msgstr "Comprador de componentes"
#. module: base
#: view:ir.module.module:0
@@ -13179,6 +13245,8 @@ msgid ""
"Do you confirm the uninstallation of this module? This will permanently "
"erase all data currently stored by the module!"
msgstr ""
+"Confirma a desinstalação deste módulo? Isto apagará de forma permanente "
+"todos os dados armazenados para este módulo!"
#. module: base
#: help:ir.cron,function:0
@@ -13245,7 +13313,7 @@ msgstr "Servidores de email de saída"
#. module: base
#: model:ir.ui.menu,name:base.menu_custom
msgid "Technical"
-msgstr ""
+msgstr "Técnico"
#. module: base
#: model:res.country,name:base.cn
@@ -13493,7 +13561,7 @@ msgstr "Ação a ser Executada"
#: field:ir.model,modules:0
#: field:ir.model.fields,modules:0
msgid "In Modules"
-msgstr ""
+msgstr "Nos Módulos"
#. module: base
#: model:ir.module.module,shortdesc:base.module_contacts
@@ -13592,7 +13660,7 @@ msgstr "Zaire"
#. module: base
#: model:ir.module.module,summary:base.module_project
msgid "Projects, Tasks"
-msgstr ""
+msgstr "Projetos, Tarefas"
#. module: base
#: field:workflow.instance,res_id:0
@@ -13610,7 +13678,7 @@ msgstr "Informação"
#: code:addons/base/ir/ir_fields.py:147
#, python-format
msgid "false"
-msgstr ""
+msgstr "falso"
#. module: base
#: model:ir.module.module,description:base.module_account_analytic_analysis
@@ -13676,6 +13744,8 @@ msgid ""
"The user this filter is private to. When left empty the filter is public and "
"available to all users."
msgstr ""
+"O usuário de que este filtro é exclusivo, Quando em branco o filtro é "
+"público e disponível para todos os usuários."
#. module: base
#: field:ir.actions.act_window,auto_refresh:0
@@ -13705,6 +13775,8 @@ msgid ""
"Automatically set to let administators find new terms that might need to be "
"translated"
msgstr ""
+"Automaticamente definida para permitir que administradores encontrem novos "
+"termos que talvez precisem ser traduzidos"
#. module: base
#: code:addons/base/ir/ir_model.py:84
@@ -13835,6 +13907,8 @@ msgid ""
"the user will have access to all records of everyone in the sales "
"application."
msgstr ""
+"o usuário terá acesso a todos os registros de todos os usuários no módulo de "
+"vendas."
#. module: base
#: model:ir.module.module,shortdesc:base.module_event
@@ -13889,6 +13963,8 @@ msgid ""
" the rightmost column (value) contains the "
"translations"
msgstr ""
+"Formato CSV: você pode editá-lo diretamente com o seu software de planilha "
+"favorito,"
#. module: base
#: model:ir.module.module,description:base.module_account_chart
@@ -13998,6 +14074,8 @@ msgid ""
"Check this to define the report footer manually. Otherwise it will be "
"filled in automatically."
msgstr ""
+"Marque esta opção para definir o rodapé do relatório manualmente. Caso "
+"contrário, será preenchido automaticamente."
#. module: base
#: view:res.partner:0
@@ -14012,7 +14090,7 @@ msgstr "Instalar Módulos"
#. module: base
#: model:ir.ui.menu,name:base.menu_import_crm
msgid "Import & Synchronize"
-msgstr ""
+msgstr "Importar & Sincronizar"
#. module: base
#: view:res.partner:0
@@ -14043,7 +14121,7 @@ msgstr "Origem"
#: field:ir.model.constraint,date_init:0
#: field:ir.model.relation,date_init:0
msgid "Initialization Date"
-msgstr ""
+msgstr "Data de Inicialização"
#. module: base
#: model:res.country,name:base.vu
@@ -14157,7 +14235,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:147
#, python-format
msgid "no"
-msgstr ""
+msgstr "não"
#. module: base
#: field:ir.actions.server,trigger_obj_id:0
@@ -14187,7 +14265,7 @@ msgstr "Configuração do Sistema pronta"
#: view:ir.config_parameter:0
#: model:ir.ui.menu,name:base.ir_config_menu
msgid "System Parameters"
-msgstr ""
+msgstr "Parâmetros do Sistema"
#. module: base
#: model:ir.module.module,description:base.module_l10n_ch
@@ -14256,7 +14334,7 @@ msgstr "Ação em Multiplos Docs."
#: model:ir.actions.act_window,name:base.action_partner_title_partner
#: model:ir.ui.menu,name:base.menu_partner_title_partner
msgid "Titles"
-msgstr ""
+msgstr "Títulos"
#. module: base
#: model:ir.module.module,description:base.module_anonymization
@@ -14320,7 +14398,7 @@ msgstr "Luxemburgo"
#. module: base
#: model:ir.module.module,summary:base.module_base_calendar
msgid "Personal & Shared Calendar"
-msgstr ""
+msgstr "Calendários Pessoais & Compartilhados"
#. module: base
#: selection:res.request,priority:0
@@ -14397,7 +14475,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_gengo
msgid "Automated Translations through Gengo API"
-msgstr ""
+msgstr "Traduções automáticas através Gengo API"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_payment
@@ -14432,7 +14510,7 @@ msgstr "Tailândia"
#. module: base
#: model:ir.module.module,summary:base.module_account_voucher
msgid "Send Invoices and Track Payments"
-msgstr ""
+msgstr "Enviar Faturas e Rastrear Pagamentos"
#. module: base
#: model:ir.ui.menu,name:base.menu_crm_config_lead
@@ -14557,12 +14635,12 @@ msgstr "Taxa de Câmbio"
#: view:base.module.upgrade:0
#: field:base.module.upgrade,module_info:0
msgid "Modules to Update"
-msgstr ""
+msgstr "Módulos a serem Atualizados"
#. module: base
#: model:ir.ui.menu,name:base.menu_custom_multicompany
msgid "Multi-Companies"
-msgstr ""
+msgstr "Multi-Empresas"
#. module: base
#: field:workflow,osv:0
@@ -14677,7 +14755,7 @@ msgstr "Uso de ação"
#. module: base
#: field:ir.module.module,name:0
msgid "Technical Name"
-msgstr ""
+msgstr "Nome Técnico"
#. module: base
#: model:ir.model,name:base.model_workflow_workitem
@@ -14726,7 +14804,7 @@ msgstr "Contabilidade - Alemã"
#. module: base
#: view:ir.sequence:0
msgid "Day of the Year: %(doy)s"
-msgstr ""
+msgstr "Dia do Ano: %(doy)s"
#. module: base
#: field:ir.ui.menu,web_icon:0
@@ -14749,6 +14827,8 @@ msgid ""
"If this field is empty, the view applies to all users. Otherwise, the view "
"applies to the users of those groups only."
msgstr ""
+"Se este campo estiver vazio, a view se aplica a todos os usuários. Caso "
+"contrário, a view se aplica aos usuários desses grupos apenas."
#. module: base
#: selection:base.language.install,lang:0
@@ -14786,7 +14866,7 @@ msgstr ""
#. module: base
#: view:base.language.export:0
msgid "Export Settings"
-msgstr ""
+msgstr "Configurações da Exportação"
#. module: base
#: field:ir.actions.act_window,src_model:0
@@ -14796,7 +14876,7 @@ msgstr ""
#. module: base
#: view:ir.sequence:0
msgid "Day of the Week (0:Monday): %(weekday)s"
-msgstr ""
+msgstr "Dia da Semana (0:Segunda): %(weekday)s"
#. module: base
#: code:addons/base/module/wizard/base_module_upgrade.py:84
@@ -14810,7 +14890,7 @@ msgstr "Dependência não atendida!"
#: code:addons/base/ir/ir_model.py:1023
#, python-format
msgid "Administrator access is required to uninstall a module"
-msgstr ""
+msgstr "Somente Administradores podem desinstalar um módulo"
#. module: base
#: model:ir.model,name:base.model_base_module_configuration
@@ -14826,6 +14906,10 @@ msgid ""
"\n"
"(Document type: %s, Operation: %s)"
msgstr ""
+"A operação solicitada não pode ser concluída devido a restrições de "
+"segurança. Por favor, informe ao administrador do sistema.\n"
+"\n"
+"(Tipo de documento: %s, Operação: %s)"
#. module: base
#: model:ir.module.module,description:base.module_idea
@@ -14996,7 +15080,7 @@ msgstr "Serviços Pós-Venda"
#. module: base
#: field:base.language.import,code:0
msgid "ISO Code"
-msgstr ""
+msgstr "Código ISO"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr
@@ -15011,7 +15095,7 @@ msgstr "Executar"
#. module: base
#: selection:res.partner,type:0
msgid "Shipping"
-msgstr ""
+msgstr "Expedição"
#. module: base
#: model:ir.module.module,description:base.module_project_mrp
@@ -15213,7 +15297,7 @@ msgstr "Janela Atual"
#: model:ir.module.category,name:base.module_category_hidden
#: view:res.users:0
msgid "Technical Settings"
-msgstr ""
+msgstr "Configurações Técnicas"
#. module: base
#: model:ir.module.category,description:base.module_category_accounting_and_finance
@@ -15232,7 +15316,7 @@ msgstr "Plug-in Thunderbird"
#. module: base
#: model:ir.module.module,summary:base.module_event
msgid "Trainings, Conferences, Meetings, Exhibitions, Registrations"
-msgstr ""
+msgstr "Treinamentos, Conferências, Reuniões, Exposições, Inscrições"
#. module: base
#: model:ir.model,name:base.model_res_country
@@ -15250,7 +15334,7 @@ msgstr "País"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_15
msgid "Wholesaler"
-msgstr ""
+msgstr "Atacadista"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_vat
@@ -15315,7 +15399,7 @@ msgstr "Espanhol (SV) / Español (SV)"
#. module: base
#: model:ir.actions.act_window,name:base.open_module_tree
msgid "Install a Module"
-msgstr ""
+msgstr "Instalar um Módulo"
#. module: base
#: field:ir.module.module,auto_install:0
@@ -15557,7 +15641,7 @@ msgstr "Seicheles"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_4
msgid "Gold"
-msgstr ""
+msgstr "Ouro"
#. module: base
#: code:addons/base/res/res_company.py:159
@@ -15584,7 +15668,7 @@ msgstr "Informações Gerais"
#. module: base
#: field:ir.model.data,complete_name:0
msgid "Complete ID"
-msgstr ""
+msgstr "ID completo"
#. module: base
#: model:res.country,name:base.tc
@@ -15685,7 +15769,7 @@ msgstr ""
#. module: base
#: view:res.partner:0
msgid "Internal Notes"
-msgstr ""
+msgstr "Notas Internas"
#. module: base
#: selection:res.partner.address,type:0
@@ -15706,7 +15790,7 @@ msgstr "Requisição de Compra"
#. module: base
#: selection:ir.actions.act_window,target:0
msgid "Inline Edit"
-msgstr ""
+msgstr "Edição em linha"
#. module: base
#: selection:ir.cron,interval_type:0
@@ -15727,7 +15811,7 @@ msgstr "Parceiros "
#. module: base
#: view:res.partner:0
msgid "Is a Company?"
-msgstr ""
+msgstr "É uma empresa?"
#. module: base
#: code:addons/base/res/res_company.py:159
@@ -15749,7 +15833,7 @@ msgstr "Criar Objeto"
#. module: base
#: model:res.country,name:base.ss
msgid "South Sudan"
-msgstr ""
+msgstr "Sudão do Sul"
#. module: base
#: field:ir.filters,context:0
@@ -15835,7 +15919,7 @@ msgstr "Russo / русский язык"
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_signup
msgid "Signup"
-msgstr ""
+msgstr "Inscrever-se"
#~ msgid "SMS - Gateway: clickatell"
#~ msgstr "SMS - Gateway: clickatell"
diff --git a/openerp/addons/base/i18n/ru.po b/openerp/addons/base/i18n/ru.po
index a1e1ce55102..fe6bcfdc94d 100644
--- a/openerp/addons/base/i18n/ru.po
+++ b/openerp/addons/base/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-03 16:01+0000\n"
-"PO-Revision-Date: 2012-12-01 11:25+0000\n"
-"Last-Translator: Chertykov Denis \n"
+"PO-Revision-Date: 2012-12-05 09:43+0000\n"
+"Last-Translator: Denis Karataev \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: 2012-12-04 04:59+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
+"X-Launchpad-Export-Date: 2012-12-06 04:38+0000\n"
+"X-Generator: Launchpad (build 16341)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -1638,7 +1638,7 @@ msgstr "Настройка нижнего колонтитула отчета"
#. module: base
#: field:ir.translation,comments:0
msgid "Translation comments"
-msgstr ""
+msgstr "Комментарии перевода"
#. module: base
#: model:ir.module.module,description:base.module_lunch
@@ -5663,6 +5663,9 @@ msgid ""
" You should try others search criteria.
\n"
" "
msgstr ""
+"Модули не найдены!
\n"
+" Попробуйте поискать по другим критериям.
\n"
+" "
#. module: base
#: model:ir.model,name:base.model_ir_module_module
@@ -7490,6 +7493,11 @@ msgid ""
"use the same timezone that is otherwise used to pick and render date and "
"time values: your computer's timezone."
msgstr ""
+"Часовой пояс партнера, используемый для вывода правильной даты и времени "
+"внутри распечатываемых отчетов. Важно установить значение этого поля. Вы "
+"должны использовать тот же часовой пояс который есть, в противном случае "
+"значения даты и времени будут вычисляться на основе часового пояса "
+"установленного на компьютере."
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_analytic_default
@@ -8407,6 +8415,8 @@ msgid ""
"Translation features are unavailable until you install an extra OpenERP "
"translation."
msgstr ""
+"Возможности перевода не доступны до тех пор, пока вы не установите "
+"расширенный OpenERP перевод."
#. module: base
#: model:ir.module.module,description:base.module_l10n_nl
diff --git a/openerp/addons/base/i18n/zh_CN.po b/openerp/addons/base/i18n/zh_CN.po
index 7ba1562676b..b9890196ea5 100644
--- a/openerp/addons/base/i18n/zh_CN.po
+++ b/openerp/addons/base/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-03 16:01+0000\n"
-"PO-Revision-Date: 2012-12-04 02:43+0000\n"
+"PO-Revision-Date: 2012-12-06 18:17+0000\n"
"Last-Translator: ccdos \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: 2012-12-04 05:03+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
+"X-Launchpad-Export-Date: 2012-12-07 04:34+0000\n"
+"X-Generator: Launchpad (build 16341)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -88,7 +88,7 @@ msgstr "帮助您管理项目、跟踪任务、生成计划等"
#. module: base
#: model:ir.module.module,summary:base.module_point_of_sale
msgid "Touchscreen Interface for Shops"
-msgstr "商店的触摸屏接口"
+msgstr "触摸屏接口的POS 系统"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
@@ -896,6 +896,14 @@ msgid ""
"
\n"
" "
msgstr ""
+"\n"
+" 点击此处在你的地址本中增加一个新的联系人。\n"
+"
\n"
+" Openerp可以帮助你轻松的跟踪所有与客户相关的活动:\n"
+" 例如讨论,商业机会的历史记录,\n"
+" 文档,等等。\n"
+"
\n"
+" "
#. module: base
#: model:ir.module.module,description:base.module_web_linkedin
@@ -2645,6 +2653,18 @@ msgid ""
" * Date\n"
" "
msgstr ""
+"\n"
+"为你的分析帐目设定缺省值。\n"
+"==============================================\n"
+"\n"
+"基于以下规则时,允许自动选择分析帐目:\n"
+"---------------------------------------------------------------------\n"
+" * 产品\n"
+" * 合作伙伴\n"
+" * 用户\n"
+" * 公司\n"
+" * 日期\n"
+" "
#. module: base
#: field:res.company,rml_header1:0
@@ -4230,7 +4250,7 @@ msgstr "共享任意文档"
#. module: base
#: model:ir.module.module,summary:base.module_crm
msgid "Leads, Opportunities, Phone Calls"
-msgstr "线索,上级,电话"
+msgstr "线索,商机,电话"
#. module: base
#: view:res.lang:0
@@ -7666,6 +7686,10 @@ msgid ""
"==========================================\n"
" "
msgstr ""
+"\n"
+"CRM 线索和商机的待办事项\n"
+"==========================================\n"
+" "
#. module: base
#: view:ir.mail_server:0
@@ -9849,7 +9873,7 @@ msgstr "将要安装的模块"
#: model:ir.module.module,shortdesc:base.module_base
#: field:res.currency,base:0
msgid "Base"
-msgstr "本位币"
+msgstr "base 模块"
#. module: base
#: field:ir.model.data,model:0
diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py
index aacd6aa29c2..633977452a5 100644
--- a/openerp/addons/base/ir/ir_actions.py
+++ b/openerp/addons/base/ir/ir_actions.py
@@ -42,7 +42,7 @@ class actions(osv.osv):
_order = 'name'
_columns = {
'name': fields.char('Name', size=64, required=True),
- 'type': fields.char('Action Type', required=True, size=32,readonly=True),
+ 'type': fields.char('Action Type', required=True, size=32),
'usage': fields.char('Action Usage', size=32),
'help': fields.text('Action description',
help='Optional help text for the users with a description of the target view, such as its usage and purpose.',
diff --git a/openerp/addons/base/ir/ir_actions.xml b/openerp/addons/base/ir/ir_actions.xml
index 2736f3ea252..da118129932 100644
--- a/openerp/addons/base/ir/ir_actions.xml
+++ b/openerp/addons/base/ir/ir_actions.xml
@@ -502,6 +502,19 @@
+
+ Run Remaining Action Todo
+ True
+ ir.actions.server
+
+ code
+
+config = self.next(cr, uid, [], context=context) or {}
+if config.get('type') not in ('ir.actions.act_window_close',):
+ action = config
+
+
+
diff --git a/openerp/addons/base/ir/ir_cron.py b/openerp/addons/base/ir/ir_cron.py
index 243f4c772ea..e2d791281d7 100644
--- a/openerp/addons/base/ir/ir_cron.py
+++ b/openerp/addons/base/ir/ir_cron.py
@@ -31,7 +31,6 @@ import netsvc
import openerp
import pooler
import tools
-from openerp.cron import WAKE_UP_NOW
from osv import fields, osv
from tools import DEFAULT_SERVER_DATETIME_FORMAT
from tools.safe_eval import safe_eval as eval
@@ -142,130 +141,6 @@ class ir_cron(osv.osv):
except Exception, e:
self._handle_callback_exception(cr, uid, model_name, method_name, args, job_id, e)
- def _run_job(self, cr, job, now):
- """ Run a given job taking care of the repetition.
-
- The cursor has a lock on the job (aquired by _run_jobs_multithread()) and this
- method is run in a worker thread (spawned by _run_jobs_multithread())).
-
- :param job: job to be run (as a dictionary).
- :param now: timestamp (result of datetime.now(), no need to call it multiple time).
-
- """
- try:
- nextcall = datetime.strptime(job['nextcall'], DEFAULT_SERVER_DATETIME_FORMAT)
- numbercall = job['numbercall']
-
- ok = False
- while nextcall < now and numbercall:
- if numbercall > 0:
- numbercall -= 1
- if not ok or job['doall']:
- self._callback(cr, job['user_id'], job['model'], job['function'], job['args'], job['id'])
- if numbercall:
- nextcall += _intervalTypes[job['interval_type']](job['interval_number'])
- ok = True
- addsql = ''
- if not numbercall:
- addsql = ', active=False'
- cr.execute("UPDATE ir_cron SET nextcall=%s, numbercall=%s"+addsql+" WHERE id=%s",
- (nextcall.strftime(DEFAULT_SERVER_DATETIME_FORMAT), numbercall, job['id']))
-
- if numbercall:
- # Reschedule our own main cron thread if necessary.
- # This is really needed if this job runs longer than its rescheduling period.
- nextcall = calendar.timegm(nextcall.timetuple())
- openerp.cron.schedule_wakeup(nextcall, cr.dbname)
- finally:
- cr.commit()
- cr.close()
- openerp.cron.release_thread_slot()
-
- def _run_jobs_multithread(self):
- # TODO remove 'check' argument from addons/base_action_rule/base_action_rule.py
- """ Process the cron jobs by spawning worker threads.
-
- This selects in database all the jobs that should be processed. It then
- tries to lock each of them and, if it succeeds, spawns a thread to run
- the cron job (if it doesn't succeed, it means the job was already
- locked to be taken care of by another thread).
-
- The cursor used to lock the job in database is given to the worker
- thread (which has to close it itself).
-
- """
- db = self.pool.db
- cr = db.cursor()
- db_name = db.dbname
- try:
- jobs = {} # mapping job ids to jobs for all jobs being processed.
- now = datetime.now()
- # Careful to compare timestamps with 'UTC' - everything is UTC as of v6.1.
- cr.execute("""SELECT * FROM ir_cron
- WHERE numbercall != 0
- AND active AND nextcall <= (now() at time zone 'UTC')
- ORDER BY priority""")
- for job in cr.dictfetchall():
- if not openerp.cron.get_thread_slots():
- break
- jobs[job['id']] = job
-
- task_cr = db.cursor()
- try:
- # Try to grab an exclusive lock on the job row from within the task transaction
- acquired_lock = False
- task_cr.execute("""SELECT *
- FROM ir_cron
- WHERE id=%s
- FOR UPDATE NOWAIT""",
- (job['id'],), log_exceptions=False)
- acquired_lock = True
- except psycopg2.OperationalError, e:
- if e.pgcode == '55P03':
- # Class 55: Object not in prerequisite state; 55P03: lock_not_available
- _logger.debug('Another process/thread is already busy executing job `%s`, skipping it.', job['name'])
- continue
- else:
- # Unexpected OperationalError
- raise
- finally:
- if not acquired_lock:
- # we're exiting due to an exception while acquiring the lot
- task_cr.close()
-
- # Got the lock on the job row, now spawn a thread to execute it in the transaction with the lock
- task_thread = threading.Thread(target=self._run_job, name=job['name'], args=(task_cr, job, now))
- # force non-daemon task threads (the runner thread must be daemon, and this property is inherited by default)
- task_thread.setDaemon(False)
- openerp.cron.take_thread_slot()
- task_thread.start()
- _logger.debug('Cron execution thread for job `%s` spawned', job['name'])
-
- # Find next earliest job ignoring currently processed jobs (by this and other cron threads)
- find_next_time_query = """SELECT min(nextcall) AS min_next_call
- FROM ir_cron WHERE numbercall != 0 AND active"""
- if jobs:
- cr.execute(find_next_time_query + " AND id NOT IN %s", (tuple(jobs.keys()),))
- else:
- cr.execute(find_next_time_query)
- next_call = cr.dictfetchone()['min_next_call']
-
- if next_call:
- next_call = calendar.timegm(time.strptime(next_call, DEFAULT_SERVER_DATETIME_FORMAT))
- else:
- # no matching cron job found in database, re-schedule arbitrarily in 1 day,
- # this delay will likely be modified when running jobs complete their tasks
- next_call = time.time() + (24*3600)
-
- openerp.cron.schedule_wakeup(next_call, db_name)
-
- except Exception, ex:
- _logger.warning('Exception in cron:', exc_info=True)
-
- finally:
- cr.commit()
- cr.close()
-
def _process_job(self, cr, job):
""" Run a given job taking care of the repetition.
@@ -365,19 +240,6 @@ class ir_cron(osv.osv):
return False
- def update_running_cron(self, cr):
- """ Schedule as soon as possible a wake-up for this database. """
- # Verify whether the server is already started and thus whether we need to commit
- # immediately our changes and restart the cron agent in order to apply the change
- # immediately. The commit() is needed because as soon as the cron is (re)started it
- # will query the database with its own cursor, possibly before the end of the
- # current transaction.
- # This commit() is not an issue in most cases, but we must absolutely avoid it
- # when the server is only starting or loading modules (hence the test on pool._init).
- if not self.pool._init:
- cr.commit()
- openerp.cron.schedule_wakeup(WAKE_UP_NOW, self.pool.db.dbname)
-
def _try_lock(self, cr, uid, ids, context=None):
"""Try to grab a dummy exclusive write-lock to the rows with the given ids,
to make sure a following write() or unlink() will not block due
@@ -393,20 +255,16 @@ class ir_cron(osv.osv):
def create(self, cr, uid, vals, context=None):
res = super(ir_cron, self).create(cr, uid, vals, context=context)
- self.update_running_cron(cr)
return res
def write(self, cr, uid, ids, vals, context=None):
self._try_lock(cr, uid, ids, context)
res = super(ir_cron, self).write(cr, uid, ids, vals, context=context)
- self.update_running_cron(cr)
return res
def unlink(self, cr, uid, ids, context=None):
self._try_lock(cr, uid, ids, context)
res = super(ir_cron, self).unlink(cr, uid, ids, context=context)
- self.update_running_cron(cr)
return res
-ir_cron()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py
index bca8cbf4813..fcf1ee92ebd 100644
--- a/openerp/addons/base/ir/ir_model.py
+++ b/openerp/addons/base/ir/ir_model.py
@@ -209,6 +209,7 @@ class ir_model(osv.osv):
else:
x_name = a._columns.keys()[0]
x_custom_model._rec_name = x_name
+ a._rec_name = x_name
class ir_model_fields(osv.osv):
_name = 'ir.model.fields'
diff --git a/openerp/addons/base/ir/ir_model_view.xml b/openerp/addons/base/ir/ir_model_view.xml
index 01ff918662f..1b5d0cc3caf 100644
--- a/openerp/addons/base/ir/ir_model_view.xml
+++ b/openerp/addons/base/ir/ir_model_view.xml
@@ -44,7 +44,7 @@
-
+
diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py
index a8475d33552..94b5c8ab7b6 100644
--- a/openerp/addons/base/ir/ir_ui_menu.py
+++ b/openerp/addons/base/ir/ir_ui_menu.py
@@ -43,7 +43,7 @@ class ir_ui_menu(osv.osv):
def __init__(self, *args, **kwargs):
self.cache_lock = threading.RLock()
- self.clear_cache()
+ self._cache = {}
r = super(ir_ui_menu, self).__init__(*args, **kwargs)
self.pool.get('ir.model.access').register_cache_clearing_method(self._name, 'clear_cache')
return r
@@ -51,6 +51,10 @@ class ir_ui_menu(osv.osv):
def clear_cache(self):
with self.cache_lock:
# radical but this doesn't frequently happen
+ if self._cache:
+ # Normally this is done by openerp.tools.ormcache
+ # but since we do not use it, set it by ourself.
+ self.pool._any_cache_cleared = True
self._cache = {}
def _filter_visible_menus(self, cr, uid, ids, context=None):
diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py
index dbb8d6a3f40..cbd046a86e3 100644
--- a/openerp/addons/base/module/module.py
+++ b/openerp/addons/base/module/module.py
@@ -30,6 +30,7 @@ import re
import urllib
import zipimport
+import openerp
from openerp import modules, pooler, release, tools, addons
from openerp.modules.db import create_categories
from openerp.tools.parse_version import parse_version
@@ -385,6 +386,8 @@ class module(osv.osv):
# Mark them to be installed.
if to_install_ids:
self.button_install(cr, uid, to_install_ids, context=context)
+
+ openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
return dict(ACTION_DICT, name=_('Install'))
def button_immediate_install(self, cr, uid, ids, context=None):
diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml
index 16f4ee20334..1cbfd818d28 100644
--- a/openerp/addons/base/res/res_partner_view.xml
+++ b/openerp/addons/base/res/res_partner_view.xml
@@ -258,7 +258,7 @@
-
+
diff --git a/openerp/addons/base/tests/test_ir_values.py b/openerp/addons/base/tests/test_ir_values.py
index b306e1f0929..ad8dee616b7 100644
--- a/openerp/addons/base/tests/test_ir_values.py
+++ b/openerp/addons/base/tests/test_ir_values.py
@@ -50,20 +50,25 @@ class test_ir_values(common.TransactionCase):
# Create some action bindings for a non-existing model.
+ act_id_1 = self.ref('base.act_values_form_action')
+ act_id_2 = self.ref('base.act_values_form_defaults')
+ act_id_3 = self.ref('base.action_res_company_form')
+ act_id_4 = self.ref('base.action_res_company_tree')
+
ir_values = self.registry('ir.values')
- ir_values.set(self.cr, self.uid, 'action', 'tree_but_open', 'OnDblClick Action', ['unexisting_model'], 'ir.actions.act_window,10', isobject=True)
- ir_values.set(self.cr, self.uid, 'action', 'tree_but_open', 'OnDblClick Action 2', ['unexisting_model'], 'ir.actions.act_window,11', isobject=True)
- ir_values.set(self.cr, self.uid, 'action', 'client_action_multi', 'Side Wizard', ['unexisting_model'], 'ir.actions.act_window,12', isobject=True)
+ ir_values.set(self.cr, self.uid, 'action', 'tree_but_open', 'OnDblClick Action', ['unexisting_model'], 'ir.actions.act_window,%d' % act_id_1, isobject=True)
+ ir_values.set(self.cr, self.uid, 'action', 'tree_but_open', 'OnDblClick Action 2', ['unexisting_model'], 'ir.actions.act_window,%d' % act_id_2, isobject=True)
+ ir_values.set(self.cr, self.uid, 'action', 'client_action_multi', 'Side Wizard', ['unexisting_model'], 'ir.actions.act_window,%d' % act_id_3, isobject=True)
report_ids = self.registry('ir.actions.report.xml').search(self.cr, self.uid, [], {})
reports = self.registry('ir.actions.report.xml').browse(self.cr, self.uid, report_ids, {})
- report_id = [report.id for report in reports if not report.groups_id][0] # assume at least one
- ir_values.set(self.cr, self.uid, 'action', 'client_print_multi', 'Nice Report', ['unexisting_model'], 'ir.actions.report.xml,%s'%report_id, isobject=True)
- ir_values.set(self.cr, self.uid, 'action', 'client_action_relate', 'Related Stuff', ['unexisting_model'], 'ir.actions.act_window,14', isobject=True)
+ report_id = [report.id for report in reports if not report.groups_id][0] # assume at least one
+ ir_values.set(self.cr, self.uid, 'action', 'client_print_multi', 'Nice Report', ['unexisting_model'], 'ir.actions.report.xml,%d' % report_id, isobject=True)
+ ir_values.set(self.cr, self.uid, 'action', 'client_action_relate', 'Related Stuff', ['unexisting_model'], 'ir.actions.act_window,%d' % act_id_4, isobject=True)
# Replace one action binding to set a new name.
ir_values = self.registry('ir.values')
- ir_values.set(self.cr, self.uid, 'action', 'tree_but_open', 'OnDblClick Action New', ['unexisting_model'], 'ir.actions.act_window,10', isobject=True)
+ ir_values.set(self.cr, self.uid, 'action', 'tree_but_open', 'OnDblClick Action New', ['unexisting_model'], 'ir.actions.act_window,%d' % act_id_1, isobject=True)
# Retrieve the action bindings and check they're correct
@@ -73,17 +78,17 @@ class test_ir_values(common.TransactionCase):
#first action
assert len(actions[0]) == 3, "Malformed action definition"
assert actions[0][1] == 'OnDblClick Action 2', 'Bound action does not match definition'
- assert isinstance(actions[0][2], dict) and actions[0][2]['id'] == 11, 'Bound action does not match definition'
+ assert isinstance(actions[0][2], dict) and actions[0][2]['id'] == act_id_2, 'Bound action does not match definition'
#second action - this ones comes last because it was re-created with a different name
assert len(actions[1]) == 3, "Malformed action definition"
assert actions[1][1] == 'OnDblClick Action New', 'Re-Registering an action should replace it'
- assert isinstance(actions[1][2], dict) and actions[1][2]['id'] == 10, 'Bound action does not match definition'
+ assert isinstance(actions[1][2], dict) and actions[1][2]['id'] == act_id_1, 'Bound action does not match definition'
actions = ir_values.get(self.cr, self.uid, 'action', 'client_action_multi', ['unexisting_model'])
assert len(actions) == 1, "Mismatching number of bound actions"
assert len(actions[0]) == 3, "Malformed action definition"
assert actions[0][1] == 'Side Wizard', 'Bound action does not match definition'
- assert isinstance(actions[0][2], dict) and actions[0][2]['id'] == 12, 'Bound action does not match definition'
+ assert isinstance(actions[0][2], dict) and actions[0][2]['id'] == act_id_3, 'Bound action does not match definition'
actions = ir_values.get(self.cr, self.uid, 'action', 'client_print_multi', ['unexisting_model'])
assert len(actions) == 1, "Mismatching number of bound actions"
@@ -95,7 +100,7 @@ class test_ir_values(common.TransactionCase):
assert len(actions) == 1, "Mismatching number of bound actions"
assert len(actions[0]) == 3, "Malformed action definition"
assert actions[0][1] == 'Related Stuff', 'Bound action does not match definition'
- assert isinstance(actions[0][2], dict) and actions[0][2]['id'] == 14, 'Bound action does not match definition'
+ assert isinstance(actions[0][2], dict) and actions[0][2]['id'] == act_id_4, 'Bound action does not match definition'
if __name__ == '__main__':
diff --git a/openerp/cli/__init__.py b/openerp/cli/__init__.py
index a48d20e4483..7111112c026 100644
--- a/openerp/cli/__init__.py
+++ b/openerp/cli/__init__.py
@@ -2,6 +2,8 @@ import logging
import sys
import openerp
+from openerp import tools
+from openerp.modules import module
_logger = logging.getLogger(__name__)
@@ -32,8 +34,25 @@ import server
def main():
args = sys.argv[1:]
+
+ # The only shared option is '--addons-path=' needed to discover additional
+ # commands from modules
+ if len(args) > 1 and args[0].startswith('--addons-path=') and not args[1].startswith("-"):
+ tools.config.parse_config([args[0]])
+ args = args[1:]
+
+ # Default legacy command
command = "server"
+
+ # Subcommand discovery
if len(args) and not args[0].startswith("-"):
+ for m in module.get_modules():
+ m = 'openerp.addons.' + m
+ __import__(m)
+ #try:
+ #except Exception, e:
+ # raise
+ # print e
command = args[0]
args = args[1:]
diff --git a/openerp/conf/__init__.py b/openerp/conf/__init__.py
index c89ddf44734..0a975c5d4e2 100644
--- a/openerp/conf/__init__.py
+++ b/openerp/conf/__init__.py
@@ -35,10 +35,6 @@ must be used.
import deprecation
-# Maximum number of threads processing concurrently cron jobs.
-max_cron_threads = 4 # Actually the default value here is meaningless,
- # look at tools.config for the default value.
-
# Paths to search for OpenERP addons.
addons_paths = []
diff --git a/openerp/cron.py b/openerp/cron.py
deleted file mode 100644
index 7b67877f0fe..00000000000
--- a/openerp/cron.py
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2011 OpenERP SA ()
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-""" Cron jobs scheduling
-
-Cron jobs are defined in the ir_cron table/model. This module deals with all
-cron jobs, for all databases of a single OpenERP server instance.
-
-It defines a single master thread that will spawn (a bounded number of)
-threads to process individual cron jobs.
-
-The thread runs forever, checking every 60 seconds for new
-'database wake-ups'. It maintains a heapq of database wake-ups. At each
-wake-up, it will call ir_cron._run_jobs_multithread() for the given database. _run_jobs_multithread
-will check the jobs defined in the ir_cron table and spawn accordingly threads
-to process them.
-
-This module's behavior depends on the following configuration variable:
-openerp.conf.max_cron_threads.
-
-"""
-
-import heapq
-import logging
-import threading
-import time
-
-import openerp
-import tools
-
-_logger = logging.getLogger(__name__)
-
-# Heapq of database wake-ups. Note that 'database wake-up' meaning is in
-# the context of the cron management. This is not originally about loading
-# a database, although having the database name in the queue will
-# cause it to be loaded when the schedule time is reached, even if it was
-# unloaded in the mean time. Normally a database's wake-up is cancelled by
-# the RegistryManager when the database is unloaded - so this should not
-# cause it to be reloaded.
-#
-# TODO: perhaps in the future we could consider a flag on ir.cron jobs
-# that would cause database wake-up even if the database has not been
-# loaded yet or was already unloaded (e.g. 'force_db_wakeup' or something)
-#
-# Each element is a triple (timestamp, database-name, boolean). The boolean
-# specifies if the wake-up is canceled (so a wake-up can be canceled without
-# relying on the heapq implementation detail; no need to remove the job from
-# the heapq).
-_wakeups = []
-
-# Mapping of database names to the wake-up defined in the heapq,
-# so that we can cancel the wake-up without messing with the heapq
-# invariant: lookup the wake-up by database-name, then set
-# its third element to True.
-_wakeup_by_db = {}
-
-# Re-entrant lock to protect the above _wakeups and _wakeup_by_db variables.
-# We could use a simple (non-reentrant) lock if the runner function below
-# was more fine-grained, but we are fine with the loop owning the lock
-# while spawning a few threads.
-_wakeups_lock = threading.RLock()
-
-# Maximum number of threads allowed to process cron jobs concurrently. This
-# variable is set by start_master_thread using openerp.conf.max_cron_threads.
-_thread_slots = None
-
-# A (non re-entrant) lock to protect the above _thread_slots variable.
-_thread_slots_lock = threading.Lock()
-
-# Sleep duration limits - must not loop too quickly, but can't sleep too long
-# either, because a new job might be inserted in ir_cron with a much sooner
-# execution date than current known ones. We won't see it until we wake!
-MAX_SLEEP = 60 # 1 min
-MIN_SLEEP = 1 # 1 sec
-
-# Dummy wake-up timestamp that can be used to force a database wake-up asap
-WAKE_UP_NOW = 1
-
-def get_thread_slots():
- """ Return the number of available thread slots """
- return _thread_slots
-
-
-def release_thread_slot():
- """ Increment the number of available thread slots """
- global _thread_slots
- with _thread_slots_lock:
- _thread_slots += 1
-
-
-def take_thread_slot():
- """ Decrement the number of available thread slots """
- global _thread_slots
- with _thread_slots_lock:
- _thread_slots -= 1
-
-
-def cancel(db_name):
- """ Cancel the next wake-up of a given database, if any.
-
- :param db_name: database name for which the wake-up is canceled.
-
- """
- _logger.debug("Cancel next wake-up for database '%s'.", db_name)
- with _wakeups_lock:
- if db_name in _wakeup_by_db:
- _wakeup_by_db[db_name][2] = True
-
-
-def cancel_all():
- """ Cancel all database wake-ups. """
- _logger.debug("Cancel all database wake-ups")
- global _wakeups
- global _wakeup_by_db
- with _wakeups_lock:
- _wakeups = []
- _wakeup_by_db = {}
-
-
-def schedule_wakeup(timestamp, db_name):
- """ Schedule a new wake-up for a database.
-
- If an earlier wake-up is already defined, the new wake-up is discarded.
- If another wake-up is defined, that wake-up is discarded and the new one
- is scheduled.
-
- :param db_name: database name for which a new wake-up is scheduled.
- :param timestamp: when the wake-up is scheduled.
-
- """
- if not timestamp:
- return
- with _wakeups_lock:
- if db_name in _wakeup_by_db:
- task = _wakeup_by_db[db_name]
- if not task[2] and timestamp > task[0]:
- # existing wakeup is valid and occurs earlier than new one
- return
- task[2] = True # cancel existing task
- task = [timestamp, db_name, False]
- heapq.heappush(_wakeups, task)
- _wakeup_by_db[db_name] = task
- _logger.debug("Wake-up scheduled for database '%s' @ %s", db_name,
- 'NOW' if timestamp == WAKE_UP_NOW else timestamp)
-
-def runner():
- """Neverending function (intended to be run in a dedicated thread) that
- checks every 60 seconds the next database wake-up. TODO: make configurable
- """
- while True:
- runner_body()
-
-def runner_body():
- with _wakeups_lock:
- while _wakeups and _wakeups[0][0] < time.time() and get_thread_slots():
- task = heapq.heappop(_wakeups)
- timestamp, db_name, canceled = task
- if canceled:
- continue
- del _wakeup_by_db[db_name]
- registry = openerp.pooler.get_pool(db_name)
- if not registry._init:
- _logger.debug("Database '%s' wake-up! Firing multi-threaded cron job processing", db_name)
- registry['ir.cron']._run_jobs_multithread()
- amount = MAX_SLEEP
- with _wakeups_lock:
- # Sleep less than MAX_SLEEP if the next known wake-up will happen before that.
- if _wakeups and get_thread_slots():
- amount = min(MAX_SLEEP, max(MIN_SLEEP, _wakeups[0][0] - time.time()))
- _logger.debug("Going to sleep for %ss", amount)
- time.sleep(amount)
-
-def start_master_thread():
- """ Start the above runner function in a daemon thread.
-
- The thread is a typical daemon thread: it will never quit and must be
- terminated when the main process exits - with no consequence (the processing
- threads it spawns are not marked daemon).
-
- """
- global _thread_slots
- _thread_slots = openerp.conf.max_cron_threads
- db_maxconn = tools.config['db_maxconn']
- if _thread_slots >= tools.config.get('db_maxconn', 64):
- _logger.warning("Connection pool size (%s) is set lower than max number of cron threads (%s), "
- "this may cause trouble if you reach that number of parallel cron tasks.",
- db_maxconn, _thread_slots)
- t = threading.Thread(target=runner, name="openerp.cron.master_thread")
- t.setDaemon(True)
- t.start()
- _logger.debug("Master cron daemon started!")
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/modules/module.py b/openerp/modules/module.py
index ca654b9a2eb..bb4ff481fb9 100644
--- a/openerp/modules/module.py
+++ b/openerp/modules/module.py
@@ -433,8 +433,9 @@ def get_modules():
return name
def is_really_module(name):
- name = opj(dir, name)
- return os.path.isdir(name) or zipfile.is_zipfile(name)
+ manifest_name = opj(dir, name, '__openerp__.py')
+ zipfile_name = opj(dir, name)
+ return os.path.isfile(manifest_name) or zipfile.is_zipfile(zipfile_name)
return map(clean, filter(is_really_module, os.listdir(dir)))
plist = []
diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py
index 5aa2eca26ef..d898cc7e8db 100644
--- a/openerp/modules/registry.py
+++ b/openerp/modules/registry.py
@@ -28,7 +28,6 @@ import threading
import openerp.sql_db
import openerp.osv.orm
-import openerp.cron
import openerp.tools
import openerp.modules.db
import openerp.tools.config
@@ -58,6 +57,21 @@ class Registry(object):
self.db_name = db_name
self.db = openerp.sql_db.db_connect(db_name)
+ # In monoprocess cron jobs flag (pooljobs)
+ self.cron = False
+
+ # Inter-process signaling (used only when openerp.multi_process is True):
+ # The `base_registry_signaling` sequence indicates the whole registry
+ # must be reloaded.
+ # The `base_cache_signaling sequence` indicates all caches must be
+ # invalidated (i.e. cleared).
+ self.base_registry_signaling_sequence = 1
+ self.base_cache_signaling_sequence = 1
+
+ # Flag indicating if at least one model cache has been cleared.
+ # Useful only in a multi-process context.
+ self._any_cache_cleared = False
+
cr = self.db.cursor()
has_unaccent = openerp.modules.db.has_unaccent(cr)
if openerp.tools.config['unaccent'] and not has_unaccent:
@@ -112,7 +126,7 @@ class Registry(object):
monitor the ir.cron model for future jobs. See openerp.cron for
details.
"""
- openerp.cron.schedule_wakeup(openerp.cron.WAKE_UP_NOW, self.db.dbname)
+ self.cron = True
def clear_caches(self):
""" Clear the caches
@@ -121,6 +135,36 @@ class Registry(object):
"""
for model in self.models.itervalues():
model.clear_caches()
+ # Special case for ir_ui_menu which does not use openerp.tools.ormcache.
+ ir_ui_menu = self.models.get('ir.ui.menu')
+ if ir_ui_menu:
+ ir_ui_menu.clear_cache()
+
+
+ # Useful only in a multi-process context.
+ def reset_any_cache_cleared(self):
+ self._any_cache_cleared = False
+
+ # Useful only in a multi-process context.
+ def any_cache_cleared(self):
+ return self._any_cache_cleared
+
+ @classmethod
+ def setup_multi_process_signaling(cls, cr):
+ if not openerp.multi_process:
+ return
+
+ # Inter-process signaling:
+ # The `base_registry_signaling` sequence indicates the whole registry
+ # must be reloaded.
+ # The `base_cache_signaling sequence` indicates all caches must be
+ # invalidated (i.e. cleared).
+ cr.execute("""SELECT sequence_name FROM information_schema.sequences WHERE sequence_name='base_registry_signaling'""")
+ if not cr.fetchall():
+ cr.execute("""CREATE SEQUENCE base_registry_signaling INCREMENT BY 1 START WITH 1""")
+ cr.execute("""SELECT nextval('base_registry_signaling')""")
+ cr.execute("""CREATE SEQUENCE base_cache_signaling INCREMENT BY 1 START WITH 1""")
+ cr.execute("""SELECT nextval('base_cache_signaling')""")
@contextmanager
def cursor(self, auto_commit=True):
@@ -182,6 +226,7 @@ class RegistryManager(object):
cr = registry.db.cursor()
try:
+ Registry.setup_multi_process_signaling(cr)
registry.do_parent_store(cr)
registry.get('ir.actions.report.xml').register_all(cr)
cr.commit()
@@ -195,20 +240,11 @@ class RegistryManager(object):
@classmethod
def delete(cls, db_name):
- """Delete the registry linked to a given database.
-
- This also cleans the associated caches. For good measure this also
- cancels the associated cron job. But please note that the cron job can
- be running and take some time before ending, and that you should not
- remove a registry if it can still be used by some thread. So it might
- be necessary to call yourself openerp.cron.Agent.cancel(db_name) and
- and join (i.e. wait for) the thread.
- """
+ """Delete the registry linked to a given database. """
with cls.registries_lock:
if db_name in cls.registries:
cls.registries[db_name].clear_caches()
del cls.registries[db_name]
- openerp.cron.cancel(db_name)
@classmethod
def delete_all(cls):
@@ -232,5 +268,71 @@ class RegistryManager(object):
if db_name in cls.registries:
cls.registries[db_name].clear_caches()
+ @classmethod
+ def check_registry_signaling(cls, db_name):
+ if openerp.multi_process and db_name in cls.registries:
+ registry = cls.get(db_name, pooljobs=False)
+ cr = registry.db.cursor()
+ try:
+ cr.execute("""
+ SELECT base_registry_signaling.last_value,
+ base_cache_signaling.last_value
+ FROM base_registry_signaling, base_cache_signaling""")
+ r, c = cr.fetchone()
+ # Check if the model registry must be reloaded (e.g. after the
+ # database has been updated by another process).
+ if registry.base_registry_signaling_sequence != r:
+ _logger.info("Reloading the model registry after database signaling.")
+ # Don't run the cron in the Gunicorn worker.
+ registry = cls.new(db_name, pooljobs=False)
+ registry.base_registry_signaling_sequence = r
+ # Check if the model caches must be invalidated (e.g. after a write
+ # occured on another process). Don't clear right after a registry
+ # has been reload.
+ elif registry.base_cache_signaling_sequence != c:
+ _logger.info("Invalidating all model caches after database signaling.")
+ registry.base_cache_signaling_sequence = c
+ registry.clear_caches()
+ registry.reset_any_cache_cleared()
+ # One possible reason caches have been invalidated is the
+ # use of decimal_precision.write(), in which case we need
+ # to refresh fields.float columns.
+ for model in registry.models.values():
+ for column in model._columns.values():
+ if hasattr(column, 'digits_change'):
+ column.digits_change(cr)
+ finally:
+ cr.close()
+
+ @classmethod
+ def signal_caches_change(cls, db_name):
+ if openerp.multi_process and db_name in cls.registries:
+ # Check the registries if any cache has been cleared and signal it
+ # through the database to other processes.
+ registry = cls.get(db_name, pooljobs=False)
+ if registry.any_cache_cleared():
+ _logger.info("At least one model cache has been cleared, signaling through the database.")
+ cr = registry.db.cursor()
+ r = 1
+ try:
+ cr.execute("select nextval('base_cache_signaling')")
+ r = cr.fetchone()[0]
+ finally:
+ cr.close()
+ registry.base_cache_signaling_sequence = r
+ registry.reset_any_cache_cleared()
+
+ @classmethod
+ def signal_registry_change(cls, db_name):
+ if openerp.multi_process and db_name in cls.registries:
+ registry = cls.get(db_name, pooljobs=False)
+ cr = registry.db.cursor()
+ r = 1
+ try:
+ cr.execute("select nextval('base_registry_signaling')")
+ r = cr.fetchone()[0]
+ finally:
+ cr.close()
+ registry.base_registry_signaling_sequence = r
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/netsvc.py b/openerp/netsvc.py
index e2e435a746f..fead3bd7908 100644
--- a/openerp/netsvc.py
+++ b/openerp/netsvc.py
@@ -40,23 +40,6 @@ import openerp
_logger = logging.getLogger(__name__)
-def close_socket(sock):
- """ Closes a socket instance cleanly
-
- :param sock: the network socket to close
- :type sock: socket.socket
- """
- try:
- sock.shutdown(socket.SHUT_RDWR)
- except socket.error, e:
- # On OSX, socket shutdowns both sides if any side closes it
- # causing an error 57 'Socket is not connected' on shutdown
- # of the other side (or something), see
- # http://bugs.python.org/issue4397
- # note: stdlib fixed test, not behavior
- if e.errno != errno.ENOTCONN or platform.system() != 'Darwin':
- raise
- sock.close()
#.apidoc title: Common Services: netsvc
@@ -67,9 +50,9 @@ def abort_response(dummy_1, description, dummy_2, details):
raise openerp.osv.osv.except_osv(description, details)
class Service(object):
- """ Base class for *Local* services
-
- Functionality here is trusted, no authentication.
+ """ Base class for Local services
+ Functionality here is trusted, no authentication.
+ Workflow engine and reports subclass this.
"""
_services = {}
def __init__(self, name):
@@ -145,7 +128,6 @@ class ColoredFormatter(DBFormatter):
record.levelname = COLOR_PATTERN % (30 + fg_color, 40 + bg_color, record.levelname)
return DBFormatter.format(self, record)
-
def init_logger():
from tools.translate import resetlocale
resetlocale()
@@ -246,85 +228,6 @@ def init_alternative_logger():
logger.addHandler(handler)
logger.setLevel(logging.ERROR)
-class Server:
- """ Generic interface for all servers with an event loop etc.
- Override this to impement http, net-rpc etc. servers.
-
- Servers here must have threaded behaviour. start() must not block,
- there is no run().
- """
- __is_started = False
- __servers = []
- __starter_threads = []
-
- # we don't want blocking server calls (think select()) to
- # wait forever and possibly prevent exiting the process,
- # but instead we want a form of polling/busy_wait pattern, where
- # _server_timeout should be used as the default timeout for
- # all I/O blocking operations
- _busywait_timeout = 0.5
-
- def __init__(self):
- Server.__servers.append(self)
- if Server.__is_started:
- # raise Exception('All instances of servers must be inited before the startAll()')
- # Since the startAll() won't be called again, allow this server to
- # init and then start it after 1sec (hopefully). Register that
- # timer thread in a list, so that we can abort the start if quitAll
- # is called in the meantime
- t = threading.Timer(1.0, self._late_start)
- t.name = 'Late start timer for %s' % str(self.__class__)
- Server.__starter_threads.append(t)
- t.start()
-
- def start(self):
- _logger.debug("called stub Server.start")
-
- def _late_start(self):
- self.start()
- for thr in Server.__starter_threads:
- if thr.finished.is_set():
- Server.__starter_threads.remove(thr)
-
- def stop(self):
- _logger.debug("called stub Server.stop")
-
- def stats(self):
- """ This function should return statistics about the server """
- return "%s: No statistics" % str(self.__class__)
-
- @classmethod
- def startAll(cls):
- if cls.__is_started:
- return
- _logger.info("Starting %d services" % len(cls.__servers))
- for srv in cls.__servers:
- srv.start()
- cls.__is_started = True
-
- @classmethod
- def quitAll(cls):
- if not cls.__is_started:
- return
- _logger.info("Stopping %d services" % len(cls.__servers))
- for thr in cls.__starter_threads:
- if not thr.finished.is_set():
- thr.cancel()
- cls.__starter_threads.remove(thr)
-
- for srv in cls.__servers:
- srv.stop()
- cls.__is_started = False
-
- @classmethod
- def allStats(cls):
- res = ["Servers %s" % ('stopped', 'started')[cls.__is_started]]
- res.extend(srv.stats() for srv in cls.__servers)
- return '\n'.join(res)
-
- def _close_socket(self):
- close_socket(self.socket)
-
def replace_request_password(args):
# password is always 3rd argument in a request, we replace it in RPC logs
# so it's easier to forward logs for diagnostics/debugging purposes...
diff --git a/openerp/osv/fields.py b/openerp/osv/fields.py
index 3e5c1198239..ea84cae978e 100644
--- a/openerp/osv/fields.py
+++ b/openerp/osv/fields.py
@@ -163,7 +163,7 @@ class boolean(_column):
_logger.debug(
"required=True is deprecated: making a boolean field"
" `required` has no effect, as NULL values are "
- "automatically turned into False.")
+ "automatically turned into False. args: %r",args)
class integer(_column):
_type = 'integer'
diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py
index 3b9b8f30d23..e203ae79e0d 100644
--- a/openerp/osv/orm.py
+++ b/openerp/osv/orm.py
@@ -916,7 +916,16 @@ class BaseModel(object):
else:
new.extend(cls.__dict__.get(s, []))
nattr[s] = new
+
+ # Keep links to non-inherited constraints, e.g. useful when exporting translations
+ nattr['_local_constraints'] = cls.__dict__.get('_constraints', [])
+ nattr['_local_sql_constraints'] = cls.__dict__.get('_sql_constraints', [])
+
cls = type(name, (cls, parent_class), dict(nattr, _register=False))
+ else:
+ cls._local_constraints = getattr(cls, '_constraints', [])
+ cls._local_sql_constraints = getattr(cls, '_sql_constraints', [])
+
if not getattr(cls, '_original_module', None):
cls._original_module = cls._module
obj = object.__new__(cls)
@@ -1515,6 +1524,8 @@ class BaseModel(object):
error_msgs = []
for constraint in self._constraints:
fun, msg, fields = constraint
+ # We don't pass around the context here: validation code
+ # must always yield the same results.
if not fun(self, cr, uid, ids):
# Check presence of __call__ directly instead of using
# callable() because it will be deprecated as of Python 3.0
@@ -2498,6 +2509,7 @@ class BaseModel(object):
try:
getattr(self, '_ormcache')
self._ormcache = {}
+ self.pool._any_cache_cleared = True
except AttributeError:
pass
@@ -3223,7 +3235,7 @@ class BaseModel(object):
def _create_table(self, cr):
- cr.execute('CREATE TABLE "%s" (id SERIAL NOT NULL, PRIMARY KEY(id)) WITHOUT OIDS' % (self._table,))
+ cr.execute('CREATE TABLE "%s" (id SERIAL NOT NULL, PRIMARY KEY(id))' % (self._table,))
cr.execute(("COMMENT ON TABLE \"%s\" IS %%s" % self._table), (self._description,))
_schema.debug("Table '%s': created", self._table)
@@ -3307,7 +3319,7 @@ class BaseModel(object):
raise except_orm('Programming Error', ('Many2Many destination model does not exist: `%s`') % (f._obj,))
dest_model = self.pool.get(f._obj)
ref = dest_model._table
- cr.execute('CREATE TABLE "%s" ("%s" INTEGER NOT NULL, "%s" INTEGER NOT NULL, UNIQUE("%s","%s")) WITH OIDS' % (m2m_tbl, col1, col2, col1, col2))
+ cr.execute('CREATE TABLE "%s" ("%s" INTEGER NOT NULL, "%s" INTEGER NOT NULL, UNIQUE("%s","%s"))' % (m2m_tbl, col1, col2, col1, col2))
# create foreign key references with ondelete=cascade, unless the targets are SQL views
cr.execute("SELECT relkind FROM pg_class WHERE relkind IN ('v') AND relname=%s", (ref,))
if not cr.fetchall():
diff --git a/openerp/osv/osv.py b/openerp/osv/osv.py
index 7703406ec96..018976ac663 100644
--- a/openerp/osv/osv.py
+++ b/openerp/osv/osv.py
@@ -23,6 +23,8 @@
from functools import wraps
import logging
+import threading
+
from psycopg2 import IntegrityError, errorcodes
import orm
@@ -168,6 +170,7 @@ class object_proxy(object):
@check
def execute(self, db, uid, obj, method, *args, **kw):
+ threading.currentThread().dbname = db
cr = pooler.get_db(db).cursor()
try:
try:
diff --git a/openerp/service/__init__.py b/openerp/service/__init__.py
index 491af631202..f8752732cdf 100644
--- a/openerp/service/__init__.py
+++ b/openerp/service/__init__.py
@@ -1,8 +1,9 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL ().
+# Copyright (C) 2010-2012 OpenERP SA ()
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -15,7 +16,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
@@ -23,17 +24,16 @@ import logging
import threading
import time
-import http_server
+import cron
import netrpc_server
import web_services
-import websrv_lib
+import web_services
+import wsgi_server
-import openerp.cron
import openerp.modules
import openerp.netsvc
import openerp.osv
import openerp.tools
-import openerp.service.wsgi_server
#.apidoc title: RPC Services
@@ -61,6 +61,7 @@ Maybe you forgot to add those addons in your addons_path configuration."""
_logger.exception('Failed to load server-wide module `%s`.%s', m, msg)
start_internal_done = False
+main_thread_id = threading.currentThread().ident
def start_internal():
global start_internal_done
@@ -68,38 +69,32 @@ def start_internal():
return
openerp.netsvc.init_logger()
openerp.modules.loading.open_openerp_namespace()
+
# Instantiate local services (this is a legacy design).
openerp.osv.osv.start_object_proxy()
# Export (for RPC) services.
- web_services.start_web_services()
+ web_services.start_service()
+
load_server_wide_modules()
start_internal_done = True
def start_services():
""" Start all services including http, netrpc and cron """
start_internal()
-
- # Initialize the HTTP stack.
- netrpc_server.init_servers()
-
- # Start the main cron thread.
- if openerp.conf.max_cron_threads:
- openerp.cron.start_master_thread()
-
- # Start the top-level servers threads (normally HTTP, HTTPS, and NETRPC).
- openerp.netsvc.Server.startAll()
-
+ # Initialize the NETRPC server.
+ netrpc_server.start_service()
# Start the WSGI server.
- openerp.service.wsgi_server.start_server()
+ wsgi_server.start_service()
+ # Start the main cron thread.
+ cron.start_service()
def stop_services():
""" Stop all services. """
- # stop scheduling new jobs; we will have to wait for the jobs to complete below
- openerp.cron.cancel_all()
+ # stop services
+ cron.stop_service()
+ netrpc_server.stop_service()
+ wsgi_server.stop_service()
- openerp.netsvc.Server.quitAll()
- openerp.service.wsgi_server.stop_server()
- config = openerp.tools.config
_logger.info("Initiating shutdown")
_logger.info("Hit CTRL-C again or send a second signal to force the shutdown.")
logging.shutdown()
@@ -107,8 +102,9 @@ def stop_services():
# Manually join() all threads before calling sys.exit() to allow a second signal
# to trigger _force_quit() in case some non-daemon threads won't exit cleanly.
# threading.Thread.join() should not mask signals (at least in python 2.5).
+ me = threading.currentThread()
for thread in threading.enumerate():
- if thread != threading.currentThread() and not thread.isDaemon():
+ if thread != me and not thread.isDaemon() and thread.ident != main_thread_id:
while thread.isAlive():
# Need a busyloop here as thread.join() masks signals
# and would prevent the forced shutdown.
@@ -119,10 +115,9 @@ def stop_services():
def start_services_workers():
import openerp.service.workers
- openerp.multi_process = True # Nah!
+ openerp.multi_process = True
openerp.service.workers.Multicorn(openerp.service.wsgi_server.application).run()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/openerp/service/cron.py b/openerp/service/cron.py
new file mode 100644
index 00000000000..337583b65e4
--- /dev/null
+++ b/openerp/service/cron.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2011 OpenERP SA ()
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+""" Cron jobs scheduling
+
+Cron jobs are defined in the ir_cron table/model. This module deals with all
+cron jobs, for all databases of a single OpenERP server instance.
+
+"""
+
+import logging
+import threading
+import time
+
+import openerp
+
+_logger = logging.getLogger(__name__)
+
+SLEEP_INTERVAL = 60 # 1 min
+
+def cron_runner(number):
+ while True:
+ time.sleep(SLEEP_INTERVAL + number) # Steve Reich timing style
+ registries = openerp.modules.registry.RegistryManager.registries
+ _logger.debug('cron%d polling for jobs', number)
+ for db_name, registry in registries.items():
+ while True and registry.cron:
+ # acquired = openerp.addons.base.ir.ir_cron.ir_cron._acquire_job(db_name)
+ # TODO why isnt openerp.addons.base defined ?
+ import sys
+ base = sys.modules['addons.base']
+ acquired = base.ir.ir_cron.ir_cron._acquire_job(db_name)
+ if not acquired:
+ break
+
+def start_service():
+ """ Start the above runner function in a daemon thread.
+
+ The thread is a typical daemon thread: it will never quit and must be
+ terminated when the main process exits - with no consequence (the processing
+ threads it spawns are not marked daemon).
+
+ """
+ for i in range(openerp.tools.config['max_cron_threads']):
+ def target():
+ cron_runner(i)
+ t = threading.Thread(target=target, name="openerp.service.cron.cron%d" % i)
+ t.setDaemon(True)
+ t.start()
+ _logger.debug("cron%d started!" % i)
+
+def stop_service():
+ pass
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/service/http_server.py b/openerp/service/http_server.py
index 20206cf147d..1496ea71646 100644
--- a/openerp/service/http_server.py
+++ b/openerp/service/http_server.py
@@ -176,6 +176,4 @@ class OpenERPAuthProvider(AuthProvider):
self.auth_tries += 1
raise AuthRequiredExc(atype='Basic', realm=self.realm)
-#eof
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/service/netrpc_server.py b/openerp/service/netrpc_server.py
index cc78d0620cf..a3e4ade7210 100644
--- a/openerp/service/netrpc_server.py
+++ b/openerp/service/netrpc_server.py
@@ -38,6 +38,103 @@ import openerp.tools as tools
_logger = logging.getLogger(__name__)
+def close_socket(sock):
+ """ Closes a socket instance cleanly
+
+ :param sock: the network socket to close
+ :type sock: socket.socket
+ """
+ try:
+ sock.shutdown(socket.SHUT_RDWR)
+ except socket.error, e:
+ # On OSX, socket shutdowns both sides if any side closes it
+ # causing an error 57 'Socket is not connected' on shutdown
+ # of the other side (or something), see
+ # http://bugs.python.org/issue4397
+ # note: stdlib fixed test, not behavior
+ if e.errno != errno.ENOTCONN or platform.system() not in ['Darwin', 'Windows']:
+ raise
+ sock.close()
+
+class Server:
+ """ Generic interface for all servers with an event loop etc.
+ Override this to impement http, net-rpc etc. servers.
+
+ Servers here must have threaded behaviour. start() must not block,
+ there is no run().
+ """
+ __is_started = False
+ __servers = []
+ __starter_threads = []
+
+ # we don't want blocking server calls (think select()) to
+ # wait forever and possibly prevent exiting the process,
+ # but instead we want a form of polling/busy_wait pattern, where
+ # _server_timeout should be used as the default timeout for
+ # all I/O blocking operations
+ _busywait_timeout = 0.5
+
+ def __init__(self):
+ Server.__servers.append(self)
+ if Server.__is_started:
+ # raise Exception('All instances of servers must be inited before the startAll()')
+ # Since the startAll() won't be called again, allow this server to
+ # init and then start it after 1sec (hopefully). Register that
+ # timer thread in a list, so that we can abort the start if quitAll
+ # is called in the meantime
+ t = threading.Timer(1.0, self._late_start)
+ t.name = 'Late start timer for %s' % str(self.__class__)
+ Server.__starter_threads.append(t)
+ t.start()
+
+ def start(self):
+ _logger.debug("called stub Server.start")
+
+ def _late_start(self):
+ self.start()
+ for thr in Server.__starter_threads:
+ if thr.finished.is_set():
+ Server.__starter_threads.remove(thr)
+
+ def stop(self):
+ _logger.debug("called stub Server.stop")
+
+ def stats(self):
+ """ This function should return statistics about the server """
+ return "%s: No statistics" % str(self.__class__)
+
+ @classmethod
+ def startAll(cls):
+ if cls.__is_started:
+ return
+ _logger.info("Starting %d services" % len(cls.__servers))
+ for srv in cls.__servers:
+ srv.start()
+ cls.__is_started = True
+
+ @classmethod
+ def quitAll(cls):
+ if not cls.__is_started:
+ return
+ _logger.info("Stopping %d services" % len(cls.__servers))
+ for thr in cls.__starter_threads:
+ if not thr.finished.is_set():
+ thr.cancel()
+ cls.__starter_threads.remove(thr)
+
+ for srv in cls.__servers:
+ srv.stop()
+ cls.__is_started = False
+
+ @classmethod
+ def allStats(cls):
+ res = ["Servers %s" % ('stopped', 'started')[cls.__is_started]]
+ res.extend(srv.stats() for srv in cls.__servers)
+ return '\n'.join(res)
+
+ def _close_socket(self):
+ close_socket(self.socket)
+
class TinySocketClientThread(threading.Thread):
def __init__(self, sock, threads):
spn = sock and sock.getpeername()
@@ -99,10 +196,10 @@ def netrpc_handle_exception_legacy(e):
return 'AccessDenied ' + str(e)
return openerp.tools.exception_to_unicode(e)
-class TinySocketServerThread(threading.Thread,netsvc.Server):
+class TinySocketServerThread(threading.Thread,Server):
def __init__(self, interface, port, secure=False):
threading.Thread.__init__(self, name="NetRPCDaemon-%d"%port)
- netsvc.Server.__init__(self)
+ Server.__init__(self)
self.__port = port
self.__interface = interface
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@@ -157,11 +254,12 @@ class TinySocketServerThread(threading.Thread,netsvc.Server):
netrpcd = None
-def init_servers():
+def start_service():
global netrpcd
if tools.config.get('netrpc', False):
- netrpcd = TinySocketServerThread(
- tools.config.get('netrpc_interface', ''),
- int(tools.config.get('netrpc_port', 8070)))
+ netrpcd = TinySocketServerThread(tools.config.get('netrpc_interface', ''), int(tools.config.get('netrpc_port', 8070)))
+
+def stop_service():
+ Server.quitAll()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py
index d29235b894f..ec3600c8c5d 100644
--- a/openerp/service/web_services.py
+++ b/openerp/service/web_services.py
@@ -165,6 +165,7 @@ class db(netsvc.ExportService):
def exp_duplicate_database(self, db_original_name, db_name):
_logger.info('Duplicate database `%s` to `%s`.', db_original_name, db_name)
+ sql_db.close_db(db_original_name)
db = sql_db.db_connect('postgres')
cr = db.cursor()
try:
@@ -603,68 +604,13 @@ class objects_proxy(netsvc.ExportService):
raise NameError("Method not available %s" % method)
security.check(db,uid,passwd)
assert openerp.osv.osv.service, "The object_proxy class must be started with start_object_proxy."
+ openerp.modules.registry.RegistryManager.check_registry_signaling(db)
fn = getattr(openerp.osv.osv.service, method)
res = fn(db, uid, *params)
+ openerp.modules.registry.RegistryManager.signal_caches_change(db)
return res
-#
-# Wizard ID: 1
-# - None = end of wizard
-#
-# Wizard Type: 'form'
-# - form
-# - print
-#
-# Wizard datas: {}
-# TODO: change local request to OSE request/reply pattern
-#
-class wizard(netsvc.ExportService):
- def __init__(self, name='wizard'):
- netsvc.ExportService.__init__(self,name)
- self.id = 0
- self.wiz_datas = {}
- self.wiz_name = {}
- self.wiz_uid = {}
-
- def dispatch(self, method, params):
- (db, uid, passwd ) = params[0:3]
- threading.current_thread().uid = uid
- params = params[3:]
- if method not in ['execute','create']:
- raise KeyError("Method not supported %s" % method)
- security.check(db,uid,passwd)
- fn = getattr(self, 'exp_'+method)
- res = fn(db, uid, *params)
- return res
-
- def _execute(self, db, uid, wiz_id, datas, action, context):
- self.wiz_datas[wiz_id].update(datas)
- wiz = netsvc.LocalService('wizard.'+self.wiz_name[wiz_id])
- return wiz.execute(db, uid, self.wiz_datas[wiz_id], action, context)
-
- def exp_create(self, db, uid, wiz_name, datas=None):
- if not datas:
- datas={}
-#FIXME: this is not thread-safe
- self.id += 1
- self.wiz_datas[self.id] = {}
- self.wiz_name[self.id] = wiz_name
- self.wiz_uid[self.id] = uid
- return self.id
-
- def exp_execute(self, db, uid, wiz_id, datas, action='init', context=None):
- if not context:
- context={}
-
- if wiz_id in self.wiz_uid:
- if self.wiz_uid[wiz_id] == uid:
- return self._execute(db, uid, wiz_id, datas, action, context)
- else:
- raise openerp.exceptions.AccessDenied()
- else:
- raise openerp.exceptions.Warning('Wizard not found.')
-
#
# TODO: set a maximum report number per user to avoid DOS attacks
#
@@ -686,8 +632,10 @@ class report_spool(netsvc.ExportService):
if method not in ['report', 'report_get', 'render_report']:
raise KeyError("Method not supported %s" % method)
security.check(db,uid,passwd)
+ openerp.modules.registry.RegistryManager.check_registry_signaling(db)
fn = getattr(self, 'exp_' + method)
res = fn(db, uid, *params)
+ openerp.modules.registry.RegistryManager.signal_caches_change(db)
return res
def exp_render_report(self, db, uid, object, ids, datas=None, context=None):
@@ -799,13 +747,11 @@ class report_spool(netsvc.ExportService):
raise Exception, 'ReportNotFound'
-def start_web_services():
+def start_service():
db()
common()
objects_proxy()
- wizard()
report_spool()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/openerp/service/workers.py b/openerp/service/workers.py
index 7bdf45c079f..c40904026f5 100644
--- a/openerp/service/workers.py
+++ b/openerp/service/workers.py
@@ -16,6 +16,10 @@ import sys
import time
import werkzeug.serving
+try:
+ from setproctitle import setproctitle
+except ImportError:
+ setproctitle = lambda x: None
import openerp
import openerp.tools.config as config
@@ -134,7 +138,7 @@ class Multicorn(object):
def process_spawn(self):
while len(self.workers_http) < self.population:
self.worker_spawn(WorkerHTTP, self.workers_http)
- while len(self.workers_cron) < 1: # config option ?
+ while len(self.workers_cron) < config['max_cron_threads']:
self.worker_spawn(WorkerCron, self.workers_cron)
def sleep(self):
@@ -189,8 +193,7 @@ class Multicorn(object):
for pid in self.workers.keys():
self.worker_kill(pid, signal.SIGTERM)
self.socket.close()
- import __main__
- __main__.quit_signals_received = 1
+ openerp.cli.server.quit_signals_received = 1
def run(self):
self.start()
@@ -252,7 +255,7 @@ class Worker(object):
# Reset the worker if it consumes too much memory (e.g. caused by a memory leak).
rss, vms = psutil.Process(os.getpid()).get_memory_info()
if vms > config['limit_memory_soft']:
- _logger.info('Virtual memory consumption too high, rebooting the worker.')
+ _logger.info('Worker (%d) virtual memory limit (%s) reached.', self.pid, vms)
self.alive = False # Commit suicide after the request.
# VMS and RLIMIT_AS are the same thing: virtual memory, a.k.a. address space
@@ -263,7 +266,8 @@ class Worker(object):
r = resource.getrusage(resource.RUSAGE_SELF)
cpu_time = r.ru_utime + r.ru_stime
def time_expired(n, stack):
- _logger.info('CPU time limit exceeded.')
+ _logger.info('Worker (%d) CPU time limit (%s) reached.', config['limit_time_cpu'])
+ # We dont suicide in such case
raise Exception('CPU time limit exceeded.')
signal.signal(signal.SIGXCPU, time_expired)
soft, hard = resource.getrlimit(resource.RLIMIT_CPU)
@@ -274,6 +278,7 @@ class Worker(object):
def start(self):
self.pid = os.getpid()
+ setproctitle('openerp: %s %s' % (self.__class__.__name__, self.pid))
_logger.info("Worker %s (%s) alive", self.__class__.__name__, self.pid)
# Reseed the random number generator
random.seed()
@@ -346,19 +351,27 @@ class WorkerBaseWSGIServer(werkzeug.serving.BaseWSGIServer):
class WorkerCron(Worker):
""" Cron workers """
def sleep(self):
- time.sleep(60)
+ interval = 60 + self.pid % 10 # chorus effect
+ time.sleep(interval)
def process_work(self):
+ _logger.debug("WorkerCron (%s) polling for jobs", self.pid)
if config['db_name']:
db_names = config['db_name'].split(',')
else:
db_names = openerp.netsvc.ExportService._services['db'].exp_list(True)
for db_name in db_names:
while True:
- # TODO Each job should be considered as one request in multiprocessing
- acquired = openerp.addons.base.ir.ir_cron.ir_cron._acquire_job(db_name)
+ # acquired = openerp.addons.base.ir.ir_cron.ir_cron._acquire_job(db_name)
+ # TODO why isnt openerp.addons.base defined ?
+ import base
+ acquired = base.ir.ir_cron.ir_cron._acquire_job(db_name)
if not acquired:
break
+ # dont keep cursors in multi database mode
+ if len(db_names) > 1:
+ openerp.sql_db.close_db(db_name)
+ # TODO Each job should be considered as one request instead of each db
self.request_count += 1
def start(self):
diff --git a/openerp/service/wsgi_server.py b/openerp/service/wsgi_server.py
index a73617d8510..f6d7a0582f7 100644
--- a/openerp/service/wsgi_server.py
+++ b/openerp/service/wsgi_server.py
@@ -428,14 +428,14 @@ def serve():
_logger.info('HTTP service (werkzeug) running on %s:%s', interface, port)
httpd.serve_forever()
-def start_server():
+def start_service():
""" Call serve() in its own thread.
The WSGI server can be shutdown with stop_server() below.
"""
threading.Thread(target=serve).start()
-def stop_server():
+def stop_service():
""" Initiate the shutdown of the WSGI server.
The server is supposed to have been started by start_server() above.
diff --git a/openerp/tools/cache.py b/openerp/tools/cache.py
index 6e18007c340..4b4dcea9b8e 100644
--- a/openerp/tools/cache.py
+++ b/openerp/tools/cache.py
@@ -57,10 +57,12 @@ class ormcache(object):
try:
key = args[self.skiparg-2:]
del d[key]
+ self2.pool._any_cache_cleared = True
except KeyError:
pass
else:
d.clear()
+ self2.pool._any_cache_cleared = True
class ormcache_multi(ormcache):
def __init__(self, skiparg=2, size=8192, multi=3):
diff --git a/openerp/tools/config.py b/openerp/tools/config.py
index 0b5a95d05f6..1ad5f2b4baa 100644
--- a/openerp/tools/config.py
+++ b/openerp/tools/config.py
@@ -146,8 +146,9 @@ class configmanager(object):
help="specify the TCP IP address for the NETRPC protocol")
group.add_option("--netrpc-port", dest="netrpc_port", my_default=8070,
help="specify the TCP port for the NETRPC protocol", type="int")
- group.add_option("--no-netrpc", dest="netrpc", action="store_false", my_default=True,
- help="disable the NETRPC protocol")
+ # Needed a few day for runbot and saas
+ group.add_option("--no-netrpc", dest="netrpc", action="store_false", my_default=False, help="disable the NETRPC protocol")
+ group.add_option("--netrpc", dest="netrpc", action="store_true", my_default=False, help="enable the NETRPC protocol")
parser.add_option_group(group)
# WEB
@@ -269,8 +270,8 @@ class configmanager(object):
"osv_memory tables. This is a decimal value expressed in hours, "
"and the default is 1 hour.",
type="float")
- group.add_option("--max-cron-threads", dest="max_cron_threads", my_default=4,
- help="Maximum number of threads processing concurrently cron jobs.",
+ group.add_option("--max-cron-threads", dest="max_cron_threads", my_default=2,
+ help="Maximum number of threads processing concurrently cron jobs (default 2).",
type="int")
group.add_option("--unaccent", dest="unaccent", my_default=False, action="store_true",
help="Use the unaccent function provided by the database when available.")
@@ -282,19 +283,19 @@ class configmanager(object):
help="Specify the number of workers, 0 disable prefork mode.",
type="int")
group.add_option("--limit-memory-soft", dest="limit_memory_soft", my_default=640 * 1024 * 1024,
- help="Maximum allowed virtual memory per worker, when reached the worker be reset after the current request.",
+ help="Maximum allowed virtual memory per worker, when reached the worker be reset after the current request (default 640M).",
type="int")
group.add_option("--limit-memory-hard", dest="limit_memory_hard", my_default=768 * 1024 * 1024,
- help="Maximum allowed virtual memory per worker, when reached, any memory allocation will fail.",
+ help="Maximum allowed virtual memory per worker, when reached, any memory allocation will fail (default 768M).",
type="int")
group.add_option("--limit-time-cpu", dest="limit_time_cpu", my_default=60,
- help="Maximum allowed CPU time per request.",
+ help="Maximum allowed CPU time per request (default 60).",
type="int")
- group.add_option("--limit-time-real", dest="limit_time_real", my_default=60,
- help="Maximum allowed Real time per request. ",
+ group.add_option("--limit-time-real", dest="limit_time_real", my_default=120,
+ help="Maximum allowed Real time per request (default 120).",
type="int")
group.add_option("--limit-request", dest="limit_request", my_default=8192,
- help="Maximum number of request to be processed per worker.",
+ help="Maximum number of request to be processed per worker (default 8192).",
type="int")
parser.add_option_group(group)
@@ -479,8 +480,6 @@ class configmanager(object):
if opt.save:
self.save()
- openerp.conf.max_cron_threads = self.options['max_cron_threads']
-
openerp.conf.addons_paths = self.options['addons_path'].split(',')
if opt.server_wide_modules:
openerp.conf.server_wide_modules = map(lambda m: m.strip(), opt.server_wide_modules.split(','))
diff --git a/openerp/tools/image.py b/openerp/tools/image.py
index eb3600a6652..f8f118e34e2 100644
--- a/openerp/tools/image.py
+++ b/openerp/tools/image.py
@@ -68,7 +68,7 @@ def image_resize_image(base64_source, size=(1024, 1024), encoding='base64', file
return base64_source
# create a thumbnail: will resize and keep ratios, then sharpen for better looking result
image.thumbnail(size, Image.ANTIALIAS)
- sharpener = ImageEnhance.Sharpness(image.convert('RGB'))
+ sharpener = ImageEnhance.Sharpness(image.convert('RGBA'))
image = sharpener.enhance(2.0)
# create a transparent image for background
background = Image.new('RGBA', size, (255, 255, 255, 0))
diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py
index 4e3db23bc2d..209e4aaebdf 100644
--- a/openerp/tools/misc.py
+++ b/openerp/tools/misc.py
@@ -27,6 +27,7 @@ Miscellaneous tools used by OpenERP.
"""
from functools import wraps
+import cProfile
import subprocess
import logging
import os
@@ -592,16 +593,10 @@ class profile(object):
def __call__(self, f):
@wraps(f)
def wrapper(*args, **kwargs):
- class profile_wrapper(object):
- def __init__(self):
- self.result = None
- def __call__(self):
- self.result = f(*args, **kwargs)
- pw = profile_wrapper()
- import cProfile
- fname = self.fname or ("%s.cprof" % (f.func_name,))
- cProfile.runctx('pw()', globals(), locals(), filename=fname)
- return pw.result
+ profile = cProfile.Profile()
+ result = profile.runcall(f, *args, **kwargs)
+ profile.dump_stats(self.fname or ("%s.cprof" % (f.func_name,)))
+ return result
return wrapper
diff --git a/openerp/tools/threadinglocal.py b/openerp/tools/threadinglocal.py
deleted file mode 100644
index a68181c10e1..00000000000
--- a/openerp/tools/threadinglocal.py
+++ /dev/null
@@ -1,269 +0,0 @@
-# -*- coding: utf-8 -*-
-#Copyright (c) 2004-2005, CherryPy Team (team@cherrypy.org)
-#All rights reserved.
-#
-#Redistribution and use in source and binary forms, with or without
-#modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-# * Neither the name of the CherryPy Team nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-#ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-#WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-#DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-#FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-#DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-#SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-#OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-#OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# This is a backport of Python-2.4's threading.local() implementation
-
-"""Thread-local objects
-
-(Note that this module provides a Python version of thread
- threading.local class. Depending on the version of Python you're
- using, there may be a faster one available. You should always import
- the local class from threading.)
-
-Thread-local objects support the management of thread-local data.
-If you have data that you want to be local to a thread, simply create
-a thread-local object and use its attributes:
-
- >>> mydata = local()
- >>> mydata.number = 42
- >>> mydata.number
- 42
-
-You can also access the local-object's dictionary:
-
- >>> mydata.__dict__
- {'number': 42}
- >>> mydata.__dict__.setdefault('widgets', [])
- []
- >>> mydata.widgets
- []
-
-What's important about thread-local objects is that their data are
-local to a thread. If we access the data in a different thread:
-
- >>> log = []
- >>> def f():
- ... items = mydata.__dict__.items()
- ... items.sort()
- ... log.append(items)
- ... mydata.number = 11
- ... log.append(mydata.number)
-
- >>> import threading
- >>> thread = threading.Thread(target=f)
- >>> thread.start()
- >>> thread.join()
- >>> log
- [[], 11]
-
-we get different data. Furthermore, changes made in the other thread
-don't affect data seen in this thread:
-
- >>> mydata.number
- 42
-
-Of course, values you get from a local object, including a __dict__
-attribute, are for whatever thread was current at the time the
-attribute was read. For that reason, you generally don't want to save
-these values across threads, as they apply only to the thread they
-came from.
-
-You can create custom local objects by subclassing the local class:
-
- >>> class MyLocal(local):
- ... number = 2
- ... initialized = False
- ... def __init__(self, **kw):
- ... if self.initialized:
- ... raise SystemError('__init__ called too many times')
- ... self.initialized = True
- ... self.__dict__.update(kw)
- ... def squared(self):
- ... return self.number ** 2
-
-This can be useful to support default values, methods and
-initialization. Note that if you define an __init__ method, it will be
-called each time the local object is used in a separate thread. This
-is necessary to initialize each thread's dictionary.
-
-Now if we create a local object:
-
- >>> mydata = MyLocal(color='red')
-
-Now we have a default number:
-
- >>> mydata.number
- 2
-
-an initial color:
-
- >>> mydata.color
- 'red'
- >>> del mydata.color
-
-And a method that operates on the data:
-
- >>> mydata.squared()
- 4
-
-As before, we can access the data in a separate thread:
-
- >>> log = []
- >>> thread = threading.Thread(target=f)
- >>> thread.start()
- >>> thread.join()
- >>> log
- [[('color', 'red'), ('initialized', True)], 11]
-
-without affecting this thread's data:
-
- >>> mydata.number
- 2
- >>> mydata.color
- Traceback (most recent call last):
- ...
- AttributeError: 'MyLocal' object has no attribute 'color'
-
-Note that subclasses can define slots, but they are not thread
-local. They are shared across threads:
-
- >>> class MyLocal(local):
- ... __slots__ = 'number'
-
- >>> mydata = MyLocal()
- >>> mydata.number = 42
- >>> mydata.color = 'red'
-
-So, the separate thread:
-
- >>> thread = threading.Thread(target=f)
- >>> thread.start()
- >>> thread.join()
-
-affects what we see:
-
- >>> mydata.number
- 11
-
->>> del mydata
-"""
-
-# Threading import is at end
-
-class _localbase(object):
- __slots__ = '_local__key', '_local__args', '_local__lock'
-
- def __new__(cls, *args, **kw):
- self = object.__new__(cls)
- key = '_local__key', 'thread.local.' + str(id(self))
- object.__setattr__(self, '_local__key', key)
- object.__setattr__(self, '_local__args', (args, kw))
- object.__setattr__(self, '_local__lock', RLock())
-
- if args or kw and (cls.__init__ is object.__init__):
- raise TypeError("Initialization arguments are not supported")
-
- # We need to create the thread dict in anticipation of
- # __init__ being called, to make sure we don't call it
- # again ourselves.
- dict = object.__getattribute__(self, '__dict__')
- currentThread().__dict__[key] = dict
-
- return self
-
-def _patch(self):
- key = object.__getattribute__(self, '_local__key')
- d = currentThread().__dict__.get(key)
- if d is None:
- d = {}
- currentThread().__dict__[key] = d
- object.__setattr__(self, '__dict__', d)
-
- # we have a new instance dict, so call out __init__ if we have
- # one
- cls = type(self)
- if cls.__init__ is not object.__init__:
- args, kw = object.__getattribute__(self, '_local__args')
- cls.__init__(self, *args, **kw)
- else:
- object.__setattr__(self, '__dict__', d)
-
-class local(_localbase):
-
- def __getattribute__(self, name):
- lock = object.__getattribute__(self, '_local__lock')
- lock.acquire()
- try:
- _patch(self)
- return object.__getattribute__(self, name)
- finally:
- lock.release()
-
- def __setattr__(self, name, value):
- lock = object.__getattribute__(self, '_local__lock')
- lock.acquire()
- try:
- _patch(self)
- return object.__setattr__(self, name, value)
- finally:
- lock.release()
-
- def __delattr__(self, name):
- lock = object.__getattribute__(self, '_local__lock')
- lock.acquire()
- try:
- _patch(self)
- return object.__delattr__(self, name)
- finally:
- lock.release()
-
-
- def __del__():
- threading_enumerate = enumerate
- __getattribute__ = object.__getattribute__
-
- def __del__(self):
- key = __getattribute__(self, '_local__key')
-
- try:
- threads = list(threading_enumerate())
- except:
- # if enumerate fails, as it seems to do during
- # shutdown, we'll skip cleanup under the assumption
- # that there is nothing to clean up
- return
-
- for thread in threads:
- try:
- __dict__ = thread.__dict__
- except AttributeError:
- # Thread is dying, rest in peace
- continue
-
- if key in __dict__:
- try:
- del __dict__[key]
- except KeyError:
- pass # didn't have anything in this thread
-
- return __del__
- __del__ = __del__()
-
-from threading import currentThread, enumerate, RLock
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/openerp/tools/translate.py b/openerp/tools/translate.py
index 439cd508122..0b600c75933 100644
--- a/openerp/tools/translate.py
+++ b/openerp/tools/translate.py
@@ -793,26 +793,33 @@ def trans_generate(lang, modules, cr):
cr.execute(query_models, query_param)
def push_constraint_msg(module, term_type, model, msg):
- # Check presence of __call__ directly instead of using
- # callable() because it will be deprecated as of Python 3.0
if not hasattr(msg, '__call__'):
- push_translation(module, term_type, model, 0, encode(msg))
+ push_translation(encode(module), term_type, encode(model), 0, encode(msg))
+ def push_local_constraints(module, model, cons_type='sql_constraints'):
+ """Climb up the class hierarchy and ignore inherited constraints
+ from other modules"""
+ term_type = 'sql_constraint' if cons_type == 'sql_constraints' else 'constraint'
+ msg_pos = 2 if cons_type == 'sql_constraints' else 1
+ for cls in model.__class__.__mro__:
+ if getattr(cls, '_module', None) != module:
+ continue
+ constraints = getattr(cls, '_local_' + cons_type, [])
+ for constraint in constraints:
+ push_constraint_msg(module, term_type, model._name, constraint[msg_pos])
+
for (_, model, module) in cr.fetchall():
- module = encode(module)
- model = encode(model)
-
model_obj = pool.get(model)
if not model_obj:
_logger.error("Unable to find object %r", model)
continue
- for constraint in getattr(model_obj, '_constraints', []):
- push_constraint_msg(module, 'constraint', model, constraint[1])
+ if model_obj._constraints:
+ push_local_constraints(module, model_obj, 'constraints')
- for constraint in getattr(model_obj, '_sql_constraints', []):
- push_constraint_msg(module, 'sql_constraint', model, constraint[2])
+ if model_obj._sql_constraints:
+ push_local_constraints(module, model_obj, 'sql_constraints')
def get_module_from_path(path, mod_paths=None):
if not mod_paths:
diff --git a/openerp/wizard/__init__.py b/openerp/wizard/__init__.py
deleted file mode 100644
index debf0f1e74f..00000000000
--- a/openerp/wizard/__init__.py
+++ /dev/null
@@ -1,191 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import copy
-import logging
-
-import openerp.netsvc as netsvc
-from openerp.tools.misc import UpdateableStr, UpdateableDict
-from openerp.tools.translate import translate
-from lxml import etree
-
-import openerp.pooler as pooler
-
-from openerp.osv.osv import except_osv
-from openerp.osv.orm import except_orm
-
-_logger = logging.getLogger(__name__)
-
-class except_wizard(Exception):
- def __init__(self, name, value):
- self.name = name
- self.value = value
- self.args = (name, value)
-
-class interface(netsvc.Service):
- """
- This is the base class used to implement Wizards. This class is deprecated
- and `openerp.osv.TransientModel` must be used instead.
- """
- states = {}
-
- def __init__(self, name):
- assert not self.exists('wizard.'+name), 'The wizard "%s" already exists!' % (name,)
- _logger.warning(
- "The wizard %s uses the deprecated openerp.wizard.interface class.\n"
- "It must use the openerp.osv.TransientModel class instead." % \
- name)
- super(interface, self).__init__('wizard.'+name)
- self.wiz_name = name
-
- def translate_view(self, cr, node, state, lang):
- if node.get('string'):
- trans = translate(cr, self.wiz_name+','+state, 'wizard_view', lang, node.get('string').encode('utf8'))
- if trans:
- node.set('string', trans)
- for n in node:
- self.translate_view(cr, n, state, lang)
-
- def execute_cr(self, cr, uid, data, state='init', context=None):
- if not context:
- context={}
- res = {}
- try:
- state_def = self.states[state]
-
- result_def = state_def.get('result', {})
-
- actions_res = {}
- # iterate through the list of actions defined for this state
- for action in state_def.get('actions', []):
- # execute them
- action_res = action(self, cr, uid, data, context)
- assert isinstance(action_res, dict), 'The return value of wizard actions should be a dictionary'
- actions_res.update(action_res)
-
- res = copy.copy(result_def)
- res['datas'] = actions_res
-
- lang = context.get('lang', False)
- if result_def['type'] == 'action':
- res['action'] = result_def['action'](self, cr, uid, data, context)
- elif result_def['type'] == 'form':
- fields = copy.deepcopy(result_def['fields'])
- arch = copy.copy(result_def['arch'])
- button_list = copy.copy(result_def['state'])
-
- if isinstance(fields, UpdateableDict):
- fields = fields.dict
- if isinstance(arch, UpdateableStr):
- arch = arch.string
-
- # fetch user-set defaut values for the field... shouldn't we pass it the uid?
- ir_values_obj = pooler.get_pool(cr.dbname).get('ir.values')
- defaults = ir_values_obj.get(cr, uid, 'default', False, [('wizard.'+self.wiz_name, False)])
- default_values = dict([(x[1], x[2]) for x in defaults])
- for val in fields.keys():
- if 'default' in fields[val]:
- # execute default method for this field
- if callable(fields[val]['default']):
- fields[val]['value'] = fields[val]['default'](uid, data, state)
- else:
- fields[val]['value'] = fields[val]['default']
- del fields[val]['default']
- else:
- # if user has set a default value for the field, use it
- if val in default_values:
- fields[val]['value'] = default_values[val]
- if 'selection' in fields[val]:
- if not isinstance(fields[val]['selection'], (tuple, list)):
- fields[val] = copy.copy(fields[val])
- fields[val]['selection'] = fields[val]['selection'](self, cr, uid, context)
- elif lang:
- res_name = "%s,%s,%s" % (self.wiz_name, state, val)
- trans = lambda x: translate(cr, res_name, 'selection', lang, x) or x
- for idx, (key, val2) in enumerate(fields[val]['selection']):
- fields[val]['selection'][idx] = (key, trans(val2))
-
- if lang:
- # translate fields
- for field in fields:
- res_name = "%s,%s,%s" % (self.wiz_name, state, field)
-
- trans = translate(cr, res_name, 'wizard_field', lang)
- if trans:
- fields[field]['string'] = trans
-
- if 'help' in fields[field]:
- t = translate(cr, res_name, 'help', lang, fields[field]['help'])
- if t:
- fields[field]['help'] = t
-
- # translate arch
- if not isinstance(arch, UpdateableStr):
- doc = etree.XML(arch)
- self.translate_view(cr, doc, state, lang)
- arch = etree.tostring(doc)
-
- # translate buttons
- button_list = list(button_list)
- for i, aa in enumerate(button_list):
- button_name = aa[0]
- trans = translate(cr, self.wiz_name+','+state+','+button_name, 'wizard_button', lang)
- if trans:
- aa = list(aa)
- aa[1] = trans
- button_list[i] = aa
-
- res['fields'] = fields
- res['arch'] = arch
- res['state'] = button_list
-
- elif result_def['type'] == 'choice':
- next_state = result_def['next_state'](self, cr, uid, data, context)
- return self.execute_cr(cr, uid, data, next_state, context)
-
- except Exception, e:
- if isinstance(e, except_wizard) \
- or isinstance(e, except_osv) \
- or isinstance(e, except_orm):
- netsvc.abort_response(2, e.name, 'warning', e.value)
- else:
- _logger.exception('Exception in call:')
- raise
-
- return res
-
- def execute(self, db, uid, data, state='init', context=None):
- if not context:
- context={}
- cr = pooler.get_db(db).cursor()
- try:
- try:
- res = self.execute_cr(cr, uid, data, state, context)
- cr.commit()
- except Exception:
- cr.rollback()
- raise
- finally:
- cr.close()
- return res
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/setup.py b/setup.py
index 4f1435c0603..7811915ebcf 100755
--- a/setup.py
+++ b/setup.py
@@ -21,31 +21,29 @@
##############################################################################
import glob, os, re, setuptools, sys
-from os.path import join, isfile
+from os.path import join
# List all data files
def data():
- files = []
+ r = {}
for root, dirnames, filenames in os.walk('openerp'):
for filename in filenames:
- if not re.match(r'.*(\.pyc|\.pyo|\~)$',filename):
- files.append(os.path.join(root, filename))
- d = {}
- for v in files:
- k=os.path.dirname(v)
- if k in d:
- d[k].append(v)
- else:
- d[k]=[v]
- r = d.items()
+ if not re.match(r'.*(\.pyc|\.pyo|\~)$', filename):
+ r.setdefault(root, []).append(os.path.join(root, filename))
+
if os.name == 'nt':
- r.append(("Microsoft.VC90.CRT", glob.glob('C:\Microsoft.VC90.CRT\*.*')))
+ r["Microsoft.VC90.CRT"] = glob.glob('C:\Microsoft.VC90.CRT\*.*')
- import babel
- r.append(("localedata",
- glob.glob(os.path.join(os.path.dirname(babel.__file__), "localedata" , '*'))))
+ import babel
+ r["localedata"] = glob.glob(os.path.join(os.path.dirname(babel.__file__), "localedata", '*'))
- return r
+ import pytz
+ tzdir = os.path.dirname(pytz.__file__)
+ for root, _, filenames in os.walk(os.path.join(tzdir, "zoneinfo")):
+ base = os.path.join('pytz', root[len(tzdir) + 1:])
+ r[base] = [os.path.join(root, f) for f in filenames]
+
+ return r.items()
def gen_manifest():
file_list="\n".join(data())
@@ -64,7 +62,7 @@ def py2exe_options():
"skip_archive": 1,
"optimize": 2,
"dist_dir": 'dist',
- "packages": [ "DAV", "HTMLParser", "PIL", "asynchat", "asyncore", "commands", "dateutil", "decimal", "docutils", "email", "encodings", "imaplib", "lxml", "lxml._elementpath", "lxml.builder", "lxml.etree", "lxml.objectify", "mako", "openerp", "poplib", "pychart", "pydot", "pyparsing", "reportlab", "select", "simplejson", "smtplib", "uuid", "vatnumber", "vobject", "xml", "xml.dom", "yaml", ],
+ "packages": [ "DAV", "HTMLParser", "PIL", "asynchat", "asyncore", "commands", "dateutil", "decimal", "docutils", "email", "encodings", "imaplib", "lxml", "lxml._elementpath", "lxml.builder", "lxml.etree", "lxml.objectify", "mako", "openerp", "poplib", "pychart", "pydot", "pyparsing", "pytz", "reportlab", "select", "simplejson", "smtplib", "uuid", "vatnumber", "vobject", "xml", "xml.dom", "yaml", ],
"excludes" : ["Tkconstants","Tkinter","tcl"],
}
}
@@ -110,6 +108,7 @@ setuptools.setup(
'gdata',
'lxml < 3', # windows binary http://www.lfd.uci.edu/~gohlke/pythonlibs/
'mako',
+ 'mock',
'PIL', # windows binary http://www.lfd.uci.edu/~gohlke/pythonlibs/
'psutil', # windows binary code.google.com/p/psutil/downloads/list
'psycopg2',
@@ -122,6 +121,7 @@ setuptools.setup(
'pyyaml',
'reportlab', # windows binary pypi.python.org/pypi/reportlab
'simplejson',
+ 'unittest2',
'vatnumber',
'vobject',
'werkzeug',