summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@openerp.com>2013-08-28 18:11:30 +0200
committerChristophe Matthieu <chm@openerp.com>2013-08-28 18:11:30 +0200
commitc36bfe173ea646fb5030c3a9758b4f8e2e7a6e9f (patch)
tree748f570c6887e0dfcf104867a4ece30a7d8a3db4
parent53824ea842600b7cb1bb2a2b36bc5069bdd18eaa (diff)
parentccbb4335ec1c7fe5faef2d55898ecce5b661d35b (diff)
[MERGE] from trunk
bzr revid: chm@openerp.com-20130828161130-641xsmbr8xm53xjx
-rw-r--r--doc/changelog.rst16
-rw-r--r--openerp/addons/base/i18n/ab.po4
-rw-r--r--openerp/addons/base/i18n/af.po4
-rw-r--r--openerp/addons/base/i18n/am.po4
-rw-r--r--openerp/addons/base/i18n/ar.po4
-rw-r--r--openerp/addons/base/i18n/bg.po4
-rw-r--r--openerp/addons/base/i18n/bs.po4
-rw-r--r--openerp/addons/base/i18n/ca.po4
-rw-r--r--openerp/addons/base/i18n/cs.po12
-rw-r--r--openerp/addons/base/i18n/da.po4
-rw-r--r--openerp/addons/base/i18n/de.po22
-rw-r--r--openerp/addons/base/i18n/el.po4
-rw-r--r--openerp/addons/base/i18n/en_GB.po419
-rw-r--r--openerp/addons/base/i18n/es.po140
-rw-r--r--openerp/addons/base/i18n/es_AR.po4
-rw-r--r--openerp/addons/base/i18n/es_CL.po4
-rw-r--r--openerp/addons/base/i18n/es_CR.po26
-rw-r--r--openerp/addons/base/i18n/es_DO.po4
-rw-r--r--openerp/addons/base/i18n/es_EC.po4
-rw-r--r--openerp/addons/base/i18n/es_MX.po39
-rw-r--r--openerp/addons/base/i18n/es_VE.po4
-rw-r--r--openerp/addons/base/i18n/et.po4
-rw-r--r--openerp/addons/base/i18n/eu.po4
-rw-r--r--openerp/addons/base/i18n/fa.po4
-rw-r--r--openerp/addons/base/i18n/fa_AF.po4
-rw-r--r--openerp/addons/base/i18n/fi.po4
-rw-r--r--openerp/addons/base/i18n/fr.po162
-rw-r--r--openerp/addons/base/i18n/fr_CA.po4
-rw-r--r--openerp/addons/base/i18n/gl.po4
-rw-r--r--openerp/addons/base/i18n/gu.po10
-rw-r--r--openerp/addons/base/i18n/he.po4
-rw-r--r--openerp/addons/base/i18n/hi.po4
-rw-r--r--openerp/addons/base/i18n/hr.po4
-rw-r--r--openerp/addons/base/i18n/hu.po4
-rw-r--r--openerp/addons/base/i18n/hy.po4
-rw-r--r--openerp/addons/base/i18n/id.po103
-rw-r--r--openerp/addons/base/i18n/is.po4
-rw-r--r--openerp/addons/base/i18n/it.po4
-rw-r--r--openerp/addons/base/i18n/ja.po32
-rw-r--r--openerp/addons/base/i18n/ka.po4
-rw-r--r--openerp/addons/base/i18n/kk.po4
-rw-r--r--openerp/addons/base/i18n/ko.po4
-rw-r--r--openerp/addons/base/i18n/lt.po4
-rw-r--r--openerp/addons/base/i18n/lv.po4
-rw-r--r--openerp/addons/base/i18n/mk.po4
-rw-r--r--openerp/addons/base/i18n/mn.po4
-rw-r--r--openerp/addons/base/i18n/nb.po4
-rw-r--r--openerp/addons/base/i18n/nl.po6
-rw-r--r--openerp/addons/base/i18n/nl_BE.po4
-rw-r--r--openerp/addons/base/i18n/pl.po82
-rw-r--r--openerp/addons/base/i18n/pt.po199
-rw-r--r--openerp/addons/base/i18n/pt_BR.po4030
-rw-r--r--openerp/addons/base/i18n/ro.po4
-rw-r--r--openerp/addons/base/i18n/ru.po8
-rw-r--r--openerp/addons/base/i18n/sk.po4
-rw-r--r--openerp/addons/base/i18n/sl.po4
-rw-r--r--openerp/addons/base/i18n/sq.po4
-rw-r--r--openerp/addons/base/i18n/sr.po4
-rw-r--r--openerp/addons/base/i18n/sr@latin.po4
-rw-r--r--openerp/addons/base/i18n/sv.po4
-rw-r--r--openerp/addons/base/i18n/th.po4
-rw-r--r--openerp/addons/base/i18n/tlh.po4
-rw-r--r--openerp/addons/base/i18n/tr.po41
-rw-r--r--openerp/addons/base/i18n/uk.po4
-rw-r--r--openerp/addons/base/i18n/ur.po4
-rw-r--r--openerp/addons/base/i18n/vi.po4
-rw-r--r--openerp/addons/base/i18n/zh_CN.po49
-rw-r--r--openerp/addons/base/i18n/zh_HK.po4
-rw-r--r--openerp/addons/base/i18n/zh_TW.po4
-rw-r--r--openerp/addons/base/ir/ir_model.py3
-rw-r--r--openerp/addons/base/ir/ir_sequence.py2
-rw-r--r--openerp/addons/base/ir/ir_translation.py12
-rw-r--r--openerp/addons/base/ir/ir_ui_view.py1
-rw-r--r--openerp/addons/base/module/module_view.xml6
-rw-r--r--openerp/addons/base/res/res_currency.py15
-rw-r--r--openerp/addons/base/res/res_currency_view.xml4
-rw-r--r--openerp/addons/base/res/res_partner.py2
-rw-r--r--openerp/addons/base/static/src/css/Makefile2
-rw-r--r--openerp/addons/base/static/src/css/description.css732
-rw-r--r--openerp/addons/base/static/src/css/description.sass572
-rw-r--r--openerp/osv/expression.py4
-rw-r--r--openerp/osv/orm.py20
-rw-r--r--openerp/report/report_sxw.py8
-rw-r--r--openerp/service/workers.py13
-rw-r--r--openerp/tests/test_acl.py49
-rwxr-xr-xopenerp/tests/test_mail.py286
-rw-r--r--openerp/tests/test_mail_examples.py639
-rw-r--r--openerp/tools/mail.py272
-rw-r--r--openerp/tools/misc.py1
-rw-r--r--openerp/workflow/wkf_expr.py2
90 files changed, 7586 insertions, 659 deletions
diff --git a/doc/changelog.rst b/doc/changelog.rst
index 02196aa5e28..eadfe81b5e8 100644
--- a/doc/changelog.rst
+++ b/doc/changelog.rst
@@ -6,6 +6,8 @@ Changelog
`trunk`
-------
+- Improved ``html_email_clean`` in tools: better quote and signature finding,
+ added shortening.
- Cleaned and slightly refactored ``ir.actions.server``. The ``loop``, ``sms``
and ``dummy`` server actions have been removed; ``object_create`` and
``object_copy`` have been merged into ``object_create``; ``other`` is now ``multi``
@@ -29,5 +31,15 @@ Changelog
``openerp.exceptions.RedirectWarning``.
- Give a pair of new methods to ``res.config.settings`` and a helper to make
them easier to use: ``get_config_warning()``.
-- Path to webkit report files (field ``report_file``) must be writen with the
- Unix way (with ``/`` and not ``\``) \ No newline at end of file
+- Path to webkit report files (field ``report_file``) must be written the
+ Unix way (with ``/`` and not ``\``)
+
+
+`7.0`
+-----
+
+- Modules may now include an ``i18n_extra`` directory that will be treated like the
+ default ``i18n`` directory. This is typically useful for manual translation files
+ that are not managed by Launchpad's translation system. An example is l10n modules
+ that depend on ``l10n_multilang``.
+
diff --git a/openerp/addons/base/i18n/ab.po b/openerp/addons/base/i18n/ab.po
index 305c008fae3..c7e4553e1f0 100644
--- a/openerp/addons/base/i18n/ab.po
+++ b/openerp/addons/base/i18n/ab.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:42+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:52+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/af.po b/openerp/addons/base/i18n/af.po
index 8b119702ec4..54e85b1468e 100644
--- a/openerp/addons/base/i18n/af.po
+++ b/openerp/addons/base/i18n/af.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:42+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:52+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/am.po b/openerp/addons/base/i18n/am.po
index 4e565ed4691..d61da3af120 100644
--- a/openerp/addons/base/i18n/am.po
+++ b/openerp/addons/base/i18n/am.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:43+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:52+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/ar.po b/openerp/addons/base/i18n/ar.po
index fabe88d46fe..d6affded056 100644
--- a/openerp/addons/base/i18n/ar.po
+++ b/openerp/addons/base/i18n/ar.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:43+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:53+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/bg.po b/openerp/addons/base/i18n/bg.po
index a8f6bbbbd05..15f6a036286 100644
--- a/openerp/addons/base/i18n/bg.po
+++ b/openerp/addons/base/i18n/bg.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:43+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:53+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/bs.po b/openerp/addons/base/i18n/bs.po
index 8dcf4d3e5d3..64f59c38c63 100644
--- a/openerp/addons/base/i18n/bs.po
+++ b/openerp/addons/base/i18n/bs.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:43+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:53+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/ca.po b/openerp/addons/base/i18n/ca.po
index 7e54fd76989..c4c60ade550 100644
--- a/openerp/addons/base/i18n/ca.po
+++ b/openerp/addons/base/i18n/ca.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:43+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:53+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/cs.po b/openerp/addons/base/i18n/cs.po
index 314ca618511..09ce234b05b 100644
--- a/openerp/addons/base/i18n/cs.po
+++ b/openerp/addons/base/i18n/cs.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:44+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:54+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
"X-Poedit-Language: Czech\n"
#. module: base
@@ -4897,7 +4897,7 @@ msgstr "Objednávka obědů, stravování, potraviny"
#: field:ir.model.fields,required:0
#: field:res.partner.bank.type.field,required:0
msgid "Required"
-msgstr "Požadováno"
+msgstr "Povinné"
#. module: base
#: model:res.country,name:base.ro
@@ -7934,7 +7934,7 @@ msgstr "Zleva doprava"
#: view:res.lang:0
#: field:res.lang,translatable:0
msgid "Translatable"
-msgstr "Přeložitelný"
+msgstr "Přeložitelné"
#. module: base
#: help:base.language.import,code:0
@@ -14735,7 +14735,7 @@ msgstr ""
#: field:ir.actions.server,trigger_obj_id:0
#: field:ir.model.fields,relation_field:0
msgid "Relation Field"
-msgstr "?!?Související pole"
+msgstr "Pole relace"
#. module: base
#: model:ir.module.module,description:base.module_portal_project
@@ -15029,7 +15029,7 @@ msgstr ""
#. module: base
#: field:ir.model.fields,relation:0
msgid "Object Relation"
-msgstr "Vztah objektu"
+msgstr "Relace objektu"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_voucher
diff --git a/openerp/addons/base/i18n/da.po b/openerp/addons/base/i18n/da.po
index fa409ef1eac..d2b089c8b82 100644
--- a/openerp/addons/base/i18n/da.po
+++ b/openerp/addons/base/i18n/da.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:44+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:54+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/de.po b/openerp/addons/base/i18n/de.po
index a3b9d66a911..7d5f99e5752 100644
--- a/openerp/addons/base/i18n/de.po
+++ b/openerp/addons/base/i18n/de.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:45+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:55+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -8452,15 +8452,15 @@ msgstr ""
"\n"
"Jeder Mitarbeiter kann seine aufgewendete Zeit für verschiedene Projekte "
"kodieren und verfolgen.\n"
-"Ein Projekt ist eine analytische Rechnung und die Zeit, die jemand an diesem "
-"Projekt verbracht hat,\n"
-"verursacht Kosten auf dem entsprechenden Konto. \n"
-"\n"
-"Viele Berichterstattungen über die Verfolgung von Zeit und Mitarbeiter "
-"werden bereitgestellt.\n"
-"Es ist vollständig in die Kostenrechnung integriert. Es ermöglicht Ihnen die "
-"Einrichtung einer \n"
-"Betriebsführung nach Angelegenheit.\n"
+"Ein Projekt wird automatisch zur Kostenstelle. Die Zeit, die jemand an "
+"diesem Projekt verbracht hat,\n"
+"verursacht dementsprechend Kosten auf dieser Projektkostenstelle. \n"
+"\n"
+"Das Modul bietet außerdem Auswertungen zur Rückverfolgung der Mitarbeiter "
+"Arbeitszeit in Projekten.\n"
+"Es ist dadurch vollständig in die OpenERP Kostenrechnung integriert und "
+"ermöglicht dem Management \n"
+"ein effizientes Projektcontrolling.\n"
" "
#. module: base
diff --git a/openerp/addons/base/i18n/el.po b/openerp/addons/base/i18n/el.po
index ab9ca840021..ebcde10ec7c 100644
--- a/openerp/addons/base/i18n/el.po
+++ b/openerp/addons/base/i18n/el.po
@@ -12,8 +12,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:45+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:55+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n"
diff --git a/openerp/addons/base/i18n/en_GB.po b/openerp/addons/base/i18n/en_GB.po
index 799972391ea..1ae56992180 100644
--- a/openerp/addons/base/i18n/en_GB.po
+++ b/openerp/addons/base/i18n/en_GB.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:51+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:02+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -25,6 +25,10 @@ msgid ""
"================================================\n"
" "
msgstr ""
+"\n"
+"Module for the Check Writing and Check Printing.\n"
+"================================================\n"
+" "
#. module: base
#: model:res.country,name:base.sh
@@ -60,7 +64,7 @@ msgstr "View Architecture"
#. module: base
#: model:ir.module.module,summary:base.module_sale_stock
msgid "Quotation, Sale Orders, Delivery & Invoicing Control"
-msgstr ""
+msgstr "Quotation, Sale Orders, Delivery & Invoicing Control"
#. module: base
#: selection:ir.sequence,implementation:0
@@ -89,12 +93,12 @@ msgstr ""
#. module: base
#: model:ir.module.module,summary:base.module_point_of_sale
msgid "Touchscreen Interface for Shops"
-msgstr ""
+msgstr "Touchscreen Interface for Shops"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
msgid "Indian Payroll"
-msgstr ""
+msgstr "Indian Payroll"
#. module: base
#: help:ir.cron,model:0
@@ -138,7 +142,7 @@ msgstr ""
#. module: base
#: field:ir.actions.client,params:0
msgid "Supplementary arguments"
-msgstr ""
+msgstr "Supplementary arguments"
#. module: base
#: model:ir.module.module,description:base.module_google_base_account
@@ -147,11 +151,14 @@ msgid ""
"The module adds google user in res user.\n"
"========================================\n"
msgstr ""
+"\n"
+"The module adds google user in res user.\n"
+"========================================\n"
#. module: base
#: help:res.partner,employee:0
msgid "Check this box if this contact is an Employee."
-msgstr ""
+msgstr "Check this box if this contact is an Employee."
#. module: base
#: help:ir.model.fields,domain:0
@@ -182,7 +189,7 @@ msgstr "Target Window"
#. module: base
#: field:ir.actions.report.xml,report_rml:0
msgid "Main Report File Path"
-msgstr ""
+msgstr "Main Report File Path"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
@@ -203,6 +210,16 @@ msgid ""
"revenue\n"
"reports."
msgstr ""
+"\n"
+"Generate your Invoices from Expenses, Timesheet Entries.\n"
+"========================================================\n"
+"\n"
+"Module to generate invoices based on costs (human resources, expenses, "
+"...).\n"
+"\n"
+"You can define price lists in analytic account, make some theoretical "
+"revenue\n"
+"reports."
#. module: base
#: code:addons/base/ir/ir_sequence.py:134
@@ -253,7 +270,7 @@ msgstr "created."
#. module: base
#: field:ir.actions.report.xml,report_xsl:0
msgid "XSL Path"
-msgstr ""
+msgstr "XSL Path"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
@@ -279,7 +296,7 @@ msgstr "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
-msgstr ""
+msgstr "Multi Currencies"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@@ -291,6 +308,12 @@ msgid ""
"\n"
" "
msgstr ""
+"\n"
+"Chilean accounting chart and tax localisation.\n"
+"==============================================\n"
+"Plan contable chileno e impuestos de acuerdo a disposiciones vigentes\n"
+"\n"
+" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale
@@ -402,6 +425,8 @@ msgid ""
"There is already a shared filter set as default for %(model)s, delete or "
"change it before setting a new default"
msgstr ""
+"There is already a shared filter set as default for %(model)s, delete or "
+"change it before setting a new default"
#. module: base
#: code:addons/orm.py:2649
@@ -499,12 +524,12 @@ msgstr ""
#. module: base
#: field:ir.model.relation,name:0
msgid "Relation Name"
-msgstr ""
+msgstr "Relation Name"
#. module: base
#: view:ir.rule:0
msgid "Create Access Right"
-msgstr ""
+msgstr "Create Access Right"
#. module: base
#: model:res.country,name:base.tv
@@ -544,7 +569,7 @@ msgstr ""
#. module: base
#: view:workflow.transition:0
msgid "Workflow Transition"
-msgstr ""
+msgstr "Workflow Transition"
#. module: base
#: model:res.country,name:base.gf
@@ -554,7 +579,7 @@ msgstr "French Guyana"
#. module: base
#: model:ir.module.module,summary:base.module_hr
msgid "Jobs, Departments, Employees Details"
-msgstr ""
+msgstr "Jobs, Departments, Employees Details"
#. module: base
#: model:ir.module.module,description:base.module_analytic
@@ -594,7 +619,7 @@ msgid ""
"event registration\n"
msgstr ""
"\n"
-"Organization and management of Events.\n"
+"Organisation and management of Events.\n"
"======================================\n"
"\n"
"The event module allows you to efficiently organise events and all related "
@@ -617,7 +642,7 @@ msgstr "Bosnian / bosanski jezik"
msgid ""
"If you check this, then the second time the user prints with same attachment "
"name, it returns the previous report."
-msgstr "On checking this successive reports are generated from cache."
+msgstr "With this checked, successive reports are retrieved from cache."
#. module: base
#: model:ir.module.module,description:base.module_mrp_byproduct
@@ -775,6 +800,32 @@ msgid ""
"module named account_voucher.\n"
" "
msgstr ""
+"\n"
+"Accounting and Financial Management.\n"
+"====================================\n"
+"\n"
+"Financial and accounting module which covers:\n"
+"---------------------------------------------\n"
+" * General Accounting\n"
+" * Cost/Analytic accounting\n"
+" * Third party accounting\n"
+" * Taxes management\n"
+" * Budgets\n"
+" * Customer and Supplier Invoices\n"
+" * Bank statements\n"
+" * Reconciliation process by partner\n"
+"\n"
+"Creates a dashboard for accountants that includes:\n"
+"--------------------------------------------------\n"
+" * List of Customer Invoices to Approve\n"
+" * Company Analysis\n"
+" * Graph of Treasury\n"
+"\n"
+"Processes like maintaining the general ledger are done through the defined "
+"financial Journals (entry move line or grouping is maintained through "
+"journal) for a particular financial year.\n"
+"For the preparation of vouchers there is a module named account_voucher.\n"
+" "
#. module: base
#: view:ir.model:0
@@ -802,13 +853,18 @@ msgid ""
"This module provides the Integration of the LinkedIn with OpenERP.\n"
" "
msgstr ""
+"\n"
+"OpenERP Web LinkedIn module.\n"
+"============================\n"
+"This module integrates LinkedIn with OpenERP.\n"
+" "
#. module: base
#: help:ir.actions.act_window,src_model:0
msgid ""
"Optional model name of the objects on which this action should be visible"
msgstr ""
-"Optional model name of the objects on which this action should be visible"
+"Optional model name of the objects for which this action should be visible"
#. module: base
#: field:workflow.transition,trigger_expr_id:0
@@ -823,7 +879,7 @@ msgstr "Jordan"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_hr
msgid "Croatia - RRIF 2012 COA"
-msgstr ""
+msgstr "Croatia - RRIF 2012 COA"
#. module: base
#: help:ir.cron,nextcall:0
@@ -952,6 +1008,30 @@ 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"
+"Manage leaves and allocation requests\n"
+"=====================================\n"
+"\n"
+"This application controls the holiday schedule of your company. It allows "
+"employees to request holidays. Then, managers can review requests for "
+"holidays and approve or reject them. This way, you can control the overall "
+"holiday planning for the company or department.\n"
+"\n"
+"You can configure several kinds of leaves (sickness, holiday, paid days, "
+"...) and quickly allocate leaves to an employee or department via allocation "
+"requests. An employee can also make a request for more days off by making a "
+"new Allocation. This will increase the total available days for that leave "
+"type (if the request is accepted).\n"
+"\n"
+"You can keep track of leaves in different ways by the following reports: \n"
+"\n"
+"* Leaves Summary\n"
+"* Leaves by Department\n"
+"* Leaves Analysis\n"
+"\n"
+"Synchronisation with an internal agenda (Meetings of the CRM module) is also "
+"possible. In order to automatically create a meeting when a holiday request "
+"is accepted, set up the type of meeting in Leave Type.\n"
#. module: base
#: selection:base.language.install,lang:0
@@ -1182,6 +1262,35 @@ msgid ""
"* Planned Revenue by Stage and User (graph)\n"
"* Opportunities by Stage (graph)\n"
msgstr ""
+"\n"
+"The generic OpenERP Customer Relationship Management\n"
+"====================================================\n"
+"\n"
+"This application enables a group of people to intelligently and efficiently "
+"manage leads, opportunities, meetings and phone calls.\n"
+"\n"
+"It manages key tasks such as communication, identification, prioritisation, "
+"assignment, resolution and notification.\n"
+"\n"
+"OpenERP ensures that all cases are successfully tracked by users, customers "
+"and suppliers. It can automatically send reminders, escalate the request, "
+"trigger specific methods and many other actions based on your own enterprise "
+"rules.\n"
+"\n"
+"The greatest thing about this system is that users don't need to do anything "
+"special. The CRM module has an email gateway for the synchronisation "
+"interface between mails and OpenERP. That way, users can just send emails to "
+"the request tracker.\n"
+"\n"
+"OpenERP will take care of thanking them for their message, automatically "
+"routing it to the appropriate staff and make sure all future correspondence "
+"gets to the right place.\n"
+"\n"
+"\n"
+"Dashboard for CRM will include:\n"
+"-------------------------------\n"
+"* Planned Revenue by Stage and User (graph)\n"
+"* Opportunities by Stage (graph)\n"
#. module: base
#: selection:base.language.export,format:0
@@ -1278,6 +1387,48 @@ msgid ""
"come with any additional paid permission for online use of 'private "
"modules'.\n"
msgstr ""
+"\n"
+"Base module for the Brazilian localisation\n"
+"==========================================\n"
+"\n"
+"This module consists in:\n"
+"\n"
+" - Generic Brazilian chart of accounts\n"
+" - Brazilian taxes such as:\n"
+"\n"
+" - IPI\n"
+" - ICMS\n"
+" - PIS\n"
+" - COFINS\n"
+" - ISS\n"
+" - IR\n"
+" - IRPJ\n"
+" - CSLL\n"
+"\n"
+"The field tax_discount has also been added in the account.tax.template and \n"
+"account.tax objects to allow the proper computation of some Brazilian VATs \n"
+"such as ICMS. The chart of account creation wizard has been extended to \n"
+"propagate those new data properly.\n"
+"\n"
+"It's important to note however that this module lack many implementations to "
+"\n"
+"use OpenERP properly in Brazil. Those implementations (such as the "
+"electronic \n"
+"fiscal Invoicing which is already operational) are brought by more than 15 \n"
+"additional modules of the Brazilian Launchpad localisation project \n"
+"https://launchpad.net/openerp.pt-br-localiz and their dependencies in the \n"
+"extra addons branch. Those modules aim at not breaking with the remarkable \n"
+"OpenERP modularity, this is why they are numerous but small. One of the \n"
+"reasons for maintaining those modules apart is that Brazilian Localisation \n"
+"leaders need commit rights agility to complete the localisation as companies "
+"\n"
+"fund the remaining legal requirements (such as soon fiscal ledgers, \n"
+"accounting SPED, fiscal SPED and PAF ECF that are still missing as September "
+"\n"
+"2011). Those modules are also strictly licensed under AGPL V3 and today "
+"don't \n"
+"come with any additional paid permission for online use of 'private "
+"modules'.\n"
#. module: base
#: code:addons/orm.py:406
@@ -1286,8 +1437,8 @@ msgid ""
"Language with code \"%s\" is not defined in your system !\n"
"Define it through the Administration menu."
msgstr ""
-"Language with code \"%s\" is not defined in your system !\n"
-"Define it through the Administration menu."
+"Language with code \"%s\" is not defined in your system!\n"
+"Define it through the Settings menu."
#. module: base
#: model:res.country,name:base.gu
@@ -1729,6 +1880,26 @@ msgid ""
"in their pockets, this module is essential.\n"
" "
msgstr ""
+"\n"
+"The base module to manage lunch.\n"
+"================================\n"
+"\n"
+"Many companies order sandwiches, pizzas and more from regular suppliers for "
+"their employees providing them with extra facilities. \n"
+"\n"
+"However lunch management within a company requires proper administration "
+"especially when the number of employees or suppliers is large. \n"
+"\n"
+"The “Lunch Order” module has been developed to make this management easier "
+"and also to offer employees more tools and better usability. \n"
+"\n"
+"In addition to full meal and supplier management, this module offers the "
+"possibility to display warnings and provide quick order selection based on "
+"employees' preferences.\n"
+"\n"
+"If you want to save your employees' time and the need to always have coins "
+"in their pockets, this module is essential.\n"
+" "
#. module: base
#: view:wizard.ir.model.menu.create:0
@@ -2014,6 +2185,22 @@ msgid ""
"synchronization with other companies.\n"
" "
msgstr ""
+"\n"
+"This module adds generic sharing tools to your current OpenERP database.\n"
+"========================================================================\n"
+"\n"
+"It specifically adds a 'share' button that is available in the Web client "
+"to\n"
+"share any kind of OpenERP data with colleagues, customers, friends.\n"
+"\n"
+"The system will work by creating new users and groups on the fly, and by\n"
+"combining the appropriate access rights and ir.rules to ensure that the "
+"shared\n"
+"users only have access to the data that has been shared with them.\n"
+"\n"
+"This is extremely useful for collaborative work, knowledge sharing,\n"
+"synchronisation with other companies.\n"
+" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_process
@@ -2546,7 +2733,7 @@ msgid ""
msgstr ""
"\n"
" \n"
-"Belgian localization for in/outgoing invoices (prereq to account_coda):\n"
+"Belgian localisation for in/outgoing invoices (prereq to account_coda):\n"
"=========================================================================\n"
" - Rename 'reference' field labels to 'Communication'\n"
" - Add support for Belgian Structured Communication\n"
@@ -2641,10 +2828,10 @@ msgstr ""
"Helpdesk Management.\n"
"====================\n"
"\n"
-"Like records and processing of claims, Helpdesk and Support are good tools\n"
+"Like records and claims processing, Helpdesk and Support are good tools\n"
"to trace your interventions. This menu is more adapted to oral "
-"communication,\n"
-"which is not necessarily related to a claim. Select a customer, add notes\n"
+"communication\n"
+"that is not necessarily related to a claim. Select a customer, add notes\n"
"and categorise your interventions with a channel and a priority level.\n"
" "
@@ -2993,6 +3180,15 @@ msgid ""
"\n"
" "
msgstr ""
+"\n"
+"Peruvian accounting chart and tax localisation. In accordance with PCGE "
+"2010.\n"
+"========================================================================\n"
+"\n"
+"Plan contable peruano e impuestos de acuerdo a disposiciones vigentes de la\n"
+"SUNAT 2011 (PCGE 2010).\n"
+"\n"
+" "
#. module: base
#: view:ir.actions.server:0
@@ -3153,6 +3349,19 @@ msgid ""
" * Unlimited \"Group By\" levels (not stacked), two cross level analysis "
"(stacked)\n"
msgstr ""
+"\n"
+"Graph Views for Web Client.\n"
+"===========================\n"
+"\n"
+" * Parse a <graph> view allowing the presentation to be changed "
+"dynamically\n"
+" * Graph Types: pie, line, area, bar, radar\n"
+" * Stacked/Not Stacked for areas and bars\n"
+" * Legends: top, inside (top/left), hidden\n"
+" * Features: download as PNG or CSV, browse data grid, switch "
+"orientation\n"
+" * Unlimited \"Group By\" levels (not stacked), two cross level analysis "
+"(stacked)\n"
#. module: base
#: view:res.groups:0
@@ -3231,6 +3440,25 @@ msgid ""
"purchase price and fixed product standard price are booked on a separate \n"
"account."
msgstr ""
+"\n"
+"This module supports the Anglo-Saxon accounting methodology by changing the "
+"accounting logic for stock transactions.\n"
+"============================================================================="
+"=======================================\n"
+"\n"
+"The difference between the Anglo-Saxon accounting countries and the Rhine \n"
+"(or also called Continental accounting) countries is the timing of taking \n"
+"the Cost of Goods Sold versus the Cost of Sales. Anglo-Saxon accounting \n"
+"takes the cost when a sales invoice is created whereas Continental "
+"accounting will \n"
+"take the cost at the moment the goods are shipped.\n"
+"\n"
+"This module adds the functionality by using an interim account to \n"
+"store the value of shipped goods. It also contra-books the interim \n"
+"account at creation to transfer the amount to the \n"
+"debtor or creditor account. Additionally, price differences between actual \n"
+"purchase prices and fixed product standard prices are booked on a separate \n"
+"account."
#. module: base
#: model:res.country,name:base.si
@@ -3297,7 +3525,7 @@ msgstr "French RIB Bank Details"
#. module: base
#: view:res.lang:0
msgid "%p - Equivalent of either AM or PM."
-msgstr "%p - Equivalent of either AM or PM."
+msgstr "%p - Writes either AM or PM."
#. module: base
#: view:ir.actions.server:0
@@ -3315,6 +3543,7 @@ msgid ""
"the user will have an access to the sales configuration as well as statistic "
"reports."
msgstr ""
+"the user will have access to the sales configuration and statistic reports."
#. module: base
#: model:res.country,name:base.nz
@@ -3379,6 +3608,18 @@ msgid ""
" above. Specify the interval information and partner to be invoice.\n"
" "
msgstr ""
+"\n"
+"Create recurring documents.\n"
+"===========================\n"
+"\n"
+"This module allows the creation of new documents and their subscriptions.\n"
+"\n"
+"e.g. To have an invoice generated automatically periodically:\n"
+"-------------------------------------------------------------\n"
+" * Define a document type based on an Invoice object.\n"
+" * Define a subscription whose source document is the document defined\n"
+" above. Specify the repeat interval and the partner to be invoiced.\n"
+" "
#. module: base
#: field:res.company,rml_header1:0
@@ -3401,6 +3642,8 @@ msgid ""
"the user will have an access to the human resources configuration as well as "
"statistic reports."
msgstr ""
+"the user will have access to the human resources configuration as well as "
+"statistics reports."
#. module: base
#: model:ir.module.module,description:base.module_l10n_pl
@@ -3524,6 +3767,22 @@ msgid ""
" - Yearly Salary by Head and Yearly Salary by Employee Report\n"
" "
msgstr ""
+"\n"
+"Indian Payroll Salary Rules.\n"
+"============================\n"
+"\n"
+" -Configuration of hr_payroll for India localisation\n"
+" -All main contributions rules for India payslip.\n"
+" * New payslip report\n"
+" * Employee Contracts\n"
+" * Allow to configure Basic / Gross / Net Salary\n"
+" * Employee PaySlip\n"
+" * Allowance / Deduction\n"
+" * Integrated with Holiday Management\n"
+" * Medical Allowance, Travel Allowance, Child Allowance, ...\n"
+" - Payroll Advice and Report\n"
+" - Yearly Salary by Head and Yearly Salary by Employee Report\n"
+" "
#. module: base
#: code:addons/orm.py:3871
@@ -3632,8 +3891,8 @@ msgid ""
"way you want to print them in letters and other documents. Some example: "
"Mr., Mrs. "
msgstr ""
-"Manage the contact titles you want to have available in your system and the "
-"way you want to print them in letters and other documents. Some example: "
+"Manage the contact titles you wish to have available in your system and how "
+"you want them to be printed in letters and other documents. Some examples: "
"Mr., Mrs. "
#. module: base
@@ -3690,7 +3949,7 @@ msgid ""
"If you use a formula type, use a python expression using the variable "
"'object'."
msgstr ""
-"If you use a formula type, use a python expression using the variable "
+"If you use a formula type, use a python expression with the variable "
"'object'."
#. module: base
@@ -3712,7 +3971,7 @@ msgstr "Contact Titles"
#. module: base
#: model:ir.module.module,shortdesc:base.module_product_manufacturer
msgid "Products Manufacturers"
-msgstr "Products Manufacturers"
+msgstr "Product Manufacturer Info"
#. module: base
#: code:addons/base/ir/ir_mail_server.py:240
@@ -3885,6 +4144,38 @@ msgid ""
"* Work Order Analysis\n"
" "
msgstr ""
+"\n"
+"Manage the Manufacturing process in OpenERP\n"
+"===========================================\n"
+"\n"
+"The manufacturing module allows you to cover planning, ordering, stock and "
+"the manufacturing or assembly of products from raw materials and components. "
+"It handles the consumption and production of products according to a bill of "
+"materials, the necessary operations by machinery and tools, and the aid of "
+"human resources, all via the use of routings.\n"
+"\n"
+"It supports the complete integration and planning of stockable goods, "
+"consumables and services. Services are completely integrated with the rest "
+"of the software. For instance, you can set up a sub-contracting service in a "
+"bill of materials which, on order, automatically purchases your product "
+"assembly.\n"
+"\n"
+"Key Features\n"
+"------------\n"
+"* Make to Stock/Make to Order\n"
+"* Multi-level bill of materials, no limit\n"
+"* Multi-level routing, no limit\n"
+"* Routing and work centre integrated with analytic accounting\n"
+"* Periodic scheduler computation \n"
+"* Allows browsing bills of materials in a complete structure including child "
+"and phantom bills of materials\n"
+"\n"
+"Dashboard / Reports for MRP includes:\n"
+"-------------------------------------\n"
+"* Procurements in Exception (Graph)\n"
+"* Stock Value Variation (Graph)\n"
+"* Work Order Analysis\n"
+" "
#. module: base
#: view:ir.attachment:0
@@ -3984,8 +4275,8 @@ msgid ""
"For one2many fields, the field on the target model that implement the "
"opposite many2one relationship"
msgstr ""
-"For one2many fields, the field on the target model that implements the "
-"opposite many2one relationship"
+"For one2many fields, the field in the target model that implements the "
+"reverse many2one relationship"
#. module: base
#: view:ir.rule:0
@@ -4080,6 +4371,24 @@ msgid ""
"\n"
" "
msgstr ""
+"\n"
+"This module allows you to define the default timesheet function of a user on "
+"a given account.\n"
+"============================================================================="
+"================\n"
+"\n"
+"This is useful when a user encodes their timesheet: the values are "
+"retrieved\n"
+"and the fields are auto-filled. However the possibility to change these "
+"values is\n"
+"still available.\n"
+"\n"
+"Obviously if no data has been recorded for the current account, the default\n"
+"value is given as usual from the employee data so that this module is "
+"perfectly\n"
+"compatible with older configurations.\n"
+"\n"
+" "
#. module: base
#: view:ir.model:0
@@ -4311,7 +4620,7 @@ msgid ""
" "
msgstr ""
"\n"
-"Italian accounting chart and localization.\n"
+"Italian accounting chart and localisation.\n"
"================================================\n"
" "
@@ -4542,7 +4851,7 @@ msgstr "Account Charts"
#. module: base
#: model:ir.ui.menu,name:base.menu_event_main
msgid "Events Organization"
-msgstr ""
+msgstr "Events Organisation"
#. module: base
#: model:ir.actions.act_window,name:base.action_partner_customer_form
@@ -7991,6 +8300,16 @@ msgid ""
"shortcut.\n"
" "
msgstr ""
+"\n"
+"Enable shortcut feature in the web client.\n"
+"==========================================\n"
+"\n"
+"Add a Shortcut icon to the systray in order to access the user's shortcuts "
+"(if any).\n"
+"\n"
+"Add a Shortcut icon beside the views title in order to add/remove a "
+"shortcut.\n"
+" "
#. module: base
#: field:res.company,rml_header2:0
@@ -8249,6 +8568,14 @@ msgid ""
" </p>\n"
" "
msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a contact to your address book.\n"
+" </p><p>\n"
+" OpenERP helps you easily track all activities related to\n"
+" a customer: discussions, history of business opportunities,\n"
+" documents, etc.\n"
+" </p>\n"
+" "
#. module: base
#: model:ir.actions.act_window,name:base.bank_account_update
@@ -16655,9 +16982,6 @@ msgstr ""
#~ msgid "maintenance.contract"
#~ msgstr "maintenance.contract"
-#~ msgid "Last Connection"
-#~ msgstr "Copy text \t Last Connection"
-
#~ msgid ""
#~ "If you need another language than the official ones available, you can "
#~ "import a language pack from here. Other OpenERP languages than the official "
@@ -16753,10 +17077,6 @@ msgstr ""
#~ msgid "SMS Send"
#~ msgstr "SMS Send"
-#, python-format
-#~ msgid "Object %s does not exists"
-#~ msgstr "Copy text \t Object %s does not exist"
-
#~ msgid "Waiting"
#~ msgstr "Waiting"
@@ -16764,9 +17084,6 @@ msgstr ""
#~ msgid "Could not load base module"
#~ msgstr "Could not load base module"
-#~ msgid "Secondary Log"
-#~ msgstr "Copy text \t Secondary Log"
-
#~ msgid "Ignore"
#~ msgstr "Ignore"
@@ -16869,9 +17186,6 @@ msgstr ""
#~ "you can add translations manually or perform a complete export (as a "
#~ "template for a new language example)."
-#~ msgid "Publisher warranty contract successfully registered!"
-#~ msgstr "Copy text \t Publisher warranty contract successfully registered!"
-
#~ msgid "state"
#~ msgstr "state"
@@ -17293,6 +17607,19 @@ msgstr ""
#~ msgid "key '%s' not found in selection field '%s'"
#~ msgstr "key '%s' not found in selection field '%s'"
+#~ msgid "Last Connection"
+#~ msgstr "Last Connection"
+
+#, python-format
+#~ msgid "Object %s does not exists"
+#~ msgstr "Object %s does not exist"
+
+#~ msgid "Secondary Log"
+#~ msgstr "Secondary Log"
+
+#~ msgid "Publisher warranty contract successfully registered!"
+#~ msgstr "Publisher warranty contract successfully registered!"
+
#, python-format
#~ msgid ""
#~ "Group(s) cannot be deleted, because some user(s) still belong to them: %s !"
diff --git a/openerp/addons/base/i18n/es.po b/openerp/addons/base/i18n/es.po
index 7b45a0ec011..97f973eb76e 100644
--- a/openerp/addons/base/i18n/es.po
+++ b/openerp/addons/base/i18n/es.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:49+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:59+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -8712,6 +8712,30 @@ msgid ""
" are scheduled with taking the phase's start date.\n"
" "
msgstr ""
+"\n"
+"Módulo de gestión de proyectos a largo plazo que registra la planificación, "
+"la programación, la asignación de recursos.\n"
+"============================================================================="
+"==============\n"
+"Características:\n"
+"---------\n"
+" * Gestión de grandes proyectos\n"
+" * Definición de varias fases de proyecto\n"
+" * Calculo de programación de fase: Calcula la fecha de inicio y fin de "
+"las fases \n"
+" del proyecto que están en estado borrador, abierto y pendiente. Si no "
+"se especifica el proyecto\n"
+" entonces se tomarán todas las fases en estado borrador, abierto y "
+"pendiente.\n"
+" * Calculo de programación de tareas: Funciona igual que el botón de "
+"planificador en\n"
+" project.phase. Toma el proyecto como argumento y calcula todas las "
+"tareas en borrador,\n"
+" abiertas y pendientes.\n"
+" * Programación de tareas: todas las tareas que están en estado "
+"borrador, abierto y pendiente\n"
+" se programan tomando la fecha de inicio de la fase.\n"
+" "
#. module: base
#: code:addons/orm.py:2021
@@ -23520,3 +23544,115 @@ msgstr "Registro"
#~ "que hacer, y se puede concentrar en la realización efectiva de dichas "
#~ "tareas.\n"
#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows to use several analytic plans, according to the general "
+#~ "journal.\n"
+#~ "============================================================================="
+#~ "======\n"
+#~ "\n"
+#~ "Here multiple analytic lines are created when the invoice or the entries\n"
+#~ "are confirmed.\n"
+#~ "\n"
+#~ "For example, you can define the following analytic structure:\n"
+#~ " Projects\n"
+#~ " Project 1\n"
+#~ " SubProj 1.1\n"
+#~ " SubProj 1.2\n"
+#~ "\n"
+#~ " Project 2\n"
+#~ " Salesman\n"
+#~ " Eric\n"
+#~ " Fabien\n"
+#~ "\n"
+#~ "Here, we have two plans: Projects and Salesman. An invoice line must\n"
+#~ "be able to write analytic entries in the 2 plans: SubProj 1.1 and\n"
+#~ "Fabien. The amount can also be split. The following example is for\n"
+#~ "an invoice that touches the two subproject and assigned to one salesman:\n"
+#~ "\n"
+#~ "Plan1:\n"
+#~ " SubProject 1.1 : 50%\n"
+#~ " SubProject 1.2 : 50%\n"
+#~ "Plan2:\n"
+#~ " Eric: 100%\n"
+#~ "\n"
+#~ "So when this line of invoice will be confirmed, it will generate 3 analytic "
+#~ "lines,\n"
+#~ "for one account entry.\n"
+#~ "The analytic plan validates the minimum and maximum percentage at the time "
+#~ "of creation\n"
+#~ "of distribution models.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite usar varios planes analíticos, según el diario general.\n"
+#~ "============================================================================="
+#~ "======\n"
+#~ "\n"
+#~ "Se crean varias líneas analíticas cuando la factura o las entradas se "
+#~ "confirman.\n"
+#~ "\n"
+#~ "Por ejemplo, se puede definir la siguiente estructura analítica:\n"
+#~ " Proyectos\n"
+#~ " Proyecto 1\n"
+#~ " SubProyecto 1.1\n"
+#~ " SubProyecto 1.2\n"
+#~ " Proyecto 2\n"
+#~ "\n"
+#~ " Comercial\n"
+#~ " Eric\n"
+#~ " Fabien\n"
+#~ "\n"
+#~ "Como vemos, hay dos planes: Proyectos y Comercial.\n"
+#~ "Una lñinea de factura debe ser capaz de escribir entradas analíticas\n"
+#~ "en dos planes: SubProyecto 1.1 y Fabien. También se puede repartir la "
+#~ "cantidad.\n"
+#~ "\n"
+#~ "El siguiente ejemplo es para una factura que afecta a los dos subproyectos\n"
+#~ "y se asigna a uno de los comerciales:\n"
+#~ "\n"
+#~ "Plan1:\n"
+#~ " SubProyecto 1.1 : 50%\n"
+#~ " SubProyecto 1.2 : 50%\n"
+#~ "Plan2:\n"
+#~ " Eric: 100%\n"
+#~ "\n"
+#~ "Así, cuando se confirme la línea de factura, se generarán 3 líneas "
+#~ "analíticas,\n"
+#~ "para un asiento contable.\n"
+#~ "El plan analítico valida los porcentajes mínimo y máximo en el momento de "
+#~ "creación\n"
+#~ "de los modelos distribuidos.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows you to produce several products from one production "
+#~ "order.\n"
+#~ "============================================================================="
+#~ "\n"
+#~ "\n"
+#~ "You can configure sub-products in the bill of material.\n"
+#~ "\n"
+#~ "Without this module:\n"
+#~ " A + B + C -> D\n"
+#~ "\n"
+#~ "With this module:\n"
+#~ " A + B + C -> D + E\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite producir varios productos desde una única orden de "
+#~ "producción.\n"
+#~ "============================================================================="
+#~ "\n"
+#~ "\n"
+#~ "Se pueden configurar subproductos en la lista de materiales.\n"
+#~ "\n"
+#~ "Sin este módulo:\n"
+#~ " A + B + C -> D\n"
+#~ "\n"
+#~ "Con este módulo:\n"
+#~ " A + B + C -> D + E\n"
+#~ " "
diff --git a/openerp/addons/base/i18n/es_AR.po b/openerp/addons/base/i18n/es_AR.po
index 68563965efb..7c681644bca 100644
--- a/openerp/addons/base/i18n/es_AR.po
+++ b/openerp/addons/base/i18n/es_AR.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:51+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:01+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/es_CL.po b/openerp/addons/base/i18n/es_CL.po
index 8a1e7e61ada..d04ad38bb56 100644
--- a/openerp/addons/base/i18n/es_CL.po
+++ b/openerp/addons/base/i18n/es_CL.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:52+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:02+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/es_CR.po b/openerp/addons/base/i18n/es_CR.po
index a0f1a61fc2e..7c86877b84b 100644
--- a/openerp/addons/base/i18n/es_CR.po
+++ b/openerp/addons/base/i18n/es_CR.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:52+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:02+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
"Language: \n"
#. module: base
@@ -191,7 +191,7 @@ msgstr "Ventana destino"
#. module: base
#: field:ir.actions.report.xml,report_rml:0
msgid "Main Report File Path"
-msgstr ""
+msgstr "Ruta de archivo principal del informe"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
@@ -212,6 +212,15 @@ msgid ""
"revenue\n"
"reports."
msgstr ""
+"\n"
+"Genere facturas desde los gastos y partes de horas.\n"
+"========================================================\n"
+"\n"
+"Módulo para generar facturas basadas en los costes (recursos humanos, "
+"gastos, ...).\n"
+"\n"
+"Puede definir tarifas en la contabilidad analítica, realizando algún informe "
+"teórico de beneficios."
#. module: base
#: code:addons/base/ir/ir_sequence.py:134
@@ -263,7 +272,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
@@ -289,7 +298,7 @@ msgstr "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
-msgstr ""
+msgstr "Multidivisa"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@@ -301,6 +310,12 @@ msgid ""
"\n"
" "
msgstr ""
+"\n"
+"Plan de cuentas y localización de impuestos chilenos.\n"
+"==============================================\n"
+"Plan contable chileno e impuestos de acuerdo a disposiciones vigentes\n"
+"\n"
+" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale
@@ -313,6 +328,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
diff --git a/openerp/addons/base/i18n/es_DO.po b/openerp/addons/base/i18n/es_DO.po
index 66747cb1886..4793cc45aa6 100644
--- a/openerp/addons/base/i18n/es_DO.po
+++ b/openerp/addons/base/i18n/es_DO.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:51+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:02+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/es_EC.po b/openerp/addons/base/i18n/es_EC.po
index 8b621affb9a..8677fef1739 100644
--- a/openerp/addons/base/i18n/es_EC.po
+++ b/openerp/addons/base/i18n/es_EC.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:53+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:03+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/es_MX.po b/openerp/addons/base/i18n/es_MX.po
index abcaf3a5e09..b4be0aa1809 100644
--- a/openerp/addons/base/i18n/es_MX.po
+++ b/openerp/addons/base/i18n/es_MX.po
@@ -15,8 +15,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-26 05:14+0000\n"
-"X-Generator: Launchpad (build 16700)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:03+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -14301,7 +14301,7 @@ msgstr ""
#: field:res.partner,vat:0
#, python-format
msgid "TIN"
-msgstr ""
+msgstr "RFC"
#. module: base
#: model:res.country,name:base.aw
@@ -14317,7 +14317,7 @@ msgstr ""
#. module: base
#: model:res.country,name:base.ar
msgid "Argentina"
-msgstr ""
+msgstr "Argentina"
#. module: base
#: field:res.groups,full_name:0
@@ -14358,7 +14358,7 @@ msgstr ""
#. module: base
#: model:ir.module.category,name:base.module_category_report_designer
msgid "Advanced Reporting"
-msgstr ""
+msgstr "Informes avanzados"
#. module: base
#: model:ir.module.module,summary:base.module_purchase
@@ -14406,7 +14406,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr
msgid "France - Accounting"
-msgstr ""
+msgstr "Francia - Contabilidad"
#. module: base
#: view:ir.actions.todo:0
@@ -14550,7 +14550,7 @@ msgstr ""
#. module: base
#: selection:base.language.install,lang:0
msgid "Czech / Čeština"
-msgstr ""
+msgstr "Checo / Čeština"
#. module: base
#: model:ir.module.category,name:base.module_category_generic_modules
@@ -14609,7 +14609,7 @@ msgstr ""
#: model:ir.module.category,name:base.module_category_hidden
#: view:res.users:0
msgid "Technical Settings"
-msgstr ""
+msgstr "Configuración técnica"
#. module: base
#: model:ir.module.category,description:base.module_category_accounting_and_finance
@@ -14617,6 +14617,8 @@ msgid ""
"Helps you handle your accounting needs, if you are not an accountant, we "
"suggest you to install only the Invoicing."
msgstr ""
+"Le ayuda a manejar sus necesidades contables. Si no es un contable, le "
+"recomendamos que sólo instale el módulo 'invoicing'."
#. module: base
#: model:ir.module.module,shortdesc:base.module_plugin_thunderbird
@@ -14626,7 +14628,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,summary:base.module_event
msgid "Trainings, Conferences, Meetings, Exhibitions, Registrations"
-msgstr ""
+msgstr "Formaciones, conferencias, reuniones, exhibiciones, inscripciones"
#. module: base
#: model:ir.model,name:base.model_res_country
@@ -14689,7 +14691,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_nl
msgid "Netherlands - Accounting"
-msgstr ""
+msgstr "Holanda - Contabilidad"
#. module: base
#: model:res.country,name:base.gs
@@ -14714,6 +14716,11 @@ msgid ""
"1,06,500;[1,2,-1] will represent it to be 106,50,0;[3] will represent it as "
"106,500. Provided ',' as the thousand separator in each case."
msgstr ""
+"El formato de separación debería ser como [,n] dónde 0 < n, empezando por "
+"el dígito unidad. -1 terminará la separación. Por ej. [3,2,-1] representará "
+"106500 como 1,06,500; [1,2,-1] lo representará como 106,50,0; [3] lo "
+"representará como 106,500. Siempre que ',' sea el separador de mil en cada "
+"caso."
#. module: base
#: field:ir.module.module,auto_install:0
@@ -14733,6 +14740,12 @@ msgid ""
"taxes\n"
"and the Lempira currency."
msgstr ""
+"\n"
+"Éste es el módulo base para gestionar el plan de cuentas para Honduras.\n"
+"====================================================================\n"
+" \n"
+"Agrega una nomenclatura contable para Honduras. También incluye impuestos y "
+"la moneda Lempira."
#. module: base
#: model:res.country,name:base.jp
@@ -14799,12 +14812,12 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ca
msgid "Canada - Accounting"
-msgstr ""
+msgstr "Canada - Contabilidad"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_co
msgid "Colombian - Accounting"
-msgstr ""
+msgstr "Contabilidad colombiana"
#. module: base
#: model:ir.module.module,description:base.module_account_voucher
@@ -14871,7 +14884,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ve
msgid "Venezuela - Accounting"
-msgstr ""
+msgstr "Venezuela - Contabilidad"
#. module: base
#: model:res.country,name:base.cl
diff --git a/openerp/addons/base/i18n/es_VE.po b/openerp/addons/base/i18n/es_VE.po
index c9c19c100df..7c04cd500a2 100644
--- a/openerp/addons/base/i18n/es_VE.po
+++ b/openerp/addons/base/i18n/es_VE.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:51+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:01+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/et.po b/openerp/addons/base/i18n/et.po
index 622c5fd833b..6ee871c6f59 100644
--- a/openerp/addons/base/i18n/et.po
+++ b/openerp/addons/base/i18n/et.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:44+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:54+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/eu.po b/openerp/addons/base/i18n/eu.po
index d772a8c850a..a391b66258e 100644
--- a/openerp/addons/base/i18n/eu.po
+++ b/openerp/addons/base/i18n/eu.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:43+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:53+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/fa.po b/openerp/addons/base/i18n/fa.po
index 6068d7a6f28..c288f1d8ff8 100644
--- a/openerp/addons/base/i18n/fa.po
+++ b/openerp/addons/base/i18n/fa.po
@@ -9,8 +9,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:48+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:58+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
"X-Poedit-Language: Persian\n"
diff --git a/openerp/addons/base/i18n/fa_AF.po b/openerp/addons/base/i18n/fa_AF.po
index 8bf7f32304b..0ae130cbb86 100644
--- a/openerp/addons/base/i18n/fa_AF.po
+++ b/openerp/addons/base/i18n/fa_AF.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:53+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:03+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/fi.po b/openerp/addons/base/i18n/fi.po
index a117fcde406..0cabf5814e8 100644
--- a/openerp/addons/base/i18n/fi.po
+++ b/openerp/addons/base/i18n/fi.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:44+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:54+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/fr.po b/openerp/addons/base/i18n/fr.po
index 2c474402a24..20624d30d25 100644
--- a/openerp/addons/base/i18n/fr.po
+++ b/openerp/addons/base/i18n/fr.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:44+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:54+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -8819,7 +8819,7 @@ msgstr "Traduisible"
#. module: base
#: help:base.language.import,code:0
msgid "ISO Language and Country code, e.g. en_US"
-msgstr ""
+msgstr "Code ISO de la langue et du pays, ex: en_US"
#. module: base
#: model:res.country,name:base.vn
@@ -8891,7 +8891,7 @@ msgstr "Sur plusieurs documents"
#: 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
@@ -9204,7 +9204,7 @@ msgstr "Cette fenêtre"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_anonymous
msgid "Anonymous portal"
-msgstr ""
+msgstr "Portail anonyme"
#. module: base
#: field:base.language.export,format:0
@@ -9261,7 +9261,7 @@ msgstr "Mot de passe"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_claim
msgid "Portal Claim"
-msgstr ""
+msgstr "Portail Réclamation"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_pe
@@ -9275,6 +9275,9 @@ msgid ""
"Allow users to login through OAuth2 Provider.\n"
"=============================================\n"
msgstr ""
+"\n"
+"Permettre aux utilisateurs de se connecter via un fournisseur OAuth2.\n"
+"=============================================\n"
#. module: base
#: model:ir.actions.act_window,name:base.action_model_fields
@@ -9528,7 +9531,7 @@ msgstr "Comptabilité financière et analytique"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_project
msgid "Portal Project"
-msgstr ""
+msgstr "Portail Projet"
#. module: base
#: model:res.country,name:base.cc
@@ -9591,7 +9594,7 @@ msgstr ""
" </p><p>\n"
" OpenERP vous aide à suivre toutes les activités avec un "
"client : \n"
-" les discussions, l'historiques des opportunités, \n"
+" les discussions, l'historique des opportunités, \n"
" les documents, etc.\n"
" </p>\n"
" "
@@ -9690,6 +9693,8 @@ msgid ""
"Select this if you want to set company's address information for this "
"contact"
msgstr ""
+"Sélecionnez ceci si vous voulez indiquer l'adresse de la société de ce "
+"contact."
#. module: base
#: field:ir.default,field_name:0
@@ -9728,6 +9733,8 @@ msgid ""
"This field holds the image used as avatar for this contact, limited to "
"1024x1024px"
msgstr ""
+"Ce champ contient l'image utilisée comme photo d'identité pour ce contact, "
+"de taille limitée à 1024x1024px."
#. module: base
#: model:res.country,name:base.to
@@ -9942,6 +9949,9 @@ msgid ""
"The kernel of OpenERP, needed for all installation.\n"
"===================================================\n"
msgstr ""
+"\n"
+"Le noyau d'OpenERP, nécessaire pour toute installation.\n"
+"===================================================\n"
#. module: base
#: model:ir.model,name:base.model_ir_server_object_lines
@@ -10040,7 +10050,7 @@ msgstr "Recherche toujours possible"
#. module: base
#: help:res.country.state,code:0
msgid "The state code in max. three chars."
-msgstr ""
+msgstr "Code de l'état, avec au plus trois caractères."
#. module: base
#: model:res.country,name:base.hk
@@ -10050,7 +10060,7 @@ msgstr "Hong-Kong"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_sale
msgid "Portal Sale"
-msgstr ""
+msgstr "Portail Vente"
#. module: base
#: field:ir.default,ref_id:0
@@ -10288,6 +10298,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 la langue sélectionnée est chargée dans le système, tous les documents "
+"pour ce contact seront imprimés dans cette langue. Dans le cas contraire, "
+"ils le seront en anglais."
#. module: base
#: model:ir.module.module,description:base.module_hr_evaluation
@@ -10502,7 +10515,7 @@ msgstr "Actions multiples"
#. module: base
#: model:ir.module.module,summary:base.module_mail
msgid "Discussions, Mailing Lists, News"
-msgstr ""
+msgstr "Discussions, listes de diffusion, nouvelles"
#. module: base
#: model:ir.module.module,description:base.module_fleet
@@ -10976,7 +10989,7 @@ msgstr "Mali"
#. module: base
#: model:ir.ui.menu,name:base.menu_project_config_project
msgid "Stages"
-msgstr ""
+msgstr "Étapes"
#. module: base
#: selection:base.language.install,lang:0
@@ -11088,7 +11101,7 @@ msgstr "Raccourcis personnalisés"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_si
msgid "Slovenian - Accounting"
-msgstr ""
+msgstr "Comptabilité - Slovénie"
#. module: base
#: model:ir.module.module,description:base.module_account_cancel
@@ -11102,6 +11115,15 @@ msgid ""
"If set to true it allows user to cancel entries & invoices.\n"
" "
msgstr ""
+"\n"
+"Autoriser l'annulation d'écritures comptables.\n"
+"====================================\n"
+"\n"
+"Ce module ajoute un champ \"Autoriser l'annulation d'écriture\" sur la vue "
+"formulaire d'un journal de compte.\n"
+"Lorsque ce champ est coché, un utilisateur peut annuler des écritures et des "
+"factures.\n"
+" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_plugin
@@ -11249,7 +11271,7 @@ msgstr "Annuler"
#: code:addons/orm.py:1507
#, python-format
msgid "Unknown database identifier '%s'"
-msgstr ""
+msgstr "Identifiant de base de données inconnu '%s'"
#. module: base
#: selection:base.language.export,format:0
@@ -11402,7 +11424,7 @@ msgstr "Allemagne"
#. module: base
#: model:ir.module.module,shortdesc:base.module_auth_oauth
msgid "OAuth2 Authentication"
-msgstr ""
+msgstr "Identification OAuth2"
#. module: base
#: view:workflow:0
@@ -11581,7 +11603,7 @@ msgstr "Regrouper par..."
#. module: base
#: view:base.module.update:0
msgid "Module Update Result"
-msgstr ""
+msgstr "Résultat de la mise à jour des modules"
#. module: base
#: model:ir.module.module,description:base.module_analytic_contract_hr_expense
@@ -11596,7 +11618,7 @@ msgstr ""
#. module: base
#: field:ir.attachment,store_fname:0
msgid "Stored Filename"
-msgstr ""
+msgstr "Nom du fichier enregistré"
#. module: base
#: field:res.partner,use_parent_address:0
@@ -11653,6 +11675,14 @@ msgid ""
" </p>\n"
" "
msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+"Cliquez pour ajouter un contact dans votre carnet d'adresses.\n"
+"</p><p>\n"
+"OpenERP vous aide à suivre toutes les activités d'un fournisseur :\n"
+"les discussions, l'historique des achats,\n"
+"les documents, etc.\n"
+"</p>\n"
+" "
#. module: base
#: model:res.country,name:base.lr
@@ -11820,7 +11850,7 @@ msgstr "Unité de l'intervalle"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_stock
msgid "Portal Stock"
-msgstr ""
+msgstr "Portail Stock"
#. module: base
#: field:workflow.activity,kind:0
@@ -11903,7 +11933,7 @@ msgstr "res.request"
#. module: base
#: field:res.partner,image_medium:0
msgid "Medium-sized image"
-msgstr ""
+msgstr "Image de taille moyenne"
#. module: base
#: view:ir.model:0
@@ -11988,7 +12018,7 @@ msgstr "Règles sur les enregistrements"
#. module: base
#: view:multi_company.default:0
msgid "Multi Company"
-msgstr ""
+msgstr "Multi société"
#. module: base
#: model:ir.module.category,name:base.module_category_portal
@@ -12005,7 +12035,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:294
#, python-format
msgid "See all possible values"
-msgstr ""
+msgstr "Voir toutes les valeurs possibles"
#. module: base
#: model:ir.module.module,description:base.module_claim_from_delivery
@@ -12066,7 +12096,7 @@ msgstr "Guinée Bissau"
#. module: base
#: field:ir.actions.report.xml,header:0
msgid "Add RML Header"
-msgstr ""
+msgstr "Ajouter l'en-tête RML"
#. module: base
#: help:res.company,rml_footer:0
@@ -12201,7 +12231,7 @@ msgstr "A Faire"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_hr_employees
msgid "Portal HR employees"
-msgstr ""
+msgstr "Portail RH Employés"
#. module: base
#: selection:base.language.install,lang:0
@@ -12321,6 +12351,8 @@ msgstr ""
msgid ""
"Please contact your system administrator if you think this is an error."
msgstr ""
+"Vous pouvez contacter votre administrateur système si vous pensez qu'il "
+"s'agit d'une erreur."
#. module: base
#: code:addons/base/module/module.py:545
@@ -12368,6 +12400,8 @@ msgid ""
"One of the documents you are trying to access has been deleted, please try "
"again after refreshing."
msgstr ""
+"L'un des documents que vous voulez consulter a été supprimé : actualisez la "
+"page puis réessayez."
#. module: base
#: model:ir.model,name:base.model_ir_mail_server
@@ -12539,7 +12573,7 @@ msgstr ""
#. module: base
#: help:res.partner,ean13:0
msgid "BarCode"
-msgstr ""
+msgstr "Code-barres"
#. module: base
#: help:ir.model.fields,model_id:0
@@ -12561,6 +12595,7 @@ msgstr "Martinique (Française)"
#: help:res.partner,is_company:0
msgid "Check if the contact is a company, otherwise it is a person"
msgstr ""
+"Cochez si ce contact est une société, sinon il s'agit d'un particulier"
#. module: base
#: view:ir.sequence.type:0
@@ -12570,7 +12605,7 @@ msgstr "Type de séquences"
#. module: base
#: view:res.partner:0
msgid "Mobile:"
-msgstr ""
+msgstr "Portable :"
#. module: base
#: code:addons/base/res/res_bank.py:195
@@ -12637,7 +12672,7 @@ msgstr ""
#: code:addons/base/ir/ir_model.py:1031
#, python-format
msgid "Permission Denied"
-msgstr ""
+msgstr "Permission refusée"
#. module: base
#: field:ir.ui.menu,child_id:0
@@ -12758,7 +12793,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
@@ -12830,13 +12865,13 @@ msgstr "Arabe / الْعَرَبيّة"
#. module: base
#: selection:ir.translation,state:0
msgid "Translated"
-msgstr ""
+msgstr "Traduit"
#. 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 "Société par défaut par objet"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_hello
@@ -12866,7 +12901,7 @@ msgstr "Domaine"
#: code:addons/base/ir/ir_fields.py:166
#, python-format
msgid "Use '1' for yes and '0' for no"
-msgstr ""
+msgstr "Utilisez \"1\" pour oui et \"0\" pour non"
#. module: base
#: model:ir.module.module,shortdesc:base.module_marketing_campaign
@@ -13004,6 +13039,9 @@ msgid ""
"Allow users to sign up through OAuth2 Provider.\n"
"===============================================\n"
msgstr ""
+"\n"
+"Permettre aux utilisateurs de se connecter via un fournisseur OAuth2.\n"
+"===============================================\n"
#. module: base
#: field:change.password.user,user_id:0
@@ -13062,7 +13100,7 @@ msgstr "Grenade"
#. module: base
#: help:res.partner,customer:0
msgid "Check this box if this contact is a customer."
-msgstr ""
+msgstr "Cochez cette case si le contact est un client."
#. module: base
#: view:ir.actions.server:0
@@ -13142,7 +13180,7 @@ msgstr ""
#: field:ir.actions.report.xml,report_rml_content:0
#: field:ir.actions.report.xml,report_rml_content_data:0
msgid "RML Content"
-msgstr ""
+msgstr "Contenu RML"
#. module: base
#: view:res.lang:0
@@ -13383,7 +13421,7 @@ 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:439
@@ -13411,12 +13449,12 @@ msgstr "Annuler l'installation"
#. 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 "Écriture de chèques"
#. module: base
#: model:ir.module.module,description:base.module_plugin_outlook
@@ -13641,7 +13679,7 @@ msgstr "Grande Bretagne - Comptabilité"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_madam
msgid "Mrs."
-msgstr ""
+msgstr "Mme"
#. module: base
#: code:addons/base/ir/ir_model.py:432
@@ -13663,6 +13701,7 @@ msgstr "Réf. utilisateur"
#, python-format
msgid "'%s' does not seem to be a valid datetime for field '%%(field)s'"
msgstr ""
+"'%s' ne semble pas être une date/heure valide pour le champ '%%(fields)s'"
#. module: base
#: model:res.partner.bank.type.field,name:base.bank_normal_field_bic
@@ -13813,7 +13852,7 @@ msgstr "Informations sur la connexion"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_prof
msgid "Professor"
-msgstr ""
+msgstr "Professeur"
#. module: base
#: model:res.country,name:base.hm
@@ -13842,7 +13881,7 @@ msgstr "Vous aide à gérer vos devis, commandes et factures"
#. module: base
#: field:res.users,login_date:0
msgid "Latest connection"
-msgstr ""
+msgstr "Dernière connexion"
#. module: base
#: field:res.groups,implied_ids:0
@@ -13859,7 +13898,7 @@ msgstr "Sélection"
#: model:ir.actions.act_window,name:base.change_password_wizard_action
#: view:res.users:0
msgid "Change Password"
-msgstr ""
+msgstr "Modifier le mot de passe"
#. module: base
#: model:ir.module.module,description:base.module_l10n_es
@@ -13927,7 +13966,7 @@ msgstr "Binaire"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_doctor
msgid "Doctor"
-msgstr ""
+msgstr "Docteur"
#. module: base
#: model:ir.module.module,description:base.module_mrp_repair
@@ -14136,12 +14175,12 @@ msgstr "Mois de création"
#. module: base
#: field:ir.module.module,demo:0
msgid "Demo Data"
-msgstr ""
+msgstr "Données de démonstration"
#. module: base
#: model:res.partner.title,shortcut:base.res_partner_title_mister
msgid "Mr."
-msgstr ""
+msgstr "M."
#. module: base
#: model:res.country,name:base.mv
@@ -14261,7 +14300,7 @@ msgstr ""
#. module: base
#: field:ir.actions.report.xml,report_sxw:0
msgid "SXW Path"
-msgstr ""
+msgstr "Emplacement SXW"
#. module: base
#: model:ir.module.module,description:base.module_account_asset
@@ -14294,7 +14333,7 @@ msgstr "Banque"
#: 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 "Point de vente"
#. module: base
#: model:ir.module.module,description:base.module_mail
@@ -15202,7 +15241,7 @@ msgstr ""
#. module: base
#: view:res.partner:0
msgid "Fax:"
-msgstr ""
+msgstr "Fax :"
#. module: base
#: selection:ir.ui.view,type:0
@@ -15480,7 +15519,7 @@ msgstr "Modules d'installation"
#. module: base
#: model:ir.ui.menu,name:base.menu_import_crm
msgid "Import & Synchronize"
-msgstr ""
+msgstr "Importer et synchroniser"
#. module: base
#: view:res.partner:0
@@ -15680,7 +15719,7 @@ msgstr "Action due plusieurs documents"
#: 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 "Civilités et Formes juridiques"
#. module: base
#: model:ir.module.module,description:base.module_anonymization
@@ -15968,7 +16007,7 @@ msgstr "Modules à mettre à jour"
#. module: base
#: model:ir.ui.menu,name:base.menu_custom_multicompany
msgid "Multi-Companies"
-msgstr ""
+msgstr "Multi-sociétés"
#. module: base
#: field:workflow,osv:0
@@ -16288,7 +16327,7 @@ msgstr "Accès"
#: field:res.partner,vat:0
#, python-format
msgid "TIN"
-msgstr ""
+msgstr "Numéro fiscal"
#. module: base
#: model:res.country,name:base.aw
@@ -16388,7 +16427,7 @@ msgstr "Services après vente"
#. module: base
#: field:base.language.import,code:0
msgid "ISO Code"
-msgstr ""
+msgstr "Code ISO"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr
@@ -16567,6 +16606,9 @@ msgid ""
"Allow users to login through OpenID.\n"
"====================================\n"
msgstr ""
+"\n"
+"Permettre aux utilisateurs de se connecter via OpenID.\n"
+"====================================\n"
#. module: base
#: help:ir.mail_server,smtp_port:0
@@ -16809,7 +16851,7 @@ msgstr "Canada - Comptabilité"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_co
msgid "Colombian - Accounting"
-msgstr ""
+msgstr "Colombie - Comptabilité"
#. module: base
#: model:ir.module.module,description:base.module_account_voucher
@@ -16991,12 +17033,12 @@ msgstr "Mise à jour du système"
#: field:ir.actions.report.xml,report_sxw_content:0
#: field:ir.actions.report.xml,report_sxw_content_data:0
msgid "SXW Content"
-msgstr ""
+msgstr "Contenu SXW"
#. module: base
#: field:ir.attachment,file_size:0
msgid "File Size"
-msgstr ""
+msgstr "Taille du fichier"
#. module: base
#: help:ir.sequence,prefix:0
@@ -17011,7 +17053,7 @@ msgstr "Seychelles"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_4
msgid "Gold"
-msgstr ""
+msgstr "Or"
#. module: base
#: code:addons/base/res/res_company.py:173
@@ -17038,7 +17080,7 @@ msgstr "Informations générales"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_pt
msgid "Portugal - Chart of Accounts"
-msgstr ""
+msgstr "Portugal - Plan comptable"
#. module: base
#: field:ir.model.data,complete_name:0
@@ -17088,6 +17130,8 @@ msgid ""
"Tax Identification Number. Check the box if this contact is subjected to "
"taxes. Used by the some of the legal statements."
msgstr ""
+"Numéro fiscal. Cochez cette case si ce contact est soumis au paiement de "
+"taxe. Utilisé dans certains documents légaux."
#. module: base
#: field:res.partner.bank,partner_id:0
@@ -17269,6 +17313,14 @@ msgid ""
" </p>\n"
" "
msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+"Cliquez pour ajouter un contact dans votre carnet d'adresses.\n"
+"</p><p>\n"
+"OpenERP vous aide à suivre toutes les activités d'un client :\n"
+"les discussions, l'historique des opportunités,\n"
+"les documents, etc.\n"
+"</p>\n"
+" "
#. module: base
#: model:res.partner.category,name:base.res_partner_category_2
diff --git a/openerp/addons/base/i18n/fr_CA.po b/openerp/addons/base/i18n/fr_CA.po
index c0d651dd6a2..9e19bf23c19 100644
--- a/openerp/addons/base/i18n/fr_CA.po
+++ b/openerp/addons/base/i18n/fr_CA.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:52+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:02+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/gl.po b/openerp/addons/base/i18n/gl.po
index f585450f879..dcc122c3b06 100644
--- a/openerp/addons/base/i18n/gl.po
+++ b/openerp/addons/base/i18n/gl.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:45+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:55+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/gu.po b/openerp/addons/base/i18n/gu.po
index f503c085226..977d4e6cfc9 100644
--- a/openerp/addons/base/i18n/gu.po
+++ b/openerp/addons/base/i18n/gu.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:45+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:55+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -29,12 +29,12 @@ msgstr ""
#. module: base
#: model:res.country,name:base.sh
msgid "Saint Helena"
-msgstr ""
+msgstr "સંત હેલેના"
#. module: base
#: view:ir.actions.report.xml:0
msgid "Other Configuration"
-msgstr "બીજા કન્ફિગ્યુરેશન"
+msgstr "અન્ય રેખાંકન"
#. module: base
#: selection:ir.property,type:0
@@ -232,7 +232,7 @@ msgstr "સ્પાર્સ ફિલ્ડ \"%s\" નુ નામ બદલà
#. module: base
#: model:res.country,name:base.sz
msgid "Swaziland"
-msgstr "સ્વાઝિલેન્ડ"
+msgstr "સ્વાઝીલેન્ડ"
#. module: base
#: code:addons/orm.py:4485
diff --git a/openerp/addons/base/i18n/he.po b/openerp/addons/base/i18n/he.po
index cc978d79672..1326ac09496 100644
--- a/openerp/addons/base/i18n/he.po
+++ b/openerp/addons/base/i18n/he.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:45+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:55+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/hi.po b/openerp/addons/base/i18n/hi.po
index 57ed84a791a..8c7fb8d2ed0 100644
--- a/openerp/addons/base/i18n/hi.po
+++ b/openerp/addons/base/i18n/hi.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:46+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:56+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/hr.po b/openerp/addons/base/i18n/hr.po
index 7b8cc54fceb..a58909f5a62 100644
--- a/openerp/addons/base/i18n/hr.po
+++ b/openerp/addons/base/i18n/hr.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:49+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:59+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
"Language: hr\n"
#. module: base
diff --git a/openerp/addons/base/i18n/hu.po b/openerp/addons/base/i18n/hu.po
index 6e8d6ef493a..c1f2b8d2bea 100644
--- a/openerp/addons/base/i18n/hu.po
+++ b/openerp/addons/base/i18n/hu.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:46+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:56+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/hy.po b/openerp/addons/base/i18n/hy.po
index d3d7c7a3b93..88d3d3a1d45 100644
--- a/openerp/addons/base/i18n/hy.po
+++ b/openerp/addons/base/i18n/hy.po
@@ -9,8 +9,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:43+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:53+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/id.po b/openerp/addons/base/i18n/id.po
index 4dd47d07e1f..949189bff13 100644
--- a/openerp/addons/base/i18n/id.po
+++ b/openerp/addons/base/i18n/id.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:46+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:56+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -42,7 +42,7 @@ msgstr "Konfigurasi Lainnya"
#. module: base
#: selection:ir.property,type:0
msgid "DateTime"
-msgstr ""
+msgstr "DateTime"
#. module: base
#: code:addons/fields.py:652
@@ -51,6 +51,8 @@ msgid ""
"The second argument of the many2many field %s must be a SQL table !You used "
"%s, which is not a valid SQL table name."
msgstr ""
+"Argumen kedua dari field many2many %s harus merupakan tabel SQL ! Anda "
+"menggunakan %s, yang mana bukan table SQL."
#. module: base
#: field:ir.ui.view,arch:0
@@ -66,7 +68,7 @@ msgstr "Kontrol Penawaran, Pesanan Penjualan, Pengiriman & Faktur"
#. module: base
#: selection:ir.sequence,implementation:0
msgid "No gap"
-msgstr ""
+msgstr "Tidak ada gap"
#. module: base
#: selection:base.language.install,lang:0
@@ -76,7 +78,7 @@ msgstr "Bahasa Hungaria"
#. module: base
#: selection:base.language.install,lang:0
msgid "Spanish (PY) / Español (PY)"
-msgstr ""
+msgstr "Bahasa Spanyol"
#. module: base
#: model:ir.module.category,description:base.module_category_project_management
@@ -84,27 +86,30 @@ msgid ""
"Helps you manage your projects and tasks by tracking them, generating "
"plannings, etc..."
msgstr ""
+"Memungkinkan Anda untuk mengelola proyek dan tugas dengan cara melacaknya, "
+"menghasilkan perencanaan dan lain sebagainya ..."
#. module: base
#: model:ir.module.module,summary:base.module_point_of_sale
msgid "Touchscreen Interface for Shops"
-msgstr ""
+msgstr "Antarmuka layar sentuh untuk digunakan di toko"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
msgid "Indian Payroll"
-msgstr ""
+msgstr "Payroll untuk India"
#. module: base
#: help:ir.cron,model:0
msgid ""
"Model name on which the method to be called is located, e.g. 'res.partner'."
msgstr ""
+"Sebutkan nama model yang mana metode ini akan dipanggil, misal 'res.partner'."
#. module: base
#: view:ir.module.module:0
msgid "Created Views"
-msgstr "View Tercipta"
+msgstr "View yang diciptakan"
#. module: base
#: model:ir.module.module,description:base.module_product_manufacturer
@@ -121,11 +126,24 @@ msgid ""
" * Product Attributes\n"
" "
msgstr ""
+"\n"
+"Modul ini berfungsi untuk menambahkan nama produsen beserta atributnya pada "
+"formulir produk.\n"
+"============================================================================="
+"==\n"
+"\n"
+"Anda dapat mengisi data-data berikut pada produk:\n"
+"------------------------------------------------\n"
+"* Nama produsen\n"
+"* Nama produk produsen\n"
+"* Code produk produsen\n"
+"* Atribut produk\n"
+" "
#. module: base
#: field:ir.actions.client,params:0
msgid "Supplementary arguments"
-msgstr ""
+msgstr "Argumen tambahan"
#. module: base
#: model:ir.module.module,description:base.module_google_base_account
@@ -134,11 +152,14 @@ msgid ""
"The module adds google user in res user.\n"
"========================================\n"
msgstr ""
+"\n"
+"Modul ini akan menambahkan google user dalam obyek res.user\n"
+"====================================================\n"
#. module: base
#: help:res.partner,employee:0
msgid "Check this box if this contact is an Employee."
-msgstr ""
+msgstr "Centang kotak ini jika kontak adalah pegawai"
#. module: base
#: help:ir.model.fields,domain:0
@@ -147,6 +168,9 @@ msgid ""
"specified as a Python expression defining a list of triplets. For example: "
"[('color','=','red')]"
msgstr ""
+"Sebuah domain (opsional) untuk membatasi nilai untuk field yang terelasi, "
+"dimana merupakan ekspresi Python yang mendefinisikan daftar triplet. Sebagai "
+"contoh: [('color', '=', 'merah')]"
#. module: base
#: field:res.partner,ref:0
@@ -156,7 +180,7 @@ msgstr "Referensi"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_invoice_bba
msgid "Belgium - Structured Communication"
-msgstr ""
+msgstr "Belgia - Komunikasi terstruktur"
#. module: base
#: field:ir.actions.act_window,target:0
@@ -166,12 +190,12 @@ msgstr "Jendela Sasaran"
#. module: base
#: field:ir.actions.report.xml,report_rml:0
msgid "Main Report File Path"
-msgstr ""
+msgstr "Path (lokasi) file laporan"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
msgid "Sales Analytic Distribution"
-msgstr ""
+msgstr "Untuk mendistribusikan data analisis pada proses Penjualan"
#. module: base
#: model:ir.module.module,description:base.module_hr_timesheet_invoice
@@ -203,12 +227,14 @@ msgid ""
"Properties of base fields cannot be altered in this manner! Please modify "
"them through Python code, preferably through a custom addon!"
msgstr ""
+"Sifat field basis tidak dapat diubah dengan cara ini! Silahkan "
+"memodifikasinya melalui kode Python, sebaiknya dibuat modul terpisah."
#. module: base
#: code:addons/osv.py:151
#, python-format
msgid "Constraint Error"
-msgstr ""
+msgstr "Kesalahan"
#. module: base
#: model:ir.model,name:base.model_ir_ui_view_custom
@@ -219,7 +245,7 @@ msgstr "ir.ui.view.custom"
#: code:addons/base/ir/ir_model.py:374
#, python-format
msgid "Renaming sparse field \"%s\" is not allowed"
-msgstr ""
+msgstr "Mengganti nama field \"%s\" tidak diperbolehkan"
#. module: base
#: model:res.country,name:base.sz
@@ -235,12 +261,12 @@ msgstr "dibuat"
#. module: base
#: field:ir.actions.report.xml,report_xsl:0
msgid "XSL Path"
-msgstr ""
+msgstr "Lokasi file XSL"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
msgid "Turkey - Accounting"
-msgstr ""
+msgstr "Turki - Akunting"
#. module: base
#: field:ir.sequence,number_increment:0
@@ -256,12 +282,12 @@ msgstr "Struktur Perusahaan"
#. module: base
#: selection:base.language.install,lang:0
msgid "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
-msgstr ""
+msgstr "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
-msgstr ""
+msgstr "Multi Mata Uang"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@@ -277,7 +303,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale
msgid "Sales Management"
-msgstr ""
+msgstr "Manajemen Penjualan"
#. module: base
#: help:res.partner,user_id:0
@@ -285,6 +311,7 @@ msgid ""
"The internal user that is in charge of communicating with this contact if "
"any."
msgstr ""
+"Pengguna/user yang ditugaskan berhubungan dengan kontak ini, jika ada."
#. module: base
#: view:res.partner:0
@@ -299,7 +326,7 @@ msgstr "Jumlah Modul"
#. module: base
#: help:multi_company.default,company_dest_id:0
msgid "Company to store the current record"
-msgstr ""
+msgstr "Perusahaan untuk menyimpan data ini"
#. module: base
#: field:res.partner.bank.type.field,size:0
@@ -312,6 +339,8 @@ msgid ""
"Database ID of record to open in form view, when ``view_mode`` is set to "
"'form' only"
msgstr ""
+"Database ID dari data yang akan dibuka dalam tampilan formulir (form view), "
+"dimana \"view_mode\" diberi nilai \"form\"."
#. module: base
#: help:ir.values,key2:0
@@ -327,7 +356,7 @@ msgstr ""
#. module: base
#: sql_constraint:res.lang:0
msgid "The name of the language must be unique !"
-msgstr ""
+msgstr "Nama bahasa harus unik"
#. module: base
#: selection:res.request,state:0
@@ -355,7 +384,7 @@ msgstr ""
#. module: base
#: model:ir.module.category,name:base.module_category_customer_relationship_management
msgid "Customer Relationship Management"
-msgstr ""
+msgstr "Manajemen Hubungan Pelanggan"
#. module: base
#: model:ir.module.module,description:base.module_delivery
@@ -377,40 +406,42 @@ msgid ""
"There is already a shared filter set as default for %(model)s, delete or "
"change it before setting a new default"
msgstr ""
+"Sudah ada filter yang telah ditetapkan untuk %(model)s, silakan hapus atau "
+"rubah dulu sebelum menetapkan nilai baru."
#. module: base
#: code:addons/orm.py:2649
#, python-format
msgid "Invalid group_by"
-msgstr ""
+msgstr "group_by salah"
#. module: base
#: field:ir.module.category,child_ids:0
msgid "Child Applications"
-msgstr ""
+msgstr "Aplikasi Anak"
#. module: base
#: field:res.partner,credit_limit:0
msgid "Credit Limit"
-msgstr ""
+msgstr "Batas Kredit"
#. 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 "Tanggal Pembaharuan"
+msgstr "Pembaharuan Tanggal"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_action_rule
msgid "Automated Action Rules"
-msgstr ""
+msgstr "Aturan Aksi Otomatis"
#. module: base
#: view:ir.attachment:0
#: field:ir.attachment,create_uid:0
msgid "Owner"
-msgstr ""
+msgstr "Pemilik"
#. module: base
#: view:ir.actions.act_window:0
@@ -420,7 +451,7 @@ msgstr "Sumber Obyek"
#. module: base
#: model:res.partner.bank.type,format_layout:base.bank_normal
msgid "%(bank_name)s: %(acc_number)s"
-msgstr ""
+msgstr "%(bank_name)s: %(acc_number)s"
#. module: base
#: view:ir.actions.todo:0
@@ -445,6 +476,8 @@ msgid ""
"Invalid date/time format directive specified. Please refer to the list of "
"allowed directives, displayed when you edit a language."
msgstr ""
+"Penetapan format data/time salah. Silakan contoh yang ditampilkan ketika "
+"mengedit bahasa."
#. module: base
#: code:addons/orm.py:4153
@@ -452,7 +485,7 @@ msgstr ""
msgid ""
"One of the records you are trying to modify has already been deleted "
"(Document type: %s)."
-msgstr ""
+msgstr "Data yang akan Anda modifikasi sudah dihapus (Jenis Dokumen: %s)."
#. module: base
#: help:ir.actions.act_window,views:0
@@ -466,12 +499,12 @@ msgstr ""
#. module: base
#: field:ir.model.relation,name:0
msgid "Relation Name"
-msgstr ""
+msgstr "Nama Relasi"
#. module: base
#: view:ir.rule:0
msgid "Create Access Right"
-msgstr ""
+msgstr "Membuat Hak Akses"
#. module: base
#: model:res.country,name:base.tv
@@ -481,7 +514,7 @@ msgstr "Tuvalu"
#. module: base
#: field:ir.actions.configuration.wizard,note:0
msgid "Next Wizard"
-msgstr ""
+msgstr "Wizard berikutnya"
#. module: base
#: field:res.lang,date_format:0
@@ -491,7 +524,7 @@ msgstr "Format Tanggal"
#. module: base
#: model:ir.module.module,shortdesc:base.module_base_report_designer
msgid "OpenOffice Report Designer"
-msgstr ""
+msgstr "Untuk mendesign Laporan dengan OpenOffice"
#. module: base
#: model:res.country,name:base.an
diff --git a/openerp/addons/base/i18n/is.po b/openerp/addons/base/i18n/is.po
index 192f6409ff8..732697d2d59 100644
--- a/openerp/addons/base/i18n/is.po
+++ b/openerp/addons/base/i18n/is.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:46+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:56+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/it.po b/openerp/addons/base/i18n/it.po
index 0c20e1d35c3..41d45332310 100644
--- a/openerp/addons/base/i18n/it.po
+++ b/openerp/addons/base/i18n/it.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:46+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:56+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/ja.po b/openerp/addons/base/i18n/ja.po
index 3584955369e..d06a60cf9be 100644
--- a/openerp/addons/base/i18n/ja.po
+++ b/openerp/addons/base/i18n/ja.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:46+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:56+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -80,12 +80,12 @@ msgstr "スペイン語(パラグアイ)/ Español (PY)"
msgid ""
"Helps you manage your projects and tasks by tracking them, generating "
"plannings, etc..."
-msgstr "プロジェクトやタスクを追跡,計画生成などすることにより、あなたのプロジェクトとタスクの管理を補助します。"
+msgstr "追跡や計画生成などで、プロジェクトとタスクの管理を補助します。"
#. module: base
#: model:ir.module.module,summary:base.module_point_of_sale
msgid "Touchscreen Interface for Shops"
-msgstr ""
+msgstr "店舗用タッチスクリーン画面"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll
@@ -234,7 +234,7 @@ msgstr "作成済"
#. module: base
#: field:ir.actions.report.xml,report_xsl:0
msgid "XSL Path"
-msgstr ""
+msgstr "XLSパス"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_tr
@@ -260,7 +260,7 @@ msgstr "イヌクウティトット語 / Inuktitut"
#. module: base
#: model:res.groups,name:base.group_multi_currency
msgid "Multi Currencies"
-msgstr ""
+msgstr "多通貨"
#. module: base
#: model:ir.module.module,description:base.module_l10n_cl
@@ -276,7 +276,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale
msgid "Sales Management"
-msgstr "受注管理"
+msgstr "販売管理"
#. module: base
#: help:res.partner,user_id:0
@@ -654,7 +654,7 @@ msgstr "パラオ"
#. module: base
#: view:res.partner:0
msgid "Sales & Purchases"
-msgstr "受注と発注"
+msgstr "販売・購買"
#. module: base
#: view:ir.translation:0
@@ -1535,7 +1535,7 @@ msgstr ""
#: model:ir.module.category,name:base.module_category_purchase_management
#: model:ir.ui.menu,name:base.menu_purchase_root
msgid "Purchases"
-msgstr "発注"
+msgstr "購買"
#. module: base
#: model:res.country,name:base.md
@@ -4589,7 +4589,7 @@ msgstr "ヒンディー語 / हिंदी"
#: 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 "言語の追加"
#. module: base
#: field:ir.module.module,latest_version:0
@@ -9728,7 +9728,7 @@ msgstr "受注オーダーのマージン"
#. module: base
#: model:ir.module.module,shortdesc:base.module_purchase
msgid "Purchase Management"
-msgstr "発注管理"
+msgstr "購買管理"
#. module: base
#: field:ir.module.module,published_version:0
@@ -14274,7 +14274,7 @@ msgstr ""
#. module: base
#: model:ir.ui.menu,name:base.menu_custom_multicompany
msgid "Multi-Companies"
-msgstr ""
+msgstr "複数会社設定"
#. module: base
#: field:workflow,osv:0
@@ -15190,7 +15190,7 @@ msgstr "条件"
#: model:ir.actions.client,name:base.modules_updates_act_cl
#: model:ir.ui.menu,name:base.menu_module_updates
msgid "Updates"
-msgstr ""
+msgstr "アップデート"
#. module: base
#: help:res.currency,rate:0
@@ -15402,7 +15402,7 @@ msgstr ""
#: model:ir.actions.act_window,name:base.open_module_tree
#: model:ir.ui.menu,name:base.menu_module_tree
msgid "Installed Modules"
-msgstr ""
+msgstr "インストール済のモジュール"
#. module: base
#: code:addons/base/res/res_users.py:170
@@ -15465,7 +15465,7 @@ msgstr ""
#. module: base
#: view:res.partner:0
msgid "Internal Notes"
-msgstr ""
+msgstr "内部注記"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_pvt_ltd
@@ -15476,7 +15476,7 @@ msgstr "会社"
#. module: base
#: model:ir.module.module,shortdesc:base.module_purchase_requisition
msgid "Purchase Requisitions"
-msgstr "発注依頼"
+msgstr "購買依頼"
#. module: base
#: selection:ir.actions.act_window,target:0
diff --git a/openerp/addons/base/i18n/ka.po b/openerp/addons/base/i18n/ka.po
index de4ab0011ca..d81636cd39f 100644
--- a/openerp/addons/base/i18n/ka.po
+++ b/openerp/addons/base/i18n/ka.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:45+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:55+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/kk.po b/openerp/addons/base/i18n/kk.po
index 5d9149346fa..5a7fbd11ad0 100644
--- a/openerp/addons/base/i18n/kk.po
+++ b/openerp/addons/base/i18n/kk.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:47+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:57+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/ko.po b/openerp/addons/base/i18n/ko.po
index fb4e3979197..d434b66dc75 100644
--- a/openerp/addons/base/i18n/ko.po
+++ b/openerp/addons/base/i18n/ko.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:47+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:57+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/lt.po b/openerp/addons/base/i18n/lt.po
index 4c89ec7b752..d9155bf9667 100644
--- a/openerp/addons/base/i18n/lt.po
+++ b/openerp/addons/base/i18n/lt.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:47+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:57+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/lv.po b/openerp/addons/base/i18n/lv.po
index e3919b11b2a..3fa7f2d978f 100644
--- a/openerp/addons/base/i18n/lv.po
+++ b/openerp/addons/base/i18n/lv.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:47+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:57+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/mk.po b/openerp/addons/base/i18n/mk.po
index 2d436022221..1f36dc7e461 100644
--- a/openerp/addons/base/i18n/mk.po
+++ b/openerp/addons/base/i18n/mk.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:47+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:57+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/mn.po b/openerp/addons/base/i18n/mn.po
index 6f31ab48d7b..1d394c26fe7 100644
--- a/openerp/addons/base/i18n/mn.po
+++ b/openerp/addons/base/i18n/mn.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:48+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:57+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/nb.po b/openerp/addons/base/i18n/nb.po
index 8b6d5414a5e..a0bc304dc90 100644
--- a/openerp/addons/base/i18n/nb.po
+++ b/openerp/addons/base/i18n/nb.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:48+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:58+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/nl.po b/openerp/addons/base/i18n/nl.po
index 8cbf3e13d97..d5540e4595e 100644
--- a/openerp/addons/base/i18n/nl.po
+++ b/openerp/addons/base/i18n/nl.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:44+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:54+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -9702,7 +9702,7 @@ msgstr "Gebruikersinterface"
#. module: base
#: model:ir.module.module,shortdesc:base.module_mrp_byproduct
msgid "MRP Byproducts"
-msgstr "productie bijproducten"
+msgstr "Productie bijproducten"
#. module: base
#: field:res.request,ref_partner_id:0
diff --git a/openerp/addons/base/i18n/nl_BE.po b/openerp/addons/base/i18n/nl_BE.po
index e460c4ee1a5..7a6b8ecf4dc 100644
--- a/openerp/addons/base/i18n/nl_BE.po
+++ b/openerp/addons/base/i18n/nl_BE.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:52+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:02+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/pl.po b/openerp/addons/base/i18n/pl.po
index aecb2a344b0..49c50189bc7 100644
--- a/openerp/addons/base/i18n/pl.po
+++ b/openerp/addons/base/i18n/pl.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:48+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:58+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -2052,7 +2052,7 @@ msgstr "Turkmenistan"
#. module: base
#: view:res.lang:0
msgid "7. %H:%M:%S ==> 18:25:20"
-msgstr ""
+msgstr "7. %H:%M:%S ==> 18:25:20"
#. module: base
#: view:res.partner:0
@@ -2579,7 +2579,7 @@ msgstr "Dodatkowe"
#. module: base
#: model:res.country,name:base.st
msgid "Saint Tome (Sao Tome) and Principe"
-msgstr ""
+msgstr "Wyspy Świętego Tomasza i Książęca"
#. module: base
#: selection:res.partner,type:0
@@ -4261,7 +4261,7 @@ msgstr "Wymagana grupa"
#. 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
@@ -5146,7 +5146,7 @@ msgstr "Ścieżka XML"
#. module: base
#: model:res.country,name:base.bj
msgid "Benin"
-msgstr ""
+msgstr "Benin"
#. module: base
#: model:ir.actions.act_window,name:base.action_res_partner_bank_type_form
@@ -5340,7 +5340,7 @@ msgstr "Syria"
#. module: base
#: view:res.lang:0
msgid "======================================================"
-msgstr ""
+msgstr "======================================================"
#. module: base
#: sql_constraint:ir.model:0
@@ -5453,6 +5453,7 @@ msgstr "Nazwa posiadacza konta"
#, python-format
msgid "Cannot rename column to %s, because that column already exists!"
msgstr ""
+"Nie można zmienić nazwy kolumny na %s, ponieważ ta kolumna już istnieje!"
#. module: base
#: view:ir.attachment:0
@@ -5578,7 +5579,7 @@ msgstr "Wenezuela"
#. module: base
#: view:res.lang:0
msgid "9. %j ==> 340"
-msgstr ""
+msgstr "9. %j ==> 340"
#. module: base
#: model:res.country,name:base.zm
@@ -5943,7 +5944,7 @@ msgstr "Pogrupuj wg"
#. module: base
#: view:res.config.installer:0
msgid "title"
-msgstr ""
+msgstr "tytuł"
#. module: base
#: code:addons/base/ir/ir_fields.py:146
@@ -5969,7 +5970,7 @@ msgstr "Tłumaczenie"
#. module: base
#: selection:res.request,state:0
msgid "closed"
-msgstr ""
+msgstr "zamknięte"
#. module: base
#: selection:base.language.export,state:0
@@ -12108,7 +12109,7 @@ msgstr ""
#. module: base
#: selection:ir.translation,type:0
msgid "XSL"
-msgstr ""
+msgstr "XSL"
#. module: base
#: code:addons/base/ir/ir_model.py:85
@@ -15906,10 +15907,6 @@ msgstr ""
#~ msgid "On delete"
#~ msgstr "Przy usuwaniu"
-#, python-format
-#~ msgid "Not Implemented"
-#~ msgstr "Nie zaimplementowane"
-
#~ msgid "Textile Suppliers"
#~ msgstr "Dostawca tekstyliów"
@@ -17034,3 +17031,58 @@ msgstr ""
#~ "======================================\n"
#~ "\n"
#~ "Moduł umożliwia planowanie wsteczne zarządzające twoimi wydarzeniami.\n"
+
+#, python-format
+#~ msgid "Not Implemented"
+#~ msgstr "Niezaimplementowane"
+
+#~ msgid ""
+#~ "OpenERP translations (core, modules, clients) are managed through "
+#~ "Launchpad.net, our open source project management facility. We use their "
+#~ "online interface to synchronize all translations efforts."
+#~ msgstr ""
+#~ "Tłumaczenia OpenERP (jądro, moduły, klient) są zarządzane poprzez "
+#~ "Launchpad.net. Używamy ich interfejsu online by synchronizować wszelkie "
+#~ "tłumaczenia."
+
+#~ msgid ","
+#~ msgstr ","
+
+#~ msgid "S. Georgia & S. Sandwich Isls."
+#~ msgstr "Georgia Południowa i Sandwich Południowy"
+
+#~ msgid "-"
+#~ msgstr "-"
+
+#~ msgid "https://help.launchpad.net/Translations"
+#~ msgstr "https://help.launchpad.net/Translations"
+
+#~ msgid "Portugese (BR) / Português (BR)"
+#~ msgstr "Portugalski (BR) / Português (BR)"
+
+#~ msgid "Facebook"
+#~ msgstr "Facebook"
+
+#~ msgid "Openstuff.net"
+#~ msgstr "Openstuff.net"
+
+#~ msgid "Portugese / Português"
+#~ msgstr "Portugalski / Português"
+
+#~ msgid "M."
+#~ msgstr "M."
+
+#~ msgid "XML ID"
+#~ msgstr "XML ID"
+
+#~ msgid "XML Id"
+#~ msgstr "XML Id"
+
+#~ msgid "FYROM"
+#~ msgstr "FYROM"
+
+#~ msgid "Serial Key"
+#~ msgstr "Klucz seryjny"
+
+#~ msgid "Widget Wizard"
+#~ msgstr "Kreator widżetów"
diff --git a/openerp/addons/base/i18n/pt.po b/openerp/addons/base/i18n/pt.po
index f830e2d4347..f08eea935da 100644
--- a/openerp/addons/base/i18n/pt.po
+++ b/openerp/addons/base/i18n/pt.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:48+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:58+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -24,6 +24,10 @@ msgid ""
"================================================\n"
" "
msgstr ""
+"\n"
+"Módulo para Verificar a Escrita e Verificar a Impresaão.\n"
+"================================================\n"
+" "
#. module: base
#: model:res.country,name:base.sh
@@ -122,6 +126,18 @@ msgid ""
" * Product Attributes\n"
" "
msgstr ""
+"\n"
+"Um modulo que acrescenta a identificação de fabricantes e atributos ao "
+"formulário de produtos.\n"
+"====================================================================\n"
+"\n"
+"Agora é possível definir o seguinte para cada produto:\n"
+"\n"
+" Fabricante\n"
+" Nome do produto atribuído pelo fabricante\n"
+" Código do produto atribuído pelo fabricante\n"
+" Atributos do produto\n"
+" "
#. module: base
#: field:ir.actions.client,params:0
@@ -135,6 +151,8 @@ msgid ""
"The module adds google user in res user.\n"
"========================================\n"
msgstr ""
+"\n"
+"O modulo acrescenta utilizador google em \"res user\".\n"
#. module: base
#: help:res.partner,employee:0
@@ -170,7 +188,7 @@ msgstr "Janela alvo"
#. module: base
#: field:ir.actions.report.xml,report_rml:0
msgid "Main Report File Path"
-msgstr ""
+msgstr "Caminho para o ficheiro do relatório principal"
#. module: base
#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans
@@ -191,6 +209,15 @@ msgid ""
"revenue\n"
"reports."
msgstr ""
+"\n"
+"Gerar faturas através de Despesas, Folhas de Horas\n"
+"========================================================\n"
+"\n"
+"Modulo que gera faturas baseadas em custos (recursos humanos, despesas, "
+"...).\n"
+"\n"
+"Pode definir tabelas de preços na conta analítica, criar analises teoréticas "
+"de vendas."
#. module: base
#: code:addons/base/ir/ir_sequence.py:134
@@ -226,7 +253,7 @@ msgstr "ir.ui.view.custom"
#: code:addons/base/ir/ir_model.py:374
#, python-format
msgid "Renaming sparse field \"%s\" is not allowed"
-msgstr ""
+msgstr "Não é permitido mudar o nome de sparse field \"%s\""
#. module: base
#: model:res.country,name:base.sz
@@ -292,6 +319,8 @@ msgid ""
"The internal user that is in charge of communicating with this contact if "
"any."
msgstr ""
+"O utilizador interno responsável pela comunicação com este contacto (se "
+"houver)"
#. module: base
#: view:res.partner:0
@@ -376,6 +405,15 @@ msgid ""
"invoices from picking, OpenERP is able to add and compute the shipping "
"line.\n"
msgstr ""
+"\n"
+"Permite adicionar métodos de entrega nas ordens de venda e ordens de "
+"preparação de encomendas.\n"
+"==============================================================\n"
+"\n"
+"Assim é possível definir transportadores adicionais e tabelas de preços para "
+"entregas. No acto de criar \n"
+"uma fatura através um ordem de preparação de encomenda, OpenERP consegue "
+"adicionar e calcular custos de entrega.\n"
#. module: base
#: code:addons/base/ir/ir_filters.py:80
@@ -384,6 +422,8 @@ msgid ""
"There is already a shared filter set as default for %(model)s, delete or "
"change it before setting a new default"
msgstr ""
+"Um filtro partilhado já está definido para %(model)s, apague ou modifique o "
+"filtro existente antes de criar um novo."
#. module: base
#: code:addons/orm.py:2649
@@ -452,8 +492,8 @@ msgid ""
"Invalid date/time format directive specified. Please refer to the list of "
"allowed directives, displayed when you edit a language."
msgstr ""
-"Data inválida/especifique diretiva do formato da hora. Por favor, consulte a "
-"lista de diretivas permitidas, exibida quando se edita uma linguagem."
+"A diretiva data/hora especificada é invalida. Por favor, consulte a lista de "
+"diretivas permitidas, exibida quando se edita uma linguagem."
#. module: base
#: code:addons/orm.py:4153
@@ -462,7 +502,7 @@ msgid ""
"One of the records you are trying to modify has already been deleted "
"(Document type: %s)."
msgstr ""
-"Um dos registos que está a tentar modificar já deve ter sido excluído "
+"Um dos registos que está a tentar modificar já deve ter sido apagado "
"(Document type: %s)."
#. module: base
@@ -552,6 +592,15 @@ msgid ""
"that have no counterpart in the general financial accounts.\n"
" "
msgstr ""
+"\n"
+"Modulo para definir objetos de contabilidade analítica.\n"
+"===============================================\n"
+"\n"
+"Na OpenERP, contas analíticas estão ligados a contas gerais embora são "
+"tratados \n"
+"de uma forma independente. Assim é possível adicionar operações analíticas \n"
+"mesmo quando não tenham homólogos nas contas gerais.\n"
+" "
#. module: base
#: model:ir.module.module,shortdesc:base.module_idea
@@ -575,6 +624,19 @@ msgid ""
"* Use emails to automatically confirm and send acknowledgements for any "
"event registration\n"
msgstr ""
+"\n"
+"Organização e gestão de Eventos.\n"
+"======================================\n"
+"\n"
+"O modulo de gestão de eventos permite gerir todos as tarefas associadas a "
+"organização de eventos: planificação, controlo de inscrições, "
+"comparecimento, etc.\n"
+"\n"
+"Principais Funções\n"
+"------------\n"
+"* Gerir os seus Eventos e Inscrições\n"
+"* Utilizar e-mail para enviar confirmações de forma automática para "
+"inscrições nos seus eventos.\n"
#. module: base
#: selection:base.language.install,lang:0
@@ -774,6 +836,11 @@ msgid ""
"This module provides the Integration of the LinkedIn with OpenERP.\n"
" "
msgstr ""
+"\n"
+"Módulo OpenERP Web LinkedIn.\n"
+"============================\n"
+"Este módulo disponibiliza a integração do LinkedIn com o OpenERP.\n"
+" "
#. module: base
#: help:ir.actions.act_window,src_model:0
@@ -839,6 +906,9 @@ msgid ""
"image, with aspect ratio preserved. Use this field anywhere a small image is "
"required."
msgstr ""
+"Imagem em pequeno formato para este contacto. É automaticamente "
+"redimensionada para 64x64px com o racio do aspect preservado. Utilize este "
+"campo onde quer que uma imagem pequena seja necessária."
#. module: base
#: help:ir.actions.server,mobile:0
@@ -1327,7 +1397,7 @@ msgstr "Contribuintes"
#. module: base
#: field:ir.rule,perm_unlink:0
msgid "Apply for Delete"
-msgstr ""
+msgstr "Aplicar para Apagar"
#. module: base
#: selection:ir.property,type:0
@@ -1465,7 +1535,7 @@ msgstr "Haiti"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr_hr_payroll
msgid "French Payroll"
-msgstr ""
+msgstr "Folha de pagamentos Francesa"
#. module: base
#: view:ir.ui.view:0
@@ -1996,6 +2066,8 @@ msgid ""
"Check this box if this contact is a supplier. If it's not checked, purchase "
"people will not see it when encoding a purchase order."
msgstr ""
+"Assinala nesta caixa se o contacto é fornecedor. Se não for assinalado, o "
+"contacto não será visível no acto de criar uma nota de encomenda."
#. module: base
#: model:ir.module.module,shortdesc:base.module_hr_evaluation
@@ -2173,6 +2245,27 @@ msgid ""
"* *Before Delivery*: A Draft invoice is created and must be paid before "
"delivery\n"
msgstr ""
+"\n"
+"Gerir orçamentos e encomendas\n"
+"==================================\n"
+"\n"
+"Este modulo liga a aplicação de vendas com a de gestão de armazéns.\n"
+"\n"
+"Preferências\n"
+"-----------\n"
+"* Envios: Escolha entre a entrega total ou parcial de uma encomenda.\n"
+"* Faturação: Escolha o prazo de pagamento da fatura\n"
+"* Incoterms: Escolha os termos de entrega da mercadoria (EXW, DDU, FOB, "
+"etc.)\n"
+"\n"
+"Escolhe entre varias maneiras flexíveis de faturação:\n"
+"\n"
+"* *Manualmente*: As faturas são criados manualmente das notas de encomenda "
+"quando necessário\n"
+"* *Através de Ordem de Entrega*: As faturas são geradas das ordens de "
+"entrega (pickings)\n"
+"* *Antes de Entrega*: Uma fatura pro-forma é criado e tem de ser liquidada "
+"antes de efetuar a entrega\n"
#. module: base
#: field:ir.ui.menu,complete_name:0
@@ -2198,7 +2291,7 @@ msgstr ""
#. module: base
#: view:base.language.export:0
msgid "PO(T) format: you should edit it with a PO editor such as"
-msgstr ""
+msgstr "Formato PO(T): deve editá-lo com um editor de PO tal como"
#. module: base
#: model:ir.ui.menu,name:base.menu_administration
@@ -2287,7 +2380,7 @@ msgstr "Bahamas"
#. module: base
#: field:ir.rule,perm_create:0
msgid "Apply for Create"
-msgstr ""
+msgstr "Aplicar para Criar"
#. module: base
#: model:ir.module.category,name:base.module_category_tools
@@ -2310,6 +2403,8 @@ msgid ""
"Appears by default on the top right corner of your printed documents (report "
"header)."
msgstr ""
+"Aparece por defeito no campo superior direito dos documentos impressos "
+"(cabeçalho do relatório)."
#. module: base
#: field:base.module.update,update:0
@@ -2357,6 +2452,31 @@ msgid ""
"* Maximal difference between timesheet and attendances\n"
" "
msgstr ""
+"\n"
+"Gravar e validar folhas de horas e comparecimento/assiduidade com "
+"facilidade\n"
+"=====================================================\n"
+"\n"
+"Esta aplicação cria uma nova ecrã que permite gerir comparecimento (entradas "
+"e saídas) e o preenchimento de folhas de horas por período. Entradas na "
+"folha de horas são efetuadas pelos funcionários diariamente. No fim do "
+"período estipulado, o funcionário valida a folha de horas. De seguida a "
+"folha é sujeito a aprovação da gerente de equipa. A definição do tempo de "
+"cada período é feito nas configurações da empresa e podem ser efetuados "
+"mensalmente ou semanalmente.\n"
+"\n"
+"O processo de validação da folha de horas é feito assim:\n"
+"---------------------------------------------\n"
+"* Preencher folha (funcionário)\n"
+"* Confirmar a folha no fim do período (funcionário)\n"
+"* Validação da folha pelo gestor da equipa\n"
+"\n"
+"As preferências de validação podem ser escolhidos nas configurações da "
+"empresa:\n"
+"------------------------------------------------\n"
+"Periodicidade (Dia, Semana, Mês)\n"
+"Diferenciação máxima permitida entre a folha de horas e comparecimento\n"
+" "
#. module: base
#: code:addons/base/ir/ir_fields.py:341
@@ -2429,6 +2549,9 @@ msgid ""
"=================================\n"
" "
msgstr ""
+"\n"
+"Permite que um utilizador anónimo aceda ao portal.\n"
+" "
#. module: base
#: model:res.country,name:base.ge
@@ -2677,6 +2800,12 @@ msgid ""
"orders.\n"
" "
msgstr ""
+"\n"
+"O modulo base para gerir distribuição analítica e notas de encomenda.\n"
+"=================================================================\n"
+"\n"
+"Este modulo permite ligar contas analíticas a notas de encomenda.\n"
+" "
#. module: base
#: model:ir.module.module,description:base.module_l10n_us
@@ -2817,6 +2946,9 @@ msgid ""
"Module to attach a google document to any model.\n"
"================================================\n"
msgstr ""
+"\n"
+"Módulo para anexar um documento google a qualquer modelo.\n"
+"=========================================================\n"
#. module: base
#: code:addons/base/ir/ir_fields.py:333
@@ -5010,7 +5142,7 @@ msgstr "ir.needaction_mixin"
#. module: base
#: view:base.language.export:0
msgid "This file was generated using the universal"
-msgstr ""
+msgstr "Este ficheiro foi gerado usando o universal"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_7
@@ -5082,7 +5214,7 @@ msgstr "Saltar"
#. module: base
#: model:ir.module.module,shortdesc:base.module_event_sale
msgid "Events Sales"
-msgstr ""
+msgstr "Vendas dos Eventos"
#. module: base
#: model:res.country,name:base.ls
@@ -5269,7 +5401,7 @@ msgstr "Apenas se a conta bancária pertencer à sua empresa"
#: code:addons/base/ir/ir_fields.py:337
#, python-format
msgid "Unknown sub-field '%s'"
-msgstr ""
+msgstr "Sub-campo '%s' desconhecido"
#. module: base
#: model:res.country,name:base.za
@@ -5385,6 +5517,10 @@ msgid ""
"================\n"
"\n"
msgstr ""
+"\n"
+"Openerp Web API.\n"
+"================\n"
+"\n"
#. module: base
#: selection:res.request,state:0
@@ -6154,6 +6290,8 @@ msgid ""
"How many times the method is called,\n"
"a negative number indicates no limit."
msgstr ""
+"Quantas vezes o método é chamado,\n"
+"um número negativo sem limite."
#. module: base
#: field:res.partner.bank.type.field,bank_type_id:0
@@ -6280,7 +6418,7 @@ msgstr ""
#: code:addons/base/ir/ir_fields.py:182
#, python-format
msgid "'%s' does not seem to be a number for field '%%(field)s'"
-msgstr ""
+msgstr "'%s' não parece ser um número para o campo '%%(field)s'"
#. module: base
#: help:res.country.state,name:0
@@ -8013,7 +8151,7 @@ msgstr "Campo Personalizado"
#. module: base
#: model:ir.module.module,summary:base.module_account_accountant
msgid "Financial and Analytic Accounting"
-msgstr ""
+msgstr "Contabilidade Financeira e Analítica"
#. module: base
#: model:ir.module.module,shortdesc:base.module_portal_project
@@ -8352,7 +8490,7 @@ msgstr "Finlândia"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_shortcuts
msgid "Web Shortcuts"
-msgstr ""
+msgstr "Atalhos web"
#. module: base
#: view:res.partner:0
@@ -8558,6 +8696,8 @@ msgid ""
"Translation features are unavailable until you install an extra OpenERP "
"translation."
msgstr ""
+"As opções de tradução estão indisponíveis até que instale uma tradução extra "
+"do OpenERP."
#. module: base
#: model:ir.module.module,description:base.module_l10n_nl
@@ -8752,6 +8892,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 ""
+"Se o idioma seleccionado está carregado no sistema, todos os documentos "
+"relacionados com este contacto serão impressos neste idioma. Caso contrário "
+"serão impressos em Inglês."
#. module: base
#: model:ir.module.module,description:base.module_hr_evaluation
@@ -8860,7 +9003,7 @@ msgstr "Esloveno / slovenščina"
#. module: base
#: field:res.currency,position:0
msgid "Symbol Position"
-msgstr ""
+msgstr "Posição do Símbolo"
#. module: base
#: model:ir.module.module,description:base.module_l10n_de
@@ -10007,7 +10150,7 @@ msgstr "Agrupar por..."
#. module: base
#: view:base.module.update:0
msgid "Module Update Result"
-msgstr ""
+msgstr "Resultado da actualização do módulo"
#. module: base
#: model:ir.module.module,description:base.module_analytic_contract_hr_expense
@@ -10469,7 +10612,7 @@ msgstr ""
#. module: base
#: view:res.company:0
msgid "Click to set your company logo."
-msgstr ""
+msgstr "Clique para definir o logo da empresa."
#. module: base
#: view:res.lang:0
@@ -10792,6 +10935,8 @@ msgid ""
"One of the documents you are trying to access has been deleted, please try "
"again after refreshing."
msgstr ""
+"Um dos documentos a que tenta aceder foi removido, tente novamente depois de "
+"actualizar."
#. module: base
#: model:ir.model,name:base.model_ir_mail_server
@@ -11300,7 +11445,7 @@ msgstr "Ficheiro binário ou URL"
#: code:addons/base/ir/ir_fields.py:313
#, python-format
msgid "Invalid database id '%s' for the field '%%(field)s'"
-msgstr ""
+msgstr "Id de base de dados '%s' inválido para o campo '%%(field)s'"
#. module: base
#: view:res.lang:0
@@ -11444,7 +11589,7 @@ msgstr ""
#. 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
@@ -11819,7 +11964,7 @@ msgstr "ir.model.relation"
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_check_writing
msgid "Check Writing"
-msgstr ""
+msgstr "Verificar escrita"
#. module: base
#: model:ir.module.module,description:base.module_plugin_outlook
@@ -12387,7 +12532,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
@@ -13376,7 +13521,7 @@ msgstr "ir.sequence.type"
#. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_hr_payroll_account
msgid "Belgium - Payroll with Accounting"
-msgstr ""
+msgstr "Bélgica - Folha de pagamentos com Contabildade"
#. module: base
#: selection:base.language.export,format:0
@@ -15269,7 +15414,7 @@ msgstr "Chile"
#. module: base
#: model:ir.module.module,shortdesc:base.module_web_view_editor
msgid "View Editor"
-msgstr ""
+msgstr "Ver o Editor"
#. module: base
#: view:ir.cron:0
@@ -15349,6 +15494,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? Esta acção apaga todos os dados "
+"guardados neste momento por este módulo!"
#. module: base
#: field:ir.actions.server,mobile:0
diff --git a/openerp/addons/base/i18n/pt_BR.po b/openerp/addons/base/i18n/pt_BR.po
index 2ab16b56cce..034670d263a 100644
--- a/openerp/addons/base/i18n/pt_BR.po
+++ b/openerp/addons/base/i18n/pt_BR.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:51+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:01+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -26,19 +26,19 @@ msgid ""
" "
msgstr ""
"\n"
-"Módulo para Criar e Imprimir Cheques.\n"
-"=====================================\n"
+"Módulo para a Verificação da escrita e verificar impressão. \n"
+"========================================= =======\n"
" "
#. module: base
#: model:res.country,name:base.sh
msgid "Saint Helena"
-msgstr "Santa Helena"
+msgstr "Saint Helena"
#. module: base
#: view:ir.actions.report.xml:0
msgid "Other Configuration"
-msgstr "Outra Configuração"
+msgstr "Outra configuration"
#. module: base
#: selection:ir.property,type:0
@@ -52,8 +52,8 @@ msgid ""
"The second argument of the many2many field %s must be a SQL table !You used "
"%s, which is not a valid SQL table name."
msgstr ""
-"O segundo argumento do campo many2many %s deve ser uma tabela SQL! Você usou "
-"%s, que não é um nome válido de tabela SQL."
+"O segundo argumento do campo many2many% s deve ser uma tabela SQL! Você "
+"usou% s, que não é um nome de tabela SQL válido."
#. module: base
#: field:ir.ui.view,arch:0
@@ -64,17 +64,17 @@ msgstr "Ver Arquitetura"
#. module: base
#: model:ir.module.module,summary:base.module_sale_stock
msgid "Quotation, Sale Orders, Delivery & Invoicing Control"
-msgstr "Cotação, Pedidos de Venda, Entrega e Controle de Faturamento"
+msgstr "Cotação, Venda Encomendas, Entrega e Controle de Faturamento"
#. module: base
#: selection:ir.sequence,implementation:0
msgid "No gap"
-msgstr "Sem diferença"
+msgstr "No intervalo"
#. module: base
#: selection:base.language.install,lang:0
msgid "Hungarian / Magyar"
-msgstr "Húngaro"
+msgstr "Hungarian / Magyar"
#. module: base
#: selection:base.language.install,lang:0
@@ -19334,9 +19334,6 @@ msgstr "Inscrever-se"
#~ msgid "Portrait"
#~ msgstr "Retrato"
-#~ msgid "Configuration Progress"
-#~ msgstr "Progresso da configuração"
-
#~ msgid "Localisation"
#~ msgstr "Localização"
@@ -19440,9 +19437,6 @@ msgstr "Inscrever-se"
#~ msgid "Values for Event Type"
#~ msgstr "Valores para Tipos de evento"
-#~ msgid "Number padding"
-#~ msgstr "Preencher número"
-
#~ msgid "The kernel of OpenERP, needed for all installation."
#~ msgstr "O kernel do OpenERP, necessário para qualquer instalação."
@@ -20284,6 +20278,9 @@ msgstr "Inscrever-se"
#~ msgid "res.log"
#~ msgstr "res.log"
+#~ msgid "Configuration Progress"
+#~ msgstr "Progresso da Configuração"
+
#~ msgid "XML Id"
#~ msgstr "Id XML"
@@ -23386,3 +23383,4002 @@ msgstr "Inscrever-se"
#~ "desejos, condições especiais pontuais.\n"
#~ "\n"
#~ " "
+
+#~ msgid "Number padding"
+#~ msgstr "Número de preenchimento"
+
+#~ msgid ""
+#~ "\n"
+#~ "This module provides facility to the user to install mrp and sales modulesat "
+#~ "a time.\n"
+#~ "============================================================================="
+#~ "=======\n"
+#~ "\n"
+#~ "It is basically used when we want to keep track of production\n"
+#~ "orders generated from sales order.\n"
+#~ "It adds sales name and sales Reference on production order.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo fornece a facilidade para o usuário a instalar mrp e vendas "
+#~ "modulesat um tempo. \n"
+#~ "================================== "
+#~ "================================================== \n"
+#~ "É basicamente usado quando queremos manter o controle de produção \n"
+#~ "ordens geradas a partir de pedidos de vendas. \n"
+#~ "Acrescenta denominação de venda e referência de vendas em ordem de "
+#~ "produção.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows you to anonymize a database.\n"
+#~ "===============================================\n"
+#~ "\n"
+#~ "This module allows you to keep your data confidential for a given database.\n"
+#~ "This process is useful if you want to use the migration process and protect\n"
+#~ "your own or your customer’s confidential data. The principle is that you "
+#~ "run\n"
+#~ "an anonymization tool which will hide your confidential data(they are "
+#~ "replaced\n"
+#~ "by ‘XXX’ characters). Then you can send the anonymized database to the "
+#~ "migration\n"
+#~ "team. Once you get back your migrated database, you restore it and reverse "
+#~ "the\n"
+#~ "anonymization process to recover your previous data.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite que você anonymize um banco de dados. \n"
+#~ "========================================= ====== \n"
+#~ "Este módulo permite que você mantenha seus dados confidenciais para um "
+#~ "determinado banco de dados. \n"
+#~ "Este processo é útil se você quiser usar o processo de migração e proteger \n"
+#~ "o seu próprio ou dados confidenciais de seus clientes. O princípio é que "
+#~ "você executar \n"
+#~ "uma ferramenta de anonimização que irá esconder seus dados confidenciais "
+#~ "(eles são substituídos \n"
+#~ "por caracteres 'xxx'). Então você pode enviar o banco de dados anónimos para "
+#~ "a migração \n"
+#~ "equipe. Uma vez que você recebe de volta o seu banco de dados migrado, "
+#~ "restaurá-lo e reverter o \n"
+#~ "processo de anonimização para recuperar seus dados anteriores.\n"
+#~ " "
+
+#~ msgid ""
+#~ "Agrega una nomenclatura contable para Honduras. También incluye impuestos y "
+#~ "la moneda Lempira. -- Adds accounting chart for Honduras. It also includes "
+#~ "taxes and the Lempira currency"
+#~ msgstr ""
+#~ "Agrega una nomenclatura contable parágrafo Honduras. También incluye "
+#~ "impuestos y la moneda Lempira. - Adiciona gráfico representando Honduras. "
+#~ "Ele também inclui impostos ea moeda Lempira"
+
+#~ msgid ""
+#~ "\n"
+#~ "This is the module used by OpenERP SA to redirect customers to its partners, "
+#~ "based on geolocalization.\n"
+#~ "============================================================================="
+#~ "=========================\n"
+#~ "\n"
+#~ "You can geolocalize your opportunities by using this module.\n"
+#~ "\n"
+#~ "Use geolocalization when assigning opportunities to partners.\n"
+#~ "Determine the GPS coordinates according to the address of the partner.\n"
+#~ "The most appropriate partner can be assigned.\n"
+#~ "You can also use the geolocalization without using the GPS coordinates.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este é o módulo utilizado por OpenERP SA para redireccionar os clientes aos "
+#~ "seus parceiros, com base em \n"
+#~ "pode geolocalize suas oportunidades usando este módulo. \n"
+#~ "Use geolocalização ao atribuir oportunidades para parceiros. \n"
+#~ "Determine as coordenadas GPS de acordo com o endereço do parceiro. \n"
+#~ "o parceiro mais apropriado pode ser atribuída. \n"
+#~ "Você também pode usar a geolocalização, sem usar as coordenadas GPS.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "With this module, the WebDAV server for documents is activated.\n"
+#~ "===============================================================\n"
+#~ "\n"
+#~ "You can then use any compatible browser to remotely see the attachments of "
+#~ "OpenObject.\n"
+#~ "\n"
+#~ "After installation, the WebDAV server can be controlled by a [webdav] "
+#~ "section in the server's config.\n"
+#~ "Server Configuration Parameter:\n"
+#~ "\n"
+#~ " [webdav]\n"
+#~ " ; enable = True ; Serve webdav over the http(s) servers\n"
+#~ " ; vdir = webdav ; the directory that webdav will be served at\n"
+#~ " ; this default val means that webdav will be\n"
+#~ " ; on \"http://localhost:8069/webdav/\n"
+#~ " ; verbose = True ; Turn on the verbose messages of webdav\n"
+#~ " ; debug = True ; Turn on the debugging messages of webdav\n"
+#~ " ; since the messages are routed to the python logging, with\n"
+#~ " ; levels \"debug\" and \"debug_rpc\" respectively, you can leave\n"
+#~ " ; these options on\n"
+#~ "\n"
+#~ "Also implements IETF RFC 5785 for services discovery on a http server,\n"
+#~ "which needs explicit configuration in openerp-server.conf, too.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Com este módulo, o servidor WebDAV para documentos é ativado. \n"
+#~ "====================================== ========================= \n"
+#~ "Você pode então usar qualquer navegador compatível para ver remotamente os "
+#~ "anexos de OpenObject. \n"
+#~ "Após a instalação, o servidor WebDAV pode ser controlada por . uma [WebDAV] "
+#~ "seção de configuração do servidor \n"
+#~ "de configuração do servidor de parâmetro:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " [WebDAV]\n"
+#~ " , Enable = true; Sirva WebDAV na (s) servidor http\n"
+#~ " , Vdir = WebDAV, o diretório que WebDAV será servido no\n"
+#~ " , O default val significa que o WebDAV será\n"
+#~ " , Em \"http://localhost:8069/webdav/\n"
+#~ " , Verbose = True; Ligue as mensagens detalhadas do WebDAV\n"
+#~ " , Debug = True; Ligue as mensagens de depuração do WebDAV\n"
+#~ " , Uma vez que as mensagens são encaminhadas para o registro python, com\n"
+#~ " , Os níveis de \"debug\" e \"debug_rpc\", respectivamente, você pode "
+#~ "deixar\n"
+#~ " , Essas opções \n"
+#~ "também implementa IETF RFC 5785 para a descoberta de serviços em um servidor "
+#~ "http, \n"
+#~ "que precisa de configuração explícita no OpenERP-server.conf também.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Installer for extra Hidden like lunch, survey, idea, share, etc.\n"
+#~ "===============================================================\n"
+#~ "\n"
+#~ "Makes the Extra Hidden Configuration available from where you can install\n"
+#~ "modules like share, lunch, pad, idea, survey and subscription.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Instalador de extras escondidos, como o almoço, pesquisa, ideia, parte, etc "
+#~ "\n"
+#~ "=================================== ============================ \n"
+#~ "Faz a configuração Invisível extra disponível a partir de onde você pode "
+#~ "instalar \n"
+#~ "módulos como partes, almoço, almofada, idéia, pesquisa e assinatura.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module is used for surveying.\n"
+#~ "==================================\n"
+#~ "\n"
+#~ "It depends on the answers or reviews of some questions by different users.\n"
+#~ "A survey may have multiple pages. Each page may contain multiple questions "
+#~ "and each question may have multiple answers.\n"
+#~ "Different users may give different answers of question and according to that "
+#~ "survey is done.\n"
+#~ "Partners are also sent mails with user name and password for the invitation "
+#~ "of the survey\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo é utilizado para o levantamento. \n"
+#~ "================================== \n"
+#~ "Depende das respostas ou opiniões de alguns questões por diferentes "
+#~ "usuários. \n"
+#~ "Uma pesquisa pode ter várias páginas. Cada página pode conter várias "
+#~ "perguntas e cada pergunta pode ter várias respostas. \n"
+#~ "Diferentes usuários podem dar respostas diferentes da questão e de acordo "
+#~ "com esse levantamento é feito. \n"
+#~ "parceiros também são enviados e-mails com o nome de usuário e senha para o "
+#~ "convite da pesquisa\n"
+#~ " "
+
+#~ msgid ""
+#~ "Generate your Invoices from Expenses, Timesheet Entries, ...\n"
+#~ "Module to generate invoices based on costs (human resources, expenses, "
+#~ "...).\n"
+#~ "============================================================================"
+#~ "\n"
+#~ "\n"
+#~ "You can define price lists in analytic account, make some theoretical "
+#~ "revenue\n"
+#~ "reports, etc."
+#~ msgstr ""
+#~ "Gerar suas faturas de despesas, as entradas de quadro de horários, ... \n"
+#~ "Módulo para gerar faturas com base nos custos (recursos humanos, despesas, "
+#~ "...). \n"
+#~ "==================== ================================================== "
+#~ "====== \n"
+#~ "Você pode definir listas de preços em conta analítica, fazer algumas "
+#~ "receitas teóricas \n"
+#~ "relatórios, etc"
+
+#~ msgid ""
+#~ "This is the latest UK OpenERP localisation necesary to run OpenERP "
+#~ "accounting for UK SME's with:\n"
+#~ " - a CT600-ready chart of accounts\n"
+#~ " - VAT100-ready tax structure\n"
+#~ " - InfoLogic UK counties listing\n"
+#~ " - a few other adaptations"
+#~ msgstr ""
+#~ "Esta é a última Reino Unido OpenERP localização necessários para executar "
+#~ "contabilidade OpenERP para o Reino Unido PME com:\n"
+#~ " - Um gráfico CT600-pronto de contas\n"
+#~ " - Estrutura tributária VAT100-pronto\n"
+#~ " - Infologic Reino Unido condados lista\n"
+#~ " - Algumas outras adaptações"
+
+#~ msgid ""
+#~ "\n"
+#~ "This improve OpenERP multi-currency handling in analytic accountiong, "
+#~ "overall for multi-company.\n"
+#~ "\n"
+#~ "This module is based on the work made in all c2c_multicost* available on the "
+#~ "v5.0 stable version and\n"
+#~ "allow you to shar analytic account between company (even if currency differs "
+#~ "in each one).\n"
+#~ "\n"
+#~ "What has been done here:\n"
+#~ "\n"
+#~ " * Adapt the owner of analytic line (= to company that own the general "
+#~ "account associated with en analytic line)\n"
+#~ " * Add multi-currency on analytic lines (similar to financial accounting)\n"
+#~ " * Correct all \"costs\" indicators into analytic account to base them on "
+#~ "the right currency (owner's company)\n"
+#~ " * By default, nothing change for single company implementation.\n"
+#~ "\n"
+#~ "As a result, we can now really share the same analytic account between "
+#~ "companies that doesn't have the same \n"
+#~ "currency. This setup becomes True, Enjoy !\n"
+#~ "\n"
+#~ "- Company A : EUR\n"
+#~ "- Company B : CHF\n"
+#~ "\n"
+#~ "- Analytic Account A : USD, owned by Company A\n"
+#~ " - Analytic Account B : CHF, owned by Company A\n"
+#~ " - Analytic Account C : EUR, owned by Company B\n"
+#~ "\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Esta melhorar OpenERP manipulação multi-moeda em accountiong analítico geral "
+#~ "para multi-empresa. \n"
+#~ "Este módulo é baseado no trabalho feito em todos c2c_multicost * disponível "
+#~ "na versão v5.0 estável e \n"
+#~ "permitir que você shar conta analítica entre a empresa (mesmo se a moeda "
+#~ "difere em cada um). \n"
+#~ "que tem sido feito aqui:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " * Adaptar o proprietário da linha analítica (= para a própria empresa que "
+#~ "a conta geral associada com a linha analítica en)\n"
+#~ " * Adicione multi-moeda em linhas analíticas (semelhante à contabilidade "
+#~ "financeira)\n"
+#~ " * Corrija todos os indicadores de \"custos\" em conta analítica baseá-las "
+#~ "sobre a moeda direito (empresa do proprietário)\n"
+#~ " * Por padrão, não muda nada para a implementação única empresa. \n"
+#~ "Como resultado, agora podemos realmente compartilhar a mesma conta analítica "
+#~ "entre as empresas que não têm o mesmo\n"
+#~ " \n"
+#~ "moeda. Esta configuração torna-se verdade, Divirta-se! \n"
+#~ "- Empresa A: EUR \n"
+#~ "- Empresa B: CHF \n"
+#~ "- Conta Analítica A: USD, de propriedade da empresa A\n"
+#~ "\n"
+#~ "\n"
+#~ " - Analytic Conta B: CHF, de propriedade da empresa A\n"
+#~ " - Analytic Conta C: EUR, de propriedade da Empresa B\n"
+#~ "\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows you to define what is the default function of a specific "
+#~ "user on a given account.\n"
+#~ "============================================================================="
+#~ "=======================\n"
+#~ "\n"
+#~ "This is mostly used when a user encodes his timesheet: the values are "
+#~ "retrieved and the fields are auto-filled. But the possibility to change "
+#~ "these values is still available.\n"
+#~ "\n"
+#~ "Obviously if no data has been recorded for the current account, the default "
+#~ "value is given as usual by the employee data so that this module is "
+#~ "perfectly compatible with older configurations.\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite que você defina o que é a função padrão de um usuário "
+#~ "específico em um determinado \n"
+#~ "é usado principalmente quando um usuário codifica seu quadro de horários: os "
+#~ "valores são recuperados e os campos serão preenchidos-auto. Mas a "
+#~ "possibilidade de alterar esses valores ainda está disponível. \n"
+#~ "Obviamente, se nenhum dado foi registrado para a conta corrente, o valor "
+#~ "padrão é dado como de costume, os dados do funcionário para que este módulo "
+#~ "é perfeitamente compatível com as configurações antigas.\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows to use several analytic plans, according to the general "
+#~ "journal.\n"
+#~ "============================================================================="
+#~ "======\n"
+#~ "\n"
+#~ "Here multiple analytic lines are created when the invoice or the entries\n"
+#~ "are confirmed.\n"
+#~ "\n"
+#~ "For example, you can define the following analytic structure:\n"
+#~ " Projects\n"
+#~ " Project 1\n"
+#~ " SubProj 1.1\n"
+#~ " SubProj 1.2\n"
+#~ "\n"
+#~ " Project 2\n"
+#~ " Salesman\n"
+#~ " Eric\n"
+#~ " Fabien\n"
+#~ "\n"
+#~ "Here, we have two plans: Projects and Salesman. An invoice line must\n"
+#~ "be able to write analytic entries in the 2 plans: SubProj 1.1 and\n"
+#~ "Fabien. The amount can also be split. The following example is for\n"
+#~ "an invoice that touches the two subproject and assigned to one salesman:\n"
+#~ "\n"
+#~ "Plan1:\n"
+#~ " SubProject 1.1 : 50%\n"
+#~ " SubProject 1.2 : 50%\n"
+#~ "Plan2:\n"
+#~ " Eric: 100%\n"
+#~ "\n"
+#~ "So when this line of invoice will be confirmed, it will generate 3 analytic "
+#~ "lines,\n"
+#~ "for one account entry.\n"
+#~ "The analytic plan validates the minimum and maximum percentage at the time "
+#~ "of creation\n"
+#~ "of distribution models.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite o uso de vários planos de análise, de acordo com a "
+#~ "revista geral. \n"
+#~ "=================================== "
+#~ "================================================ \n"
+#~ "Aqui múltipla linhas analíticas são criados quando a factura ou as entradas "
+#~ "\n"
+#~ "são confirmadas. \n"
+#~ ", por exemplo, você pode definir a seguinte estrutura analítica:\n"
+#~ "\n"
+#~ "\n"
+#~ " Projetos\n"
+#~ " Projeto 1\n"
+#~ " SubProj 1.1\n"
+#~ " SubProj 1.2\n"
+#~ "\n"
+#~ " Projeto 2\n"
+#~ " Vendedor\n"
+#~ " Eric\n"
+#~ " Fabien \n"
+#~ "Aqui, temos dois planos: Projetos e vendedor. Uma linha de fatura deve \n"
+#~ "ser capaz de escrever entradas analíticas nos dois planos: SubProj 1.1 e \n"
+#~ "Fabien. A quantidade também pode ser dividida. O exemplo a seguir é de \n"
+#~ "uma fatura que toca a dois subprojetos e atribuído a um vendedor: \n"
+#~ "Plan1:\n"
+#~ "\n"
+#~ "\n"
+#~ " SubProject 1.1: 50%\n"
+#~ " SubProject 1.2: 50% \n"
+#~ "plan2:\n"
+#~ " Eric: 100% \n"
+#~ "Então, quando essa linha de factura será confirmada, ele irá gerar três "
+#~ "linhas de análise, \n"
+#~ "para uma entrada conta. \n"
+#~ "O plano analítico valida o percentual mínimo e máximo no momento da criação "
+#~ "\n"
+#~ "de modelos de distribuição.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Chart of accounts for Costa Rica.\n"
+#~ "=================================\n"
+#~ "\n"
+#~ "Includes:\n"
+#~ "* account.type\n"
+#~ "* account.account.template\n"
+#~ "* account.tax.template\n"
+#~ "* account.tax.code.template\n"
+#~ "* account.chart.template\n"
+#~ "\n"
+#~ "Everything is in English with Spanish translation. Further translations are "
+#~ "welcome, please go to\n"
+#~ "http://translations.launchpad.net/openerp-costa-rica\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ ". Plano de contas para a Costa Rica \n"
+#~ "================================= \n"
+#~ "Inclui: \n"
+#~ "* account.type \n"
+#~ "* account.account . template \n"
+#~ "* account.tax.template \n"
+#~ "* account.tax.code.template \n"
+#~ "* account.chart.template \n"
+#~ "Tudo está em Inglês, com tradução espanhola. Outras traduções são bem-"
+#~ "vindas, por favor, vá até \n"
+#~ "http://translations.launchpad.net/openerp-costa-rica\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module is for modifying account analytic view to show important data to "
+#~ "project manager of services companies.\n"
+#~ "============================================================================="
+#~ "======================================\n"
+#~ "\n"
+#~ "Adds menu to show relevant information to each manager.\n"
+#~ "You can also view the report of account analytic summary\n"
+#~ "user-wise as well as month wise.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo é para modificar a conta de vista analítico para mostrar dados "
+#~ "importantes para o gerente de projeto de serviços \n"
+#~ "menu para mostrar as informações relevantes para cada gerente. \n"
+#~ "Você também pode visualizar o relatório de conta de resumo analítico \n"
+#~ "user-sábio, bem como mês sábio.\n"
+
+#~ msgid ""
+#~ "Financial and accounting asset management.\n"
+#~ " This Module manages the assets owned by a company or an individual. It "
+#~ "will keep track of depreciation's occurred on\n"
+#~ " those assets. And it allows to create Move's of the depreciation lines.\n"
+#~ " "
+#~ msgstr ""
+#~ "Gestão financeira e patrimonial contábil.\n"
+#~ " Este módulo gere os activos detidos por uma empresa ou um indivíduo. Ele "
+#~ "irá acompanhar está ocorreu depreciação\n"
+#~ " esses ativos. E isso permite criar movimento de uma das linhas de "
+#~ "depreciação.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This is the module to manage the accounting chart for Mexico in OpenERP.\n"
+#~ "========================================================================\n"
+#~ "\n"
+#~ "Mexican accounting chart and localization.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este é o módulo para gerenciar o gráfico representando o México no OpenERP. "
+#~ "\n"
+#~ "==================================== ==================================== \n"
+#~ "gráfico contabilidade mexicano e localização.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Generic Payroll system.\n"
+#~ "=======================\n"
+#~ "\n"
+#~ " * Employee Details\n"
+#~ " * Employee Contracts\n"
+#~ " * Passport based Contract\n"
+#~ " * Allowances / Deductions\n"
+#~ " * Allow to configure Basic / Grows / Net Salary\n"
+#~ " * Employee Payslip\n"
+#~ " * Monthly Payroll Register\n"
+#~ " * Integrated with Holiday Management\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Sistema de folha de pagamento genérico. \n"
+#~ "=======================\n"
+#~ "\n"
+#~ " * Detalhes do Empregado\n"
+#~ " * Contratos de trabalho\n"
+#~ " * Contrato baseado Passaporte\n"
+#~ " * Subsídios / Deduções\n"
+#~ " * Permite configurar Salário básico / Cresce / Net\n"
+#~ " * Folha de pagamento do empregado\n"
+#~ " * Mensal da folha de pagamento Registrar\n"
+#~ " * Integrado com a Gestão de férias\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ " Module to import CODA bank statements.\n"
+#~ "\n"
+#~ " Supported are CODA flat files in V2 format from Belgian bank accounts.\n"
+#~ " - CODA v1 support.\n"
+#~ " - CODA v2.2 support.\n"
+#~ " - Foreign Currency support.\n"
+#~ " - Support for all data record types (0, 1, 2, 3, 4, 8, 9).\n"
+#~ " - Parsing & logging of all Transaction Codes and Structured Format "
+#~ "Communications.\n"
+#~ " - Automatic Financial Journal assignment via CODA configuration "
+#~ "parameters.\n"
+#~ " - Support for multiple Journals per Bank Account Number.\n"
+#~ " - Support for multiple statements from different bank accounts in a "
+#~ "single CODA file.\n"
+#~ " - Support for 'parsing only' CODA Bank Accounts (defined as type='info' "
+#~ "in the CODA Bank Account configuration records).\n"
+#~ " - Multi-language CODA parsing, parsing configuration data provided for "
+#~ "EN, NL, FR.\n"
+#~ "\n"
+#~ " The machine readable CODA Files are parsed and stored in human readable "
+#~ "format in CODA Bank Statements.\n"
+#~ " Also Bank Statements are generated containing a subset of the CODA "
+#~ "information (only those transaction lines\n"
+#~ " that are required for the creation of the Financial Accounting "
+#~ "records).\n"
+#~ " The CODA Bank Statement is a 'read-only' object, hence remaining a "
+#~ "reliable representation of the original CODA file\n"
+#~ " whereas the Bank Statement will get modified as required by accounting "
+#~ "business processes.\n"
+#~ "\n"
+#~ " CODA Bank Accounts configured as type 'Info' will only generate CODA "
+#~ "Bank Statements.\n"
+#~ "\n"
+#~ " A removal of one object in the CODA processing results in the removal of "
+#~ "the associated objects.\n"
+#~ " The removal of a CODA File containing multiple Bank Statements will also "
+#~ "remove those associated\n"
+#~ " statements.\n"
+#~ "\n"
+#~ " The following reconciliation logic has been implemented in the CODA "
+#~ "processing:\n"
+#~ " 1) The Company's Bank Account Number of the CODA statement is compared "
+#~ "against the Bank Account Number field\n"
+#~ " of the Company's CODA Bank Account configuration records (whereby "
+#~ "bank accounts defined in type='info' configuration records are ignored).\n"
+#~ " If this is the case an 'internal transfer' transaction is generated "
+#~ "using the 'Internal Transfer Account' field of the CODA File Import wizard.\n"
+#~ " 2) As a second step the 'Structured Communication' field of the CODA "
+#~ "transaction line is matched against\n"
+#~ " the reference field of in- and outgoing invoices (supported : Belgian "
+#~ "Structured Communication Type).\n"
+#~ " 3) When the previous step doesn't find a match, the transaction "
+#~ "counterparty is located via the\n"
+#~ " Bank Account Number configured on the OpenERP Customer and Supplier "
+#~ "records.\n"
+#~ " 4) In case the previous steps are not successful, the transaction is "
+#~ "generated by using the 'Default Account\n"
+#~ " for Unrecognized Movement' field of the CODA File Import wizard in "
+#~ "order to allow further manual processing.\n"
+#~ "\n"
+#~ " In stead of a manual adjustment of the generated Bank Statements, you "
+#~ "can also re-import the CODA\n"
+#~ " after updating the OpenERP database with the information that was "
+#~ "missing to allow automatic reconciliation.\n"
+#~ "\n"
+#~ " Remark on CODA V1 support:\n"
+#~ " In some cases a transaction code, transaction category or structured "
+#~ "communication code has been given a new or clearer description in CODA V2.\n"
+#~ " The description provided by the CODA configuration tables is based upon "
+#~ "the CODA V2.2 specifications.\n"
+#~ " If required, you can manually adjust the descriptions via the CODA "
+#~ "configuration menu.\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ " Módulo de importar extratos bancários CODA.\n"
+#~ "\n"
+#~ " Há suporte para os arquivos simples CODA em formato V2 de contas "
+#~ "bancárias belgas.\n"
+#~ " - Apoio CODA v1.\n"
+#~ " - CODA suporte v2.2.\n"
+#~ " - Apoio de Moeda Estrangeira.\n"
+#~ " - Suporte para todos os tipos de registo de dados (0, 1, 2, 3, 4, 8, "
+#~ "9).\n"
+#~ " - Analisando e registro de todos os códigos de transação e Comunicações "
+#~ "formato estruturado.\n"
+#~ " - Atribuição Jornal Financial automática via parâmetros de configuração "
+#~ "CODA.\n"
+#~ " - Suporte para várias revistas por Número de Conta Bancária.\n"
+#~ " - Suporte para múltiplos comandos de diferentes contas bancárias em um "
+#~ "único arquivo CODA.\n"
+#~ " - Suporte para \"analisar apenas\" contas bancárias CODA (definidos como "
+#~ "type = 'info' no banco de registros de configuração de conta CODA).\n"
+#~ " - Multi-linguagem de análise CODA, análise de dados de configuração "
+#~ "previstas EN, NL, FR.\n"
+#~ "\n"
+#~ " As máquinas podem ser lidos arquivos CODA são analisados ​​e armazenados "
+#~ "em formato legível em CODA extratos bancários.\n"
+#~ " Também extratos bancários são gerados contendo um subconjunto das "
+#~ "informações CODA (apenas as linhas de transacção\n"
+#~ " que são necessários para a criação dos registros de contabilidade "
+#~ "financeira).\n"
+#~ " O extrato bancário CODA é um \"read-only\" do objeto, portanto, "
+#~ "permanecendo uma representação confiável do arquivo CODA originais\n"
+#~ " enquanto que o extrato bancário vai se modificam conforme exigido por "
+#~ "processos de negócio de contabilidade.\n"
+#~ "\n"
+#~ " CODA contas bancárias configurado como tipo 'Info' só vai gerar CODA "
+#~ "extratos bancários.\n"
+#~ "\n"
+#~ " A remoção de um objecto nos resultados do processamento CODA na remoção "
+#~ "dos objectos associados.\n"
+#~ " A remoção de um arquivo CODA que contém vários extratos bancários também "
+#~ "irá remover aqueles associados\n"
+#~ " declarações.\n"
+#~ "\n"
+#~ " A seguir a lógica da reconciliação foi implementado no processamento "
+#~ "CODA:\n"
+#~ " 1) número de conta bancária da declaração CODA da Companhia é comparado "
+#~ "com o campo Número da Conta Bancária\n"
+#~ " de CODA Banco registros de configuração de conta da Companhia (em que "
+#~ "contas bancárias definidas no tipo de registros de configuração = 'info' são "
+#~ "ignoradas).\n"
+#~ " Se este for o caso transação uma \"transferência interna 'é gerado "
+#~ "usando o campo do assistente Importar Arquivo CODA\" Conta Transferência "
+#~ "Interna.\n"
+#~ " 2) Numa segunda etapa de campo da linha de transação CODA a «Comunicação "
+#~ "Structured 'é aplicado em\n"
+#~ " o campo de referência de facturas em-e de saída (suportado: Belgian "
+#~ "Structured Tipo de Comunicação).\n"
+#~ " 3) Quando a etapa anterior não encontrar uma correspondência, a "
+#~ "contraparte transação é localizado através do\n"
+#~ " Número de Conta Bancária configurado no cliente OpenERP e registros "
+#~ "de fornecedores.\n"
+#~ " 4) No caso de as etapas anteriores não são bem sucedidos, a transação é "
+#~ "gerada usando o \"Conta Padrão\n"
+#~ " para o campo de movimento não reconhecido 'do assistente de "
+#~ "importação do arquivo CODA, a fim de permitir o processamento de mais "
+#~ "manual.\n"
+#~ "\n"
+#~ " Em vez de um ajuste manual dos extratos bancários gerados, você também "
+#~ "pode voltar a importar o CODA\n"
+#~ " depois de atualizar o banco de dados OpenERP com a informação que "
+#~ "faltava para permitir a reconciliação automática.\n"
+#~ "\n"
+#~ " Observação em apoio CODA V1:\n"
+#~ " Em alguns casos, um código de transação, categoria de transação ou "
+#~ "código de comunicação estruturada tem sido dada uma descrição nova ou mais "
+#~ "clara no CODA V2.\n"
+#~ " A descrição fornecida pelas tabelas de configuração coda é baseado nas "
+#~ "especificações CODA V2.2.\n"
+#~ " Se necessário, você pode ajustar manualmente as descrições através do "
+#~ "menu de configuração CODA.\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This is the base module to manage the accounting chart for Belgium in "
+#~ "OpenERP.\n"
+#~ "============================================================================="
+#~ "=\n"
+#~ "\n"
+#~ "After installing this module, the Configuration wizard for accounting is "
+#~ "launched.\n"
+#~ " * We have the account templates which can be helpful to generate Charts "
+#~ "of Accounts.\n"
+#~ " * On that particular wizard, you will be asked to pass the name of the "
+#~ "company, the chart template to follow, the no. of digits to generate, the "
+#~ "code for your account and bank account, currency to create journals.\n"
+#~ "\n"
+#~ "Thus, the pure copy of Chart Template is generated.\n"
+#~ "\n"
+#~ "Wizards provided by this module:\n"
+#~ " * Partner VAT Intra: Enlist the partners with their related VAT and "
+#~ "invoiced amounts.Prepares an XML file format.\n"
+#~ " Path to access : Accounting/Reporting//Legal Statements/Belgium "
+#~ "Statements/Partner VAT Listing\n"
+#~ " * Periodical VAT Declaration: Prepares an XML file for Vat Declaration "
+#~ "of the Main company of the User currently Logged in.\n"
+#~ " Path to access : Accounting/Reporting/Legal Statements/Belgium "
+#~ "Statements/Periodical VAT Declaration\n"
+#~ " * Annual Listing Of VAT-Subjected Customers: Prepares an XML file for "
+#~ "Vat Declaration of the Main company of the User currently Logged in.Based on "
+#~ "Fiscal year\n"
+#~ " Path to access : Accounting/Reporting/Legal Statements/Belgium "
+#~ "Statements/Annual Listing Of VAT-Subjected Customers\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este é o módulo base para gerenciar o gráfico representando a Bélgica em "
+#~ "OpenERP. \n"
+#~ "=================================== "
+#~ "=========================================== \n"
+#~ "Depois de instalar este módulo, a configuração assistente de contabilidade é "
+#~ "lançada.\n"
+#~ "\n"
+#~ " * Temos o relato de modelos que podem ser úteis para gerar Planos de "
+#~ "Contas.\n"
+#~ " * Por que assistente particular, você será solicitado para passar o nome "
+#~ "da empresa, o modelo de gráfico a seguir, o não. . dos dígitos para gerar, o "
+#~ "código para a sua conta e conta bancária, moeda para criar revistas \n"
+#~ "Assim, é gerada a cópia pura do Modelo Gráfico. \n"
+#~ "Assistentes fornecidas por este módulo:\n"
+#~ "\n"
+#~ "\n"
+#~ " * Sócio IVA Intra: Conte com os parceiros com o IVA relacionado e "
+#~ "facturados amounts.Prepares um formato de arquivo XML.\n"
+#~ " Caminho para o acesso: Contabilidade / Relatórios / / Legal "
+#~ "Demonstrações / Bélgica Demonstrações / parceiro Listagem IVA\n"
+#~ " * Declaração do IVA Periódico: Prepara um arquivo XML para declaração de "
+#~ "IVA da empresa principal do usuário atualmente conectado pol\n"
+#~ " Caminho para o acesso: Contabilidade / Relatórios / "
+#~ "Demonstrações Legais / Bélgica Declarações / Declaração Periódica de IVA\n"
+#~ " * Relação Anual de clientes IVA Sujeitos: Prepara um arquivo XML para "
+#~ "declaração de IVA da empresa principal do usuário atualmente conectado "
+#~ "in.Based no ano Fiscal\n"
+#~ " Caminho para o acesso: Contabilidade / Relatórios / "
+#~ "Demonstrações Legal / Bélgica / Demonstrações lista anual dos Clientes IVA "
+#~ "Sujeitos\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows accountants to manage analytic and crossovered budgets.\n"
+#~ "==========================================================================\n"
+#~ "\n"
+#~ "Once the Master Budgets and the Budgets are defined (in "
+#~ "Accounting/Budgets/),\n"
+#~ "the Project Managers can set the planned amount on each Analytic Account.\n"
+#~ "\n"
+#~ "The accountant has the possibility to see the total of amount planned for "
+#~ "each\n"
+#~ "Budget and Master Budget in order to ensure the total planned is not\n"
+#~ "greater/lower than what he planned for this Budget/Master Budget. Each list "
+#~ "of\n"
+#~ "record can also be switched to a graphical view of it.\n"
+#~ "\n"
+#~ "Three reports are available:\n"
+#~ " 1. The first is available from a list of Budgets. It gives the "
+#~ "spreading, for these Budgets, of the Analytic Accounts per Master Budgets.\n"
+#~ "\n"
+#~ " 2. The second is a summary of the previous one, it only gives the "
+#~ "spreading, for the selected Budgets, of the Analytic Accounts.\n"
+#~ "\n"
+#~ " 3. The last one is available from the Analytic Chart of Accounts. It "
+#~ "gives the spreading, for the selected Analytic Accounts, of the Master "
+#~ "Budgets per Budgets.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite aos contabilistas para gerenciar orçamentos analíticos e "
+#~ "crossovered. \n"
+#~ "======================================= =================================== "
+#~ "\n"
+#~ "Uma vez que os Orçamentos Mestres e os orçamentos são definidos (em "
+#~ "Contabilidade / Orçamentos / ), \n"
+#~ "os gerentes de projeto pode definir o montante previsto em cada Conta "
+#~ "Analítica. \n"
+#~ "O contador tem a possibilidade de ver o total do montante previsto para cada "
+#~ "\n"
+#~ "orçamento e Orçamento Mestre, a fim de garantir a total previsto não é \n"
+#~ "maior / menor do que o que ele planejou para este Orçamento / Budget Mestre. "
+#~ "Cada lista de \n"
+#~ "registro também pode ser ligado a uma visão gráfica do mesmo. \n"
+#~ "Três relatórios estão disponíveis:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " 1. O primeiro está disponível a partir de uma lista de Orçamentos. Dá a "
+#~ "divulgação, por esses orçamentos, das contas analíticas por Orçamentos "
+#~ "Mestre.\n"
+#~ "\n"
+#~ " 2. O segundo é um resumo do que o anterior, só dá a divulgação, para os "
+#~ "Orçamentos selecionadas, das contas analíticas.\n"
+#~ "\n"
+#~ " 3. O último está disponível a partir do gráfico analítico de contas. Dá "
+#~ "a divulgação, para as Contas Analíticas selecionados, dos Orçamentos mestre "
+#~ "por Orçamentos.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "This module supplements the Warehouse application by effectively "
+#~ "implementing Push and Pull inventory flows.\n"
+#~ "============================================================================="
+#~ "===============================\n"
+#~ "\n"
+#~ "Typically this could be used to:\n"
+#~ " * Manage product manufacturing chains\n"
+#~ " * Manage default locations per product\n"
+#~ " * Define routes within your warehouse according to business needs, such "
+#~ "as:\n"
+#~ " - Quality Control\n"
+#~ " - After Sales Services\n"
+#~ " - Supplier Returns\n"
+#~ "\n"
+#~ " * Help rental management, by generating automated return moves for "
+#~ "rented products\n"
+#~ "\n"
+#~ "Once this module is installed, an additional tab appear on the product form, "
+#~ "where you can add\n"
+#~ "Push and Pull flow specifications. The demo data of CPU1 product for that "
+#~ "push/pull :\n"
+#~ "\n"
+#~ "Push flows\n"
+#~ "----------\n"
+#~ "Push flows are useful when the arrival of certain products in a given "
+#~ "location should always\n"
+#~ "be followed by a corresponding move to another location, optionally after a "
+#~ "certain delay.\n"
+#~ "The original Warehouse application already supports such Push flow "
+#~ "specifications on the\n"
+#~ "Locations themselves, but these cannot be refined per-product.\n"
+#~ "\n"
+#~ "A push flow specification indicates which location is chained with which "
+#~ "location, and with\n"
+#~ "what parameters. As soon as a given quantity of products is moved in the "
+#~ "source location,\n"
+#~ "a chained move is automatically foreseen according to the parameters set on "
+#~ "the flow specification\n"
+#~ "(destination location, delay, type of move, journal, etc.) The new move can "
+#~ "be automatically\n"
+#~ "processed, or require a manual confirmation, depending on the parameters.\n"
+#~ "\n"
+#~ "Pull flows\n"
+#~ "----------\n"
+#~ "Pull flows are a bit different from Push flows, in the sense that they are "
+#~ "not related to\n"
+#~ "the processing of product moves, but rather to the processing of procurement "
+#~ "orders.\n"
+#~ "What is being pulled is a need, not directly products.\n"
+#~ "A classical example of Pull flow is when you have an Outlet company, with a "
+#~ "parent Company\n"
+#~ "that is responsible for the supplies of the Outlet.\n"
+#~ "\n"
+#~ " [ Customer ] <- A - [ Outlet ] <- B - [ Holding ] <~ C ~ [ Supplier ]\n"
+#~ "\n"
+#~ "When a new procurement order (A, coming from the confirmation of a Sale "
+#~ "Order for example) arrives\n"
+#~ "in the Outlet, it is converted into another procurement (B, via a Pull flow "
+#~ "of type 'move')\n"
+#~ "requested from the Holding. When procurement order B is processed by the "
+#~ "Holding company, and\n"
+#~ "if the product is out of stock, it can be converted into a Purchase Order "
+#~ "(C) from the Supplier\n"
+#~ "(Pull flow of type Purchase). The result is that the procurement order, the "
+#~ "need, is pushed\n"
+#~ "all the way between the Customer and Supplier.\n"
+#~ "\n"
+#~ "Technically, Pull flows allow to process procurement orders differently, not "
+#~ "only depending on\n"
+#~ "the product being considered, but also depending on which location holds the "
+#~ "\"need\" for that\n"
+#~ "product (i.e. the destination location of that procurement order).\n"
+#~ "\n"
+#~ "Use-Case\n"
+#~ "--------\n"
+#~ "\n"
+#~ "You can use the demo data as follow:\n"
+#~ " CPU1: Sell some CPU1 from Shop 1 and run the scheduler\n"
+#~ " - Warehouse: delivery order, Shop 1: reception\n"
+#~ " CPU3:\n"
+#~ " - When receiving the product, it goes to Quality Control location then "
+#~ "stored to shelf 2.\n"
+#~ " - When delivering the customer: Pick List -> Packing -> Delivery Order "
+#~ "from Gate A\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo complementa o aplicativo Warehouse através de uma eficaz "
+#~ "implementação de Push and Pull inventário \n"
+#~ "isso pode ser usado para:\n"
+#~ "\n"
+#~ " * Gerenciar as cadeias de fabricação de produtos\n"
+#~ " * Gerenciar locais padrão por produto\n"
+#~ " * Definir rotas dentro do seu armazém de acordo com as necessidades do "
+#~ "negócio, tais como:\n"
+#~ " - Controle de Qualidade\n"
+#~ " - Serviço Pós-Venda\n"
+#~ " - Fornecedor Returns\n"
+#~ "\n"
+#~ " * Ajuda de administração de aluguel, gerando movimentos de retorno "
+#~ "automatizados para produtos alugados \n"
+#~ "Uma vez que este módulo é instalado, uma guia adicional aparecer na forma de "
+#~ "produto, onde você pode adicionar \n"
+#~ "Push and Pull especificações de fluxo. Os dados de demonstração de CPU1 "
+#~ "produto para que push / pull: \n"
+#~ "fluxos de pressão \n"
+#~ "---------- \n"
+#~ "fluxos de pressão são úteis quando a chegada de certos produtos em um "
+#~ "determinado local deve sempre \n"
+#~ "ser seguido por um movimento correspondente para outro local, opcionalmente "
+#~ "após um certo atraso. \n"
+#~ "A aplicação Warehouse original já suporta tais especificações de fluxo de "
+#~ "empurrar a \n"
+#~ "si Locations, mas estes não podem ser refinados por produto. \n"
+#~ "Uma especificação de fluxo de pressão indica que a localização é preso com "
+#~ "que a localização, e com \n"
+#~ "quais parâmetros. Assim que uma determinada quantidade de produtos é movida "
+#~ "no local de origem, \n"
+#~ "um movimento encadeado é automaticamente previsto de acordo com os "
+#~ "parâmetros definidos na especificação de fluxo \n"
+#~ "(local de destino, o atraso, o tipo de movimento, jornal, etc) O novo "
+#~ "movimento pode ser automaticamente \n"
+#~ "processado, ou exigir uma confirmação manual, dependendo dos parâmetros. \n"
+#~ "Puxe fluxos \n"
+#~ "---------- \n"
+#~ "fluxos Pull são um pouco diferentes dos fluxos de empurrar, no sentido de "
+#~ "que eles não estão relacionados com \n"
+#~ "o processamento de produtos movimentos , mas sim para o processamento de "
+#~ "ordens de compras. \n"
+#~ "que está sendo puxado é uma necessidade, e não diretamente produtos. \n"
+#~ "Um exemplo clássico de fluxo Pull é quando você tem uma empresa Outlet, com "
+#~ "uma controladora \n"
+#~ "que é responsável pelo abastecimento do Outlet.\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " [Customer] <- A - [tomada] <- B - [Investimentos] <~ C ~ [Fornecedor] \n"
+#~ "Quando uma nova ordem de aquisição (A, proveniente da confirmação de uma "
+#~ "ordem de venda, por exemplo) chega \n"
+#~ "no Outlet, é convertido em outra aquisição (B, através de um fluxo de tração "
+#~ "do tipo 'move') \n"
+#~ "solicitado à Holding. Quando procurement fim B é processado pelo holding, e "
+#~ "\n"
+#~ "se o produto está fora de estoque, ela pode ser convertida em uma ordem de "
+#~ "compra (C) do Fornecedor \n"
+#~ "(Pull fluxo do tipo de compra). O resultado é que a ordem de aquisição, a "
+#~ "necessidade, é empurrado \n"
+#~ "por todo o caminho entre o cliente eo fornecedor. \n"
+#~ "Tecnicamente, Puxe fluxos permitem processar os pedidos de aquisição de "
+#~ "forma diferente, não só dependendo \n"
+#~ "do produto a ser considerado, mas também dependendo do local detém a "
+#~ "\"necessidade\" para que \n"
+#~ "o produto (ou seja, o local de destino dessa ordem procurement). \n"
+#~ "Caso de Uso \n"
+#~ "-------- \n"
+#~ "Você pode usar os dados de demonstração a seguir:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " CPU1: vender alguns CPU1 da Loja 1 e executar o agendador\n"
+#~ " - Armazém: ordem de entrega, Loja 1: recepção\n"
+#~ " CPU3:\n"
+#~ " - Ao receber o produto, ele vai para o local de Controle de Qualidade "
+#~ "em seguida, armazenados a prateleira 2.\n"
+#~ " - Ao entregar o cliente: Lista de Escolha -> Embalagem -> Ordem de "
+#~ "Entrega do Portão A\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Automatically creates project tasks from procurement lines\n"
+#~ "==========================================================\n"
+#~ "\n"
+#~ "This module will automatically create a new task for each procurement\n"
+#~ "order line (e.g. for sale order lines), if the corresponding product\n"
+#~ "meets the following characteristics:\n"
+#~ "\n"
+#~ " * Type = Service\n"
+#~ " * Procurement method (Order fulfillment) = MTO (make to order)\n"
+#~ " * Supply/Procurement method = Produce\n"
+#~ "\n"
+#~ "If on top of that a projet is specified on the product form (in the "
+#~ "Procurement\n"
+#~ "tab), then the new task will be created in that specific project.\n"
+#~ "Otherwise, the new task will not belong to any project, and may be added to "
+#~ "a\n"
+#~ "project manually later.\n"
+#~ "\n"
+#~ "When the project task is completed or cancelled, the workflow of the "
+#~ "corresponding\n"
+#~ "procurement line is updated accordingly. For example if this procurement "
+#~ "corresponds\n"
+#~ "to a sale order line, the sale order line will be considered delivered when "
+#~ "the\n"
+#~ "task is completed.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Cria automaticamente as tarefas do projeto das linhas de aquisição \n"
+#~ "=========================================== =============== \n"
+#~ "Este módulo irá criar automaticamente uma nova tarefa para cada licitação \n"
+#~ "linha do pedido (por exemplo, para a venda de linhas da ordem), se o produto "
+#~ "correspondente \n"
+#~ "atenda as seguintes características:\n"
+#~ "\n"
+#~ "\n"
+#~ " * Type = Serviço\n"
+#~ " * Método de aquisição (Ordem cumprimento) = MTO (fazer a encomenda)\n"
+#~ " * Método Supply / Procurement = Produzir \n"
+#~ "Se em cima do que um projet é especificado na forma de produto (no "
+#~ "Procurement \n"
+#~ "tab), então a nova tarefa será criada naquele projeto específico. \n"
+#~ "Caso contrário, a nova tarefa não pertence a qualquer projecto e pode ser "
+#~ "adicionado a um \n"
+#~ "projeto manualmente mais tarde. \n"
+#~ "Quando a tarefa de projeto for concluído ou cancelado, o fluxo de trabalho "
+#~ "do correspondente \n"
+#~ "linha de aquisição é actualizado em conformidade. Por exemplo, se esta "
+#~ "aquisição corresponde \n"
+#~ "a uma linha de ordem de venda, a linha de ordem de venda será considerado "
+#~ "entregue quando a \n"
+#~ "tarefa estiver concluída.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Changes dates according to change in project End Date.\n"
+#~ "======================================================\n"
+#~ "\n"
+#~ "If end date of project is changed then the deadline date and start date for "
+#~ "all the tasks will change accordingly.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Altere as datas de acordo com a mudança no projeto de Data de Término. \n"
+#~ "======================================== ============== \n"
+#~ "Se a data final do projeto é alterado depois da data e data de início para "
+#~ "todas as tarefas também muda.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows you to manage all operations for managing memberships.\n"
+#~ "=========================================================================\n"
+#~ "\n"
+#~ "It supports different kind of members:\n"
+#~ "* Free member\n"
+#~ "* Associated member (eg.: a group subscribes to a membership for all "
+#~ "subsidiaries)\n"
+#~ "* Paid members,\n"
+#~ "* Special member prices, ...\n"
+#~ "\n"
+#~ "It is integrated with sales and accounting to allow you to automatically\n"
+#~ "invoice and send propositions for membership renewal.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite que você gerencie todas as operações de gestão de "
+#~ "associações. \n"
+#~ "====================================== =================================== \n"
+#~ "Ele suporta diferentes tipos de membros: \n"
+#~ "* Membro grátis \n"
+#~ "* Membro associado (por exemplo, .: um grupo se inscreve para uma sociedade "
+#~ "para todas as subsidiárias) \n"
+#~ "* membros pagos, \n"
+#~ "* Preços membro especial, ... \n"
+#~ "ele é integrado com vendas e contabilidade para permitir que você "
+#~ "automaticamente \n"
+#~ "factura e enviar propostas para a renovação de associação.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module maintains internal sequence number for accounting entries.\n"
+#~ "======================================================================\n"
+#~ "\n"
+#~ "Allows you to configure the accounting sequences to be maintained.\n"
+#~ "\n"
+#~ "You can customize the following attributes of the sequence:\n"
+#~ " * Prefix\n"
+#~ " * Suffix\n"
+#~ " * Next Number\n"
+#~ " * Increment Number\n"
+#~ " * Number Padding\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo mantém o número de seqüência interna para lançamentos contábeis. "
+#~ "\n"
+#~ "======================================== ============================== \n"
+#~ "Permite configurar as seqüências de contabilidade deve ser mantida. \n"
+#~ "Você pode personalizar os seguintes atributos da seqüência :\n"
+#~ "\n"
+#~ "\n"
+#~ " * Prefixo\n"
+#~ " * Sufixo\n"
+#~ " * Em seguida Número\n"
+#~ " * Número de Incremento\n"
+#~ " * Número de preenchimento\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module adds a shortcut on one or several opportunity cases in the CRM.\n"
+#~ "===========================================================================\n"
+#~ "\n"
+#~ "This shortcut allows you to generate a sales order based on the selected "
+#~ "case.\n"
+#~ "If different cases are open (a list), it generates one sale order by\n"
+#~ "case.\n"
+#~ "The case is then closed and linked to the generated sales order.\n"
+#~ "\n"
+#~ "We suggest you to install this module if you installed both the sale and "
+#~ "the\n"
+#~ "crm modules.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo adiciona um atalho em um ou vários casos de oportunidade no CRM. "
+#~ "\n"
+#~ "=================================== ======================================== "
+#~ "\n"
+#~ "Este atalho permite gerar uma ordem de venda com base sobre o caso "
+#~ "selecionado. \n"
+#~ "Caso casos diferentes estão abertas (uma lista), gera uma ordem de venda por "
+#~ "\n"
+#~ "caso. \n"
+#~ "O caso é então fechada e ligada à ordem de vendas gerado. \n"
+#~ "Sugerimos que você instale este módulo se você instalou tanto a venda e os \n"
+#~ "módulos de CRM.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module can automatically create Project Tasks based on incoming emails\n"
+#~ "===========================================================================\n"
+#~ "\n"
+#~ "Allows creating tasks based on new emails arriving at a given mailbox,\n"
+#~ "similarly to what the CRM application has for Leads/Opportunities.\n"
+#~ "There are two common alternatives to configure the mailbox integration:\n"
+#~ "\n"
+#~ " * Install the ``fetchmail`` module and configure a new mailbox, then "
+#~ "select\n"
+#~ " ``Project Tasks`` as the target for incoming emails.\n"
+#~ " * Set it up manually on your mail server based on the 'mail gateway' "
+#~ "script\n"
+#~ " provided in the ``mail`` module - and connect it to the `project.task` "
+#~ "model.\n"
+#~ "\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo pode criar automaticamente tarefas de projeto com base em e-"
+#~ "mails recebidos \n"
+#~ "======================================= ==================================== "
+#~ "\n"
+#~ "Permite a criação de tarefas com base em novos e-mails que chegam a uma "
+#~ "determinada caixa de correio, \n"
+#~ "de forma semelhante para que a aplicação CRM tem para Leads / Oportunidades. "
+#~ "\n"
+#~ "Há duas alternativas comuns para configurar a integração caixa de correio:\n"
+#~ "\n"
+#~ "\n"
+#~ " * Instale o fetchmail `` `` módulo e configurar uma nova caixa de correio, "
+#~ "em seguida, selecione\n"
+#~ " `` Tarefas do Projeto `` como o alvo para e-mails recebidos.\n"
+#~ " * Defina-lo manualmente em seu servidor de email com base em roteiro de "
+#~ "\"gateway de correio '\n"
+#~ " fornecido no correio `` `` módulo - e conectá-lo ao project.task "
+#~ "`modelo`.\n"
+#~ "\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module supports the Anglo-Saxon accounting methodology by changing the "
+#~ "accounting logic with stock transactions.\n"
+#~ "============================================================================="
+#~ "========================================\n"
+#~ "\n"
+#~ "The difference between the Anglo-Saxon accounting countries\n"
+#~ "and the Rhine or also called Continental accounting countries is the moment "
+#~ "of taking the Cost of Goods Sold versus Cost of Sales.\n"
+#~ "Anglo-Saxons accounting does take the cost when sales invoice is created, "
+#~ "Continental accounting will take the cost at the moment the goods are "
+#~ "shipped.\n"
+#~ "This module will add this functionality by using a interim account, to store "
+#~ "the value of shipped goods and will contra book this interim account\n"
+#~ "when the invoice is created to transfer this amount to the debtor or "
+#~ "creditor account.\n"
+#~ "Secondly, price differences between actual purchase price and fixed product "
+#~ "standard price are booked on a separate account"
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo suporta a metodologia de contabilidade anglo-saxão, alterando a "
+#~ "lógica contábil com estoque \n"
+#~ "diferença entre os países de contabilidade anglo-saxões \n"
+#~ "e do Reno ou também chamados de países de contabilidade Continental é o "
+#~ "momento de tomar o Custo dos Produtos Vendidos contra Custo das Vendas. \n"
+#~ "contabilidade anglo-saxões não ter o custo quando nota fiscal de venda é "
+#~ "criado, o que representa Continental vai demorar o custo no momento do "
+#~ "embarque da mercadoria. \n"
+#~ "Este módulo irá adicionar essa funcionalidade usando uma conta provisória, "
+#~ "para armazenar o valor de mercadorias embarcadas e contra reservar esta "
+#~ "conta provisória \n"
+#~ ", quando a fatura é criada para transferir esse montante para o devedor ou "
+#~ "credor conta. \n"
+#~ "segundo lugar, as diferenças de preços entre preço de compra real e do preço "
+#~ "do produto padrão fixo são contabilizados em uma conta separada"
+
+#~ msgid ""
+#~ "\n"
+#~ "Allows you to add delivery methods in sale orders and picking.\n"
+#~ "==============================================================\n"
+#~ "\n"
+#~ "You can define your own carrier and delivery grids for prices.\n"
+#~ "When creating invoices from picking, OpenERP is able to add and compute the "
+#~ "shipping line.\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Permite que você adicione métodos de entrega de ordens de venda e pegar. \n"
+#~ "====================================== ======================== \n"
+#~ "Você pode definir a sua própria transportadora e redes de distribuição para "
+#~ "os preços. \n"
+#~ "Ao criar faturas de picking, OpenERP é capaz de somar e calcular a linha de "
+#~ "transporte.\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module lets users enter the banking details of Partners in the RIB "
+#~ "format (French standard for bank accounts details).\n"
+#~ "RIB Bank Accounts can be entered in the \"Accounting\" tab of the Partner "
+#~ "form by specifying the account type \"RIB\". The four standard RIB fields "
+#~ "will then become mandatory:\n"
+#~ "- Bank Code\n"
+#~ "- Office Code\n"
+#~ "- Account number\n"
+#~ "- RIB key\n"
+#~ "As a safety measure, OpenERP will check the RIB key whenever a RIB is saved, "
+#~ "and will refuse to record the data if the key is incorrect. Please bear in "
+#~ "mind that this can only happen when the user presses the \"save\" button, "
+#~ "for example on the Partner Form.\n"
+#~ "Since each bank account may relate to a Bank, users may enter the RIB Bank "
+#~ "Code in the Bank form - it will the pre-fill the Bank Code on the RIB when "
+#~ "they select the Bank. \n"
+#~ "To make this easier, this module will also let users find Banks using their "
+#~ "RIB code.\n"
+#~ "\n"
+#~ "The module base_iban can be a useful addition to this module, because French "
+#~ "banks are now progressively adopting the international IBAN format instead "
+#~ "of the RIB format.\n"
+#~ "The RIB and IBAN codes for a single account can be entered by recording two "
+#~ "Bank Accounts in OpenERP: the first with the type \"RIB\", the second with "
+#~ "the type \"IBAN\". \n"
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite aos usuários inserir os dados bancários de parceiros no "
+#~ "formato RIB (norma francesa para detalhes de contas bancárias). \n"
+#~ "Contas Bancárias RIB podem ser inseridos na guia \"contabilidade\" do "
+#~ "formulário de parceiros, especificando o tipo de conta \"RIB\". Os quatro "
+#~ "campos de RIB padrão, então, tornar-se obrigatória: \n"
+#~ "- Código do Banco \n"
+#~ "- Código de Escritório \n"
+#~ "- Número da conta \n"
+#~ "- chave RIB \n"
+#~ "Como medida de segurança, OpenERP irá verificar a chave RIB sempre que um "
+#~ "RIB é salvo, e se recusam a registrar os dados, se a chave é incorreto. . "
+#~ "Tenha em mente que isso só pode acontecer quando o usuário pressiona o botão "
+#~ "\"save\", por exemplo, no Formulário Sócio \n"
+#~ "Como cada conta bancária pode estar relacionada a um banco, os usuários "
+#~ "podem entrar no Código do Banco RIB na forma Bank - que vai a pré-preencher "
+#~ "o Código do Banco na RIB quando eles selecionam o Banco. \n"
+#~ "Para tornar isso mais fácil, este módulo também permitirá aos usuários "
+#~ "encontrar Banks usando seu código de RIB. \n"
+#~ "base_iban O módulo pode ser uma adição útil para este módulo, porque os "
+#~ "bancos franceses estão agora a adoptar progressivamente o formato "
+#~ "internacional IBAN ao invés do formato RIB. \n"
+#~ "costela e códigos IBAN para uma única conta pode ser introduzido através da "
+#~ "gravação de duas contas bancárias no OpenERP: a primeira com o tipo \"RIB\", "
+#~ "o segundo com o tipo \"IBAN\". \n"
+
+#~ msgid ""
+#~ "\n"
+#~ "This module generates the Technical Guides of selected modules in "
+#~ "Restructured Text format (RST).\n"
+#~ "============================================================================="
+#~ "====================\n"
+#~ "\n"
+#~ " * It uses the Sphinx (http://sphinx.pocoo.org) implementation of RST\n"
+#~ " * It creates a tarball (.tgz file suffix) containing an index file and "
+#~ "one file per module\n"
+#~ " * Generates Relationship Graph\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo gera as guias técnicos de módulos selecionados no formato de "
+#~ "texto Reestruturado\n"
+#~ "\n"
+#~ " * Ele usa a Esfinge (http://sphinx.pocoo.org) implementação de RST\n"
+#~ " * Ele cria um arquivo tar (sufixo do arquivo. Tgz) contendo um arquivo "
+#~ "de índice e um arquivo por módulo\n"
+#~ " * Gera Gráfico Relacionamento\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "MPS allows to create a manual procurement plan apart of the normal MRP "
+#~ "scheduling, which works automatically based on minimum stock rules\n"
+#~ "============================================================================="
+#~ "============================================================\n"
+#~ "\n"
+#~ "Quick Glossary\n"
+#~ "--------------\n"
+#~ "- Stock Period - the time boundaries (between Start Date and End Date) for "
+#~ "your Sales and Stock forecasts and planning\n"
+#~ "- Sales Forecast - the quantity of products you plan to sell during the "
+#~ "related Stock Period.\n"
+#~ "- Stock Planning - the quantity of products you plan to purchase or produce "
+#~ "for the related Stock Period.\n"
+#~ "\n"
+#~ "To avoid confusion with the terms used by the ``sale_forecast`` module, "
+#~ "(\"Sales Forecast\" and \"Planning\" are amounts) we use terms \"Stock and "
+#~ "Sales Forecast\" and \"Stock Planning\" to emphasize that we use quantity "
+#~ "values.\n"
+#~ "\n"
+#~ "Where to begin\n"
+#~ "--------------\n"
+#~ "Using this module is done in three steps:\n"
+#~ "\n"
+#~ " * Create Stock Periods via the Warehouse>Configuration>Stock Periods menu "
+#~ "(Mandatory step)\n"
+#~ " * Create Sale Forecasts fill them with forecast quantities, via the "
+#~ "Sales>Sales Forecast menu. (Optional step but useful for further planning)\n"
+#~ " * Create the actual MPS plan, check the balance and trigger the "
+#~ "procurements as required. The actual procurement is the final step for the "
+#~ "Stock Period.\n"
+#~ "\n"
+#~ "Stock Period configuration\n"
+#~ "--------------------------\n"
+#~ "You have two menu items for Periods in \"Warehouse > Configuration > Stock "
+#~ "Periods\". There are:\n"
+#~ "\n"
+#~ " * \"Create Stock Periods\" - can automatically creating daily, weekly or "
+#~ "monthly periods.\n"
+#~ " * \"Stock Periods\" - allows to create any type of periods, change the "
+#~ "dates and change the state of period.\n"
+#~ "\n"
+#~ "Creating periods is the first step. You can create custom periods using the "
+#~ "\"New\" button in \"Stock Periods\", but it is recommended to use the "
+#~ "automatic assistant \"Create Stock Periods\".\n"
+#~ "\n"
+#~ "Remarks:\n"
+#~ "\n"
+#~ " - These periods (Stock Periods) are completely distinct from Financial or "
+#~ "other periods in the system.\n"
+#~ " - Periods are not assigned to companies (when you use multicompany). Module "
+#~ "suppose that you use the same periods across companies. If you wish to use "
+#~ "different periods for different companies define them as you wish (they can "
+#~ "overlap). Later on in this text will be indications how to use such "
+#~ "periods.\n"
+#~ " - When periods are created automatically their start and finish dates are "
+#~ "with start hour 00:00:00 and end hour 23:59:00. When you create daily "
+#~ "periods they will have start date 31.01.2010 00:00:00 and end date "
+#~ "31.01.2010 23:59:00. It works only in automatic creation of periods. When "
+#~ "you create periods manually you have to take care about hours because you "
+#~ "can have incorrect values form sales or stock.\n"
+#~ " - If you use overlapping periods for the same product, warehouse and "
+#~ "company results can be unpredictable.\n"
+#~ " - If current date doesn't belong to any period or you have holes between "
+#~ "periods results can be unpredictable.\n"
+#~ "\n"
+#~ "Sales Forecasts configuration\n"
+#~ "-----------------------------\n"
+#~ "You have few menus for Sales forecast in \"Sales > Sales Forecasts\":\n"
+#~ "\n"
+#~ " - \"Create Sales Forecasts\" - can automatically create forecast lines "
+#~ "according to your needs\n"
+#~ " - \"Sales Forecasts\" - for managing the Sales forecasts\n"
+#~ "\n"
+#~ "Menu \"Create Sales Forecasts\" creates Forecasts for products from selected "
+#~ "Category, for selected Period and for selected Warehouse.\n"
+#~ "It is also possible to copy the previous forecast.\n"
+#~ "\n"
+#~ "Remarks:\n"
+#~ "\n"
+#~ " - This tool doesn't duplicate lines if you already have an entry for the "
+#~ "same Product, Period, Warehouse, created or validated by the same user. If "
+#~ "you wish to create another forecast, if relevant lines exists you have to do "
+#~ "it manually as described below.\n"
+#~ " - When created lines are validated by someone else you can use this tool to "
+#~ "create another line for the same Period, Product and Warehouse.\n"
+#~ " - When you choose \"Copy Last Forecast\", created line take quantity and "
+#~ "other settings from your (validated by you or created by you if not "
+#~ "validated yet) forecast which is for last period before period of created "
+#~ "forecast.\n"
+#~ "\n"
+#~ "On \"Sales Forecast\" form mainly you have to enter a forecast quantity in "
+#~ "\"Product Quantity\".\n"
+#~ "Further calculation can work for draft forecasts. But validation can save "
+#~ "your data against any accidental changes.\n"
+#~ "You can click \"Validate\" button but it is not mandatory.\n"
+#~ "\n"
+#~ "Instead of forecast quantity you may enter the amount of forecast sales via "
+#~ "the \"Product Amount\" field.\n"
+#~ "The system will count quantity from amount according to Sale price of the "
+#~ "Product.\n"
+#~ "\n"
+#~ "All values on the form are expressed in unit of measure selected on form.\n"
+#~ "You can select a unit of measure from the default category or from secondary "
+#~ "category.\n"
+#~ "When you change unit of measure the forecast product quantity will be re-"
+#~ "computed according to new UoM.\n"
+#~ "\n"
+#~ "To work out your Sale Forecast you can use the \"Sales History\" of the "
+#~ "product.\n"
+#~ "You have to enter parameters to the top and left of this table and system "
+#~ "will count sale quantities according to these parameters.\n"
+#~ "So you can get results for a given sales team or period.\n"
+#~ "\n"
+#~ "\n"
+#~ "MPS or Procurement Planning\n"
+#~ "---------------------------\n"
+#~ "An MPS planning consists in Stock Planning lines, used to analyze and "
+#~ "possibly drive the procurement of \n"
+#~ "products for each relevant Stock Period and Warehouse.\n"
+#~ "The menu is located in \"Warehouse > Schedulers > Master Procurement "
+#~ "Schedule\":\n"
+#~ "\n"
+#~ " - \"Create Stock Planning Lines\" - a wizard to help automatically create "
+#~ "many planning lines\n"
+#~ " - \"Master Procurement Schedule\" - management of your planning lines\n"
+#~ "\n"
+#~ "Similarly to the way Sales forecast serves to define your sales planning, "
+#~ "the MPS lets you plan your procurements (Purchase/Manufacturing).\n"
+#~ "You can quickly populate the MPS with the \"Create Stock Planning Lines\" "
+#~ "wizard, and then proceed to review them via the \"Master Procurement "
+#~ "Schedule\" menu.\n"
+#~ "\n"
+#~ "The \"Create Stock Planning Lines\" wizard lets you to quickly create all "
+#~ "MPS lines for a given Product Category, and a given Period and Warehouse.\n"
+#~ "When you enable the \"All Products with Forecast\" option of the wizard, the "
+#~ "system creates lines for all products having sales forecast for selected\n"
+#~ "Period and Warehouse (the selected Category will be ignored in this case).\n"
+#~ "\n"
+#~ "Under menu \"Master Procurement Schedule\" you will usually change the "
+#~ "\"Planned Out\" and \"Planned In\" quantities and observe the resulting "
+#~ "\"Stock Simulation\" value\n"
+#~ "to decide if you need to procure more products for the given Period.\n"
+#~ "\"Planned Out\" will be initially based on \"Warehouse Forecast\" which is "
+#~ "the sum of all outgoing stock moves already planned for the Period and "
+#~ "Warehouse.\n"
+#~ "Of course you can alter this value to provide your own quantities. It is not "
+#~ "necessary to have any forecast.\n"
+#~ "\"Planned In\" quantity is used to calculate field \"Incoming Left\" which "
+#~ "is the quantity to be procured to reach the \"Stock Simulation\" at the end "
+#~ "of Period.\n"
+#~ "You can compare \"Stock Simulation\" quantity to minimum stock rules visible "
+#~ "on the form.\n"
+#~ "And you can plan different quantity than in Minimum Stock Rules. "
+#~ "Calculations are done for whole Warehouse by default,\n"
+#~ "if you want to see values for Stock location of calculated warehouse you can "
+#~ "check \"Stock Location Only\".\n"
+#~ "\n"
+#~ "When you are satisfied with the \"Planned Out\", \"Planned In\" and end of "
+#~ "period \"Stock Simulation\",\n"
+#~ "you can click on \"Procure Incoming Left\" to create a procurement for the "
+#~ "\"Incoming Left\" quantity.\n"
+#~ "You can decide if procurement will go to the to Stock or Input location of "
+#~ "the Warehouse.\n"
+#~ "\n"
+#~ "If you don't want to Produce or Buy the product but just transfer the "
+#~ "calculated quantity from another warehouse\n"
+#~ "you can click \"Supply from Another Warehouse\" (instead of \"Procure "
+#~ "Incoming Left\") and the system will\n"
+#~ "create the appropriate picking list (stock moves).\n"
+#~ "You can choose to take the goods from the Stock or the Output location of "
+#~ "the source warehouse.\n"
+#~ "Destination location (Stock or Input) in the destination warehouse will be "
+#~ "taken as for the procurement case.\n"
+#~ "\n"
+#~ "To see update the quantities of \"Confirmed In\", \"Confirmed Out\", "
+#~ "\"Confirmed In Before\", \"Planned Out Before\"\n"
+#~ "and \"Stock Simulation\" you can press \"Calculate Planning\".\n"
+#~ "\n"
+#~ "All values on the form are expressed in unit of measure selected on form.\n"
+#~ "You can select one of unit of measure from default category or from "
+#~ "secondary category.\n"
+#~ "When you change unit of measure the editable quantities will be re-computed "
+#~ "according to new UoM. The others will be updated after pressing \"Calculate "
+#~ "Planning\".\n"
+#~ "\n"
+#~ "Computation of Stock Simulation quantities\n"
+#~ "------------------------------------------\n"
+#~ "The Stock Simulation value is the estimated stock quantity at the end of the "
+#~ "period.\n"
+#~ "The calculation always starts with the real stock on hand at the beginning "
+#~ "of the current period, then\n"
+#~ "adds or subtracts the computed quantities.\n"
+#~ "When you are in the same period (current period is the same as calculated) "
+#~ "Stock Simulation is calculated as follows:\n"
+#~ "\n"
+#~ "Stock Simulation =\n"
+#~ "\tStock of beginning of current Period\n"
+#~ "\t- Planned Out\n"
+#~ "\t+ Planned In\n"
+#~ "\n"
+#~ "When you calculate period next to current:\n"
+#~ "\n"
+#~ "Stock Simulation =\n"
+#~ "\tStock of beginning of current Period\n"
+#~ "\t- Planned Out of current Period\n"
+#~ "\t+ Confirmed In of current Period (incl. Already In)\n"
+#~ "\t- Planned Out of calculated Period\n"
+#~ "\t+ Planned In of calculated Period .\n"
+#~ "\n"
+#~ "As you see the calculated Period is taken the same way as in previous case, "
+#~ "but the calculation in the current\n"
+#~ "Period is a little bit different. First you should note that system takes "
+#~ "for only Confirmed moves for the\n"
+#~ "current period. This means that you should complete the planning and "
+#~ "procurement of the current Period before\n"
+#~ "going to the next one.\n"
+#~ "\n"
+#~ "When you plan for future Periods:\n"
+#~ "\n"
+#~ "Stock Simulation =\n"
+#~ "\tStock of beginning of current Period\n"
+#~ "\t- Sum of Planned Out of Periods before calculated\n"
+#~ "\t+ Sum of Confirmed In of Periods before calculated (incl. Already In)\n"
+#~ "\t- Planned Out of calculated Period\n"
+#~ "\t+ Planned In of calculated Period.\n"
+#~ "\n"
+#~ "Here \"Periods before calculated\" designates all periods starting with the "
+#~ "current until the period before the one being calculated.\n"
+#~ "\n"
+#~ "Remarks:\n"
+#~ "\n"
+#~ " - Remember to make the proceed with the planning of each period in "
+#~ "chronological order, otherwise the numbers will not reflect the\n"
+#~ " reality\n"
+#~ " - If you planned for future periods and find that real Confirmed Out is "
+#~ "larger than Planned Out in some periods before,\n"
+#~ " you can repeat Planning and make another procurement. You should do it in "
+#~ "the same planning line.\n"
+#~ " If you create another planning line the suggestions can be wrong.\n"
+#~ " - When you wish to work with different periods for some products, define "
+#~ "two kinds of periods (e.g. Weekly and Monthly) and use\n"
+#~ " them for different products. Example: If you use always Weekly periods "
+#~ "for Product A, and Monthly periods for Product B\n"
+#~ " all calculations will work correctly. You can also use different kind of "
+#~ "periods for the same product from different warehouse\n"
+#~ " or companies. But you cannot use overlapping periods for the same "
+#~ "product, warehouse and company because results\n"
+#~ " can be unpredictable. The same applies to Forecasts lines.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "MPS permite criar um plano de aquisições Manual para além da programação MRP "
+#~ "normal, que funciona automaticamente com base no estoque mínimo \n"
+#~ "Glossário \n"
+#~ "-------------- \n"
+#~ "- Stock Período - os limites de tempo (entre a Data de Início e Término) "
+#~ "para suas vendas e as previsões da e planejamento \n"
+#~ "- previsão de vendas - a quantidade de produtos que pretende vender durante "
+#~ "a Bolsa de período correspondente. \n"
+#~ "- Stock Planning -. a quantidade de produtos que você pretende comprar ou "
+#~ "produzir para o Banco Período relacionado \n"
+#~ "Para evitar confusão com os termos utilizados pelo sale_forecast `` `` "
+#~ "módulo (\"Previsão de Vendas\" e \"Planejamento \"são valores) usamos "
+#~ "termos\" Ações e Previsão de Vendas \"e\" Banco de Planejamento \"para "
+#~ "enfatizar que nós usamos os valores de quantidade. \n"
+#~ "onde começar \n"
+#~ "-------------- \n"
+#~ "Usando este módulo é feito em três passos:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " Criar Banco de Períodos através do Armazém Configuração> Menu Períodos *> "
+#~ "Imagem (etapa obrigatória)\n"
+#~ " * Criar Previsões Venda preenchê-los com quantidades previstas, via as "
+#~ "vendas> voltar ao menu previsão de vendas. (Etapa opcional, mas útil para o "
+#~ "planejamento)\n"
+#~ " * Criar o plano de MPS real, verificar o saldo e acionar as aquisições, "
+#~ "conforme necessário. A aquisição real é o passo final para o Período de "
+#~ "stock. \n"
+#~ "Banco de configuração Período \n"
+#~ "-------------------------- \n"
+#~ "Você tem duas opções de menu para os períodos \" Armazém> Configuração> "
+#~ "Banco de Períodos \". Existem:\n"
+#~ "\n"
+#~ "\n"
+#~ " * \"Criar Períodos de Stock\" - pode criar automaticamente períodos "
+#~ "diários, semanais ou mensais.\n"
+#~ " * \"Períodos da\" - permite criar qualquer tipo de períodos, altere as "
+#~ "datas e alterar o estado de período. \n"
+#~ "Criando períodos é o primeiro passo. Você pode criar períodos personalizados "
+#~ "utilizando o botão \"Novo\" in \"da Períodos\", mas recomenda-se usar o "
+#~ "assistente automático \"Criar Banco de Períodos\". \n"
+#~ "Observações:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " - Esses períodos (da Períodos) são completamente distintos períodos "
+#~ "financeiros ou outros no sistema.\n"
+#~ " - Períodos não são atribuídos a empresas (quando você usa multiempresa). "
+#~ "Módulo suponha que você use os mesmos períodos diferentes empresas. Se você "
+#~ "quiser usar diferentes períodos para diferentes empresas defini-los como "
+#~ "quiser (eles podem se sobrepor). Mais tarde neste texto será indicações de "
+#~ "como usar esses períodos.\n"
+#~ " - Quando os períodos são criados automaticamente seu início e datas de "
+#~ "término são com start hora 00:00:00 e 23:59:00 hora final. Quando você cria "
+#~ "períodos diários terão data de início 31.01.2010 00:00:00 e término "
+#~ "31.01.2010 23:59:00. Ele funciona apenas na criação automática de períodos. "
+#~ "Quando você cria períodos manualmente você tem que tomar cuidado com horas, "
+#~ "porque você pode ter valores incorretos vendas de formulário ou de ações.\n"
+#~ " - Se você usar períodos para o mesmo produto se sobrepõem, o armazém e os "
+#~ "resultados da empresa podem ser imprevisíveis.\n"
+#~ " - Se a data atual não pertence a nenhum período ou você tem buracos entre "
+#~ "os resultados dos períodos pode ser imprevisível. \n"
+#~ "configuração previsões de vendas \n"
+#~ "------------------------- ---- \n"
+#~ "Você tem alguns menus para previsão de vendas em \"Vendas> Previsões de "
+#~ "vendas\":\n"
+#~ "\n"
+#~ "\n"
+#~ " - \"Criar previsões de vendas\" - pode criar automaticamente linhas de "
+#~ "previsão de acordo com suas necessidades\n"
+#~ " - \"Previsões de vendas\" - para gerenciar a previsões de vendas \n"
+#~ "Menu \"Criar Previsões de vendas\" cria Previsões para produtos da categoria "
+#~ "selecionada, para o período selecionado e para Armazém selecionado. \n"
+#~ "Também é possível copiar a previsão anterior. \n"
+#~ "Observações:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " - Esta ferramenta não duplicar as linhas se você já tem uma entrada para o "
+#~ "mesmo produto, prazo, Armazém, criados ou validados pelo mesmo usuário. Se "
+#~ "você quiser criar uma outra previsão, se as linhas relevantes existe você "
+#~ "tem que fazê-lo manualmente, conforme descrito abaixo.\n"
+#~ " - Quando as linhas criadas são validados por alguém que você pode usar essa "
+#~ "ferramenta para criar uma outra linha para o mesmo período, o Produto e "
+#~ "Warehouse.\n"
+#~ " - Quando escolher \"Copiar última previsão\", criou linha de tomar "
+#~ "quantidade e outras configurações de sua previsão (validado por você ou "
+#~ "criado por você, se não validado até o momento) que é para o último período "
+#~ "antes do período de previsão criado. \n"
+#~ "On \"Previsão de Vendas\" forma principalmente você tem que digitar uma "
+#~ "quantidade prevista no \"Produto Quantidade\". \n"
+#~ "Além disso cálculo pode trabalhar para um projecto de previsões. Mas "
+#~ "validação pode salvar seus dados contra alterações acidentais. \n"
+#~ "Você pode clicar em \"Validar\" botão, mas não é obrigatório. \n"
+#~ "vez de quantidade prevista você pode entrar a quantidade de previsão de "
+#~ "vendas através do campo \"Produto Valor\". \n"
+#~ "O sistema irá contar a quantidade de quantidade de acordo com o preço de "
+#~ "venda do produto. \n"
+#~ "Todos os valores no formulário são expressos em unidade de medida "
+#~ "selecionada no formulário. \n"
+#~ "Você pode selecionar uma unidade de medida da categoria padrão ou de "
+#~ "categoria secundária. \n"
+#~ "Ao alterar a unidade de medida da quantidade de produto previsão voltará a "
+#~ "ser calculado de acordo com a nova UoM. \n"
+#~ "Para trabalhar a sua venda Previsão você pode usar o \"Histórico de Vendas\" "
+#~ "do produto. \n"
+#~ "Você tem que inserir parâmetros para o topo e à esquerda da mesa e este "
+#~ "sistema vai contar quantidades de venda de acordo com estes parâmetros. \n"
+#~ "Assim, você pode obter resultados para uma determinada equipe de vendas ou "
+#~ "período. \n"
+#~ "MPS ou Procurement Planejamento \n"
+#~ "--------------------------- \n"
+#~ "Um planejamento MPS consiste em Bolsas de linhas de planejamento, utilizado "
+#~ "para analisar e, possivelmente, conduzir a aquisição de\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " \n"
+#~ ". produtos para cada período Stock relevante e Armazém \n"
+#~ "O menu está localizado na \"Warehouse> Escalonadores> Programa Mestre de "
+#~ "Procurement\":\n"
+#~ "\n"
+#~ " - \"Criar Banco de Planejamento Lines\" - um assistente para ajudar a criar "
+#~ "automaticamente várias linhas de planejamento\n"
+#~ " - \"Mestre Procurement Schedule\" - gestão de suas linhas de planejamento "
+#~ "de \n"
+#~ "forma semelhante à maneira previsão de vendas serve para definir o "
+#~ "planejamento de vendas, o MPS permite planejar suas aquisições (compra / "
+#~ "Manufacturing). \n"
+#~ "Você pode preencher rapidamente as MPS com o \"Criar Banco de Planejamento "
+#~ "Lines \"assistente, e depois prosseguir para analisá-los através do\" Mestre "
+#~ "Procurement Schedule \"menu. \n"
+#~ "\"Criar Banco de Planejamento Lines\" assistente permite que você crie "
+#~ "rapidamente todas as linhas de MPS para uma determinada categoria de produto "
+#~ "e um determinado período e Warehouse. \n"
+#~ "Quando você habilitar a opção \"Todos os produtos Forecast com\" opção do "
+#~ "assistente, o sistema cria linhas para todos os produtos que têm previsão de "
+#~ "vendas para o selecionado \n"
+#~ "Período e Warehouse (a categoria selecionada será ignorado neste caso). \n"
+#~ "Sob menu \"Agenda Procurement Master\" você vai normalmente mudar o "
+#~ "\"planejado\" e \"planejada em\" quantidades e observar a \"Simulação de "
+#~ "Ações\" valor resultante \n"
+#~ "de decidir se você precisa adquirir mais produtos para um dado período. \n"
+#~ "\"planejado\" será inicialmente baseado em \"Warehouse Forecast\", que é a "
+#~ "soma de todas as ações de saída move já previstos para o período e "
+#~ "Warehouse. \n"
+#~ "Claro que você pode alterar esse valor para fornecer suas próprias "
+#~ "quantidades. Não é necessário ter qualquer previsão. \n"
+#~ "\"planejada em\" quantidade é usada para calcular o campo \"Left entrada\", "
+#~ "que é a quantidade a ser adquirida para chegar ao \"Banco de Simulação\" no "
+#~ "final do período. \n"
+#~ "Você pode comparar \"Banco de Simulação\" quantidade de normas mínimas de "
+#~ "ações visíveis no formulário. \n"
+#~ "e você pode planejar a quantidade diferente do que nas Regras de estoque "
+#~ "mínimo. Os cálculos são feitos para Armazém todo por padrão, \n"
+#~ "se você quiser ver os valores para o estoque local de depósito calculada "
+#~ "você pode conferir \"Banco Só Location\". \n"
+#~ "Quando estiver satisfeito com o \"planejado\", \"previstas no\" e no final "
+#~ "do período \" Banco de Simulação \", \n"
+#~ "você pode clicar em \"Procure Esquerda de entrada\" para criar um contrato "
+#~ "para a \"quantidade Esquerda Entrada\". \n"
+#~ "Você pode decidir se os contratos vão para o Banco de entrada ou localização "
+#~ "do Warehouse. \n"
+#~ "Se você não quiser produzir ou comprar o produto, mas apenas transferir a "
+#~ "quantidade calculada a partir de um outro armazém \n"
+#~ "que você pode clicar em \"Abastecimento de outro armazém\" (em vez de "
+#~ "\"Procure Esquerda Entrada\") eo sistema irá \n"
+#~ "criar a lista de picking apropriado (estoque se move). \n"
+#~ "Você pode optar por tomar os bens do Banco ou o local de saída do armazém de "
+#~ "origem. \n"
+#~ "local de destino (Banco ou entrada) no armazém de destino será tomado como "
+#~ "para o caso de aquisição. \n"
+#~ "Para ver atualizar as quantidades de \"Confirmed In\", \"Confirmed Out\" "
+#~ "\"Confirmado Em Before\", \"planejado antes\" \n"
+#~ "e \"Banco de Simulação\" você pode pressionar \"Calcular Planejamento\". \n"
+#~ "Todos os valores no formulário são expressos em unidade de medida "
+#~ "selecionada no formulário. \n"
+#~ "Você pode selecionar uma unidade de medida padrão categoria ou de categoria "
+#~ "secundária. \n"
+#~ "Ao alterar a unidade de medida das quantidades editáveis ​​voltará a ser "
+#~ "calculado de acordo com a nova UoM. Os outros serão atualizados depois de "
+#~ "pressionar \"Calcular Planejamento\". \n"
+#~ "Computação da Simulação de quantidades \n"
+#~ "--------------------------------- --------- \n"
+#~ "O valor da simulação é a quantidade de estoque estimado no final do período. "
+#~ "\n"
+#~ "O cálculo começa sempre com o estoque real na mão no início do período "
+#~ "corrente, em seguida, \n"
+#~ "adiciona ou subtrai as quantidades calculadas . \n"
+#~ "Quando você está no mesmo período (período atual é a mesma calculada) Stock "
+#~ "simulação é calculado da seguinte forma: \n"
+#~ "Banco de Simulação = [Tab] Banco do início do período atual [Tab] - "
+#~ "planejado [Tab] + Planejado Em \n"
+#~ "Quando calcular período próximo ao atual: \n"
+#~ "Banco de Simulação = [Tab] Banco do início do período atual [Tab] - "
+#~ "planejado do período atual [Tab] + confirmado na do período atual (incluindo "
+#~ "Already In) [Tab] - planejado de cálculo Período [Tab] + planejados em "
+#~ "período de cálculo. \n"
+#~ "Como você vê o período calculado é tomado da mesma forma que no caso "
+#~ "anterior, mas o cálculo no atual \n"
+#~ "período é um pouco diferente. Primeiro você deve ter notado que o sistema "
+#~ "leva para se move apenas confirmado para o \n"
+#~ "período atual. Isso significa que você deve completar o planejamento e "
+#~ "aquisição do período corrente antes de \n"
+#~ "ir para a próxima. \n"
+#~ "Quando você planeja para períodos futuros: \n"
+#~ "Banco de Simulação = [Tab] Banco do início do período atual [Tab] - Soma das "
+#~ "planejado de Períodos antes calculado [Tab] + Soma de confirmada em períodos "
+#~ "anteriores de cálculo (incluindo Already In) [Tab] - planejado fora do "
+#~ "período de cálculo [Tab] + previstas no período de cálculo. \n"
+#~ "Aqui \"Períodos antes calculado\" designa todos os períodos que começam com "
+#~ ". atual até o período anterior ao que está sendo calculado \n"
+#~ "Observações:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " - Lembre-se de fazer a prosseguir com o planejamento de cada período, em "
+#~ "ordem cronológica, caso contrário, os números não refletem a\n"
+#~ " realidade\n"
+#~ " - Se você planejou para períodos futuros e descobrir que real fora "
+#~ "confirmado é maior do que o planejado, em alguns períodos anteriores,\n"
+#~ " você pode repetir Planejamento e fazer outra aquisição. Você deve fazê-lo "
+#~ "na mesma linha de planejamento.\n"
+#~ " Se você criar uma outra linha de planejamento as sugestões podem estar "
+#~ "errados.\n"
+#~ " - Quando você quiser trabalhar com diferentes períodos de alguns produtos, "
+#~ "definir dois tipos de períodos (por exemplo, semanal e mensal) e usar\n"
+#~ " los para diferentes produtos. Exemplo: Se você usar sempre os períodos "
+#~ "semanais de produto A e períodos mensais para o produto B\n"
+#~ " todos os cálculos irá funcionar corretamente. Você também pode usar "
+#~ "diferentes tipos de períodos para o mesmo produto a partir do armazém "
+#~ "diferente\n"
+#~ " ou empresas. Mas você não pode usar períodos sobrepostos para o mesmo "
+#~ "produto, armazém e da empresa, pois os resultados\n"
+#~ " pode ser imprevisível. O mesmo se aplica às linhas de previsões.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows you to manage leaves and leaves' requests.\n"
+#~ "=============================================================\n"
+#~ "\n"
+#~ "Implements a dashboard for human resource management that includes.\n"
+#~ " * Leaves\n"
+#~ "\n"
+#~ "Note that:\n"
+#~ " - A synchronisation with an internal agenda (use of the CRM module) is "
+#~ "possible: in order to automatically create a case when an holiday request is "
+#~ "accepted, you have to link the holidays status to a case section. You can "
+#~ "set up this info and your colour preferences in\n"
+#~ " Human Resources/Configuration/Holidays/Leave Type\n"
+#~ " - An employee can make an ask for more off-days by making a new "
+#~ "Allocation It will increase his total of that leave type available (if the "
+#~ "request is accepted).\n"
+#~ " - There are two ways to print the employee's holidays:\n"
+#~ " * The first will allow to choose employees by department and is used "
+#~ "by clicking the menu item located in\n"
+#~ " Human Resources/Reporting/Holidays/Leaves by Department\n"
+#~ " * The second will allow you to choose the holidays report for "
+#~ "specific employees. Go on the list\n"
+#~ " Human Resources/Human Resources/Employees\n"
+#~ " then select the ones you want to choose, click on the print "
+#~ "icon and select the option\n"
+#~ " 'Employee's Holidays'\n"
+#~ " - The wizard allows you to choose if you want to print either the "
+#~ "Confirmed & Validated holidays or only the Validated ones. These states must "
+#~ "be set up by a user from the group 'HR'. You can define these features in "
+#~ "the security tab from the user data in\n"
+#~ " Administration / Users / Users\n"
+#~ " for example, you maybe will do it for the user 'admin'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite que você gerencie folhas e solicitações dos folhas. \n"
+#~ "====================================== ======================= \n"
+#~ "Implementa um painel para gestão de recursos humanos, que inclui.\n"
+#~ "\n"
+#~ " * Folhas \n"
+#~ "Note-se que:\n"
+#~ "\n"
+#~ " - A sincronização com uma agenda interna (o uso do módulo de CRM) é "
+#~ "possível: para criar automaticamente um caso em que um pedido de férias é "
+#~ "aceito, você tem que ligar o estado de férias para uma seção caso. Você pode "
+#~ "configurar esta informação e as suas preferências de cores em\n"
+#~ " Recursos Humanos / Configurações / feriados / Deixe Tipo\n"
+#~ " - Um empregado pode fazer uma pergunta para mais dias de folga, fazendo "
+#~ "uma nova alocação Ela vai aumentar sua total desse tipo de licença "
+#~ "disponível (se o pedido for aceito).\n"
+#~ " - Existem duas maneiras de imprimir férias do empregado:\n"
+#~ " * O primeiro permitirá escolher os funcionários por departamento e é "
+#~ "usado clicando no item de menu localizado no\n"
+#~ " Recursos Humanos / Relatórios / Holidays / Folhas por "
+#~ "Departamento\n"
+#~ " * A segunda permitirá que você escolha o relatório férias para "
+#~ "funcionários específicos. Vá na lista\n"
+#~ " Recursos Humanos / Recursos Humanos / Empregados\n"
+#~ " em seguida, selecione os que deseja escolher, clique no "
+#~ "ícone da impressora e selecione a opção\n"
+#~ " \"Feriados de empregados '\n"
+#~ " - O assistente permite que você escolha se deseja imprimir tanto as "
+#~ "férias confirmados e validados ou apenas aqueles validados. Estes estados "
+#~ "deve ser criado por um usuário do grupo 'HR'. Você pode definir essas "
+#~ "características na guia de segurança dos dados do usuário em\n"
+#~ " Administração / Usuários / Utilizadores\n"
+#~ " Por exemplo, você talvez irá fazê-lo para o usuário "
+#~ "'admin'.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "This is the module for computing Procurements.\n"
+#~ "==============================================\n"
+#~ "\n"
+#~ "In the MRP process, procurements orders are created to launch manufacturing\n"
+#~ "orders, purchase orders, stock allocations, etc. Procurement orders are\n"
+#~ "generated automatically by the system and unless there is a problem, the\n"
+#~ "user will not be notified. In case of problems, the system will raise some\n"
+#~ "procurement exceptions to inform the user about blocking problems that need\n"
+#~ "to be resolved manually (like, missing BoM structure or missing supplier).\n"
+#~ "\n"
+#~ "The procurement order will schedule a proposal for automatic procurement\n"
+#~ "for the product which needs replenishment. This procurement will start a\n"
+#~ "task, either a purchase order form for the supplier, or a production order\n"
+#~ "depending on the product's configuration.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este é o módulo de Compras computação. \n"
+#~ "========================================== ==== \n"
+#~ "No processo MRP, aquisições ordens são criadas para o lançamento de "
+#~ "fabricação \n"
+#~ "ordens, ordens de compra, alocações de ações, etc ordens de aquisição são \n"
+#~ "geradas automaticamente pelo sistema e, a menos que há um problema, o \n"
+#~ "usuário não será notificado. Em caso de problemas, o sistema irá levantar "
+#~ "algumas \n"
+#~ "exceções de compras para informar o usuário sobre o bloqueio de problemas "
+#~ "que precisam \n"
+#~ "ser resolvidos manualmente (como, falta estrutura BoM ou fornecedor em "
+#~ "falta). \n"
+#~ "A ordem de aquisição irá agendar uma proposta para a aquisição automática \n"
+#~ "para o produto que necessita de reabastecimento. Esta aquisição irá iniciar "
+#~ "uma \n"
+#~ "tarefa, ou um formulário de pedido de compra para o fornecedor, ou uma ordem "
+#~ "de produção \n"
+#~ ", dependendo da configuração do produto.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Fundraising.\n"
+#~ "============\n"
+#~ "\n"
+#~ "When you wish to support your organization or a campaign, you can trace\n"
+#~ "all your activities for collecting money. The menu opens a search list\n"
+#~ "where you can find fund descriptions, email, history and probability of\n"
+#~ "success. Several action buttons allow you to easily modify your different\n"
+#~ "fund status.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Captação de recursos. \n"
+#~ "============ \n"
+#~ "Quando você quiser apoiar a sua organização ou de uma campanha, você pode "
+#~ "rastrear \n"
+#~ "todas as suas atividades para recolher dinheiro. O menu abre uma lista de "
+#~ "pesquisa \n"
+#~ "onde você pode encontrar descrições de fundos, e-mail, a história ea "
+#~ "probabilidade de \n"
+#~ "sucesso. Vários botões de ação permitem que você modifique facilmente o seu "
+#~ "diferente \n"
+#~ "estatuto de fundo.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module contains basic functionality for Caldav system.\n"
+#~ "===========================================================\n"
+#~ "\n"
+#~ " - Webdav server that provides remote access to calendar\n"
+#~ " - Synchronisation of calendar using WebDAV\n"
+#~ " - Customize calendar event and todo attribute with any of OpenERP model\n"
+#~ " - Provides iCal Import/Export functionality\n"
+#~ "\n"
+#~ "To access Calendars using CalDAV clients, point them to:\n"
+#~ " http://HOSTNAME:PORT/webdav/DATABASE_NAME/calendars/users/USERNAME/c\n"
+#~ "\n"
+#~ "To access OpenERP Calendar using WebCal to remote site use the URL like:\n"
+#~ " http://HOSTNAME:PORT/webdav/DATABASE_NAME/Calendars/CALENDAR_NAME.ics\n"
+#~ "\n"
+#~ " Where,\n"
+#~ " HOSTNAME: Host on which OpenERP server(With webdav) is running\n"
+#~ " PORT : Port on which OpenERP server is running (By Default : 8069)\n"
+#~ " DATABASE_NAME: Name of database on which OpenERP Calendar is "
+#~ "created\n"
+#~ " CALENDAR_NAME: Name of calendar to access\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo contém a funcionalidade básica para o sistema CalDAV. \n"
+#~ "========================================= ==================\n"
+#~ "\n"
+#~ " - Servidor WebDAV que permite o acesso remoto para o calendário\n"
+#~ " - Sincronização de calendário usando WebDAV\n"
+#~ " - Personalize o calendário de eventos e atributo do todo com qualquer "
+#~ "modelo OpenERP\n"
+#~ " - Fornece iCal Import / Export funcionalidade \n"
+#~ "Para acessar calendários usando clientes CalDAV, apontá-los para:\n"
+#~ "\n"
+#~ " http://HOSTNAME:PORT/webdav/DATABASE_NAME/calendars/users/USERNAME/c \n"
+#~ "Para acessar o Calendário OpenERP usando WebCal para o site remoto usar a "
+#~ "URL como:\n"
+#~ "\n"
+#~ " http://HOSTNAME:PORT/webdav/DATABASE_NAME/Calendars/CALENDAR_NAME.ics\n"
+#~ "\n"
+#~ " Onde,\n"
+#~ " HOSTNAME: Anfitrião em qual servidor OpenERP (com o WebDAV) está em "
+#~ "execução\n"
+#~ " PORT: Porta na qual servidor OpenERP está sendo executado (por "
+#~ "padrão: 8069)\n"
+#~ " DATABASE_NAME: Nome do banco de dados no qual OpenERP calendário é "
+#~ "criado\n"
+#~ " CALENDAR_NAME: Nome do calendário para acessar\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "This is the base module to manage the accounting chart for Guatemala.\n"
+#~ "=====================================================================\n"
+#~ "\n"
+#~ "Agrega una nomenclatura contable para Guatemala. También icluye impuestos y "
+#~ "la moneda del Quetzal. -- Adds accounting chart for Guatemala. It also "
+#~ "includes taxes and the Quetzal currency"
+#~ msgstr ""
+#~ "\n"
+#~ "Este é o módulo base para gerenciar o gráfico representando Guatemala. \n"
+#~ "===================================== ================================ \n"
+#~ "Agrega una nomenclatura contable parágrafo Guatemala. También icluye "
+#~ "impuestos y la moneda del Quetzal. - Adiciona gráfico representando "
+#~ "Guatemala. Ele também inclui impostos ea moeda Quetzal"
+
+#~ msgid ""
+#~ "\n"
+#~ "This module adds a new Report Engine based on WebKit library (wkhtmltopdf) "
+#~ "to support reports designed in HTML + CSS.\n"
+#~ "============================================================================="
+#~ "========================================\n"
+#~ "\n"
+#~ "The module structure and some code is inspired by the report_openoffice "
+#~ "module.\n"
+#~ "\n"
+#~ "The module allows:\n"
+#~ "\n"
+#~ " - HTML report definition\n"
+#~ " - Multi header support\n"
+#~ " - Multi logo\n"
+#~ " - Multi company support\n"
+#~ " - HTML and CSS-3 support (In the limit of the actual WebKIT version)\n"
+#~ " - JavaScript support\n"
+#~ " - Raw HTML debugger\n"
+#~ " - Book printing capabilities\n"
+#~ " - Margins definition\n"
+#~ " - Paper size definition\n"
+#~ "\n"
+#~ "... and much more\n"
+#~ "\n"
+#~ "Multiple headers and logos can be defined per company.\n"
+#~ "CSS style, header and footer body are defined per company.\n"
+#~ "\n"
+#~ "For a sample report see also the webkit_report_sample module, and this "
+#~ "video:\n"
+#~ " http://files.me.com/nbessi/06n92k.mov\n"
+#~ "\n"
+#~ "Requirements and Installation\n"
+#~ "-----------------------------\n"
+#~ "This module requires the ``wkthtmltopdf`` library to render HTML documents "
+#~ "as\n"
+#~ "PDF. Version 0.9.9 or later is necessary, and can be found at "
+#~ "http://code.google.com/p/wkhtmltopdf/\n"
+#~ "for Linux, Mac OS X (i386) and Windows (32bits).\n"
+#~ "\n"
+#~ "After installing the library on the OpenERP Server machine, you need to set "
+#~ "the\n"
+#~ "path to the ``wkthtmltopdf`` executable file on each Company.\n"
+#~ "\n"
+#~ "If you are experiencing missing header/footer problems on Linux, be sure to\n"
+#~ "install a \"static\" version of the library. The default ``wkhtmltopdf`` on\n"
+#~ "Ubuntu is known to have this issue.\n"
+#~ "\n"
+#~ "\n"
+#~ "TODO\n"
+#~ "----\n"
+#~ "\n"
+#~ " * JavaScript support activation deactivation\n"
+#~ " * Collated and book format support\n"
+#~ " * Zip return for separated PDF\n"
+#~ " * Web client WYSIWYG\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo adiciona um novo Report Engine baseado em WebKit library "
+#~ "(wkhtmltopdf) para apoiar relatórios desenvolvidos em HTML + \n"
+#~ "estrutura do módulo e alguns códigos é inspirado no módulo "
+#~ "report_openoffice. \n"
+#~ "O módulo permite:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " - Relatório definição HTML\n"
+#~ " - Suporte multi cabeçalho\n"
+#~ " - Multi logotipo\n"
+#~ " - Multi apoio de empresa\n"
+#~ " - HTML e CSS-3 apoio (no limite da versão atual WebKit)\n"
+#~ " - Suporte a JavaScript\n"
+#~ " - Depurador HTML Raw\n"
+#~ " - Capacidade de impressão de livros\n"
+#~ " - Definição Margens\n"
+#~ " - Definição de tamanho de papel \n"
+#~ "... e muito mais \n"
+#~ "Múltiplos cabeçalhos e logotipos podem ser definidos por cada empresa. \n"
+#~ "estilo CSS, cabeçalho e rodapé do corpo são definidos por cada empresa. \n"
+#~ "Para um relatório de exemplo veja também o módulo webkit_report_sample, e "
+#~ "este vídeo:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " http://files.me.com/nbessi/06n92k.mov \n"
+#~ "Requisitos e Instalação \n"
+#~ "----------------------------- \n"
+#~ "Este módulo requer o `` `` wkthtmltopdf biblioteca para renderizar "
+#~ "documentos HTML como \n"
+#~ "PDF. Versão 0.9.9 ou mais recente é necessário, e pode ser encontrada em "
+#~ "http://code.google.com/p/wkhtmltopdf/ \n"
+#~ "para Linux, Mac OS X (i386) e Windows (32bits). \n"
+#~ "Após a instalação da biblioteca no OpenERP máquina do servidor, você precisa "
+#~ "definir o \n"
+#~ "caminho para o `` `` wkthtmltopdf arquivo executável em cada empresa. \n"
+#~ "Se você estiver enfrentando cabeçalho faltando / problemas de rodapé em "
+#~ "Linux, certifique-se de \n"
+#~ "instalar uma versão \"estática\" da biblioteca. O padrão `` `` wkhtmltopdf "
+#~ "no \n"
+#~ "Ubuntu é conhecido por ter este problema. \n"
+#~ "TODO \n"
+#~ "----\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " * Suporte a JavaScript desativação ativação\n"
+#~ " * Separadas e suporte ao formato de livro\n"
+#~ " * Retorno Zip para PDF separado\n"
+#~ " * Cliente WYSIWYG Web\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This is the base module to manage the manufacturing process in OpenERP.\n"
+#~ "=======================================================================\n"
+#~ "\n"
+#~ "Features:\n"
+#~ "---------\n"
+#~ " * Make to Stock / Make to Order (by line)\n"
+#~ " * Multi-level BoMs, no limit\n"
+#~ " * Multi-level routing, no limit\n"
+#~ " * Routing and work center integrated with analytic accounting\n"
+#~ " * Scheduler computation periodically / Just In Time module\n"
+#~ " * Multi-pos, multi-warehouse\n"
+#~ " * Different reordering policies\n"
+#~ " * Cost method by product: standard price, average price\n"
+#~ " * Easy analysis of troubles or needs\n"
+#~ " * Very flexible\n"
+#~ " * Allows to browse Bill of Materials in complete structure that include "
+#~ "child and phantom BoMs\n"
+#~ "\n"
+#~ "It supports complete integration and planification of stockable goods,\n"
+#~ "consumable of services. Services are completely integrated with the rest\n"
+#~ "of the software. For instance, you can set up a sub-contracting service\n"
+#~ "in a BoM to automatically purchase on order the assembly of your "
+#~ "production.\n"
+#~ "\n"
+#~ "Reports provided by this module:\n"
+#~ "--------------------------------\n"
+#~ " * Bill of Material structure and components\n"
+#~ " * Load forecast on Work Centers\n"
+#~ " * Print a production order\n"
+#~ " * Stock forecasts\n"
+#~ "\n"
+#~ "Dashboard provided by this module:\n"
+#~ "----------------------------------\n"
+#~ " * List of next production orders\n"
+#~ " * List of procurements in exception\n"
+#~ " * Graph of work center load\n"
+#~ " * Graph of stock value variation\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este é o módulo base para gerenciar o processo de fabricação em OpenERP. \n"
+#~ "===================================== ================================== \n"
+#~ "Características: \n"
+#~ "---------\n"
+#~ "\n"
+#~ " * Fazer uma Estoque / fazer a encomenda (por linha)\n"
+#~ " * BoMs Multi-nível, sem limite\n"
+#~ " * Roteamento multi-nível, sem limite de\n"
+#~ " * Encaminhamento e centro de trabalho integrado com a contabilidade "
+#~ "analítica\n"
+#~ " * Scheduler computação periodicamente / Just In módulo Tempo\n"
+#~ " * Multi-pos, multi-armazém\n"
+#~ " * Diferentes políticas de reordenamento\n"
+#~ " * Método de Custo por produto: preço normal, o preço médio\n"
+#~ " * Facilidade de análise de problemas ou necessidades\n"
+#~ " * Muito flexível\n"
+#~ " * Permite navegar Bill of Materials em estrutura completa, que incluem "
+#~ "crianças e BoMs fantasmas \n"
+#~ "Ele suporta a integração completa e planificação de bens stockable, \n"
+#~ "consumo de serviços. Os serviços são completamente integrado com o resto \n"
+#~ "do software. Por exemplo, você pode configurar um serviço de sub-contratação "
+#~ "\n"
+#~ "de uma BOM para comprar automaticamente na ordem do conjunto de sua "
+#~ "produção. \n"
+#~ "relatórios fornecidos por este módulo: \n"
+#~ "------------------ --------------\n"
+#~ "\n"
+#~ "\n"
+#~ " * Bill da estrutura e componentes de materiais\n"
+#~ " * Previsão de Carga em Centros de Trabalho\n"
+#~ " * Imprimir uma ordem de produção\n"
+#~ " * Banco de previsões \n"
+#~ "Painel fornecidas por este módulo: \n"
+#~ "----------------------------------\n"
+#~ "\n"
+#~ " * Lista das próximas ordens de produção\n"
+#~ " * Lista de licitações em exceção\n"
+#~ " * Gráfico de carga do centro de trabalho\n"
+#~ " * Gráfico de estoque variação do valor\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module helps you to easily encode and validate timesheet and "
+#~ "attendances within the same view.\n"
+#~ "============================================================================="
+#~ "======================\n"
+#~ "\n"
+#~ "The upper part of the view is for attendances and track (sign in/sign out) "
+#~ "events.\n"
+#~ "The lower part is for timesheet.\n"
+#~ "\n"
+#~ "Other tabs contains statistics views to help you analyse your\n"
+#~ "time or the time of your team:\n"
+#~ "* Time spent by day (with attendances)\n"
+#~ "* Time spent by project\n"
+#~ "\n"
+#~ "This module also implements a complete timesheet validation process:\n"
+#~ "* Draft sheet\n"
+#~ "* Confirmation at the end of the period by the employee\n"
+#~ "* Validation by the project manager\n"
+#~ "\n"
+#~ "The validation can be configured in the company:\n"
+#~ "* Period size (day, week, month, year)\n"
+#~ "* Maximal difference between timesheet and attendances\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo ajuda a codificar e validar o quadro de horários e atendimentos "
+#~ "facilmente dentro da mesma \n"
+#~ "parte superior do ponto de vista é para atendimentos e pista (entrar / sair) "
+#~ "eventos. \n"
+#~ "A parte inferior é para quadro de horários. \n"
+#~ "Outras guias contém estatísticas vistas para ajudá-lo a analisar o seu \n"
+#~ "tempo ou o tempo de sua equipe: \n"
+#~ "* Tempo gasto por dia ( com atendimentos) \n"
+#~ "* Tempo gasto pelo projeto \n"
+#~ "Esse módulo também implementa um processo completo de validação horários: \n"
+#~ "* Projeto de folha \n"
+#~ "* A confirmação, no final do período pelo empregado \n"
+#~ "* Validação pelo gerente de projeto \n"
+#~ "A validação pode ser configurado na empresa: \n"
+#~ "* Tamanho Período (dia, semana, mês, ano) \n"
+#~ "* diferença máxima entre os horários e atendimentos\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Retrieve incoming email on POP / IMAP servers\n"
+#~ "=============================================\n"
+#~ "\n"
+#~ "Enter the parameters of your POP/IMAP account(s), and any incoming\n"
+#~ "emails on these accounts will be automatically downloaded into your OpenERP\n"
+#~ "system. All POP3/IMAP-compatible servers are supported, included those\n"
+#~ "that require an encrypted SSL/TLS connection.\n"
+#~ "\n"
+#~ "This can be used to easily create email-based workflows for many\n"
+#~ "email-enabled OpenERP documents, such as:\n"
+#~ "\n"
+#~ " * CRM Leads/Opportunities\n"
+#~ " * CRM Claims\n"
+#~ " * Project Issues\n"
+#~ " * Project Tasks\n"
+#~ " * Human Resource Recruitments (Applicants)\n"
+#~ " * etc.\n"
+#~ "\n"
+#~ "Just install the relevant application, and you can assign any of\n"
+#~ "these document types (Leads, Project Issues, etc.) to your incoming\n"
+#~ "email accounts. New emails will automatically spawn new documents\n"
+#~ "of the chosen type, so it's a snap to create a mailbox-to-OpenERP\n"
+#~ "integration. Even better: these documents directly act as mini\n"
+#~ "conversations synchronized by email. You can reply from within\n"
+#~ "OpenERP, and the answers will automatically be collected when\n"
+#~ "they come back, and attached to the same *conversation* document.\n"
+#~ "\n"
+#~ "For more specific needs, you may also assign custom-defined actions\n"
+#~ "(technically: Server Actions) to be triggered for each incoming\n"
+#~ "mail. \n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Recuperar e-mails recebidos em POP / IMAP servidores \n"
+#~ "========================================== === \n"
+#~ "Digite os parâmetros de sua conta POP / IMAP (s), e todos os que chegam \n"
+#~ "e-mails destas contas será automaticamente baixado em seu OpenERP \n"
+#~ "sistema. Todos os servidores POP3/IMAP-compatible são suportados, incluídos "
+#~ "aqueles \n"
+#~ "que requerem uma conexão SSL / TLS criptografados. \n"
+#~ "Isso pode ser usado para criar facilmente os fluxos de trabalho baseados em "
+#~ "e-mail para vários \n"
+#~ "documentos OpenERP email habilitados, tais como:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " * CRM Leads / Oportunidades\n"
+#~ " * Reclamações CRM\n"
+#~ " * Questões de projeto\n"
+#~ " * Tarefas do Projeto\n"
+#~ " * Recursos Humanos Recrutamentos (Candidato)\n"
+#~ " * Etc \n"
+#~ "Basta instalar o aplicativo em questão, e você pode atribuir qualquer um \n"
+#~ "desses tipos (Leads, problemas do projeto, etc) de documentos para seus "
+#~ "recebidas \n"
+#~ "contas de email. Novos e-mails irá gerar automaticamente novos documentos \n"
+#~ "do tipo escolhido, por isso é uma pressão para criar uma caixa de correio-to-"
+#~ "OpenERP \n"
+#~ "integração. Ainda melhor: estes documentos atuar diretamente como mini \n"
+#~ "conversas sincronizadas por e-mail. Você não pode responder a partir de "
+#~ "dentro \n"
+#~ "OpenERP, e as respostas serão automaticamente coletadas quando \n"
+#~ "eles voltam, e anexado à mesma * conversa * documento. \n"
+#~ "Para necessidades mais específicas, você também pode atribuir ações custom-"
+#~ "definidos \n"
+#~ "(tecnicamente: Ações de servidor) para ser acionado para cada entrada \n"
+#~ "de correio. \n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Installer for reporting Hidden.\n"
+#~ "==============================\n"
+#~ "\n"
+#~ "Makes the Reporting Hidden Configuration available from where you can "
+#~ "install\n"
+#~ "modules like base_report_designer and base_report_creator.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Installer para relatar Oculto. \n"
+#~ "============================== \n"
+#~ "Faz a Configuração do Reporting Invisível disponível a partir de onde você "
+#~ "pode instalar \n"
+#~ "módulos como base_report_designer e base_report_creator.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows you to define what is the default invoicing rate for a "
+#~ "specific journal on a given account.\n"
+#~ "============================================================================="
+#~ "=================================\n"
+#~ "\n"
+#~ "This is mostly used when a user encodes his timesheet: the values are "
+#~ "retrieved and the fields are auto-filled. But the possibility to change "
+#~ "these values is still available.\n"
+#~ "\n"
+#~ "Obviously if no data has been recorded for the current account, the default "
+#~ "value is given as usual by the account data so that this module is perfectly "
+#~ "compatible with older configurations.\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite que você defina o que é a taxa de faturamento padrão "
+#~ "para uma revista específica sobre um determinado \n"
+#~ "é usado principalmente quando um usuário codifica seu quadro de horários: os "
+#~ "valores são recuperados e os campos serão preenchidos-auto. Mas a "
+#~ "possibilidade de alterar esses valores ainda está disponível. \n"
+#~ "Obviamente, se nenhum dado foi registrado para a conta corrente, o valor "
+#~ "padrão é dado como de costume, os dados da conta para que este módulo é "
+#~ "perfeitamente compatível com as configurações antigas.\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Allows cancelling accounting entries.\n"
+#~ "=====================================\n"
+#~ "\n"
+#~ "This module adds 'Allow cancelling entries' field on form view of account "
+#~ "journal. If set to true it allows user to cancel entries & invoices.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Permite cancelar lançamentos contábeis. \n"
+#~ "===================================== \n"
+#~ "Este módulo adiciona 'Permitir entradas de cancelamento \" campo de visão "
+#~ "forma de revista conta. Se for definido como verdadeiro ele permite ao "
+#~ "usuário cancelar entradas e faturas.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Module that extends the standard account_bank_statement_line object for "
+#~ "improved e-banking support.\n"
+#~ "\n"
+#~ "Adds\n"
+#~ "- valuta date\n"
+#~ "- batch payments\n"
+#~ "- traceability of changes to bank statement lines\n"
+#~ "- bank statement line views\n"
+#~ "- bank statements balances report\n"
+#~ "- performance improvements for digital import of bank statement (via "
+#~ "'ebanking_import' context flag)\n"
+#~ "- name_search on res.partner.bank enhanced to allow search on bank and iban "
+#~ "account numbers\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ ". Módulo que estende o objeto account_bank_statement_line padrão para "
+#~ "suporte melhorado e-banking \n"
+#~ "Adiciona \n"
+#~ "- data valuta \n"
+#~ "- pagamentos em lote \n"
+#~ "- rastreabilidade de mudanças para linhas extratos bancários \n"
+#~ "- Vistas linha extratos bancários \n"
+#~ "- extratos bancários equilibra relatório \n"
+#~ "- melhorias de desempenho para a importação digital do extrato bancário (via "
+#~ "bandeira contexto \"ebanking_import ') \n"
+#~ "- name_search em res.partner.bank aprimorada para permitir busca em números "
+#~ "de conta bancária e iban\n"
+#~ " "
+
+#, python-format
+#~ msgid ""
+#~ "Insufficient fields to generate a Calendar View for %s, missing a date_stop "
+#~ "or a date_delay\" % (self._name)))\n"
+#~ "\n"
+#~ " return view\n"
+#~ "\n"
+#~ " def _get_default_search_view(self, cr, uid, context=None):\n"
+#~ " \"\n"
+#~ " :param cr: database cursor\n"
+#~ " :param int user: user id\n"
+#~ " :param dict context: connection context\n"
+#~ " :returns: an lxml document of the view\n"
+#~ " :rtype: etree._Element\n"
+#~ " \"\n"
+#~ " form_view = self.fields_view_get(cr, uid, False, 'form', "
+#~ "context=context)\n"
+#~ " tree_view = self.fields_view_get(cr, uid, False, 'tree', "
+#~ "context=context)\n"
+#~ "\n"
+#~ " # TODO it seems _all_columns could be used instead of fields_get (no "
+#~ "need for translated fields info)\n"
+#~ " fields = self.fields_get(cr, uid, context=context)\n"
+#~ " fields_to_search = set(\n"
+#~ " field for field, descriptor in fields.iteritems()\n"
+#~ " if descriptor.get('select'))\n"
+#~ "\n"
+#~ " for view in (form_view, tree_view):\n"
+#~ " view_root = etree.fromstring(view['arch'])\n"
+#~ " # Only care about select=1 in xpath below, because select=2 is "
+#~ "covered\n"
+#~ " # by the custom advanced search in clients\n"
+#~ " "
+#~ "fields_to_search.update(view_root.xpath(\"//field[@select=1]/@name"
+#~ msgstr ""
+#~ "Campos insuficiente para gerar um calendário vista por% s, faltando um "
+#~ "date_stop ou date_delay \"% (self._name)))\n"
+#~ "\n"
+#~ " voltar ver\n"
+#~ "\n"
+#~ " def _get_default_search_view (self, cr, uid, context = None):\n"
+#~ " \"\n"
+#~ " : Param cr: cursor do banco de dados\n"
+#~ " : Param int usuário: ID de usuário\n"
+#~ " : Contexto dict param: contexto de conexão\n"
+#~ " : Retorna: um documento lxml da visão\n"
+#~ " : RTYPE: etree._Element\n"
+#~ " \"\n"
+#~ " form_view = self.fields_view_get (cr, uid, False, \"forma\", context "
+#~ "= contexto)\n"
+#~ " tree_view = self.fields_view_get (cr, uid, False, 'árvore', context "
+#~ "= contexto)\n"
+#~ "\n"
+#~ " # TODO parece _all_columns poderia ser usado em vez de fields_get "
+#~ "(sem necessidade de traduzir informações campos)\n"
+#~ " fields = self.fields_get (cr, uid, context = contexto)\n"
+#~ " fields_to_search = set (\n"
+#~ " de campo para campo, descritor em fields.iteritems ()\n"
+#~ " se descriptor.get ('select'))\n"
+#~ "\n"
+#~ " para vista em (form_view, tree_view):\n"
+#~ " view_root = etree.fromstring (vista ['arco'])\n"
+#~ " # Só se preocupam com select = 1 em XPath abaixo, porque select "
+#~ "= 2 é coberto\n"
+#~ " # Pela pesquisa avançada personalizado em clientes\n"
+#~ " fields_to_search.update (view_root.xpath (\"/ / field [@ select "
+#~ "= 1] / @ name"
+
+#~ msgid ""
+#~ "\n"
+#~ "This module installs the base for IBAN (International Bank Account Number) "
+#~ "bank accounts and checks for its validity.\n"
+#~ "============================================================================="
+#~ "========================================\n"
+#~ "\n"
+#~ "The ability to extract the correctly represented local accounts from IBAN "
+#~ "accounts with a single statement.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo é instalado na base de IBAN (Número Internacional de Conta "
+#~ "Bancária) contas bancárias e cheques para a sua \n"
+#~ "capacidade de extrair as contas locais corretamente representado de IBAN "
+#~ "contas com uma única instrução.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Samples for Webkit Report Engine (report_webkit module).\n"
+#~ "========================================================\n"
+#~ "\n"
+#~ "A sample invoice report is included in this module, as well as a wizard to\n"
+#~ "add Webkit Report entries on any Document in the system.\n"
+#~ "\n"
+#~ "You have to create the print buttons by calling the wizard. For more details "
+#~ "see:\n"
+#~ " http://files.me.com/nbessi/06n92k.mov\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "As amostras para Webkit Report Engine (módulo report_webkit). \n"
+#~ "======================================== ================ \n"
+#~ "Um relatório fatura amostra está incluído neste módulo, bem como um "
+#~ "assistente para \n"
+#~ "adicionar Webkit entradas Relatório sobre qualquer documento no sistema. \n"
+#~ "Você tem que criar os botões de impressão chamando o assistente. Para mais "
+#~ "detalhes ver:\n"
+#~ "\n"
+#~ "\n"
+#~ " http://files.me.com/nbessi/06n92k.mov\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "A module that adds manufacturers and attributes on the product form.\n"
+#~ "====================================================================\n"
+#~ "\n"
+#~ "You can now define the following for a product:\n"
+#~ " * Manufacturer\n"
+#~ " * Manufacturer Product Name\n"
+#~ " * Manufacturer Product Code\n"
+#~ " * Product Attributes\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Um módulo que agrega os fabricantes e os atributos na forma de produto. \n"
+#~ "====================================== ============================== \n"
+#~ "Agora você pode definir o seguinte para um produto:\n"
+#~ "\n"
+#~ " * Fabricante\n"
+#~ " * Nome do produto\n"
+#~ " * Fabricante Código do produto\n"
+#~ " * Atributos de produto\n"
+#~ " "
+
+#~ msgid "Belgium - Import bank CODA statements"
+#~ msgstr "Bélgica - Importação de extratos bancários CODA"
+
+#~ msgid ""
+#~ "This Module Import SugarCRM \"Leads\", \"Opportunities\", \"Users\", "
+#~ "\"Accounts\", \n"
+#~ " \"Contacts\", \"Employees\", Meetings, Phonecalls, Emails, and "
+#~ "Project, Project Tasks Data into OpenERP Module."
+#~ msgstr ""
+#~ "Este Módulo Importação SugarCRM \"Leva\", \"Oportunidades\", \"Usuários\", "
+#~ "\"Contas\", \n"
+#~ " \"Contatos\", \"funcionários\", reuniões, telefonemas, e-mails e "
+#~ "Projeto, Tarefas de dados no módulo OpenERP."
+
+#~ msgid ""
+#~ "\n"
+#~ "This is the module to manage the accounting chart for Venezuela in OpenERP.\n"
+#~ "===========================================================================\n"
+#~ "\n"
+#~ "Este módulo es para manejar un catálogo de cuentas ejemplo para Venezuela.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Este é o módulo para gerenciar o gráfico representando a Venezuela no "
+#~ "OpenERP. \n"
+#~ "==================================== ======================================= "
+#~ "\n"
+#~ "Este Módulo es para manejar un Catálogo de cuentas ejemplo parágrafo "
+#~ "Venezuela.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows to implement action rules for any object.\n"
+#~ "============================================================\n"
+#~ "\n"
+#~ "Use automated actions to automatically trigger actions for various screens.\n"
+#~ "\n"
+#~ "Example: a lead created by a specific user may be automatically set to a "
+#~ "specific\n"
+#~ "sales team, or an opportunity which still has status pending after 14 days "
+#~ "might\n"
+#~ "trigger an automatic reminder email.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite a aplicação de regras de ação para qualquer objeto. \n"
+#~ "======================================= ===================== \n"
+#~ "Use ações automatizadas para disparar automaticamente as ações para várias "
+#~ "telas. \n"
+#~ "Exemplo: uma ligação criada por um usuário específico pode ser ajustado "
+#~ "automaticamente a um determinado \n"
+#~ "equipe de vendas , ou uma oportunidade que ainda tem estado pendente após 14 "
+#~ "dias pode \n"
+#~ "desencadear um email lembrete automático.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "The aim is to have a complete module to manage all products repairs. The "
+#~ "following topics should be covered by this module:\n"
+#~ "============================================================================="
+#~ "==============================================\n"
+#~ "\n"
+#~ " * Add/remove products in the reparation\n"
+#~ " * Impact for stocks\n"
+#~ " * Invoicing (products and/or services)\n"
+#~ " * Warranty concept\n"
+#~ " * Repair quotation report\n"
+#~ " * Notes for the technician and for the final customer\n"
+#~ msgstr ""
+#~ "\n"
+#~ "O objetivo é ter um módulo completo para gerenciar todos os produtos "
+#~ "reparos. Os seguintes tópicos devem ser abrangidos por este\n"
+#~ "\n"
+#~ " * Adicionar / remover produtos na reparação\n"
+#~ " * Impacto de ações\n"
+#~ " * Faturamento (produtos e / ou serviços)\n"
+#~ " * Conceito de Garantia\n"
+#~ " * Relatório cotação Repair\n"
+#~ " * Notas para o técnico e para o cliente final\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Installer for knowledge-based Hidden.\n"
+#~ "====================================\n"
+#~ "\n"
+#~ "Makes the Knowledge Application Configuration available from where you can "
+#~ "install\n"
+#~ "document and Wiki based Hidden.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Installer para Hidden baseada no conhecimento. \n"
+#~ "==================================== \n"
+#~ "Faz a configuração de aplicação do conhecimento disponível a partir de onde "
+#~ "você pode instalar \n"
+#~ "documento e Wiki baseado Oculto.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Generic Payroll system Integrated with Accountings.\n"
+#~ "===================================================\n"
+#~ "\n"
+#~ " * Expense Encoding\n"
+#~ " * Payment Encoding\n"
+#~ " * Company Contribution Management\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Sistema de folha de pagamento genérico Integrado com Os relatos. \n"
+#~ "=========================================== ========\n"
+#~ "\n"
+#~ " * Despesa Encoding\n"
+#~ " * Codificação de Pagamento\n"
+#~ " * Empresa de Gestão de Contribuição\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Invoice Wizard for Delivery.\n"
+#~ "============================\n"
+#~ "\n"
+#~ "When you send or deliver goods, this module automatically launch\n"
+#~ "the invoicing wizard if the delivery is to be invoiced.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Assistente de fatura para a entrega. \n"
+#~ "============================ \n"
+#~ "Quando você enviar ou entregar mercadorias, este módulo iniciará "
+#~ "automaticamente \n"
+#~ "o assistente de faturamento, se a entrega deve ser facturado.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module lets you calculate discounts on Sale Order lines and Invoice "
+#~ "lines base on the partner's pricelist.\n"
+#~ "============================================================================="
+#~ "==================================\n"
+#~ "\n"
+#~ "To this end, a new check box named \"Visible Discount\" is added to the "
+#~ "pricelist form.\n"
+#~ "\n"
+#~ "Example:\n"
+#~ " For the product PC1 and the partner \"Asustek\": if listprice=450, and "
+#~ "the price calculated using Asustek's pricelist is 225\n"
+#~ " If the check box is checked, we will have on the sale order line: Unit "
+#~ "price=450, Discount=50,00, Net price=225\n"
+#~ " If the check box is unchecked, we will have on Sale Order and Invoice "
+#~ "lines: Unit price=225, Discount=0,00, Net price=225\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite calcular descontos em linhas ordem de venda e fatura "
+#~ "linhas de base no parceiro \n"
+#~ "Nesse sentido, uma nova caixa de seleção chamado \"desconto Visível\" é "
+#~ "adicionado ao formulário de preços. \n"
+#~ "Exemplo:\n"
+#~ "\n"
+#~ "\n"
+#~ " Para o PC1 produto eo parceiro \"Asustek\": se ListPrice = 450, eo preço "
+#~ "calculado usando lista de preços da Asustek é de 225\n"
+#~ " Se a caixa de seleção está marcada, teremos na linha de ordem de venda: "
+#~ "Preço unitário = 450, Discount = 50,00, o preço líquido = 225\n"
+#~ " Se a caixa estiver desmarcada, teremos a Ordem de Venda e as linhas da "
+#~ "fatura: Preço unitário = 225 de desconto = 0,00, o preço líquido = 225\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "A module that adds intrastat reports.\n"
+#~ "=====================================\n"
+#~ "\n"
+#~ "This module gives the details of the goods traded between the countries of "
+#~ "European Union "
+#~ msgstr ""
+#~ "\n"
+#~ "Um módulo que adiciona relatórios intrastat. \n"
+#~ "===================================== \n"
+#~ "Este módulo fornece os detalhes as mercadorias comercializadas entre os "
+#~ "países da União Europeia "
+
+#~ msgid ""
+#~ "\n"
+#~ "Synchronization of project task work entries with timesheet entries.\n"
+#~ "====================================================================\n"
+#~ "\n"
+#~ "This module lets you transfer the entries under tasks defined for Project "
+#~ "Management to\n"
+#~ "the Timesheet line entries for particular date and particular user with the "
+#~ "effect of creating, editing and deleting either ways.\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Sincronização de entradas de trabalho de tarefas do projeto com entradas de "
+#~ "quadro de horários. \n"
+#~ "======================================== ============================ \n"
+#~ "Este módulo permite que você transferir as entradas em tarefas definidas "
+#~ "para Gerenciamento de Projetos para \n"
+#~ "as entradas de linha do quadro de horários especial data e determinado "
+#~ "usuário com o efeito de criar, editar e excluir ou maneiras.\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows Just In Time computation of procurement orders.\n"
+#~ "==================================================================\n"
+#~ "\n"
+#~ "If you install this module, you will not have to run the regular "
+#~ "procurement\n"
+#~ "scheduler anymore (but you still need to run the minimum order point rule\n"
+#~ "scheduler, or for example let it run daily.)\n"
+#~ "All procurement orders will be processed immediately, which could in some\n"
+#~ "cases entail a small performance impact.\n"
+#~ "\n"
+#~ "It may also increase your stock size because products are reserved as soon\n"
+#~ "as possible and the scheduler time range is not taken into account anymore.\n"
+#~ "In that case, you can not use priorities any more on the different picking.\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite Just In Time cálculo das ordens de compras. \n"
+#~ "======================================= =========================== \n"
+#~ "Se você instalar esse módulo, você não terá que executar a aquisição regular "
+#~ "de \n"
+#~ "programador mais (mas você ainda precisa executar o ponto de ordem mínima "
+#~ "regra \n"
+#~ "scheduler, ou, por exemplo, deixá-lo correr diariamente.) \n"
+#~ "Todas as ordens de compras serão processadas imediatamente, podendo, em "
+#~ "alguns \n"
+#~ "casos, implicar um pequeno impacto no desempenho. \n"
+#~ "Ele também pode aumentar o tamanho do estoque, pois os produtos são "
+#~ "reservados assim \n"
+#~ "como possível eo tempo de programador intervalo não é levado em conta mais. "
+#~ "\n"
+#~ "Nesse caso, você não pode usar qualquer prioridades mais sobre os diferentes "
+#~ "picking.\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module implements all concepts defined by the scrum project management "
+#~ "methodology for IT companies.\n"
+#~ "============================================================================="
+#~ "============================\n"
+#~ "\n"
+#~ " * Project with sprints, product owner, scrum master\n"
+#~ " * Sprints with reviews, daily meetings, feedbacks\n"
+#~ " * Product backlog\n"
+#~ " * Sprint backlog\n"
+#~ "\n"
+#~ "It adds some concepts to the project management module:\n"
+#~ " * Mid-term, long-term road-map\n"
+#~ " * Customers/functional requests VS technical ones\n"
+#~ "\n"
+#~ "It also creates a new reporting:\n"
+#~ " * Burn-down chart\n"
+#~ "\n"
+#~ "The scrum projects and tasks inherit from the real projects and\n"
+#~ "tasks, so you can continue working on normal tasks that will also\n"
+#~ "include tasks from scrum projects.\n"
+#~ "\n"
+#~ "More information on the methodology:\n"
+#~ " * http://controlchaos.com\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo implementa todos os conceitos definidos pela metodologia de "
+#~ "gerenciamento de projeto scrum para TI\n"
+#~ "\n"
+#~ " * Projeto com sprints, proprietário do produto, scrum master\n"
+#~ " * Sprints com comentários, reuniões diárias, feedbacks\n"
+#~ " * Product Backlog\n"
+#~ " * Sprint backlog \n"
+#~ "Acrescenta alguns conceitos para o módulo de gerenciamento de projetos:\n"
+#~ "\n"
+#~ " * Médio prazo, a longo prazo road-map\n"
+#~ " * Os clientes / pedidos funcionais VS os técnicos \n"
+#~ "também cria um novo relatório:\n"
+#~ "\n"
+#~ " * Queime-down traçar \n"
+#~ "Os projetos Scrum e tarefas herdar os projetos reais e \n"
+#~ "tarefas, para que possa continuar a trabalhar em tarefas normais que também "
+#~ "\n"
+#~ "incluem tarefas de projetos Scrum. \n"
+#~ "Mais informações sobre a metodologia:\n"
+#~ "\n"
+#~ "\n"
+#~ " * Http://controlchaos.com\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Adds enhanced support for (Ether)Pad attachments in the web client.\n"
+#~ "===================================================================\n"
+#~ "\n"
+#~ "Lets the company customize which Pad installation should be used to link to "
+#~ "new pads\n"
+#~ "(by default, http://ietherpad.com/).\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Adiciona suporte aprimorado para (Éter) anexos Pad no cliente web. \n"
+#~ "==================================== =============================== \n"
+#~ "Permite a empresa personalizar quais instalação Pad deve ser usado para "
+#~ "conectar-se a novas pastilhas \n"
+#~ "(por padrão, http://ietherpad.com/).\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Adds support for authentication by LDAP server.\n"
+#~ "===============================================\n"
+#~ "This module allows users to login with their LDAP username and\n"
+#~ "password, and will automatically create OpenERP users for them\n"
+#~ "on the fly.\n"
+#~ "\n"
+#~ "**Note**: This module only work on servers who have Python's\n"
+#~ "``ldap`` module installed.\n"
+#~ "\n"
+#~ "Configuration\n"
+#~ "+++++++++++++\n"
+#~ "After installing this module, you need to configure the LDAP\n"
+#~ "parameters in the Configuration tab of the Company details.\n"
+#~ "Different companies may have different LDAP servers, as long\n"
+#~ "as they have unique usernames (usernames need to be unique in\n"
+#~ "OpenERP, even across multiple companies).\n"
+#~ "\n"
+#~ "Anonymous LDAP binding is also supported (for LDAP servers\n"
+#~ "that allow it), by simpling keeping the LDAP user and password\n"
+#~ "empty in the LDAP configuration. This does **not** allow\n"
+#~ "anonymous authentication for users, it is only for the master\n"
+#~ "LDAP account that is used to verify if a user exists before\n"
+#~ "attempting to authenticate it.\n"
+#~ "\n"
+#~ "Securing the connection with STARTTLS is available for LDAP\n"
+#~ "servers supporting it, by enabling the TLS option in the LDAP\n"
+#~ "configuration.\n"
+#~ "\n"
+#~ "For further options configuring the LDAP settings, refer to the\n"
+#~ "ldap.conf manpage :manpage:`ldap.conf(5)`.\n"
+#~ "\n"
+#~ "Security Considerations\n"
+#~ "+++++++++++++++++++++++\n"
+#~ "Users' LDAP passwords are never stored in the OpenERP database,\n"
+#~ "the LDAP server is queried whenever a user needs to be\n"
+#~ "authenticated. No duplication of the password occurs, and\n"
+#~ "passwords are managed in one place only.\n"
+#~ "\n"
+#~ "OpenERP does not manage password changes in the LDAP, so\n"
+#~ "any change of password should be conducted by other means\n"
+#~ "in the LDAP directory directly (for LDAP users).\n"
+#~ "\n"
+#~ "It is also possible to have local OpenERP users in the\n"
+#~ "database along with LDAP-authenticated users (the Administrator\n"
+#~ "account is one obvious example).\n"
+#~ "\n"
+#~ "Here is how it works:\n"
+#~ "\n"
+#~ " * The system first attempts to authenticate users against\n"
+#~ " the local OpenERP database ;\n"
+#~ " * if this authentication fails (for example because the\n"
+#~ " user has no local password), the system then attempts\n"
+#~ " to authenticate against LDAP ;\n"
+#~ "\n"
+#~ "As LDAP users have blank passwords by default in the local\n"
+#~ "OpenERP database (which means no access), the first step\n"
+#~ "always fails and the LDAP server is queried to do the\n"
+#~ "authentication.\n"
+#~ "\n"
+#~ "Enabling STARTTLS ensures that the authentication query to the\n"
+#~ "LDAP server is encrypted.\n"
+#~ "\n"
+#~ "User Template\n"
+#~ "+++++++++++++\n"
+#~ "In the LDAP configuration on the Company form, it is possible to\n"
+#~ "select a *User Template*. If set, this user will be used as\n"
+#~ "template to create the local users whenever someone authenticates\n"
+#~ "for the first time via LDAP authentication.\n"
+#~ "This allows pre-setting the default groups and menus of the\n"
+#~ "first-time users.\n"
+#~ "\n"
+#~ "**Warning**: if you set a password for the user template,\n"
+#~ "this password will be assigned as local password for each new\n"
+#~ "LDAP user, effectively setting a *master password* for these\n"
+#~ "users (until manually changed). You usually do not want this.\n"
+#~ "One easy way to setup a template user is to login once with\n"
+#~ "a valid LDAP user, let OpenERP create a blank local user with the\n"
+#~ "same login (and a blank password), then rename this new user\n"
+#~ "to a username that does not exist in LDAP, and setup its\n"
+#~ "groups the way you want.\n"
+#~ "\n"
+#~ "Interaction with base_crypt\n"
+#~ "+++++++++++++++++++++++++++\n"
+#~ "The base_crypt module is not compatible with this module, and\n"
+#~ "will disable LDAP authentication if installed at the same time.\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Adiciona suporte para autenticação por servidor LDAP. \n"
+#~ "========================================== ===== \n"
+#~ "Este módulo permite aos usuários fazer login com seu nome de usuário e LDAP "
+#~ "\n"
+#~ "senha e criará automaticamente os usuários OpenERP para eles \n"
+#~ "em tempo real. \n"
+#~ "** Nota **: Este módulo só funciona em servidores que têm de Python \n"
+#~ "`` `` ldap módulo instalado. \n"
+#~ "Configuração \n"
+#~ "+ + + + + + + + + + + + + \n"
+#~ "Depois de instalar este módulo, você precisa configurar o LDAP \n"
+#~ "parâmetros na aba Configuração dos detalhes da empresa. \n"
+#~ "Diferentes empresas podem ter diferentes servidores LDAP, desde \n"
+#~ "que eles têm nomes únicos (usernames precisa ser exclusivo no \n"
+#~ "OpenERP, mesmo em várias empresas). \n"
+#~ "ligação anônima do LDAP também é suportado (para servidores LDAP \n"
+#~ "que permitem isso), por Simpling mantendo o usuário LDAP e senha \n"
+#~ "vazio na configuração LDAP. Isso faz ** não ** permitir \n"
+#~ "a autenticação anônima para os usuários, é apenas para o mestre \n"
+#~ "conta LDAP, que é usado para verificar se um usuário existe antes de \n"
+#~ "tentar autenticar-lo. \n"
+#~ "Protegendo a conexão com STARTTLS está disponível para LDAP \n"
+#~ "servidores de apoio que, por ativando a opção TLS no LDAP \n"
+#~ ". configuração \n"
+#~ "Para mais opções de configuração das definições de LDAP, consulte a \n"
+#~ "manpage ldap.conf: manpage:. `ldap.conf (5)` \n"
+#~ "Considerações de Segurança \n"
+#~ "+ + + + + + + + + + + + + + + + + + + + + + + \n"
+#~ "LDAP senhas dos usuários nunca são armazenados no banco de dados OpenERP, \n"
+#~ "o servidor LDAP é consultado sempre que um usuário precisa ser \n"
+#~ "autenticado. Sem duplicação da senha ocorre, e \n"
+#~ "as senhas são gerenciados em um só lugar. \n"
+#~ "OpenERP não gerenciar as mudanças de senha no LDAP, então \n"
+#~ "qualquer mudança de senha deve ser realizada por outros meios \n"
+#~ "no diretório LDAP diretamente (para usuários LDAP). \n"
+#~ "É também possível ter usuários OpenERP locais no \n"
+#~ "banco de dados, juntamente com os usuários LDAP autenticados (o "
+#~ "Administrador \n"
+#~ ". conta é um exemplo óbvio) \n"
+#~ "Aqui está como ele funciona:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " * O sistema primeiro tenta autenticar os usuários contra\n"
+#~ " o banco de dados OpenERP local;\n"
+#~ " * Se essa autenticação falhar (por exemplo, porque o\n"
+#~ " usuário não tem senha local), o sistema tenta então\n"
+#~ " autenticar LDAP; \n"
+#~ "Como os usuários LDAP ter senhas em branco por padrão no local de \n"
+#~ "banco de dados OpenERP (o que significa sem acesso), o primeiro passo \n"
+#~ "sempre falha eo servidor LDAP é consultado para fazer a \n"
+#~ "autenticação. \n"
+#~ "Habilitação STARTTLS assegura que a consulta de autenticação para o \n"
+#~ "servidor LDAP é criptografada. \n"
+#~ "Modelo de Usuário \n"
+#~ "+ + + + + + + + + + + + + \n"
+#~ "Na configuração LDAP no formulário Company, é possível \n"
+#~ "selecionar a * Modelo de Usuário *. Se definido, este usuário será utilizado "
+#~ "como \n"
+#~ "modelo para criar os usuários locais sempre que alguém autentica \n"
+#~ "pela primeira vez através de autenticação LDAP. \n"
+#~ "Isso permite pré-configuração dos grupos padrão e menus dos \n"
+#~ "usuários de primeira viagem. \n"
+#~ "** Atenção **: se você definir uma senha para o modelo de usuário, \n"
+#~ "a senha será atribuído como senha local para cada novo \n"
+#~ "usuário LDAP, estabelecendo efetivamente a * mestre senha * para estes \n"
+#~ "usuários (até mudado manualmente). Você geralmente não quer isso. \n"
+#~ "Uma maneira fácil de configurar um usuário do modelo é fazer o login uma vez "
+#~ "com \n"
+#~ "um usuário LDAP válido, vamos OpenERP criar um usuário local em branco com o "
+#~ "\n"
+#~ "mesmo login (e uma senha em branco), renomeie esse novo usuário \n"
+#~ "para um nome de usuário que não existe no LDAP e configurar seus \n"
+#~ "grupos da maneira que quiser. \n"
+#~ "Interação com base_crypt \n"
+#~ "+ + + + + + + + + + + + + + + + + + + + + + + + + + + \n"
+#~ "O módulo base_crypt não é compatível com este módulo, e \n"
+#~ "irá desactivar a autenticação LDAP se instalado ao mesmo tempo.\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Replaces cleartext passwords in the database with a secure hash\n"
+#~ "===============================================================\n"
+#~ "For your existing user base, the removal of the cleartext\n"
+#~ "passwords occurs immediately when you instal base_crypt.\n"
+#~ "\n"
+#~ "All passwords will be replaced by a secure, salted, cryptographic\n"
+#~ "hash, preventing anyone from reading the original password in\n"
+#~ "the database.\n"
+#~ "\n"
+#~ "After installing this module it won't be possible to recover a\n"
+#~ "forgotten password for your users, the only solution is for an\n"
+#~ "admin to set a new password.\n"
+#~ "\n"
+#~ "Security Warning\n"
+#~ "++++++++++++++++\n"
+#~ "Installing this module does not mean you can ignore other security "
+#~ "measures,\n"
+#~ "as the password is still transmitted unencrypted on the network, unless you\n"
+#~ "are using a secure protocol such as XML-RPCS or HTTPS.\n"
+#~ "It also does not protect the rest of the content of the database, which may\n"
+#~ "contain critical data. Appropriate security measures need to be implemented\n"
+#~ "by the system administrator in all areas, such as: protection of database\n"
+#~ "backups, system files, remote shell access, physical server access, etc.\n"
+#~ "\n"
+#~ "Interation with LDAP authentication\n"
+#~ "+++++++++++++++++++++++++++++++++++\n"
+#~ "This module is currently not compatible with the ``user_ldap`` module and\n"
+#~ "will disable LDAP authentication completely if installed at the same time.\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Substitui senhas em texto plano no banco de dados com um hash seguro \n"
+#~ "======================================== ======================= \n"
+#~ "Para a sua base de usuários existente, a remoção de o texto não "
+#~ "criptografado \n"
+#~ "senhas ocorre imediatamente quando você instala base_crypt. \n"
+#~ "Todas as senhas serão substituídos por um seguro , salgados, criptográfica \n"
+#~ "de hash, impedindo qualquer pessoa de ler a senha original no \n"
+#~ "banco de dados. \n"
+#~ "Após a instalação deste módulo não será possível recuperar a \n"
+#~ "senha esquecida para os seus usuários, a única solução é para um \n"
+#~ "administrador para definir uma nova senha. \n"
+#~ "Segurança Aviso \n"
+#~ "+ + + + + + + + + + + + + + + + \n"
+#~ "A instalação deste módulo não significa que você pode ignorar outras medidas "
+#~ "de segurança, \n"
+#~ "como a senha ainda é transmitida sem criptografia na rede, a menos que você "
+#~ "\n"
+#~ "estiver usando um protocolo seguro, como XML RPCS ou HTTPS. \n"
+#~ "Também não protege o resto do conteúdo da base de dados, a qual pode \n"
+#~ "conter os dados críticos. Medidas de segurança apropriadas devem ser "
+#~ "implementadas \n"
+#~ "pelo administrador do sistema em todas as áreas, tais como: proteção de "
+#~ "dados \n"
+#~ "backups, arquivos de sistema, acesso shell remoto, acesso de servidores "
+#~ "físicos, etc \n"
+#~ "interação com autenticação LDAP \n"
+#~ "+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \n"
+#~ "Este módulo não é compatível com o user_ldap `` `` módulo e \n"
+#~ "irá desactivar a autenticação LDAP se completamente instalado na mesma "
+#~ "tempo.\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "This module implements the accounting chart for OHADA area.\n"
+#~ " It allows any company or association to manage its financial "
+#~ "accounting.\n"
+#~ " Countries that use OHADA are the following:\n"
+#~ " Benin, Burkina Faso, Cameroon, Central African Republic, Comoros, "
+#~ "Congo,\n"
+#~ " Ivory Coast, Gabon, Guinea, Guinea Bissau,\n"
+#~ " Equatorial Guinea, Mali, Niger, Replica of Democratic Congo, Senegal, "
+#~ "Chad, Togo.\n"
+#~ " "
+#~ msgstr ""
+#~ "Este módulo implementa o Plano Contábil das área OHADA.\n"
+#~ " Ele permite que qualquer empresa ou associação para gerir a sua "
+#~ "contabilidade financeira.\n"
+#~ " Países que usam OHADA são os seguintes:\n"
+#~ " Benin, Burkina Faso, Camarões, República Centro Africano, Comoros, "
+#~ "Congo,\n"
+#~ " Costa do Marfim, Gabão, Guiné, Guiné Bissau,\n"
+#~ " Guiné Equatorial, Mali, Níger, República Democrática do Congo Replica, "
+#~ "Senegal, Chade, Togo.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module manages the records of artists, auction articles, buyers and "
+#~ "sellers.\n"
+#~ "============================================================================="
+#~ "====\n"
+#~ "\n"
+#~ "It completely manages an auction such as managing bids,\n"
+#~ "keeping track of the sold articles along with the paid\n"
+#~ "and unpaid objects including delivery of the articles.\n"
+#~ "\n"
+#~ "The dashboard for auction includes:\n"
+#~ " * Latest Objects (list)\n"
+#~ " * Latest Deposits (list)\n"
+#~ " * Objects Statistics (list)\n"
+#~ " * Total Adjudications (graph)\n"
+#~ " * Min/Adj/Max (graph)\n"
+#~ " * Objects By Day (graph)\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo controla os registros de artistas, artigos de leilão, os "
+#~ "compradores e vendedores. \n"
+#~ "=================================== "
+#~ "============================================== \n"
+#~ "Ele gerencia completamente um leilão como gerenciar licitações, \n"
+#~ "mantendo o controle dos artigos vendidos juntamente com os pagos \n"
+#~ ". objetos e não pagos, incluindo a entrega dos artigos \n"
+#~ "O painel de instrumentos para o leilão inclui:\n"
+#~ "\n"
+#~ "\n"
+#~ " * Últimos Objetos (lista)\n"
+#~ " * Últimos Depósitos (lista)\n"
+#~ " * Objetos Estatística (lista)\n"
+#~ " * Total Adjudicações (gráfico)\n"
+#~ " * Min / Adj / Max (gráfico)\n"
+#~ " * Objetos por dia (gráfico)\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Türkiye için Tek düzen hesap planı şablonu OpenERP Modülü.\n"
+#~ "============================================================================="
+#~ "=\n"
+#~ "\n"
+#~ "Bu modül kurulduktan sonra, Muhasebe yapılandırma sihirbazı çalışır\n"
+#~ " * Sihirbaz sizden hesap planı şablonu, planın kurulacağı şirket,banka "
+#~ "hesap bilgileriniz,ilgili para birimi gibi bilgiler isteyecek.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Türkiye için Tek Duzen Hesap plani şablonu OpenERP Modülü. \n"
+#~ "======================================== "
+#~ "====================================== \n"
+#~ "Bu Modul kurulduktan sonra, Muhasebe yapılandırma sihirbazı Calisir\n"
+#~ "\n"
+#~ " * Sihirbaz sizden Hesap plani şablonu, Planin kurulacağı şirket, banka "
+#~ "Hesap bilgileriniz, ilgili parágrafo birimi gibi bilgiler isteyecek.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module adds state, date_start,date_stop in production order operation "
+#~ "lines (in the \"Work Centers\" tab).\n"
+#~ "============================================================================="
+#~ "================================\n"
+#~ "\n"
+#~ "State: draft, confirm, done, cancel\n"
+#~ "When finishing/confirming,cancelling production orders set all state lines "
+#~ "to the according state\n"
+#~ "\n"
+#~ "Create menus:\n"
+#~ " Manufacturing > Manufacturing > Work Orders\n"
+#~ "\n"
+#~ "Which is a view on \"Work Centers\" lines in production order.\n"
+#~ "\n"
+#~ "Add buttons in the form view of production order under workcenter tab:\n"
+#~ " * start (set state to confirm), set date_start\n"
+#~ " * done (set state to done), set date_stop\n"
+#~ " * set to draft (set state to draft)\n"
+#~ " * cancel set state to cancel\n"
+#~ "\n"
+#~ "When the production order becomes \"ready to produce\", operations must\n"
+#~ "become 'confirmed'. When the production order is done, all operations\n"
+#~ "must become done.\n"
+#~ "\n"
+#~ "The field delay is the delay(stop date - start date).\n"
+#~ "So that we can compare the theoretic delay and real delay.\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo adiciona estado, date_start, date_stop em ordem linhas de "
+#~ "operação da produção (nos \"centros de trabalho\" \n"
+#~ "projecto, confirmar, feito, cancelar \n"
+#~ "Ao terminar / confirmando, cancelando ordens de produção definidas todas as "
+#~ "linhas para o estado de acordo com \n"
+#~ "Criar menus:\n"
+#~ "\n"
+#~ "\n"
+#~ " Fabricação> Fabricação> Ordens \n"
+#~ ". que é um ponto de vista sobre \"centros de trabalho\" linhas em ordem de "
+#~ "produção \n"
+#~ "Adicione botões na vista de formulário de ordem de produção na aba "
+#~ "workcenter:\n"
+#~ "\n"
+#~ "\n"
+#~ " * Começar (definir o estado para confirmar), conjunto date_start\n"
+#~ " * Feito (para definir o estado feito), date_stop definir\n"
+#~ " * Ajustado para rascunho (definir o estado de rascunho)\n"
+#~ " * Cancelar estado set para cancelar \n"
+#~ "Quando a ordem de produção torna-se \"pronto para produzir\", as operações "
+#~ "devem \n"
+#~ "ser \"confirmada\". Quando a ordem de produção é feito, todas as operações \n"
+#~ "devem ser feitas. \n"
+#~ "campo Delay é o atraso (data parar - data de início). \n"
+#~ "Para que possamos comparar o atraso teórico e atraso real.\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Ability to create employees evaluation.\n"
+#~ "=======================================\n"
+#~ "\n"
+#~ "An evaluation can be created by employee for subordinates,\n"
+#~ "juniors as well as his manager.The evaluation is done under a plan\n"
+#~ "in which various surveys can be created and it can be defined which\n"
+#~ "level of employee hierarchy fills what and final review and evaluation\n"
+#~ "is done by the manager.Every evaluation filled by the employees can be "
+#~ "viewed\n"
+#~ "in the form of pdf file. Implements a dashboard for My Current Evaluations\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Capacidade de criar de avaliação empregados. \n"
+#~ "======================================= \n"
+#~ "Uma avaliação pode ser criado por empregado para os subordinados, \n"
+#~ "juniores, bem como a sua avaliação manager.The é feito sob um plano \n"
+#~ "em que vários inquéritos podem ser criados e que pode ser definida qual \n"
+#~ "nível de hierarquia empregado preenche o que e última revisão e avaliação \n"
+#~ "é feito pelo manager.Every avaliação preenchida pelos funcionários podem ser "
+#~ "vistos \n"
+#~ "na forma de arquivo pdf. Implementa um painel para Minhas avaliações atuais\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module provides features to improve the layout of the Sales Order.\n"
+#~ "=======================================================================\n"
+#~ "\n"
+#~ "It gives you the possibility to\n"
+#~ " * order all the lines of a sales order\n"
+#~ " * add titles, comment lines, sub total lines\n"
+#~ " * draw horizontal lines and put page breaks\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo oferece recursos para melhorar o layout da Ordem de Vendas. \n"
+#~ "===================================== ================================== \n"
+#~ "Dá-lhe a possibilidade de\n"
+#~ "\n"
+#~ " * Ordem de todas as linhas de uma ordem de venda\n"
+#~ " * Adicione títulos, linhas de comentário, sub total de linhas\n"
+#~ " * Desenhar linhas horizontais e colocar as quebras de página\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This is the module to manage the accounting chart for France in OpenERP.\n"
+#~ "========================================================================\n"
+#~ "\n"
+#~ "Credits: Sistheo Zeekom CrysaLEAD\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Este é o módulo para gerenciar o gráfico representando a França em OpenERP. "
+#~ "\n"
+#~ "==================================== ==================================== \n"
+#~ "Créditos: Sistheo Zeekom CrysaLEAD\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Belgian Payroll Rules\n"
+#~ "=====================\n"
+#~ "\n"
+#~ " * Employee Details\n"
+#~ " * Employee Contracts\n"
+#~ " * Passport based Contract\n"
+#~ " * Allowances / Deductions\n"
+#~ " * Allow to configure Basic / Grows / Net Salary\n"
+#~ " * Employee Payslip\n"
+#~ " * Monthly Payroll Register\n"
+#~ " * Integrated with Holiday Management\n"
+#~ " * Salary Maj, ONSS, Withholding Tax, Child Allowance, ...\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Regras da folha de pagamento belgas \n"
+#~ "=====================\n"
+#~ "\n"
+#~ " * Detalhes do Empregado\n"
+#~ " * Contratos de trabalho\n"
+#~ " * Contrato baseado Passaporte\n"
+#~ " * Subsídios / Deduções\n"
+#~ " * Permite configurar Salário básico / Cresce / Net\n"
+#~ " * Payslip Employee\n"
+#~ " * Mensal da folha de pagamento Registrar\n"
+#~ " * Integrado com a Gestão de férias\n"
+#~ " * Salário Maj, ONSS, imposto retido na fonte, abono de família, ...\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Long Term Project management module that tracks planning, scheduling, "
+#~ "resources allocation.\n"
+#~ "============================================================================="
+#~ "==============\n"
+#~ "\n"
+#~ "Features\n"
+#~ "--------\n"
+#~ " * Manage Big project.\n"
+#~ " * Define various Phases of Project.\n"
+#~ " * Compute Phase Scheduling: Compute start date and end date of the "
+#~ "phases which are in draft,open and pending state of the project given.\n"
+#~ " If no project given then all the draft,open and pending state phases "
+#~ "will be taken.\n"
+#~ " * Compute Task Scheduling: This works same as the scheduler button on "
+#~ "project.phase. It takes the project as argument and computes all the "
+#~ "open,draft and pending tasks.\n"
+#~ " * Schedule Tasks: All the tasks which are in draft,pending and open "
+#~ "state are scheduled with taking the phase's start date\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Módulo de gerenciamento de projetos de Longo Prazo, que acompanha o "
+#~ "planejamento, programação, recursos\n"
+#~ "\n"
+#~ " * Gerenciar Big projeto.\n"
+#~ " * Definir várias fases do projeto.\n"
+#~ " * Compute Agendamento Fase: Calcule a data de início e data final das "
+#~ "fases que estão em fase de projecto, aberto e pendente estado de determinado "
+#~ "projeto.\n"
+#~ " Se nenhum projeto dado, em seguida, todo o projecto, aberto e fases "
+#~ "estaduais pendentes serão tomadas.\n"
+#~ " * Compute Agendamento de Tarefas: Isso funciona mesmo que o botão "
+#~ "programador em project.phase. Leva o projeto como argumento e calcula tudo a "
+#~ "céu aberto, projecto e tarefas pendentes.\n"
+#~ " * Tarefas Agenda: todas as tarefas que estão em fase de projecto, "
+#~ "pendentes e estado aberto estão programadas com a tomada de data de início "
+#~ "da fase\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows you to create any statistic report on several objects.\n"
+#~ "=========================================================================\n"
+#~ "\n"
+#~ "It's an SQL query builder and browser\n"
+#~ "for end-users.\n"
+#~ "\n"
+#~ "After installing the module, it adds a menu to define a custom report in\n"
+#~ "the Administration / Customization / Reporting menu.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite que você crie qualquer relatório de estatística de "
+#~ "vários objetos. \n"
+#~ "===================================== ==================================== \n"
+#~ "É um construtor de consulta SQL e um navegador \n"
+#~ "para os usuários finais. \n"
+#~ "Após a instalação o módulo, ele adiciona um menu para definir um relatório "
+#~ "personalizado em \n"
+#~ "Administração / menu de personalização / Reporting.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "The aim of this module is to check the quality of other modules.\n"
+#~ "================================================================\n"
+#~ "\n"
+#~ "It defines a wizard on the list of modules in OpenERP, which allows you to\n"
+#~ "evaluate them on different criteria such as: the respect of OpenERP coding\n"
+#~ "standards, the speed efficiency...\n"
+#~ "\n"
+#~ "This module also provides generic framework to define your own quality "
+#~ "test.\n"
+#~ "For further info, coders may take a look into base_module_quality\\"
+#~ "README.txt\n"
+#~ "\n"
+#~ "WARNING: This module cannot work as a ZIP file, you must unzip it before\n"
+#~ "using it, otherwise it may crash.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "O objetivo deste módulo é o de verificar a qualidade dos outros módulos. \n"
+#~ "==================================== ============================ \n"
+#~ "Ele define um assistente na lista de módulos OpenERP, que permite \n"
+#~ "avaliá-las em diferentes critérios, tais como: o respeito OpenERP "
+#~ "codificação de \n"
+#~ "normas, a eficiência de velocidade ... \n"
+#~ "Este módulo oferece também estrutura genérica para definir o seu próprio "
+#~ "teste de qualidade. \n"
+#~ "Para mais informações, codificadores pode dar uma olhada em "
+#~ "base_module_quality \\ README.txt \n"
+#~ "AVISO: Este módulo não pode funcionar como um arquivo ZIP, você deve "
+#~ "descompactá-lo antes de \n"
+#~ "usá-lo, caso contrário ele pode falhar.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Track different dates on products and production lots.\n"
+#~ "======================================================\n"
+#~ "\n"
+#~ "Following dates can be tracked:\n"
+#~ " - end of life\n"
+#~ " - best before date\n"
+#~ " - removal date\n"
+#~ " - alert date\n"
+#~ "\n"
+#~ "Used, for example, in food industries."
+#~ msgstr ""
+#~ "\n"
+#~ "Acompanhe datas diferentes sobre os produtos e lotes de produção. \n"
+#~ "========================================= ============= \n"
+#~ "seguintes datas podem ser monitorados:\n"
+#~ "\n"
+#~ " - Fim da vida\n"
+#~ " - Melhor antes da data\n"
+#~ " - Data de remoção\n"
+#~ " - Data de alerta \n"
+#~ "e usados, por exemplo, nas indústrias alimentares."
+
+#~ msgid ""
+#~ "\n"
+#~ "Spanish Charts of Accounts (PGCE 2008).\n"
+#~ "=======================================\n"
+#~ "\n"
+#~ "* Defines the following chart of account templates:\n"
+#~ " * Spanish General Chart of Accounts 2008.\n"
+#~ " * Spanish General Chart of Accounts 2008 for small and medium "
+#~ "companies.\n"
+#~ "* Defines templates for sale and purchase VAT.\n"
+#~ "* Defines tax code templates.\n"
+#~ "\n"
+#~ "Note: You should install the l10n_ES_account_balance_report module\n"
+#~ "for yearly account reporting (balance, profit & losses).\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Gráficos espanhóis de Contas (PGCE 2008). \n"
+#~ "======================================= \n"
+#~ "* Define a seguinte tabela de modelos de conta:\n"
+#~ "\n"
+#~ " * Espanhol Plano Geral de Contabilidade de 2008.\n"
+#~ " . * Espanhol Plano Geral de Contabilidade de 2008 para pequenas e médias "
+#~ "empresas \n"
+#~ "* Define modelos para venda e compra IVA. \n"
+#~ "* Define modelos de código de imposto. \n"
+#~ "Nota: Você deve instalar o módulo l10n_ES_account_balance_report \n"
+#~ "para os relatórios das contas anuais (balanço, o lucro e perdas).\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows an intermediate picking process to provide raw materials "
+#~ "to production orders.\n"
+#~ "============================================================================="
+#~ "====================\n"
+#~ "\n"
+#~ "One example of usage of this module is to manage production made by your\n"
+#~ "suppliers (sub-contracting). To achieve this, set the assembled product\n"
+#~ "which is sub-contracted to \"No Auto-Picking\" and put the location of the\n"
+#~ "supplier in the routing of the assembly operation.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite a um processo de separação intermédia para fornecer as "
+#~ "matérias-primas para a produção \n"
+#~ "exemplo de uso deste módulo é o de gerir a produção feita por seus \n"
+#~ "fornecedores (sub-contratação). Para conseguir isso, definir o produto "
+#~ "montado \n"
+#~ ", que é sub-contratada para \"Não Auto-Picking\" e colocar a localização do "
+#~ "\n"
+#~ "fornecedor no encaminhamento da operação de montagem.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "Swiss localisation :\n"
+#~ " - DTA generation for a lot of payment types\n"
+#~ " - BVR management (number generation, report, etc..)\n"
+#~ " - Import account move from the bank file (like v11 etc..)\n"
+#~ " - Simplify the way you handle the bank statement for reconciliation\n"
+#~ "\n"
+#~ "You can also add ZIP and bank completion with:\n"
+#~ " - l10n_ch_zip\n"
+#~ " - l10n_ch_bank\n"
+#~ " \n"
+#~ " Author: Camptocamp SA\n"
+#~ " Donors: Hasa Sàrl, Open Net Sàrl and Prisme Solutions Informatique SA\n"
+#~ "\n"
+#~ "------------------------------------------------------------------------\n"
+#~ "\n"
+#~ "Module incluant la localisation Suisse de TinyERP revu et corrigé par "
+#~ "Camptocamp. Cette nouvelle version\n"
+#~ "comprend la gestion et l'émissionde BVR, le paiement électronique via DTA "
+#~ "(pour les banques, le système postal est en développement)\n"
+#~ "et l'import du relevé de compte depuis la banque de manière automatisée.\n"
+#~ "De plus, nous avons intégré la définition de toutes les banques "
+#~ "Suisses(adresse, swift et clearing).\n"
+#~ "\n"
+#~ "Par ailleurs, conjointement à ce module, nous proposons la complétion NPA:\n"
+#~ "\n"
+#~ "Vous pouvez ajouter la completion des banques et des NPA avec with:\n"
+#~ " - l10n_ch_zip\n"
+#~ " - l10n_ch_bank\n"
+#~ " \n"
+#~ " Auteur: Camptocamp SA\n"
+#~ " Donateurs: Hasa Sàrl, Open Net Sàrl and Prisme Solutions Informatique SA\n"
+#~ "\n"
+#~ "--------------------------------------------------------------------------\n"
+#~ "TODO :\n"
+#~ "- Implement bvr import partial reconciliation\n"
+#~ "- Replace wizard by osv_memory when possible\n"
+#~ "- Add mising HELP\n"
+#~ "- Finish code comment\n"
+#~ "- Improve demo data\n"
+#~ "\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Localização suíço:\n"
+#~ " - Geração de DTA para um monte de tipos de pagamento\n"
+#~ " - BVR gestão (geração de números, relatório, etc.)\n"
+#~ " - Move conta Import a partir do arquivo do banco (como v11, etc.)\n"
+#~ " - Simplificar a maneira como você lida com o extrato bancário de "
+#~ "reconciliação \n"
+#~ "Você também pode adicionar ZIP e conclusão banco com:\n"
+#~ "\n"
+#~ " - L10n_ch_zip\n"
+#~ " - L10n_ch_bank\n"
+#~ " \n"
+#~ " Autor: Camptocamp SA\n"
+#~ " Doadores: Hasa Sàrl, Open Sàrl Net e Prisme Soluções Informática SA \n"
+#~ "------------------------------------- ----------------------------------- \n"
+#~ "Módulo incluant la Suisse localização de TinyERP revu et Corrige par "
+#~ "Camptocamp. Cette nouvelle versão \n"
+#~ "comprend la gestion et l'émissionde BVR, le paiement électronique via DTA "
+#~ "(pour les banques, le système postal est en développement) \n"
+#~ "et l'importação du relevé de compte depuis la banque de manière automatisée. "
+#~ "\n"
+#~ "De plus, nous avons intégré la définition de toutes les banques Suisses "
+#~ "(adresse, rápido et compensação). \n"
+#~ "Par ailleurs, conjointement um módulo ce, nous proposons la conclusão NPA: \n"
+#~ "Vous pouvez ajouter la conclusão des banques et des NPA avec com:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " - L10n_ch_zip\n"
+#~ " - L10n_ch_bank\n"
+#~ " \n"
+#~ " Auteur: Camptocamp SA\n"
+#~ " Donateurs: Hasa Sàrl, Open Sàrl Net e Prisme Soluções Informática SA \n"
+#~ "------------------------------------- ------------------------------------- "
+#~ "\n"
+#~ "TODO: \n"
+#~ "- Implementar BVR importação reconciliação parcial \n"
+#~ "- Substitua o assistente de osv_memory quando possível \n"
+#~ "- ajudar a adicionar mising \n"
+#~ "- Concluir comentário de código \n"
+#~ "- Melhorar dados de demonstração\n"
+#~ "\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "The generic OpenERP Customer Relationship Management.\n"
+#~ "=====================================================\n"
+#~ "\n"
+#~ "This system enables a group of people to intelligently and efficiently "
+#~ "manage\n"
+#~ "leads, opportunities, meeting, phonecall etc.\n"
+#~ "It manages key tasks such as communication, identification, prioritization,\n"
+#~ "assignment, resolution and notification.\n"
+#~ "\n"
+#~ "OpenERP ensures that all cases are successfully tracked by users, customers "
+#~ "and\n"
+#~ "suppliers. It can automatically send reminders, escalate the request, "
+#~ "trigger\n"
+#~ "specific methods and lots of other actions based on your own enterprise "
+#~ "rules.\n"
+#~ "\n"
+#~ "The greatest thing about this system is that users don't need to do "
+#~ "anything\n"
+#~ "special. They can just send email to the request tracker. OpenERP will take\n"
+#~ "care of thanking them for their message, automatically routing it to the\n"
+#~ "appropriate staff, and make sure all future correspondence gets to the "
+#~ "right\n"
+#~ "place.\n"
+#~ "\n"
+#~ "The CRM module has a email gateway for the synchronisation interface\n"
+#~ "between mails and OpenERP.\n"
+#~ "\n"
+#~ "Creates a dashboard for CRM that includes:\n"
+#~ " * Opportunities by Categories (graph)\n"
+#~ " * Opportunities by Stage (graph)\n"
+#~ " * Planned Revenue by Stage and User (graph)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "O genérico OpenERP Customer Relationship Management. \n"
+#~ "=========================================== ========== \n"
+#~ "Este sistema permite que um grupo de pessoas para gerenciar de forma "
+#~ "inteligente e eficiente \n"
+#~ "leads, oportunidades, reuniões, phonecall etc \n"
+#~ "Ele gerencia as tarefas-chave, tais como a comunicação, identificação, "
+#~ "priorização, \n"
+#~ "atribuição, resolução e notificação. \n"
+#~ "OpenERP garante que todos os casos são acompanhados com sucesso por "
+#~ "usuários, clientes e \n"
+#~ "fornecedores. Pode enviar automaticamente lembretes, escalar o pedido, "
+#~ "acionar \n"
+#~ "métodos e lotes específicos de outras ações com base em suas próprias regras "
+#~ "empresariais. \n"
+#~ "A melhor coisa sobre este sistema é que os usuários não precisam fazer nada "
+#~ "\n"
+#~ "especial. Eles podem apenas enviar e-mail para o tracker pedido. OpenERP "
+#~ "terá \n"
+#~ "cuidado de agradecê-los por sua mensagem, encaminhá-lo automaticamente para "
+#~ "o \n"
+#~ "pessoal adequado, e certificar-se de toda a futura correspondência fica à "
+#~ "direita \n"
+#~ "lugar. \n"
+#~ "O módulo de CRM tem um gateway de e-mail para a interface de sincronização \n"
+#~ "entre e-mails e OpenERP. \n"
+#~ "Cria um dashboard para CRM que inclui:\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " * Oportunidades por categorias (gráfico)\n"
+#~ " * Oportunidades de Estágio (gráfico)\n"
+#~ " * Receita planejada pelo Palco e Usuário (gráfico)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Enable live chat support for those who have a maintenance contract.\n"
+#~ "===================================================================\n"
+#~ "\n"
+#~ "Add \"Support\" button in header from where you can access OpenERP Support.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Ativar suporte ao vivo chat para aqueles que têm um contrato de manutenção. "
+#~ "\n"
+#~ "====================================== ============================= \n"
+#~ "Adicionar botão \"Support\" no cabeçalho de onde você pode acessar o Suporte "
+#~ "OpenERP.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows you to create a new module without any development.\n"
+#~ "======================================================================\n"
+#~ "\n"
+#~ "It records all operations on objects during the recording session and\n"
+#~ "produce a .ZIP module. So you can create your own module directly from\n"
+#~ "the OpenERP client.\n"
+#~ "\n"
+#~ "This version works for creating and updating existing records. It "
+#~ "recomputes\n"
+#~ "dependencies and links for all types of widgets (many2one, many2many, ...).\n"
+#~ "It also support workflows and demo/update data.\n"
+#~ "\n"
+#~ "This should help you to easily create reusable and publishable modules\n"
+#~ "for custom configurations and demo/testing data.\n"
+#~ "\n"
+#~ "How to use it:\n"
+#~ "Run Administration/Customization/Module Creation/Export Customizations As a "
+#~ "Module wizard.\n"
+#~ "Select datetime criteria of recording and objects to be recorded and Record "
+#~ "module.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite que você crie um novo módulo sem qualquer "
+#~ "desenvolvimento. \n"
+#~ "===================================== ================================= \n"
+#~ "Ele registra todas as operações em objetos durante a sessão de gravação e \n"
+#~ "produzir um módulo. ZIP. Assim você pode criar seu próprio módulo "
+#~ "diretamente \n"
+#~ "o cliente OpenERP. \n"
+#~ "Esta versão trabalha para criar e atualizar registros existentes. Ele "
+#~ "recalcula \n"
+#~ "dependências e links para todos os tipos de widgets (many2one, many2many, "
+#~ "...). \n"
+#~ "Ele também suportam fluxos de trabalho e de demonstração / data de "
+#~ "atualização. \n"
+#~ "Isso deve ajudá-lo a criar facilmente módulos reutilizáveis ​​e publicável \n"
+#~ "para configurações personalizadas e demo / teste de dados. \n"
+#~ "Como usar: \n"
+#~ "Execute Administração / Personalização / módulo de criação / Export "
+#~ "personalizações Como assistente Module. \n"
+#~ "Selecione os critérios de data e hora de gravação e objetos a serem gravadas "
+#~ "e módulo Record.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module implements a timesheet system.\n"
+#~ "==========================================\n"
+#~ "\n"
+#~ "Each employee can encode and track their time spent on the different "
+#~ "projects.\n"
+#~ "A project is an analytic account and the time spent on a project generates "
+#~ "costs on\n"
+#~ "the analytic account.\n"
+#~ "\n"
+#~ "Lots of reporting on time and employee tracking are provided.\n"
+#~ "\n"
+#~ "It is completely integrated with the cost accounting module. It allows you\n"
+#~ "to set up a management by affair.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo implementa um sistema de quadro de horários. \n"
+#~ "========================================== \n"
+#~ "Cada empregado pode codificar e acompanhar o seu tempo gasto em diferentes "
+#~ "projetos. \n"
+#~ "Um projeto é uma conta analítica eo tempo gasto em um projeto gera custos "
+#~ "para \n"
+#~ "a conta analítica. \n"
+#~ "Muitos relatórios sobre o tempo e monitoramento empregado são fornecidos. \n"
+#~ "Ele é completamente integrado com o custar módulo de contabilidade. Ele "
+#~ "permite que você \n"
+#~ "configurar uma gestão por affair.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This is the module to manage the accounting chart for Netherlands in "
+#~ "OpenERP.\n"
+#~ "============================================================================="
+#~ "\n"
+#~ "\n"
+#~ "Read changelog in file __openerp__.py for version information.\n"
+#~ "Dit is een basismodule om een uitgebreid grootboek- en BTW schema voor "
+#~ "Nederlandse bedrijven te installeren in OpenERP versie 5.\n"
+#~ "\n"
+#~ "De BTW rekeningen zijn waar nodig gekoppeld om de juiste rapportage te "
+#~ "genereren, denk b.v. aan intracommunautaire verwervingen\n"
+#~ "waarbij u 19% BTW moet opvoeren, maar tegelijkertijd ook 19% 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 Nederlandse grootboekschema bevind.\n"
+#~ "\n"
+#~ " * Als de configuratie wizard start, wordt u gevraagd om de naam van uw "
+#~ "bedrijf in te voeren, welke grootboekschema te installeren, uit hoeveel "
+#~ "cijfers een grootboekrekening mag bestaan, het rekeningnummer van uw bank en "
+#~ "de currency om Journalen te creeren.\n"
+#~ "\n"
+#~ "Let op!! -> De template van het Nederlandse rekeningschema is opgebouwd uit "
+#~ "4 cijfers. Dit is het minimale aantal welk u moet invullen, u mag het aantal "
+#~ "verhogen. De extra cijfers worden dan achter het rekeningnummer aangevult "
+#~ "met \"nullen\"\n"
+#~ "\n"
+#~ " * Dit is dezelfe configuratie wizard welke aangeroepen kan worden via "
+#~ "Financial Management/Configuration/Financial Accounting/Financial "
+#~ "Accounts/Generate Chart of Accounts from a Chart Template.\n"
+#~ "\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este é o módulo para gerenciar o Plano Contábil para os Países Baixos em "
+#~ "OpenERP. \n"
+#~ "==================================== "
+#~ "========================================= \n"
+#~ "Read changelog no arquivo __ openerp__.py para a versão informações. \n"
+#~ "Dit is een basismodule om een Uitgebreid grootboek-en BTW esquema voor "
+#~ "Nederlandse Bedrijven te installeren em OpenERP versie 5. \n"
+#~ "De BTW rekeningen zijn waar nodig gekoppeld om de juiste rapportage te "
+#~ "genereren, denk bv aan intracommunautaire verwervingen \n"
+#~ "waarbij u 19% BTW moet opvoeren , maar tegelijkertijd ook 19% als "
+#~ "voorheffing weer mag aftrekken. \n"
+#~ "Na installatie van deze módulo palavra de configuratie assistente voor "
+#~ "\"Contabilidade\" aangeroepen.\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ " * U krijgt een lijst conheceu grootboektemplates aangeboden waarin zich "
+#~ "ook het Nederlandse bevind grootboekschema.\n"
+#~ "\n"
+#~ " * Als de configuratie assistente começo, wordt u gevraagd om de Naam van "
+#~ "uw bedrijf em te voeren, Welke grootboekschema te installeren, uit hoeveel "
+#~ "cijfers een grootboekrekening mag bestaan ​​Het rekeningnummer van uw banco "
+#~ "en de moeda om Journalen te creeren. \n"
+#~ "Deixe-op! -> De modelo van het Nederlandse rekeningschema é opgebouwd UIT 4 "
+#~ "cijfers. Dit é het minimale aantal welk u moet invullen, u mag het aantal "
+#~ "verhogen. De extras cijfers Worden dan achter het rekeningnummer aangevult "
+#~ "conheceu \"nullen\"\n"
+#~ "\n"
+#~ "\n"
+#~ " * Dit é dezelfe configuratie assistente Welke aangeroepen kan Worden via "
+#~ "Gestão Financeira / Configurações / Contabilidade Financeira / Contas "
+#~ "Financeiras / Gerar Plano de Contas de um modelo de gráfico.\n"
+#~ "\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module allows you to produce several products from one production "
+#~ "order.\n"
+#~ "============================================================================="
+#~ "\n"
+#~ "\n"
+#~ "You can configure sub-products in the bill of material.\n"
+#~ "\n"
+#~ "Without this module:\n"
+#~ " A + B + C -> D\n"
+#~ "\n"
+#~ "With this module:\n"
+#~ " A + B + C -> D + E\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo permite produzir vários produtos a partir de uma ordem de "
+#~ "produção. \n"
+#~ "===================================== "
+#~ "======================================== \n"
+#~ "Você pode configurar sub-produtos na lista de material. \n"
+#~ "Sem este módulo:\n"
+#~ "\n"
+#~ "\n"
+#~ " A + B + C -> D \n"
+#~ "Com este módulo:\n"
+#~ "\n"
+#~ " A + B + C -> D + E\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ " OpenERP Web core module.\n"
+#~ " This module provides the core of the OpenERP web client.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ " Módulo central OpenERP Web.\n"
+#~ " Este módulo fornece o núcleo do cliente web OpenERP.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module provides leads automation through marketing campaigns (campaigns "
+#~ "can in fact be defined on any resource, not just CRM Leads).\n"
+#~ "============================================================================="
+#~ "============================================================\n"
+#~ "\n"
+#~ "The campaigns are dynamic and multi-channels. The process is as follows:\n"
+#~ " * Design marketing campaigns like workflows, including email templates "
+#~ "to send, reports to print and send by email, custom actions, etc.\n"
+#~ " * Define input segments that will select the items that should enter the "
+#~ "campaign (e.g leads from certain countries, etc.)\n"
+#~ " * Run you campaign in simulation mode to test it real-time or "
+#~ "accelerated, and fine-tune it\n"
+#~ " * You may also start the real campaign in manual mode, where each action "
+#~ "requires manual validation\n"
+#~ " * Finally launch your campaign live, and watch the statistics as the "
+#~ "campaign does everything fully automatically.\n"
+#~ "\n"
+#~ "While the campaign runs you can of course continue to fine-tune the "
+#~ "parameters, input segments, workflow, etc.\n"
+#~ "\n"
+#~ "Note: If you need demo data, you can install the marketing_campaign_crm_demo "
+#~ "module, but this will also install the CRM application as it depends on CRM "
+#~ "Leads.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo fornece leva automação através de campanhas de marketing "
+#~ "(campanhas podem de fato ser definida em qualquer recurso, não apenas CRM \n"
+#~ "campanhas são dinâmicos e de multi-canais O processo é como se segue.:\n"
+#~ "\n"
+#~ " * Projeto de campanhas de marketing, como fluxos de trabalho, incluindo "
+#~ "modelos de email para enviar, relatórios para imprimir e enviar por e-mail, "
+#~ "ações personalizadas, etc\n"
+#~ " * Definir os segmentos de entrada que irá selecionar os itens que devem "
+#~ "entrar na campanha (por exemplo, ligações de certos países, etc)\n"
+#~ " * Execute sua campanha em modo de simulação para testá-lo em tempo real "
+#~ "ou acelerado, e ajustá-lo\n"
+#~ " * Você também pode iniciar a campanha real no modo manual, onde cada "
+#~ "ação requer a validação manual de\n"
+#~ " * Finalmente lançar sua campanha de viver e ver as estatísticas como a "
+#~ "campanha faz tudo de forma totalmente automática. \n"
+#~ "Enquanto a campanha corre você pode, naturalmente, continuar para ajustar os "
+#~ "parâmetros, os segmentos de entrada, fluxo de trabalho, etc \n"
+#~ "Nota: Se você precisa de dados de demonstração, você pode instalar o módulo "
+#~ "marketing_campaign_crm_demo, mas isso também vai instalar o aplicativo CRM, "
+#~ "uma vez que depende de Leads CRM.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This module provides Issues/Bugs Management in Project.\n"
+#~ "=======================================================\n"
+#~ "\n"
+#~ "OpenERP allows you to manage the issues you might face in a project\n"
+#~ "like bugs in a system, client complaints or material breakdowns. A\n"
+#~ "list view allows the manager to quickly check the issues, assign them\n"
+#~ "and decide on their status as they evolve.\n"
+#~ " "
+#~ msgstr ""
+#~ "\n"
+#~ "Este módulo fornece Problemas / Gestão de Erros em projeto. \n"
+#~ "======================================== =============== \n"
+#~ "OpenERP permite-lhe gerir os problemas que você pode enfrentar em um projeto "
+#~ "\n"
+#~ "como erros em um sistema, reclamações de clientes ou avarias materiais. A \n"
+#~ "exibição de lista permite que o gerente para verificar rapidamente as "
+#~ "questões, atribuí-los \n"
+#~ "e decidir sobre o seu estatuto à medida que evoluem.\n"
+#~ " "
+
+#~ msgid ""
+#~ "\n"
+#~ "This is the base module to manage the accounting chart for Maroc.\n"
+#~ "=================================================================\n"
+#~ "\n"
+#~ "Ce Module charge le modèle du plan de comptes standard Marocain et permet "
+#~ "de générer les états comptables aux normes marocaines (Bilan, CPC (comptes "
+#~ "de produits et charges), balance générale à 6 colonnes, Grand livre "
+#~ "cumulatif...). L'intégration comptable a été validé avec l'aide du Cabinet "
+#~ "d'expertise comptable Seddik au cours du troisième trimestre 2010"
+#~ msgstr ""
+#~ "\n"
+#~ "Este é o módulo base para gerenciar o gráfico representando Maroc. \n"
+#~ "===================================== ============================ \n"
+#~ "Ce módulo de carga le modèle du plano de Comptes padrão Marocain et Permet "
+#~ "de générer les États Comptables aux normes marocaines ( Bilan, CPC (comptes "
+#~ "de produits et taxas), equilíbrio générale de 6 colonnes, o Grand Livre "
+#~ "cumulatif ...). L'intégration comptable a été validé avec l'aide du Cabinet "
+#~ "d'perícia comptable Seddik au cours du troisième Trimestre 2010"
diff --git a/openerp/addons/base/i18n/ro.po b/openerp/addons/base/i18n/ro.po
index 85fc1eba142..013e869b86a 100644
--- a/openerp/addons/base/i18n/ro.po
+++ b/openerp/addons/base/i18n/ro.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:48+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:58+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/ru.po b/openerp/addons/base/i18n/ru.po
index eee0e553c5a..cc2134b1c30 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-21 17:04+0000\n"
-"PO-Revision-Date: 2013-01-24 13:14+0000\n"
+"PO-Revision-Date: 2013-08-16 11:16+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.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: 2013-07-06 05:49+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:59+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -3428,7 +3428,7 @@ msgstr "Периодические оценки, оценки, опросы"
#: 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 "Параметры конфигурации"
#. module: base
#: constraint:ir.cron:0
diff --git a/openerp/addons/base/i18n/sk.po b/openerp/addons/base/i18n/sk.po
index 83da6cfa38e..293f0fd254e 100644
--- a/openerp/addons/base/i18n/sk.po
+++ b/openerp/addons/base/i18n/sk.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:49+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:59+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/sl.po b/openerp/addons/base/i18n/sl.po
index be1334a3d03..670c6e6c8b3 100644
--- a/openerp/addons/base/i18n/sl.po
+++ b/openerp/addons/base/i18n/sl.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:49+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:59+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/sq.po b/openerp/addons/base/i18n/sq.po
index 36bb9031d68..2a444f01db6 100644
--- a/openerp/addons/base/i18n/sq.po
+++ b/openerp/addons/base/i18n/sq.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:42+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:52+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/sr.po b/openerp/addons/base/i18n/sr.po
index 39da2462ad4..6494f9167c3 100644
--- a/openerp/addons/base/i18n/sr.po
+++ b/openerp/addons/base/i18n/sr.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:49+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 04:59+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/sr@latin.po b/openerp/addons/base/i18n/sr@latin.po
index f391a0665fe..7446ab0c59f 100644
--- a/openerp/addons/base/i18n/sr@latin.po
+++ b/openerp/addons/base/i18n/sr@latin.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:53+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:03+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/sv.po b/openerp/addons/base/i18n/sv.po
index bec2b40c356..2923e2b99ce 100644
--- a/openerp/addons/base/i18n/sv.po
+++ b/openerp/addons/base/i18n/sv.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:50+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:00+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/th.po b/openerp/addons/base/i18n/th.po
index f4ae0cdeb20..d7f7ecf6e1a 100644
--- a/openerp/addons/base/i18n/th.po
+++ b/openerp/addons/base/i18n/th.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:50+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:00+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/tlh.po b/openerp/addons/base/i18n/tlh.po
index c0210bcd3e5..5a8d9db5fae 100644
--- a/openerp/addons/base/i18n/tlh.po
+++ b/openerp/addons/base/i18n/tlh.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:50+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:00+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/tr.po b/openerp/addons/base/i18n/tr.po
index 3a769c6c136..afc7e6d81c7 100644
--- a/openerp/addons/base/i18n/tr.po
+++ b/openerp/addons/base/i18n/tr.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:50+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:00+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -2465,6 +2465,8 @@ msgstr ""
msgid ""
"No matching record found for %(field_type)s '%(value)s' in field '%%(field)s'"
msgstr ""
+"'%%(field)s' Alanında %(field_type)s '%(value)s' için eşleşen kayıt "
+"bulunamadı"
#. module: base
#: field:change.password.user,new_passwd:0
@@ -7493,7 +7495,7 @@ msgstr "Tam Adı"
#. module: base
#: view:ir.attachment:0
msgid "on"
-msgstr ""
+msgstr "bunda"
#. module: base
#: view:ir.property:0
@@ -9538,6 +9540,17 @@ msgid ""
"Thank you in advance for your cooperation.\n"
"Best Regards,"
msgstr ""
+"Sayın Yetkili,\n"
+"\n"
+"Kayıtlarımıza göre hesabınızda halen yapılmamış ödemeler bulunmaktadır. "
+"Lütfen aşağıdaki ayrıntıları inceleyin.\n"
+"Eğer ödeme yaptıysanız, lütfen bu yazımızı dikkate almayın. Aksi durumda, "
+"aşağıda belirtilen tutarı tarafımıza ödemenizi rica ederiz.\n"
+"Hesabınızla ilgili herhangi bir sorunuz olursa, lütfen bize danışın.\n"
+"\n"
+"İşbirliğiniz için şimdiden teşekkür ederiz.\n"
+"\n"
+"Saygılarımızla,"
#. module: base
#: view:ir.module.category:0
@@ -11262,7 +11275,7 @@ msgstr "E-Mail"
#. module: base
#: model:res.partner.category,name:base.res_partner_category_12
msgid "Office Supplies"
-msgstr ""
+msgstr "Büro Malzemeleri"
#. module: base
#: field:ir.attachment,res_model:0
@@ -12547,7 +12560,7 @@ msgstr "Grup adı tekil olmalı !"
#. module: base
#: help:ir.translation,module:0
msgid "Module this term belongs to"
-msgstr ""
+msgstr "Bu terimin ait olduğu modül"
#. module: base
#: model:ir.module.module,description:base.module_web_view_editor
@@ -12761,6 +12774,8 @@ msgid ""
"Here is what we got instead:\n"
" %s"
msgstr ""
+"Yerine elimize geçen:\n"
+" %s"
#. module: base
#: model:ir.actions.act_window,name:base.action_model_data
@@ -13124,7 +13139,7 @@ msgstr "Yeni Kaledonya"
#. module: base
#: field:ir.model,osv_memory:0
msgid "Transient Model"
-msgstr ""
+msgstr "Geçici Model"
#. module: base
#: model:res.country,name:base.cy
@@ -13386,7 +13401,7 @@ msgstr ""
#. module: base
#: model:ir.module.module,shortdesc:base.module_account_test
msgid "Accounting Consistency Tests"
-msgstr ""
+msgstr "Muhasebe Tutarlılık Testleri"
#. module: base
#: model:ir.module.module,description:base.module_purchase_double_validation
@@ -14091,6 +14106,8 @@ msgid ""
"Invalid group_by specification: \"%s\".\n"
"A group_by specification must be a list of valid fields."
msgstr ""
+"Geçersiz group_by özellikleri: \"%s\".\n"
+"Bir group_by özellikler geçerli alanların bir listesi olmalı."
#. module: base
#: selection:ir.mail_server,smtp_encryption:0
@@ -14248,7 +14265,7 @@ msgstr "Hata ! iç içe çağırılan menü oluşturamazsınız."
#. module: base
#: view:ir.translation:0
msgid "Web-only translations"
-msgstr ""
+msgstr "Yalnızca-web çevirileri"
#. module: base
#: view:ir.rule:0
@@ -14716,6 +14733,10 @@ msgid ""
"\n"
"(Document type: %s, Operation: %s)"
msgstr ""
+"Güvenlik sınırlamalarından dolayı istenen işlem tamamlanamıyor. Lütfen "
+"sistem yöneticinize danışın.\n"
+"\n"
+"(Belge tipi: %s, İşlem: %s)"
#. module: base
#: model:ir.module.module,description:base.module_idea
@@ -15574,6 +15595,8 @@ msgid ""
"Tax Identification Number. Check the box if this contact is subjected to "
"taxes. Used by the some of the legal statements."
msgstr ""
+"Vergi Kimlik Numarası. Bu kişi vergiye tabiyse kutuyu işaretleyin. Bazı "
+"yasal belgelerde kullanılır."
#. module: base
#: field:res.partner.bank,partner_id:0
@@ -15642,6 +15665,8 @@ msgid ""
"Manage relations with prospects and customers using leads, opportunities, "
"requests or issues."
msgstr ""
+"Adayları, fırsatları, istekleri ya da sorunları kullanarak potansiyeller ve "
+"müşterilerle ilişkileri yönetin."
#. module: base
#: model:ir.module.module,description:base.module_project
diff --git a/openerp/addons/base/i18n/uk.po b/openerp/addons/base/i18n/uk.po
index a4138b1012a..bf6140465db 100644
--- a/openerp/addons/base/i18n/uk.po
+++ b/openerp/addons/base/i18n/uk.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:50+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:00+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/ur.po b/openerp/addons/base/i18n/ur.po
index af9fc733183..86f3a2d57b9 100644
--- a/openerp/addons/base/i18n/ur.po
+++ b/openerp/addons/base/i18n/ur.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:50+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:01+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/vi.po b/openerp/addons/base/i18n/vi.po
index 17524013faf..e40a603f688 100644
--- a/openerp/addons/base/i18n/vi.po
+++ b/openerp/addons/base/i18n/vi.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:50+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:01+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/zh_CN.po b/openerp/addons/base/i18n/zh_CN.po
index db329bab273..085b3c28b4e 100644
--- a/openerp/addons/base/i18n/zh_CN.po
+++ b/openerp/addons/base/i18n/zh_CN.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:52+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:03+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
@@ -384,6 +384,12 @@ msgid ""
"document and Wiki based Hidden.\n"
" "
msgstr ""
+"\n"
+"知识管理的隐藏依赖模块\n"
+"=====================================\n"
+"\n"
+"在安装文档管理和wiki等知识管理应用的时候所依赖的隐藏模块\n"
+" "
#. module: base
#: model:ir.module.category,name:base.module_category_customer_relationship_management
@@ -991,6 +997,21 @@ 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"
+"休假申请和假期分配\n"
+"=====================================\n"
+"\n"
+"此模块管理公司员工的休假。员工可以申请休假,然后等待经理批准,当然也可能拒绝。这样就可以使公司或部门的整体休假计划得到管控。\n"
+"\n"
+"可以配置多种休假类型(病假、法定假日、带薪休假等)并通过分配申请分配给单个员工或部门。员工也可以申请\n"
+"增加假期天数,这需要填写一个额外的假期申请。如果增加假期天数的申请被批准,这个类型假期的可用天数会自动增加。\n"
+"\n"
+"以下报表用于对假期进行跟踪:\n"
+"* 休假总览\n"
+"* 按部门休假\n"
+"* 休假分析\n"
+"\n"
+"如果为休假设置了一种日程类型,就可以与CRM中的日程同步,也就是说休假批准后会在日程上标识出此员工正在休假中。\n"
#. module: base
#: selection:base.language.install,lang:0
@@ -2059,7 +2080,7 @@ msgstr "读权限"
#. module: base
#: help:ir.attachment,res_id:0
msgid "The record id this is attached to"
-msgstr ""
+msgstr "附件相关的数据记录id"
#. module: base
#: model:ir.module.module,description:base.module_share
@@ -2160,6 +2181,11 @@ msgid ""
"with the effect of creating, editing and deleting either ways.\n"
" "
msgstr ""
+"\n"
+"项目进度与工时记录的集成\n"
+"====================================================================\n"
+"安装了此模块,项目进度的添加删除和修改会自动同步到工时表上。\n"
+" "
#. module: base
#: model:ir.model,name:base.model_ir_model_access
@@ -2179,6 +2205,11 @@ msgid ""
" templates to target objects.\n"
" "
msgstr ""
+"\n"
+" * 科目表、税、税项、凭证类型、科目模版、成本要素和成本凭证类型的多语言支持。\n"
+" * 对设置向导的修改\n"
+" - 从模版复制科目表、税、税项和替换规则到目标数据表。\n"
+" "
#. module: base
#: field:workflow.transition,act_from:0
@@ -12355,7 +12386,7 @@ msgstr "选中内容"
#: model:ir.actions.act_window,name:base.change_password_wizard_action
#: view:res.users:0
msgid "Change Password"
-msgstr ""
+msgstr "更改密码"
#. module: base
#: model:ir.module.module,description:base.module_l10n_es
@@ -12665,7 +12696,7 @@ msgstr "地址格式"
#. module: base
#: model:ir.model,name:base.model_change_password_user
msgid "Change Password Wizard User"
-msgstr ""
+msgstr "密码更改向导"
#. module: base
#: model:res.groups,name:base.group_no_one
@@ -14304,7 +14335,7 @@ msgstr "泰国"
#. module: base
#: model:ir.model,name:base.model_change_password_wizard
msgid "Change Password Wizard"
-msgstr ""
+msgstr "密码更改向导"
#. module: base
#: model:ir.module.module,summary:base.module_account_voucher
@@ -15618,7 +15649,7 @@ msgstr ""
#. module: base
#: view:res.partner:0
msgid "Internal Notes"
-msgstr "内部单据"
+msgstr "内部备注"
#. module: base
#: model:res.partner.title,name:base.res_partner_title_pvt_ltd
@@ -15639,7 +15670,7 @@ msgstr "行内编辑"
#. module: base
#: selection:ir.cron,interval_type:0
msgid "Months"
-msgstr "月末"
+msgstr "月"
#. module: base
#: view:workflow.instance:0
@@ -15662,7 +15693,7 @@ msgstr "是一个公司?"
#: field:res.partner.bank,name:0
#, python-format
msgid "Bank Account"
-msgstr "银行账户"
+msgstr "银行账号"
#. module: base
#: model:res.country,name:base.kp
diff --git a/openerp/addons/base/i18n/zh_HK.po b/openerp/addons/base/i18n/zh_HK.po
index 0a2e2e5a399..8924939e685 100644
--- a/openerp/addons/base/i18n/zh_HK.po
+++ b/openerp/addons/base/i18n/zh_HK.po
@@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:51+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:01+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/i18n/zh_TW.po b/openerp/addons/base/i18n/zh_TW.po
index d6c54879089..9b416886fc8 100644
--- a/openerp/addons/base/i18n/zh_TW.po
+++ b/openerp/addons/base/i18n/zh_TW.po
@@ -13,8 +13,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-07-06 05:52+0000\n"
-"X-Generator: Launchpad (build 16696)\n"
+"X-Launchpad-Export-Date: 2013-08-28 05:02+0000\n"
+"X-Generator: Launchpad (build 16738)\n"
#. module: base
#: model:ir.module.module,description:base.module_account_check_writing
diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py
index 7eb4f5ecd94..3b709934a27 100644
--- a/openerp/addons/base/ir/ir_model.py
+++ b/openerp/addons/base/ir/ir_model.py
@@ -195,7 +195,8 @@ class ir_model(osv.osv):
ctx = dict(context,
field_name=vals['name'],
field_state='manual',
- select=vals.get('select_level', '0'))
+ select=vals.get('select_level', '0'),
+ update_custom_fields=True)
self.pool[vals['model']]._auto_init(cr, ctx)
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
return res
diff --git a/openerp/addons/base/ir/ir_sequence.py b/openerp/addons/base/ir/ir_sequence.py
index 0f505814c0c..8ca74cbb797 100644
--- a/openerp/addons/base/ir/ir_sequence.py
+++ b/openerp/addons/base/ir/ir_sequence.py
@@ -84,7 +84,7 @@ class ir_sequence(openerp.osv.osv.osv):
_columns = {
'name': openerp.osv.fields.char('Name', size=64, required=True),
- 'code': openerp.osv.fields.selection(_code_get, 'Code', size=64),
+ 'code': openerp.osv.fields.selection(_code_get, 'Sequence Type', size=64),
'implementation': openerp.osv.fields.selection( # TODO update the view
[('standard', 'Standard'), ('no_gap', 'No gap')],
'Implementation', required=True,
diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py
index acb6daa7785..0f9b6ea3886 100644
--- a/openerp/addons/base/ir/ir_translation.py
+++ b/openerp/addons/base/ir/ir_translation.py
@@ -445,6 +445,13 @@ class ir_translation(osv.osv):
tools.trans_load(cr, base_trans_file, lang, verbose=False, module_name=module_name, context=context)
context['overwrite'] = True # make sure the requested translation will override the base terms later
+ # i18n_extra folder is for additional translations handle manually (eg: for l10n_be)
+ base_trans_extra_file = openerp.modules.get_module_resource(module_name, 'i18n_extra', base_lang_code + '.po')
+ if base_trans_extra_file:
+ _logger.info('module %s: loading extra base translation file %s for language %s', module_name, base_lang_code, lang)
+ tools.trans_load(cr, base_trans_extra_file, lang, verbose=False, module_name=module_name, context=context)
+ context['overwrite'] = True # make sure the requested translation will override the base terms later
+
# Step 2: then load the main translation file, possibly overriding the terms coming from the base language
trans_file = openerp.modules.get_module_resource(module_name, 'i18n', lang_code + '.po')
if trans_file:
@@ -452,6 +459,11 @@ class ir_translation(osv.osv):
tools.trans_load(cr, trans_file, lang, verbose=False, module_name=module_name, context=context)
elif lang_code != 'en_US':
_logger.warning('module %s: no translation for language %s', module_name, lang_code)
+
+ trans_extra_file = openerp.modules.get_module_resource(module_name, 'i18n_extra', lang_code + '.po')
+ if trans_extra_file:
+ _logger.info('module %s: loading extra translation file (%s) for language %s', module_name, lang_code, lang)
+ tools.trans_load(cr, trans_extra_file, lang, verbose=False, module_name=module_name, context=context)
return True
diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py
index aef645c79a6..eaf0b7c1ad9 100644
--- a/openerp/addons/base/ir/ir_ui_view.py
+++ b/openerp/addons/base/ir/ir_ui_view.py
@@ -229,7 +229,6 @@ class view(osv.osv):
])
view_ids = self.search(cr, uid, conditions, context=context)
- # filter views based on user groups
return [(view.arch, view.id)
for view in self.browse(cr, 1, view_ids, context)
if not (view.groups_id and user_groups.isdisjoint(view.groups_id))]
diff --git a/openerp/addons/base/module/module_view.xml b/openerp/addons/base/module/module_view.xml
index 2b65289bf26..8dac5b2dc27 100644
--- a/openerp/addons/base/module/module_view.xml
+++ b/openerp/addons/base/module/module_view.xml
@@ -70,7 +70,8 @@
<field name="name">ir.module.module.form</field>
<field name="model">ir.module.module</field>
<field name="arch" type="xml">
- <form create="0" edit="0" string="Module" version="7.0" class='oe_styling_v8'>
+ <form create="0" edit="0" string="Module" version="7.0">
+ <link rel="stylesheet" href="/base/static/src/css/description.css"></link>
<sheet>
<field name="icon_image" widget="image" class="oe_avatar oe_left"/>
<div class="oe_title">
@@ -127,9 +128,8 @@
<field name="reports_by_module"/>
</page>
</notebook>
+ <field name="description_html" class='oe_styling_v8'/>
</sheet>
- <field name="description_html" class='oe_app_description oe_styling_v8'/>
- <button name="button_immediate_install" states="uninstalled" string="Install" type="object" class="oe_highlight oe_center"/>
</form>
</field>
</record>
diff --git a/openerp/addons/base/res/res_currency.py b/openerp/addons/base/res/res_currency.py
index efe33f32fd9..a496a1eccdf 100644
--- a/openerp/addons/base/res/res_currency.py
+++ b/openerp/addons/base/res/res_currency.py
@@ -30,11 +30,13 @@ from openerp.tools.translate import _
CURRENCY_DISPLAY_PATTERN = re.compile(r'(\w+)\s*(?:\((.*)\))?')
class res_currency(osv.osv):
-
def _current_rate(self, cr, uid, ids, name, arg, context=None):
- return self._get_current_rate(cr, uid, ids, name, arg, context=context)
+ return self._get_current_rate(cr, uid, ids, context=context)
+
+ def _current_rate_silent(self, cr, uid, ids, name, arg, context=None):
+ return self._get_current_rate(cr, uid, ids, raise_on_no_rate=False, context=context)
- def _get_current_rate(self, cr, uid, ids, name, arg, context=None):
+ def _get_current_rate(self, cr, uid, ids, raise_on_no_rate=True, context=None):
if context is None:
context = {}
res = {}
@@ -52,9 +54,12 @@ class res_currency(osv.osv):
if cr.rowcount:
id, rate = cr.fetchall()[0]
res[id] = rate
+ elif not raise_on_no_rate:
+ res[id] = 0
else:
raise osv.except_osv(_('Error!'),_("No currency rate associated for currency %d for the given period" % (id)))
return res
+
_name = "res.currency"
_description = "Currency"
_columns = {
@@ -63,6 +68,10 @@ class res_currency(osv.osv):
'symbol': fields.char('Symbol', size=4, help="Currency sign, to be used when printing amounts."),
'rate': fields.function(_current_rate, string='Current Rate', digits=(12,6),
help='The rate of the currency to the currency of rate 1.'),
+
+ # Do not use for computation ! Same as rate field with silent failing
+ 'rate_silent': fields.function(_current_rate_silent, string='Current Rate', digits=(12,6),
+ help='The rate of the currency to the currency of rate 1 (0 if no rate defined).'),
'rate_ids': fields.one2many('res.currency.rate', 'currency_id', 'Rates'),
'accuracy': fields.integer('Computational Accuracy'),
'rounding': fields.float('Rounding Factor', digits=(12,6)),
diff --git a/openerp/addons/base/res/res_currency_view.xml b/openerp/addons/base/res/res_currency_view.xml
index 907eec866fb..c74b677ea72 100644
--- a/openerp/addons/base/res/res_currency_view.xml
+++ b/openerp/addons/base/res/res_currency_view.xml
@@ -22,7 +22,7 @@
<field name="company_id" groups="base.group_multi_company"/>
<field name="rate_ids" invisible="1"/>
<field name="date"/>
- <field name="rate"/>
+ <field name="rate_silent"/>
<field name="rounding"/>
<field name="accuracy"/>
<field name="position"/>
@@ -37,7 +37,7 @@
<form string="Currency" version="7.0">
<group col="4">
<field name="name"/>
- <field name="rate"/>
+ <field name="rate_silent"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py
index 566ee6066dd..97b0ac454ae 100644
--- a/openerp/addons/base/res/res_partner.py
+++ b/openerp/addons/base/res/res_partner.py
@@ -208,6 +208,8 @@ class res_partner(osv.osv, format_address):
return result
def _display_name_compute(self, cr, uid, ids, name, args, context=None):
+ context = dict(context or {})
+ context.pop('show_address', None)
return dict(self.name_get(cr, uid, ids, context=context))
# indirections to avoid passing a copy of the overridable method when declaring the function field
diff --git a/openerp/addons/base/static/src/css/Makefile b/openerp/addons/base/static/src/css/Makefile
new file mode 100644
index 00000000000..cf91573f741
--- /dev/null
+++ b/openerp/addons/base/static/src/css/Makefile
@@ -0,0 +1,2 @@
+sass:
+ sass -t expanded --compass --watch --unix-newlines *.sass
diff --git a/openerp/addons/base/static/src/css/description.css b/openerp/addons/base/static/src/css/description.css
new file mode 100644
index 00000000000..33e631bb46e
--- /dev/null
+++ b/openerp/addons/base/static/src/css/description.css
@@ -0,0 +1,732 @@
+@charset "utf-8";
+/*
+ * This CSS is for the html description of modules
+ * TODO clean
+ */
+/* --------------------------------- *
+ * STYLING CONTEXT *
+ * --------------------------------- */
+/* --- Styling for the V8/Lato/White/Purple design --- */
+.openerp .oe_form_sheet_width {
+ max-width: 960px;
+}
+
+.openerp .oe_form .oe_styling_v8 {
+ width: 100%;
+ padding: 0;
+ margin: 0;
+ font-family: "Open Sans", "Helvetica", Sans;
+ font-weight: 300;
+ color: #646464;
+ background: white;
+ font-size: 16px;
+}
+.openerp .oe_form .oe_styling_v8 .oe_websiteonly {
+ display: none;
+}
+.openerp .oe_form .oe_styling_v8 .oe_website_contents {
+ background: whitesmoke;
+ padding-bottom: 1px;
+}
+.openerp .oe_form .oe_styling_v8 b {
+ font-weight: 600;
+}
+.openerp .oe_form .oe_styling_v8 a {
+ color: #6d57e0;
+ text-decoration: none;
+}
+.openerp .oe_form .oe_styling_v8 a:visited {
+ color: #5b284f;
+}
+.openerp .oe_form .oe_styling_v8 a:hover {
+ color: #0096eb;
+}
+.openerp .oe_form .oe_styling_v8 .oe_title_font {
+ font-family: "Lato", "Open Sans", "Helvetica", Sans;
+}
+.openerp .oe_form .oe_styling_v8 .oe_page {
+ background: white;
+ overflow: hidden;
+ -webkit-border-radius: 1px;
+ -moz-border-radius: 1px;
+ -ms-border-radius: 1px;
+ -o-border-radius: 1px;
+ border-radius: 1px;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
+ -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
+}
+.openerp .oe_form .oe_styling_v8 .oe_emph {
+ font-weight: 400;
+}
+.openerp .oe_form .oe_styling_v8 .oe_dark {
+ overflow: hidden;
+ background: #fcfcfc;
+ -webkit-box-shadow: 0px 5px 9px -7px rgba(0, 0, 255, 0.5) inset, 0px -3px 9px -7px rgba(0, 0, 255, 0.5) inset;
+ -moz-box-shadow: 0px 5px 9px -7px rgba(0, 0, 255, 0.5) inset, 0px -3px 9px -7px rgba(0, 0, 255, 0.5) inset;
+ box-shadow: 0px 5px 9px -7px rgba(0, 0, 255, 0.5) inset, 0px -3px 9px -7px rgba(0, 0, 255, 0.5) inset;
+}
+
+/* --------------------------------- *
+ * LAYOUT *
+ * --------------------------------- */
+/* ------ BASE GRID CONSTRUCTS ----- */
+.oe_page {
+ margin: 0px auto 64px auto;
+ max-width: 992px;
+}
+
+.oe_row {
+ width: 928px;
+ margin-top: 16px;
+ margin-bottom: 16px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.oe_row.oe_fit {
+ width: auto;
+}
+
+.oe_clearfix:after, .oe_row:after {
+ content: ".";
+ display: block;
+ clear: both;
+ visibility: hidden;
+ line-height: 0;
+ height: 0;
+}
+
+[class*='oe_span'] {
+ float: left;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0 16px;
+}
+
+.oe_span12 {
+ width: 928px;
+}
+
+.oe_span10 {
+ width: 773px;
+}
+
+.oe_span9 {
+ width: 696px;
+}
+
+.oe_span8 {
+ width: 618px;
+}
+
+.oe_span6 {
+ width: 464px;
+}
+
+.oe_span4 {
+ width: 309px;
+}
+
+.oe_span3 {
+ width: 232px;
+}
+
+.oe_span2 {
+ width: 154px;
+}
+
+[class*='oe_span'].oe_fit {
+ padding-left: 0px !important;
+ padding-right: 0px !important;
+}
+
+[class*='oe_span'].oe_right {
+ float: right;
+}
+
+.oe_row.oe_flex [class*='oe_span'] {
+ display: inline-block;
+ float: none;
+ vertical-align: top;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0 16px;
+ width: auto;
+}
+.oe_row.oe_flex .oe_span12 {
+ max-width: 928px;
+}
+.oe_row.oe_flex .oe_span10 {
+ max-width: 769px;
+}
+.oe_row.oe_flex .oe_span9 {
+ max-width: 692px;
+}
+.oe_row.oe_flex .oe_span8 {
+ max-width: 614px;
+}
+.oe_row.oe_flex .oe_span6 {
+ max-width: 460px;
+}
+.oe_row.oe_flex .oe_span4 {
+ max-width: 305px;
+}
+.oe_row.oe_flex .oe_span3 {
+ max-width: 228px;
+}
+.oe_row.oe_flex .oe_span2 {
+ max-width: 150px;
+}
+
+.oe_mb0 {
+ margin-bottom: 0px !important;
+}
+
+.oe_mb4 {
+ margin-bottom: 4px !important;
+}
+
+.oe_mb8 {
+ margin-bottom: 8px !important;
+}
+
+.oe_mb16 {
+ margin-bottom: 16px !important;
+}
+
+.oe_mb32 {
+ margin-bottom: 32px !important;
+}
+
+.oe_mb48 {
+ margin-bottom: 48px !important;
+}
+
+.oe_mb64 {
+ margin-bottom: 64px !important;
+}
+
+.oe_mt0 {
+ margin-top: 0px !important;
+}
+
+.oe_mt4 {
+ margin-top: 4px !important;
+}
+
+.oe_mt8 {
+ margin-top: 8px !important;
+}
+
+.oe_mt16 {
+ margin-top: 16px !important;
+}
+
+.oe_mt32 {
+ margin-top: 32px !important;
+}
+
+.oe_mt48 {
+ margin-top: 48px !important;
+}
+
+.oe_mt64 {
+ margin-top: 64px !important;
+}
+
+/* ------ GENERIC LAYOUT MODIFIERS ----- */
+.oe_rightfit {
+ padding-right: 0px !important;
+}
+
+.oe_leftfit {
+ padding-left: 0px !important;
+}
+
+.oe_leftalign {
+ text-align: left;
+}
+
+.oe_rightalign {
+ text-align: right;
+}
+
+.oe_centeralign {
+ text-align: center;
+}
+
+.oe_centered {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.oe_hidden {
+ display: none !important;
+ opacity: 0 !important;
+}
+
+.oe_invisible {
+ visibility: hidden !important;
+}
+
+.oe_transparent {
+ opacity: 0 !important;
+}
+
+.oe_mb0 {
+ margin-bottom: 0px !important;
+}
+
+.oe_mb4 {
+ margin-bottom: 4px !important;
+}
+
+.oe_mb8 {
+ margin-bottom: 8px !important;
+}
+
+.oe_mb16 {
+ margin-bottom: 16px !important;
+}
+
+.oe_mb32 {
+ margin-bottom: 32px !important;
+}
+
+.oe_mb64 {
+ margin-bottom: 64px !important;
+}
+
+.oe_spaced {
+ margin-top: 32px;
+ margin-bottom: 32px;
+}
+
+.oe_more_spaced {
+ margin-top: 64px;
+ margin-bottom: 64px;
+}
+
+.oe_padded {
+ padding-top: 16px;
+ padding-bottom: 16px;
+}
+
+.oe_more_padded {
+ padding-top: 32px;
+ padding-bottom: 32px;
+}
+
+/* --------------------------------- *
+ * WEBPAGE COMPONENTS *
+ * --------------------------------- */
+/* ------ BUTTONS ----- */
+.oe_button {
+ position: relative;
+ bottom: 0;
+ display: inline-block;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+}
+
+.oe_styling_v8 .oe_button, .oe_styling_v8 a.oe_button {
+ padding: 8px 14px;
+ background: #8b72b6;
+ color: white;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
+ -webkit-box-shadow: 0px 2px 0px #afa8cc;
+ -moz-box-shadow: 0px 2px 0px #afa8cc;
+ box-shadow: 0px 2px 0px #afa8cc;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.44);
+ border: solid 1px rgba(0, 0, 0, 0.09);
+ -webkit-transition-property: bottom, background;
+ -moz-transition-property: bottom, background;
+ -o-transition-property: bottom, background;
+ transition-property: bottom, background;
+ -webkit-transition-duration: 250ms;
+ -moz-transition-duration: 250ms;
+ -o-transition-duration: 250ms;
+ transition-duration: 250ms;
+}
+.oe_styling_v8 .oe_button:hover, .oe_styling_v8 a.oe_button:hover {
+ background: #8b5bdd;
+ color: white;
+}
+.oe_styling_v8 .oe_button:active, .oe_styling_v8 a.oe_button:active {
+ background: #333333;
+ bottom: -3px;
+}
+.oe_styling_v8 .oe_button.oe_big, .oe_styling_v8 a.oe_button.oe_big {
+ font-size: 24px;
+}
+.oe_styling_v8 .oe_button.oe_bigger, .oe_styling_v8 a.oe_button.oe_bigger {
+ font-size: 32px;
+}
+.oe_styling_v8 .oe_button.oe_small, .oe_styling_v8 a.oe_button.oe_small {
+ font-size: 13px;
+ padding: 2px 4px;
+}
+.oe_styling_v8 .oe_button.oe_small:active, .oe_styling_v8 a.oe_button.oe_small:active {
+ bottom: -1px;
+}
+.oe_styling_v8 .oe_button.oe_medium, .oe_styling_v8 a.oe_button.oe_medium {
+ padding: 5px 12px;
+ font-size: 16px;
+}
+.oe_styling_v8 .oe_button.oe_tacky, .oe_styling_v8 a.oe_button.oe_tacky {
+ background: #ff4444;
+ -webkit-box-shadow: 0px 2px 0px #eba8a8;
+ -moz-box-shadow: 0px 2px 0px #eba8a8;
+ box-shadow: 0px 2px 0px #eba8a8;
+}
+.oe_styling_v8 .oe_button.oe_tacky:hover, .oe_styling_v8 a.oe_button.oe_tacky:hover {
+ background: #ff1010;
+}
+.oe_styling_v8 .oe_button.oe_tacky:active, .oe_styling_v8 a.oe_button.oe_tacky:active {
+ background: black;
+}
+.oe_styling_v8 .oe_button.oe_disabled, .oe_styling_v8 a.oe_button.oe_disabled {
+ background: #c8c8c8;
+ -webkit-box-shadow: 0px 2px 0px #b4b4b4;
+ -moz-box-shadow: 0px 2px 0px #b4b4b4;
+ box-shadow: 0px 2px 0px #b4b4b4;
+ cursor: default;
+}
+.oe_styling_v8 .oe_button.oe_disabled:hover, .oe_styling_v8 a.oe_button.oe_disabled:hover {
+ background: #c8c8c8;
+ -webkit-box-shadow: 0px 2px 0px #b4b4b4;
+ -moz-box-shadow: 0px 2px 0px #b4b4b4;
+ box-shadow: 0px 2px 0px #b4b4b4;
+}
+.oe_styling_v8 .oe_button.oe_disabled:active, .oe_styling_v8 a.oe_button.oe_disabled:active {
+ background: #c8c8c8;
+ bottom: 0px;
+ -webkit-box-shadow: 0px 2px 0px #b4b4b4;
+ -moz-box-shadow: 0px 2px 0px #b4b4b4;
+ box-shadow: 0px 2px 0px #b4b4b4;
+}
+
+.oe_styling_v8.oe_styling_black .oe_button {
+ -webkit-box-shadow: 0px 2px 0px #463555;
+ -moz-box-shadow: 0px 2px 0px #463555;
+ box-shadow: 0px 2px 0px #463555;
+}
+
+/* ------ FORMS ----- */
+.oe_styling_v8 {
+ /* FIXME: this is a quick hack for the release */
+}
+.oe_styling_v8 .oe_input {
+ padding: 4px 7px;
+ border-radius: 3px;
+ border: solid 1px #d6d6d6;
+ box-shadow: 0px 2px #e6e6e6;
+ background: #fafafa;
+ font-weight: 300;
+ outline: none;
+ -webkit-transition: all 150ms linear;
+ -moz-transition: all 150ms linear;
+ -o-transition: all 150ms linear;
+ transition: all 150ms linear;
+}
+.oe_styling_v8 .oe_input:focus {
+ border: solid 1px #969696;
+ box-shadow: 0px 2px #d2d2d2;
+}
+.oe_styling_v8 .oe_input.oe_valid {
+ background: #f2ffec;
+ border-color: #b1ebb6;
+ box-shadow: 0px 2px #e1f8e1;
+ color: #0f610f;
+}
+.oe_styling_v8 .oe_input.oe_invalid {
+ background: #fff2f2;
+ border-color: #ebb1b1;
+ box-shadow: 0px 2px #f8e1e1;
+ color: #610f0f;
+}
+.oe_styling_v8 .oe_input.oe_big {
+ padding: 8px 14px;
+}
+.oe_styling_v8 .oe_input_label {
+ font-weight: 300;
+ font-size: 16px;
+}
+.oe_styling_v8 .oe_input_label.oe_big {
+ font-size: 20px;
+}
+.oe_styling_v8 .oe_textarea {
+ width: 300px;
+ height: 80px;
+}
+.oe_styling_v8 .oe_form_layout_table {
+ width: 100%;
+}
+.oe_styling_v8 .oe_form_layout_table td {
+ padding-bottom: 16px;
+}
+.oe_styling_v8 .oe_form_layout_table td:first-child {
+ text-align: right;
+ padding-right: 16px;
+}
+
+/* ------ SLOGANS ----- */
+.oe_styling_v8 .oe_slogan {
+ color: #333333;
+ font-family: "Lato", "Open Sans", "Helvetica", Sans;
+ text-align: center;
+ margin-top: 32px;
+ margin-bottom: 32px;
+}
+.oe_styling_v8 h1.oe_slogan {
+ font-size: 64px;
+ font-weight: 900;
+ margin-top: 48px;
+ margin-bottom: 48px;
+}
+.oe_styling_v8 h2.oe_slogan {
+ font-size: 40px;
+ font-weight: 300;
+}
+.oe_styling_v8 h3.oe_slogan {
+ font-size: 26px;
+ font-weight: 300;
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
+ opacity: 0.5;
+}
+.oe_styling_v8 h4.oe_slogan {
+ font-size: 24px;
+ font-weight: 300;
+}
+.oe_styling_v8 h4.oe_slogan:before, .oe_styling_v8 h4.oe_slogan:after {
+ margin: 0 20px;
+ content: "";
+ display: inline-block;
+ width: 100px;
+ height: 0px;
+ border-top: solid 1px;
+ vertical-align: middle;
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=30);
+ opacity: 0.3;
+}
+.oe_styling_v8 h5.oe_slogan {
+ font-weight: 300;
+}
+
+/* ------ QUOTES ----- */
+.oe_quote {
+ margin: 8px;
+ padding: 16px;
+ background: rgba(0, 0, 0, 0.02);
+ border: solid 1px rgba(0, 0, 0, 0.06);
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
+}
+.oe_quote .oe_q, .oe_quote q {
+ margin: 10px;
+ display: block;
+ font-style: italic;
+ text-align: center;
+ font-size: 20px;
+ color: #4e66e7;
+}
+.oe_quote .oe_q:before, .oe_quote .oe_q:after, .oe_quote q:before, .oe_quote q:after {
+ content: '"';
+ font-weight: 900;
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=20);
+ opacity: 0.2;
+}
+.oe_quote cite {
+ display: block;
+ font-style: normal;
+ margin-top: 16px;
+}
+.oe_quote .oe_photo {
+ float: left;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+ margin-right: 16px;
+}
+.oe_quote .oe_author {
+ font-size: 20px;
+ padding-top: 6px;
+ color: #8d7bac;
+}
+
+.oe_dark .oe_quote {
+ background: white;
+ border: 1px solid #f0f0ff;
+}
+
+/* ------ PICTURES ----- */
+.oe_picture {
+ display: block;
+ max-width: 84%;
+ max-height: 400px;
+ margin: 16px 8%;
+}
+
+.oe_screenshot {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+ -webkit-box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.2);
+ box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.2);
+}
+
+.oe_pic_ctr {
+ position: relative;
+}
+
+.oe_pic_ctr > img.oe_picture {
+ width: 100%;
+ max-width: none;
+ max-height: none;
+ margin: 0;
+}
+
+.oe_pic_ctr > .oe_title {
+ position: absolute;
+ top: 15px;
+ right: 38px;
+}
+
+.oe_styling_v8 .oe_pic_ctr > .oe_title {
+ font-size: 64px;
+ color: white;
+ font-weight: 600;
+ margin: 0;
+ text-shadow: 0px 2px 0px #494949, 0px 2px 5px rgba(0, 0, 0, 0.33), 0px 0px 60px rgba(0, 0, 0, 0.22);
+}
+
+/* ----- Link Image with Footer ----- */
+/* FIXME: Terrible CSS, rewrite this */
+div.oe_demo {
+ position: relative;
+ border: 1px solid #dedede;
+}
+div.oe_demo span.oe_demo_play {
+ top: 50%;
+ left: 50%;
+ width: 80px;
+ height: 60px;
+ margin-top: -30px;
+ margin-left: -40px;
+ display: block;
+ position: absolute;
+ background: url("../img/layout/play-button.png") no-repeat left top transparent;
+ pointer-events: none;
+}
+div.oe_demo img {
+ max-width: 100%;
+ width: 100%;
+}
+div.oe_demo div.oe_demo_footer {
+ position: absolute;
+ left: 0;
+ background-color: rgba(0, 0, 0, 0.4);
+ opacity: 0.85;
+ bottom: -1px;
+ width: 100%;
+ padding-top: 7px;
+ padding-bottom: 7px;
+ color: white;
+ font-size: 14px;
+ font-weight: bold;
+ border-bottom-left-radius: 3px;
+ border-bottom-right-radius: 3px;
+ pointer-events: none;
+}
+
+div.oe_demo:hover span.oe_demo_play {
+ background: url("../img/layout/play-button-over.png") no-repeat left top transparent;
+}
+
+/* ----- SEPARATOR ----- */
+.oe_styling_v8 .oe_container.oe_separator {
+ height: 64px;
+ margin-bottom: 16px;
+ background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(0, 0, 0, 0)), color-stop(100%, rgba(0, 0, 0, 0.02)));
+ background: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.02));
+ background: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.02));
+ background: -o-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.02));
+ background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.02));
+ -webkit-box-shadow: 0px -3px 10px -5px rgba(0, 0, 0, 0.1) inset;
+ -moz-box-shadow: 0px -3px 10px -5px rgba(0, 0, 0, 0.1) inset;
+ box-shadow: 0px -3px 10px -5px rgba(0, 0, 0, 0.1) inset;
+ overflow-y: hidden;
+}
+
+/* ----- TABS ----- */
+.oe_row_tabs {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding-top: 21px;
+}
+
+.oe_row_tab {
+ position: relative;
+ min-width: 120px;
+ padding: 8px;
+ font-size: 20px;
+ display: inline-block;
+ margin: 0px -2px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border: solid 1px rgba(0, 0, 0, 0.1);
+ border-bottom: none;
+ background: #fafafa;
+ background-image: +linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.02));
+ box-shadow: 0px -3px 10px -5px rgba(0, 0, 0, 0.1) inset;
+ cursor: pointer;
+ -webkit-transition: all 250ms linear;
+ -moz-transition: all 250ms linear;
+ -o-transition: all 250ms linear;
+ transition: all 250ms linear;
+}
+
+.oe_row_tab:hover {
+ padding-bottom: 12px;
+ top: -4px;
+ background-color: white;
+}
+
+.oe_row_tab.oe_active {
+ background-color: white;
+ background-image: none;
+ box-shadow: none;
+ border-top-color: #8272b6;
+ border-top-width: 2px;
+ cursor: default;
+}
+
+.oe_row_tab.oe_active:hover {
+ padding-bottom: 8px;
+ top: 0asx;
+}
+
+/* ------ CALL TO ACTION ----- */
+.oe_calltoaction {
+ height: 32px;
+ margin-top: -32px;
+ position: relative;
+}
diff --git a/openerp/addons/base/static/src/css/description.sass b/openerp/addons/base/static/src/css/description.sass
new file mode 100644
index 00000000000..3bb218a84aa
--- /dev/null
+++ b/openerp/addons/base/static/src/css/description.sass
@@ -0,0 +1,572 @@
+@charset "utf-8"
+@import "compass/css3"
+@import "compass/css3/user-interface"
+
+/**
+ * This CSS is for the html description of modules
+ * TODO clean
+ */
+
+/* --------------------------------- *
+ * STYLING CONTEXT *
+ * --------------------------------- */
+
+/* --- Styling for the V8/Lato/White/Purple design --- */
+
+$v8_title_font_color: rgb(51,51,51)
+$v8_text_font_color: rgb(100,100,100)
+$v8_font_paragraph_color: rgb(51,51,51)
+$v8_body_color: rgb(245,245,245)
+$v8_bg_color: rgb(255,255,255)
+$v8_text_font_family: 'Open Sans','Helvetica',Sans
+$v8_title_font_family: 'Lato','Open Sans','Helvetica',Sans
+$v8_anchor_color: #6D57E0
+$v8_anchor_visited_color: rgb(91, 40, 79)
+
+
+.openerp .oe_form_sheet_width
+ max-width: 960px
+
+.openerp .oe_form .oe_styling_v8
+ width: 100%
+ padding: 0
+ margin: 0
+ font-family: $v8_text_font_family
+ font-weight: 300
+ color: $v8_text_font_color
+ background: $v8_bg_color
+ font-size: 16px
+
+ .oe_websiteonly
+ display: none
+
+ .oe_website_contents
+ background: $v8_body_color
+ padding-bottom: 1px
+
+ b
+ font-weight: 600
+ a
+ color: $v8_anchor_color
+ text-decoration: none
+ a:visited
+ color: $v8_anchor_visited_color
+ a:hover
+ color: #0096EB
+
+ .oe_title_font
+ font-family: $v8_title_font_family
+
+
+ .oe_page
+ background: $v8_bg_color
+ overflow: hidden
+ +border-radius(1px)
+ +box-shadow(0 1px 3px rgba(0,0,0,0.35))
+
+ .oe_emph
+ font-weight: 400
+
+ .oe_dark
+ overflow: hidden
+ background: #FCFCFC
+ +box-shadow(0px 5px 9px -7px rgba(0,0,255,0.5) inset, 0px -3px 9px -7px rgba(0,0,255,0.5) inset)
+
+/* --------------------------------- *
+ * LAYOUT *
+ * --------------------------------- */
+
+/* ------ BASE GRID CONSTRUCTS ----- */
+
+.oe_page
+ margin: 0px auto 64px auto
+ max-width: 992px
+
+
+.oe_row
+ width: 928px
+ margin-top: 16px
+ margin-bottom: 16px
+ margin-left: auto
+ margin-right: auto
+
+.oe_row.oe_fit
+ width: auto
+
+.oe_clearfix:after, .oe_row:after
+ content: "."
+ display: block
+ clear: both
+ visibility: hidden
+ line-height: 0
+ height: 0
+
+$oe_span12_width: 928px
+$oe_span10_width: 773px
+$oe_span9_width: 696px
+$oe_span8_width: 618px
+$oe_span6_width: 464px
+$oe_span4_width: 309px
+$oe_span3_width: 232px
+$oe_span2_width: 154px
+
+[class*='oe_span']
+ float: left
+ +box-sizing(border-box)
+ padding: 0 16px
+.oe_span12
+ width: $oe_span12_width
+.oe_span10
+ width: $oe_span10_width
+.oe_span9
+ width: $oe_span9_width
+.oe_span8
+ width: $oe_span8_width
+.oe_span6
+ width: $oe_span6_width
+.oe_span4
+ width: $oe_span4_width
+.oe_span3
+ width: $oe_span3_width
+.oe_span2
+ width: $oe_span2_width
+
+[class*='oe_span'].oe_fit
+ padding-left: 0px !important
+ padding-right: 0px !important
+
+[class*='oe_span'].oe_right
+ float: right
+
+.oe_row.oe_flex
+ [class*='oe_span']
+ display: inline-block
+ float: none
+ vertical-align: top
+ +box-sizing(border-box)
+ padding: 0 16px
+ width: auto
+ .oe_span12
+ max-width: $oe_span12_width
+ .oe_span10
+ max-width: ($oe_span10_width +-4px)
+ .oe_span9
+ max-width: ($oe_span9_width +-4px)
+ .oe_span8
+ max-width: ($oe_span8_width +-4px)
+ .oe_span6
+ max-width: ($oe_span6_width +-4px)
+ .oe_span4
+ max-width: ($oe_span4_width +-4px)
+ .oe_span3
+ max-width: ($oe_span3_width +-4px)
+ .oe_span2
+ max-width: ($oe_span2_width +-4px)
+
+.oe_mb0
+ margin-bottom: 0px !important
+.oe_mb4
+ margin-bottom: 4px !important
+.oe_mb8
+ margin-bottom: 8px !important
+.oe_mb16
+ margin-bottom: 16px !important
+.oe_mb32
+ margin-bottom: 32px !important
+.oe_mb48
+ margin-bottom: 48px !important
+.oe_mb64
+ margin-bottom: 64px !important
+
+.oe_mt0
+ margin-top: 0px !important
+.oe_mt4
+ margin-top: 4px !important
+.oe_mt8
+ margin-top: 8px !important
+.oe_mt16
+ margin-top: 16px !important
+.oe_mt32
+ margin-top: 32px !important
+.oe_mt48
+ margin-top: 48px !important
+.oe_mt64
+ margin-top: 64px !important
+
+/* ------ GENERIC LAYOUT MODIFIERS ----- */
+
+.oe_rightfit
+ padding-right: 0px !important
+.oe_leftfit
+ padding-left: 0px !important
+.oe_leftalign
+ text-align: left
+.oe_rightalign
+ text-align: right
+.oe_centeralign
+ text-align: center
+.oe_centered
+ margin-left: auto
+ margin-right: auto
+.oe_hidden
+ display: none !important
+ opacity: 0 !important
+.oe_invisible
+ visibility: hidden !important
+.oe_transparent
+ opacity: 0 !important
+
+.oe_mb0
+ margin-bottom: 0px !important
+.oe_mb4
+ margin-bottom: 4px !important
+.oe_mb8
+ margin-bottom: 8px !important
+.oe_mb16
+ margin-bottom: 16px !important
+.oe_mb32
+ margin-bottom: 32px !important
+.oe_mb64
+ margin-bottom: 64px !important
+
+.oe_spaced
+ margin-top: 32px
+ margin-bottom: 32px
+.oe_more_spaced
+ margin-top: 64px
+ margin-bottom: 64px
+.oe_padded
+ padding-top: 16px
+ padding-bottom: 16px
+.oe_more_padded
+ padding-top: 32px
+ padding-bottom: 32px
+
+/* --------------------------------- *
+ * WEBPAGE COMPONENTS *
+ * --------------------------------- */
+
+/* ------ BUTTONS ----- */
+
+.oe_button
+ position: relative
+ bottom: 0
+ display: inline-block
+ cursor: pointer
+ +user-select(none)
+
+.oe_styling_v8 .oe_button, .oe_styling_v8 a.oe_button
+ padding: 8px 14px
+ background: rgb(139, 114, 182)
+ color: white
+ +border-radius(2px)
+ +box-shadow(0px 2px 0px rgb(175, 168, 204))
+ +text-shadow(0px 1px 1px rgba(0,0,0, 0.44))
+ border: solid 1px rgba(0,0,0,0.09)
+ +transition-property((bottom, background))
+ +transition-duration(250ms)
+ &:hover
+ background: rgb(139,91,221)
+ color: white
+ &:active
+ background: rgb(51,51,51)
+ bottom: -3px
+ &.oe_big
+ font-size: 24px
+ &.oe_bigger
+ font-size: 32px
+ &.oe_small
+ font-size: 13px
+ padding: 2px 4px
+ &:active
+ bottom: -1px
+ &.oe_medium
+ padding: 5px 12px
+ font-size: 16px
+ &.oe_tacky
+ background: rgb(255,68,68)
+ +box-shadow(0px 2px 0px #eba8a8)
+ &:hover
+ background: rgb(255,16,16)
+ &:active
+ background: black
+ &.oe_disabled
+ background: rgb(200,200,200)
+ +box-shadow(0px 2px 0px rgb(180,180,180))
+ cursor: default
+ &:hover
+ background: rgb(200,200,200)
+ +box-shadow(0px 2px 0px rgb(180,180,180))
+ &:active
+ background: rgb(200,200,200)
+ bottom: 0px
+ +box-shadow(0px 2px 0px rgb(180,180,180))
+
+.oe_styling_v8.oe_styling_black .oe_button
+ +box-shadow(0px 2px 0px rgb(70,53,85))
+
+/* ------ FORMS ----- */
+
+.oe_styling_v8
+ .oe_input
+ padding: 4px 7px
+ border-radius: 3px
+ border: solid 1px rgb(214,214,214)
+ box-shadow: 0px 2px rgb(230,230,230)
+ background: rgb(250,250,250)
+ font-weight: 300
+ outline: none
+ @include transition( all 150ms linear )
+ &:focus
+ border: solid 1px rgb(150,150,150)
+ box-shadow: 0px 2px rgb(210,210,210)
+
+ &.oe_valid
+ background: #F2FFEC
+ border-color: rgb(177,235,182)
+ box-shadow: 0px 2px rgb(225,248,225)
+ color: rgb(15,97,15)
+
+ &.oe_invalid
+ background: rgb(255,242,242)
+ border-color: #EBB1B1
+ box-shadow: 0px 2px #F8E1E1
+ color: #610F0F
+ &.oe_big
+ padding: 8px 14px
+ .oe_input_label
+ font-weight: 300
+ font-size: 16px
+ &.oe_big
+ font-size: 20px
+
+ /* FIXME: this is a quick hack for the release */
+
+ .oe_textarea
+ width: 300px
+ height: 80px
+ .oe_form_layout_table
+ width: 100%
+ td
+ padding-bottom: 16px
+ &:first-child
+ text-align: right
+ padding-right: 16px
+
+/* ------ SLOGANS ----- */
+
+.oe_styling_v8
+ .oe_slogan
+ color: $v8_title_font_color
+ font-family: $v8_title_font_family
+ text-align: center
+ margin-top: 32px
+ margin-bottom: 32px
+
+ h1.oe_slogan
+ font-size: 64px
+ font-weight: 900
+ margin-top: 48px
+ margin-bottom: 48px
+
+ h2.oe_slogan
+ font-size: 40px
+ font-weight: 300
+
+ h3.oe_slogan
+ font-size: 26px
+ font-weight: 300
+ +opacity(0.5)
+
+ h4.oe_slogan
+ font-size: 24px
+ font-weight: 300
+ h4.oe_slogan:before, h4.oe_slogan:after
+ margin: 0 20px
+ content: ""
+ display: inline-block
+ width: 100px
+ height: 0px
+ border-top: solid 1px
+ vertical-align: middle
+ +opacity(0.3)
+
+ h5.oe_slogan
+ font-weight: 300
+ //TODO
+
+/* ------ QUOTES ----- */
+
+.oe_quote
+ margin: 8px
+ padding: 16px
+ background: rgba(0,0,0,0.02)
+ border: solid 1px rgba(0,0,0,0.06)
+ +border-radius(2px)
+
+ .oe_q,q
+ margin: 10px
+ display: block
+ font-style: italic
+ text-align: center
+ font-size: 20px
+ color: rgb(78, 102, 231)
+ &:before, &:after
+ content: '\"'
+ font-weight: 900
+ +opacity(0.2)
+
+ cite
+ display: block
+ font-style: normal
+ margin-top: 16px
+
+ .oe_photo
+ float: left
+ +border-radius(3px)
+ margin-right: 16px
+
+ .oe_author
+ font-size: 20px
+ padding-top: 6px
+ color: rgb(141, 123, 172)
+
+.oe_dark .oe_quote
+ background: white
+ border: 1px solid rgb(240,240,255)
+
+/* ------ PICTURES ----- */
+
+// display a picture in a span
+.oe_picture
+ display: block
+ max-width: 84%
+ max-height: 400px
+ margin: 16px 8%
+
+// style the picture like a screenshot
+.oe_screenshot
+ +border-radius(3px)
+ +box-shadow(0px 3px 8px rgba(0,0,0,0.2))
+
+// display a picture taking full width of a row
+.oe_pic_ctr
+ position: relative
+
+.oe_pic_ctr > img.oe_picture
+ width: 100%
+ max-width: none
+ max-height: none
+ margin: 0
+
+// styling of the picture's title
+.oe_pic_ctr > .oe_title
+ position: absolute
+ top: 15px
+ right: 38px
+
+.oe_styling_v8 .oe_pic_ctr > .oe_title
+ font-size: 64px
+ color: white
+ font-weight: 600
+ margin: 0
+ +text-shadow( 0px 2px 0px rgb(73, 73, 73), 0px 2px 5px rgba(0, 0, 0, 0.33), 0px 0px 60px rgba(0, 0, 0, 0.22))
+
+/* ----- Link Image with Footer ----- */
+/* FIXME: Terrible CSS, rewrite this */
+
+div.oe_demo
+ position: relative
+ border: 1px solid #dedede
+ span.oe_demo_play
+ top: 50%
+ left: 50%
+ width: 80px
+ height: 60px
+ margin-top: -30px
+ margin-left: -40px
+ display: block
+ position: absolute
+ background: url("../img/layout/play-button.png") no-repeat left top transparent
+ pointer-events: none
+ img
+ max-width: 100%
+ width: 100%
+ div.oe_demo_footer
+ position: absolute
+ left: 0
+ background-color: rgba(0,0,0,0.4)
+ opacity: 0.85
+ bottom: -1px
+ width: 100%
+ padding-top: 7px
+ padding-bottom: 7px
+ color: white
+ font-size: 14px
+ font-weight: bold
+ border-bottom-left-radius: 3px
+ border-bottom-right-radius: 3px
+ pointer-events: none
+
+div.oe_demo:hover
+ span.oe_demo_play
+ background: url("../img/layout/play-button-over.png") no-repeat left top transparent
+
+/* ----- SEPARATOR ----- */
+
+.oe_styling_v8 .oe_container.oe_separator
+ height: 64px
+ margin-bottom: 16px
+ @include background(linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0.02)))
+ +box-shadow(0px -3px 10px -5px rgba(0,0,0,0.1) inset)
+ overflow-y: hidden
+
+/* ----- TABS ----- */
+
+.oe_row_tabs
+ text-align: center
+ margin-top: 0px
+ margin-bottom: 0px
+ padding-top: 21px
+
+.oe_row_tab
+ position: relative
+ min-width: 120px
+ padding: 8px
+ font-size: 20px
+ display: inline-block
+ margin: 0px -2px
+ border-top-left-radius: 4px
+ border-top-right-radius: 4px
+ border: solid 1px rgba(0,0,0,0.1)
+ border-bottom: none
+ background: rgb(250,250,250)
+ background-image: +linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.02))
+ box-shadow: 0px -3px 10px -5px rgba(0,0,0,0.1) inset
+ cursor: pointer
+ @include transition(all 250ms linear)
+
+.oe_row_tab:hover
+ padding-bottom: 12px
+ top: -4px
+ background-color: white
+
+.oe_row_tab.oe_active
+ background-color: white
+ background-image: none
+ box-shadow: none
+ border-top-color: rgb(130, 114, 182)
+ border-top-width: 2px
+ cursor: default
+
+.oe_row_tab.oe_active:hover
+ padding-bottom: 8px
+ top: 0asx
+
+/* ------ CALL TO ACTION ----- */
+
+.oe_calltoaction
+ height: 32px
+ margin-top: -32px
+ position: relative
+
diff --git a/openerp/osv/expression.py b/openerp/osv/expression.py
index ef02882422c..18a1e9508f5 100644
--- a/openerp/osv/expression.py
+++ b/openerp/osv/expression.py
@@ -398,7 +398,9 @@ def is_leaf(element, internal=False):
INTERNAL_OPS += ('inselect',)
return (isinstance(element, tuple) or isinstance(element, list)) \
and len(element) == 3 \
- and element[1] in INTERNAL_OPS
+ and element[1] in INTERNAL_OPS \
+ and ((isinstance(element[0], basestring) and element[0])
+ or element in (TRUE_LEAF, FALSE_LEAF))
# --------------------------------------------------
diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py
index 829ba6a2bde..112937727b0 100644
--- a/openerp/osv/orm.py
+++ b/openerp/osv/orm.py
@@ -1804,13 +1804,19 @@ class BaseModel(object):
# try to find a view_id if none provided
if not view_id:
# <view_type>_view_ref in context can be used to overrride the default view
- view_ref = context.get(view_type + '_view_ref')
- if view_ref and '.' in view_ref:
- module, view_ref = view_ref.split('.', 1)
- cr.execute("SELECT res_id FROM ir_model_data WHERE model='ir.ui.view' AND module=%s AND name=%s", (module, view_ref))
- view_ref_res = cr.fetchone()
- if view_ref_res:
- view_id = view_ref_res[0]
+ view_ref_key = view_type + '_view_ref'
+ view_ref = context.get(view_ref_key)
+ if view_ref:
+ if '.' in view_ref:
+ module, view_ref = view_ref.split('.', 1)
+ cr.execute("SELECT res_id FROM ir_model_data WHERE model='ir.ui.view' AND module=%s AND name=%s", (module, view_ref))
+ view_ref_res = cr.fetchone()
+ if view_ref_res:
+ view_id = view_ref_res[0]
+ else:
+ _logger.warning('%r requires a fully-qualified external id (got: %r for model %s). '
+ 'Please use the complete `module.view_id` form instead.', view_ref_key, view_ref,
+ self._name)
else:
# otherwise try to find the lowest priority matching ir.ui.view
view_id = View.default_view(cr, uid, self._name, view_type, context=context)
diff --git a/openerp/report/report_sxw.py b/openerp/report/report_sxw.py
index fceb318401b..548a3f833f5 100644
--- a/openerp/report/report_sxw.py
+++ b/openerp/report/report_sxw.py
@@ -109,7 +109,7 @@ class _date_format(str, _format):
if self.val:
if getattr(self,'name', None):
date = datetime.strptime(self.name[:get_date_length()], DEFAULT_SERVER_DATE_FORMAT)
- return date.strftime(str(self.lang_obj.date_format))
+ return date.strftime(self.lang_obj.date_format.encode('utf-8'))
return self.val
class _dttime_format(str, _format):
@@ -120,8 +120,8 @@ class _dttime_format(str, _format):
def __str__(self):
if self.val and getattr(self,'name', None):
return datetime.strptime(self.name, DEFAULT_SERVER_DATETIME_FORMAT)\
- .strftime("%s %s"%(str(self.lang_obj.date_format),
- str(self.lang_obj.time_format)))
+ .strftime("%s %s"%((self.lang_obj.date_format).encode('utf-8'),
+ (self.lang_obj.time_format).encode('utf-8')))
return self.val
@@ -313,7 +313,7 @@ class rml_parse(object):
date = datetime_field.context_timestamp(self.cr, self.uid,
timestamp=date,
context=self.localcontext)
- return date.strftime(date_format)
+ return date.strftime(date_format.encode('utf-8'))
res = self.lang_dict['lang_obj'].format('%.' + str(digits) + 'f', value, grouping=grouping, monetary=monetary)
if currency_obj:
diff --git a/openerp/service/workers.py b/openerp/service/workers.py
index 8fec2767471..c8b8b84bca2 100644
--- a/openerp/service/workers.py
+++ b/openerp/service/workers.py
@@ -411,14 +411,11 @@ class WorkerCron(Worker):
if rpc_request_flag:
start_time = time.time()
start_rss, start_vms = psutil.Process(os.getpid()).get_memory_info()
- while True:
- # acquired = openerp.addons.base.ir.ir_cron.ir_cron._acquire_job(db_name)
- # TODO why isnt openerp.addons.base defined ?
- import openerp.addons.base as base
- acquired = base.ir.ir_cron.ir_cron._acquire_job(db_name)
- if not acquired:
- openerp.modules.registry.RegistryManager.delete(db_name)
- break
+
+ import openerp.addons.base as base
+ base.ir.ir_cron.ir_cron._acquire_job(db_name)
+ openerp.modules.registry.RegistryManager.delete(db_name)
+
# dont keep cursors in multi database mode
if len(db_names) > 1:
openerp.sql_db.close_db(db_name)
diff --git a/openerp/tests/test_acl.py b/openerp/tests/test_acl.py
index 1d8d6bfb22a..e80390cd5a2 100644
--- a/openerp/tests/test_acl.py
+++ b/openerp/tests/test_acl.py
@@ -9,6 +9,7 @@ import common
# test group that demo user should not have
GROUP_TECHNICAL_FEATURES = 'base.group_no_one'
+
class TestACL(common.TransactionCase):
def setUp(self):
@@ -22,25 +23,25 @@ class TestACL(common.TransactionCase):
def test_field_visibility_restriction(self):
"""Check that model-level ``groups`` parameter effectively restricts access to that
- field for users who do not belong to one of the explicitly allowed groups"""
+ field for users who do not belong to one of the explicitly allowed groups"""
# Verify the test environment first
original_fields = self.res_currency.fields_get(self.cr, self.demo_uid, [])
form_view = self.res_currency.fields_view_get(self.cr, self.demo_uid, False, 'form')
view_arch = etree.fromstring(form_view.get('arch'))
has_tech_feat = self.res_users.has_group(self.cr, self.demo_uid, GROUP_TECHNICAL_FEATURES)
self.assertFalse(has_tech_feat, "`demo` user should not belong to the restricted group before the test")
- self.assertTrue('rate' in original_fields, "'rate' field must be properly visible before the test")
- self.assertNotEquals(view_arch.xpath("//field[@name='rate']"), [],
- "Field 'rate' must be found in view definition before the test")
+ self.assertTrue('accuracy' in original_fields, "'accuracy' field must be properly visible before the test")
+ self.assertNotEquals(view_arch.xpath("//field[@name='accuracy']"), [],
+ "Field 'accuracy' must be found in view definition before the test")
# Restrict access to the field and check it's gone
- self.res_currency._columns['rate'].groups = GROUP_TECHNICAL_FEATURES
+ self.res_currency._columns['accuracy'].groups = GROUP_TECHNICAL_FEATURES
fields = self.res_currency.fields_get(self.cr, self.demo_uid, [])
form_view = self.res_currency.fields_view_get(self.cr, self.demo_uid, False, 'form')
view_arch = etree.fromstring(form_view.get('arch'))
- self.assertFalse('rate' in fields, "'rate' field should be gone")
- self.assertEquals(view_arch.xpath("//field[@name='rate']"), [],
- "Field 'rate' must not be found in view definition")
+ self.assertFalse('accuracy' in fields, "'accuracy' field should be gone")
+ self.assertEquals(view_arch.xpath("//field[@name='accuracy']"), [],
+ "Field 'accuracy' must not be found in view definition")
# Make demo user a member of the restricted group and check that the field is back
self.tech_group.write({'users': [(4, self.demo_uid)]})
@@ -50,13 +51,13 @@ class TestACL(common.TransactionCase):
view_arch = etree.fromstring(form_view.get('arch'))
#import pprint; pprint.pprint(fields); pprint.pprint(form_view)
self.assertTrue(has_tech_feat, "`demo` user should now belong to the restricted group")
- self.assertTrue('rate' in fields, "'rate' field must be properly visible again")
- self.assertNotEquals(view_arch.xpath("//field[@name='rate']"), [],
- "Field 'rate' must be found in view definition again")
+ self.assertTrue('accuracy' in fields, "'accuracy' field must be properly visible again")
+ self.assertNotEquals(view_arch.xpath("//field[@name='accuracy']"), [],
+ "Field 'accuracy' must be found in view definition again")
#cleanup
self.tech_group.write({'users': [(3, self.demo_uid)]})
- self.res_currency._columns['rate'].groups = False
+ self.res_currency._columns['accuracy'].groups = False
@mute_logger('openerp.osv.orm')
def test_field_crud_restriction(self):
@@ -65,7 +66,7 @@ class TestACL(common.TransactionCase):
has_tech_feat = self.res_users.has_group(self.cr, self.demo_uid, GROUP_TECHNICAL_FEATURES)
self.assertFalse(has_tech_feat, "`demo` user should not belong to the restricted group")
self.assert_(self.res_partner.read(self.cr, self.demo_uid, [1], ['bank_ids']))
- self.assert_(self.res_partner.write(self.cr, self.demo_uid, [1], {'bank_ids': []}))
+ self.assert_(self.res_partner.write(self.cr, self.demo_uid, [1], {'bank_ids': []}))
# Now restrict access to the field and check it's forbidden
self.res_partner._columns['bank_ids'].groups = GROUP_TECHNICAL_FEATURES
@@ -79,12 +80,30 @@ class TestACL(common.TransactionCase):
has_tech_feat = self.res_users.has_group(self.cr, self.demo_uid, GROUP_TECHNICAL_FEATURES)
self.assertTrue(has_tech_feat, "`demo` user should now belong to the restricted group")
self.assert_(self.res_partner.read(self.cr, self.demo_uid, [1], ['bank_ids']))
- self.assert_(self.res_partner.write(self.cr, self.demo_uid, [1], {'bank_ids': []}))
-
+ self.assert_(self.res_partner.write(self.cr, self.demo_uid, [1], {'bank_ids': []}))
+
#cleanup
self.tech_group.write({'users': [(3, self.demo_uid)]})
self.res_partner._columns['bank_ids'].groups = False
+ def test_fields_browse_restriction(self):
+ """Test access to records having restricted fields"""
+ self.res_partner._columns['email'].groups = GROUP_TECHNICAL_FEATURES
+ try:
+ P = self.res_partner
+ pid = P.search(self.cr, self.demo_uid, [], limit=1)[0]
+ part = P.browse(self.cr, self.demo_uid, pid)
+ # accessing fields must no raise exceptions...
+ part.name
+ # ... except they are restricted
+ with self.assertRaises(openerp.osv.orm.except_orm) as cm:
+ part.email
+
+ self.assertEqual(cm.exception.args[0], 'Access Denied')
+ finally:
+ self.res_partner._columns['email'].groups = False
+
+
if __name__ == '__main__':
unittest2.main()
diff --git a/openerp/tests/test_mail.py b/openerp/tests/test_mail.py
index ddb8fc4a195..f3d327b0281 100755
--- a/openerp/tests/test_mail.py
+++ b/openerp/tests/test_mail.py
@@ -23,146 +23,9 @@
##############################################################################
import unittest2
+from . import test_mail_examples
from openerp.tools import html_sanitize, html_email_clean, append_content_to_html, plaintext2html
-HTML_SOURCE = """
-<font size="2" style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; ">test1</font>
-<div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; font-size: 12px; font-style: normal; ">
-<b>test2</b></div><div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; font-size: 12px; ">
-<i>test3</i></div><div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; font-size: 12px; ">
-<u>test4</u></div><div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; font-size: 12px; ">
-<strike>test5</strike></div><div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; ">
-<font size="5">test6</font></div><div><ul><li><font color="#1f1f1f" face="monospace" size="2">test7</font></li><li>
-<font color="#1f1f1f" face="monospace" size="2">test8</font></li></ul><div><ol><li><font color="#1f1f1f" face="monospace" size="2">test9</font>
-</li><li><font color="#1f1f1f" face="monospace" size="2">test10</font></li></ol></div></div>
-<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div><div><font color="#1f1f1f" face="monospace" size="2">
-test11</font></div></div></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
-<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font color="#1f1f1f" face="monospace" size="2">
-test12</font></div><div><font color="#1f1f1f" face="monospace" size="2"><br></font></div></blockquote></blockquote>
-<font color="#1f1f1f" face="monospace" size="2"><a href="http://google.com">google</a></font>
-<a href="javascript:alert('malicious code')">test link</a>
-"""
-
-EDI_LIKE_HTML_SOURCE = """<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
- <p>Hello ${object.partner_id.name},</p>
- <p>A new invoice is available for you: </p>
- <p style="border-left: 1px solid #8e0000; margin-left: 30px;">
- &nbsp;&nbsp;<strong>REFERENCES</strong><br />
- &nbsp;&nbsp;Invoice number: <strong>${object.number}</strong><br />
- &nbsp;&nbsp;Invoice total: <strong>${object.amount_total} ${object.currency_id.name}</strong><br />
- &nbsp;&nbsp;Invoice date: ${object.date_invoice}<br />
- &nbsp;&nbsp;Order reference: ${object.origin}<br />
- &nbsp;&nbsp;Your contact: <a href="mailto:${object.user_id.email or ''}?subject=Invoice%20${object.number}">${object.user_id.name}</a>
- </p>
- <br/>
- <p>It is also possible to directly pay with Paypal:</p>
- <a style="margin-left: 120px;" href="${object.paypal_url}">
- <img class="oe_edi_paypal_button" src="https://www.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif"/>
- </a>
- <br/>
- <p>If you have any question, do not hesitate to contact us.</p>
- <p>Thank you for choosing ${object.company_id.name or 'us'}!</p>
- <br/>
- <br/>
- <div style="width: 375px; margin: 0px; padding: 0px; background-color: #8E0000; border-top-left-radius: 5px 5px; border-top-right-radius: 5px 5px; background-repeat: repeat no-repeat;">
- <h3 style="margin: 0px; padding: 2px 14px; font-size: 12px; color: #DDD;">
- <strong style="text-transform:uppercase;">${object.company_id.name}</strong></h3>
- </div>
- <div style="width: 347px; margin: 0px; padding: 5px 14px; line-height: 16px; background-color: #F2F2F2;">
- <span style="color: #222; margin-bottom: 5px; display: block; ">
- ${object.company_id.street}<br/>
- ${object.company_id.street2}<br/>
- ${object.company_id.zip} ${object.company_id.city}<br/>
- ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
- </span>
- <div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
- Phone:&nbsp; ${object.company_id.phone}
- </div>
- <div>
- Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
- </div>
- </div>
-</div></body></html>"""
-
-TEXT_MAIL1 = """I contact you about our meeting for tomorrow. Here is the schedule I propose:
-9 AM: brainstorming about our new amazing business app</span></li>
-9.45 AM: summary
-10 AM: meeting with Fabien to present our app
-Is everything ok for you ?
---
-Administrator"""
-
-HTML_MAIL1 = """<div>
-<font><span>I contact you about our meeting for tomorrow. Here is the schedule I propose:</span></font>
-</div>
-<div><ul>
-<li><span>9 AM: brainstorming about our new amazing business app</span></li>
-<li><span>9.45 AM: summary</span></li>
-<li><span>10 AM: meeting with Fabien to present our app</span></li>
-</ul></div>
-<div><font><span>Is everything ok for you ?</span></font></div>"""
-
-GMAIL_REPLY1_SAN = """Hello,<div><br></div><div>Ok for me. I am replying directly in gmail, without signature.</div><div><br></div><div>Kind regards,</div><div><br></div><div>Demo.<br><br><div>On Thu, Nov 8, 2012 at 5:29 PM, <span>&lt;<a href="mailto:dummy@example.com">dummy@example.com</a>&gt;</span> wrote:<br><blockquote><div>I contact you about our meeting for tomorrow. Here is the schedule I propose:</div><div><ul><li>9 AM: brainstorming about our new amazing business app&lt;/span&gt;&lt;/li&gt;</li>
-<li>9.45 AM: summary</li><li>10 AM: meeting with Fabien to present our app</li></ul></div><div>Is everything ok for you ?</div>
-<div><p>--<br>Administrator</p></div>
-
-<div><p>Log in our portal at: <a href="http://localhost:8069#action=login&amp;db=mail_1&amp;login=demo">http://localhost:8069#action=login&amp;db=mail_1&amp;login=demo</a></p></div>
-</blockquote></div><br></div>"""
-
-THUNDERBIRD_16_REPLY1_SAN = """ <div>On 11/08/2012 05:29 PM,
- <a href="mailto:dummy@example.com">dummy@example.com</a> wrote:<br></div>
- <blockquote>
- <div>I contact you about our meeting for tomorrow. Here is the
- schedule I propose:</div>
- <div>
- <ul><li>9 AM: brainstorming about our new amazing business
- app&lt;/span&gt;&lt;/li&gt;</li>
- <li>9.45 AM: summary</li>
- <li>10 AM: meeting with Fabien to present our app</li>
- </ul></div>
- <div>Is everything ok for you ?</div>
- <div>
- <p>--<br>
- Administrator</p>
- </div>
- <div>
- <p>Log in our portal at:
-<a href="http://localhost:8069#action=login&amp;db=mail_1&amp;token=rHdWcUART5PhEnJRaXjH">http://localhost:8069#action=login&amp;db=mail_1&amp;token=rHdWcUART5PhEnJRaXjH</a></p>
- </div>
- </blockquote>
- Ok for me. I am replying directly below your mail, using
- Thunderbird, with a signature.<br><br>
- Did you receive my email about my new laptop, by the way ?<br><br>
- Raoul.<br><pre>--
-Raoul Grosbedonn&#233;e
-</pre>"""
-
-TEXT_TPL = """Salut Raoul!
-Le 28 oct. 2012 à 00:02, Raoul Grosbedon a écrit :
-
-> C'est sûr que je suis intéressé (quote)!
-
-Trouloulou pouet pouet. Je ne vais quand même pas écrire de vrais mails, non mais ho.
-
-> 2012/10/27 Bert Tartopoils :
->> Diantre, me disè-je en envoyant un message similaire à Martine, mais comment vas-tu (quote)?
->>
->> A la base le contenu était un vrai mail, mais je l'ai quand même réécrit pour ce test, histoire de dire que, quand même, on ne met pas n'importe quoi ici. (quote)
->>
->> Et sinon bon courage pour trouver tes clefs (quote).
->>
->> Bert TARTOPOILS
->> bert.tartopoils@miam.miam
->>
->
->
-> --
-> Raoul Grosbedon
-
-Bert TARTOPOILS
-bert.tartopoils@miam.miam
-"""
-
class TestSanitizer(unittest2.TestCase):
""" Test the html sanitizer that filters html to remove unwanted attributes """
@@ -223,22 +86,21 @@ class TestSanitizer(unittest2.TestCase):
self.assertTrue('ha.ckers.org' not in html or 'http://ha.ckers.org/xss.css' in html, 'html_sanitize did not remove a malicious code in %s (%s)' % (content, html))
def test_html(self):
- sanitized_html = html_sanitize(HTML_SOURCE)
+ sanitized_html = html_sanitize(test_mail_examples.MISC_HTML_SOURCE)
for tag in ['<div', '<b', '<i', '<u', '<strike', '<li', '<blockquote', '<a href']:
self.assertIn(tag, sanitized_html, 'html_sanitize stripped too much of original html')
for attr in ['javascript']:
self.assertNotIn(attr, sanitized_html, 'html_sanitize did not remove enough unwanted attributes')
- emails =[("Charles <charles.bidule@truc.fr>", "Charles &lt;charles.bidule@truc.fr&gt;"),
+ emails = [("Charles <charles.bidule@truc.fr>", "Charles &lt;charles.bidule@truc.fr&gt;"),
("Dupuis <'tr/-: ${dupuis#$'@truc.baz.fr>", "Dupuis &lt;'tr/-: ${dupuis#$'@truc.baz.fr&gt;"),
("Technical <service/technical+2@open.com>", "Technical &lt;service/technical+2@open.com&gt;"),
("Div nico <div-nico@open.com>", "Div nico &lt;div-nico@open.com&gt;")]
for email in emails:
self.assertIn(email[1], html_sanitize(email[0]), 'html_sanitize stripped emails of original html')
-
def test_edi_source(self):
- html = html_sanitize(EDI_LIKE_HTML_SOURCE)
+ html = html_sanitize(test_mail_examples.EDI_LIKE_HTML_SOURCE)
self.assertIn('div style="font-family: \'Lucica Grande\', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF;', html,
'html_sanitize removed valid style attribute')
self.assertIn('<span style="color: #222; margin-bottom: 5px; display: block; ">', html,
@@ -251,36 +113,122 @@ class TestSanitizer(unittest2.TestCase):
class TestCleaner(unittest2.TestCase):
""" Test the email cleaner function that filters the content of incoming emails """
- def test_html_email_clean(self):
- # Test1: reply through gmail: quote in blockquote, signature --\nAdministrator
- new_html = html_email_clean(GMAIL_REPLY1_SAN)
- self.assertNotIn('blockquote', new_html, 'html_email_cleaner did not remove a blockquote')
- self.assertNotIn('I contact you about our meeting', new_html, 'html_email_cleaner wrongly removed the quoted content')
- self.assertNotIn('Administrator', new_html, 'html_email_cleaner did not erase the signature')
- self.assertIn('Ok for me', new_html, 'html_email_cleaner erased too much content')
-
- # Test2: reply through Tunderbird 16.0.2
- new_html = html_email_clean(THUNDERBIRD_16_REPLY1_SAN)
- self.assertNotIn('blockquote', new_html, 'html_email_cleaner did not remove a blockquote')
- self.assertNotIn('I contact you about our meeting', new_html, 'html_email_cleaner wrongly removed the quoted content')
- self.assertNotIn('Administrator', new_html, 'html_email_cleaner did not erase the signature')
- self.assertNotIn('Grosbedonn', new_html, 'html_email_cleaner did not erase the signature')
- self.assertIn('Ok for me', new_html, 'html_email_cleaner erased too much content')
-
- # Test3: text email
- new_html = html_email_clean(TEXT_MAIL1)
- self.assertIn('I contact you about our meeting', new_html, 'html_email_cleaner wrongly removed the quoted content')
- self.assertNotIn('Administrator', new_html, 'html_email_cleaner did not erase the signature')
-
- # Test4: more complex text email
- new_html = html_email_clean(TEXT_TPL)
- self.assertNotIn('quote', new_html, 'html_email_cleaner did not remove correctly plaintext quotes')
-
- # Test5: False boolean for text must return empty string
+ def test_00_basic_text(self):
+ """ html_email_clean test for signatures """
+ test_data = [
+ (
+ """This is Sparta!\n--\nAdministrator\n+9988776655""",
+ ['This is Sparta!'],
+ ['Administrator', '9988776655']
+ ), (
+ """<p>--\nAdministrator</p>""",
+ [],
+ ['--', 'Administrator']
+ ), (
+ """<p>This is Sparta!\n---\nAdministrator</p>""",
+ ['This is Sparta!'],
+ ['---', 'Administrator']
+ ), (
+ """<p>--<br>Administrator</p>""",
+ [],
+ []
+ ), (
+ """<p>This is Sparta!<br/>--<br>Administrator</p>""",
+ ['This is Sparta!'],
+ []
+ ), (
+ """This is Sparta!\n>Ah bon ?\nCertes\n> Chouette !\nClair""",
+ ['This is Sparta!', 'Certes', 'Clair'],
+ ['Ah bon', 'Chouette']
+ )
+ ]
+ for test, in_lst, out_lst in test_data:
+ new_html = html_email_clean(test, remove=True)
+ for text in in_lst:
+ self.assertIn(text, new_html, 'html_email_cleaner wrongly removed content')
+ for text in out_lst:
+ self.assertNotIn(text, new_html, 'html_email_cleaner did not remove unwanted content')
+
+ def test_10_email_text(self):
+ """ html_email_clean test for text-based emails """
+ new_html = html_email_clean(test_mail_examples.TEXT_1, remove=True)
+ for ext in test_mail_examples.TEXT_1_IN:
+ self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed not quoted content')
+ for ext in test_mail_examples.TEXT_1_OUT:
+ self.assertNotIn(ext, new_html, 'html_email_cleaner did not erase signature / quoted content')
+
+ new_html = html_email_clean(test_mail_examples.TEXT_2, remove=True)
+ for ext in test_mail_examples.TEXT_2_IN:
+ self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed not quoted content')
+ for ext in test_mail_examples.TEXT_2_OUT:
+ self.assertNotIn(ext, new_html, 'html_email_cleaner did not erase signature / quoted content')
+
+ def test_20_email_html(self):
+ new_html = html_email_clean(test_mail_examples.HTML_1, remove=True)
+ for ext in test_mail_examples.HTML_1_IN:
+ self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed not quoted content')
+ for ext in test_mail_examples.HTML_1_OUT:
+ self.assertNotIn(ext, new_html, 'html_email_cleaner did not erase signature / quoted content')
+
+ new_html = html_email_clean(test_mail_examples.HTML_2, remove=True)
+ for ext in test_mail_examples.HTML_2_IN:
+ self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed not quoted content')
+ for ext in test_mail_examples.HTML_2_OUT:
+ self.assertNotIn(ext, new_html, 'html_email_cleaner did not erase signature / quoted content')
+
+ # --- MAIL ORIGINAL --- -> can't parse this one currently, too much language-dependent
+ # new_html = html_email_clean(test_mail_examples.HTML_3, remove=False)
+ # for ext in test_mail_examples.HTML_3_IN:
+ # self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed not quoted content')
+ # for ext in test_mail_examples.HTML_3_OUT:
+ # self.assertNotIn(ext, new_html, 'html_email_cleaner did not erase signature / quoted content')
+
+ def test_30_email_msoffice(self):
+ new_html = html_email_clean(test_mail_examples.MSOFFICE_1, remove=True)
+ for ext in test_mail_examples.MSOFFICE_1_IN:
+ self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed not quoted content')
+ for ext in test_mail_examples.MSOFFICE_1_OUT:
+ self.assertNotIn(ext, new_html, 'html_email_cleaner did not erase signature / quoted content')
+
+ new_html = html_email_clean(test_mail_examples.MSOFFICE_2, remove=True)
+ for ext in test_mail_examples.MSOFFICE_2_IN:
+ self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed not quoted content')
+ for ext in test_mail_examples.MSOFFICE_2_OUT:
+ self.assertNotIn(ext, new_html, 'html_email_cleaner did not erase signature / quoted content')
+
+ new_html = html_email_clean(test_mail_examples.MSOFFICE_3, remove=True)
+ for ext in test_mail_examples.MSOFFICE_3_IN:
+ self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed not quoted content')
+ for ext in test_mail_examples.MSOFFICE_3_OUT:
+ self.assertNotIn(ext, new_html, 'html_email_cleaner did not erase signature / quoted content')
+
+ def test_40_email_hotmail(self):
+ new_html = html_email_clean(test_mail_examples.HOTMAIL_1, remove=True)
+ for ext in test_mail_examples.HOTMAIL_1_IN:
+ self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed not quoted content')
+ for ext in test_mail_examples.HOTMAIL_1_OUT:
+ self.assertNotIn(ext, new_html, 'html_email_cleaner did not erase signature / quoted content')
+
+ def test_50_email_gmail(self):
+ new_html = html_email_clean(test_mail_examples.GMAIL_1, remove=True)
+ for ext in test_mail_examples.GMAIL_1_IN:
+ self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed not quoted content')
+ for ext in test_mail_examples.GMAIL_1_OUT:
+ self.assertNotIn(ext, new_html, 'html_email_cleaner did not erase signature / quoted content')
+
+ def test_60_email_thunderbird(self):
+ new_html = html_email_clean(test_mail_examples.THUNDERBIRD_1, remove=True)
+ for ext in test_mail_examples.THUNDERBIRD_1_IN:
+ self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed not quoted content')
+ for ext in test_mail_examples.THUNDERBIRD_1_OUT:
+ self.assertNotIn(ext, new_html, 'html_email_cleaner did not erase signature / quoted content')
+
+ def test_90_misc(self):
+ # False boolean for text must return empty string
new_html = html_email_clean(False)
self.assertEqual(new_html, False, 'html_email_cleaner did change a False in an other value.')
- # Test6: Message with xml and doctype tags don't crash
+ # Message with xml and doctype tags don't crash
new_html = html_email_clean(u'<?xml version="1.0" encoding="iso-8859-1"?>\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\n "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n <head>\n <title>404 - Not Found</title>\n </head>\n <body>\n <h1>404 - Not Found</h1>\n </body>\n</html>\n')
self.assertNotIn('encoding', new_html, 'html_email_cleaner did not remove correctly encoding attributes')
diff --git a/openerp/tests/test_mail_examples.py b/openerp/tests/test_mail_examples.py
new file mode 100644
index 00000000000..7631a28e662
--- /dev/null
+++ b/openerp/tests/test_mail_examples.py
@@ -0,0 +1,639 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+MISC_HTML_SOURCE = """
+<font size="2" style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; ">test1</font>
+<div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; font-size: 12px; font-style: normal; ">
+<b>test2</b></div><div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; font-size: 12px; ">
+<i>test3</i></div><div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; font-size: 12px; ">
+<u>test4</u></div><div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; font-size: 12px; ">
+<strike>test5</strike></div><div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; ">
+<font size="5">test6</font></div><div><ul><li><font color="#1f1f1f" face="monospace" size="2">test7</font></li><li>
+<font color="#1f1f1f" face="monospace" size="2">test8</font></li></ul><div><ol><li><font color="#1f1f1f" face="monospace" size="2">test9</font>
+</li><li><font color="#1f1f1f" face="monospace" size="2">test10</font></li></ol></div></div>
+<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div><div><font color="#1f1f1f" face="monospace" size="2">
+test11</font></div></div></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
+<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font color="#1f1f1f" face="monospace" size="2">
+test12</font></div><div><font color="#1f1f1f" face="monospace" size="2"><br></font></div></blockquote></blockquote>
+<font color="#1f1f1f" face="monospace" size="2"><a href="http://google.com">google</a></font>
+<a href="javascript:alert('malicious code')">test link</a>
+"""
+
+EDI_LIKE_HTML_SOURCE = """<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
+ <p>Hello ${object.partner_id.name},</p>
+ <p>A new invoice is available for you: </p>
+ <p style="border-left: 1px solid #8e0000; margin-left: 30px;">
+ &nbsp;&nbsp;<strong>REFERENCES</strong><br />
+ &nbsp;&nbsp;Invoice number: <strong>${object.number}</strong><br />
+ &nbsp;&nbsp;Invoice total: <strong>${object.amount_total} ${object.currency_id.name}</strong><br />
+ &nbsp;&nbsp;Invoice date: ${object.date_invoice}<br />
+ &nbsp;&nbsp;Order reference: ${object.origin}<br />
+ &nbsp;&nbsp;Your contact: <a href="mailto:${object.user_id.email or ''}?subject=Invoice%20${object.number}">${object.user_id.name}</a>
+ </p>
+ <br/>
+ <p>It is also possible to directly pay with Paypal:</p>
+ <a style="margin-left: 120px;" href="${object.paypal_url}">
+ <img class="oe_edi_paypal_button" src="https://www.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif"/>
+ </a>
+ <br/>
+ <p>If you have any question, do not hesitate to contact us.</p>
+ <p>Thank you for choosing ${object.company_id.name or 'us'}!</p>
+ <br/>
+ <br/>
+ <div style="width: 375px; margin: 0px; padding: 0px; background-color: #8E0000; border-top-left-radius: 5px 5px; border-top-right-radius: 5px 5px; background-repeat: repeat no-repeat;">
+ <h3 style="margin: 0px; padding: 2px 14px; font-size: 12px; color: #DDD;">
+ <strong style="text-transform:uppercase;">${object.company_id.name}</strong></h3>
+ </div>
+ <div style="width: 347px; margin: 0px; padding: 5px 14px; line-height: 16px; background-color: #F2F2F2;">
+ <span style="color: #222; margin-bottom: 5px; display: block; ">
+ ${object.company_id.street}<br/>
+ ${object.company_id.street2}<br/>
+ ${object.company_id.zip} ${object.company_id.city}<br/>
+ ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
+ </span>
+ <div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">
+ Phone:&nbsp; ${object.company_id.phone}
+ </div>
+ <div>
+ Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
+ </div>
+ </div>
+</div></body></html>"""
+
+TEXT_1 = """I contact you about our meeting tomorrow. Here is the schedule I propose:
+9 AM: brainstorming about our new amazing business app
+9.45 AM: summary
+10 AM: meeting with Ignasse to present our app
+Is everything ok for you ?
+--
+MySignature"""
+
+TEXT_1_IN = ["""I contact you about our meeting tomorrow. Here is the schedule I propose:
+9 AM: brainstorming about our new amazing business app
+9.45 AM: summary
+10 AM: meeting with Ignasse to present our app
+Is everything ok for you ?"""]
+TEXT_1_OUT = ["""--
+MySignature"""]
+
+TEXT_2 = """Salut Raoul!
+Le 28 oct. 2012 à 00:02, Raoul Grosbedon a écrit :
+
+> I contact you about our meeting tomorrow. Here is the schedule I propose: (quote)
+
+Of course. This seems viable.
+
+> 2012/10/27 Bert Tartopoils :
+>> blahblahblah (quote)?
+>>
+>> blahblahblah (quote)
+>>
+>> Bert TARTOPOILS
+>> bert.tartopoils@miam.miam
+>>
+>
+>
+> --
+> RaoulSignature
+
+Bert TARTOPOILS
+bert.tartopoils@miam.miam
+"""
+
+TEXT_2_IN = ["Salut Raoul!", "Of course. This seems viable."]
+TEXT_2_OUT = ["I contact you about our meeting tomorrow. Here is the schedule I propose: (quote)",
+ """> 2012/10/27 Bert Tartopoils :
+>> blahblahblah (quote)?
+>>
+>> blahblahblah (quote)
+>>
+>> Bert TARTOPOILS
+>> bert.tartopoils@miam.miam
+>>
+>
+>
+> --
+> RaoulSignature"""]
+
+HTML_1 = """<p>I contact you about our meeting for tomorrow. Here is the schedule I propose: (keep)
+9 AM: brainstorming about our new amazing business app
+9.45 AM: summary
+10 AM: meeting with Ignasse to present our app
+Is everything ok for you ?
+--
+MySignature</p>"""
+
+HTML_1_IN = ["""I contact you about our meeting for tomorrow. Here is the schedule I propose: (keep)
+9 AM: brainstorming about our new amazing business app
+9.45 AM: summary
+10 AM: meeting with Ignasse to present our app
+Is everything ok for you ?"""]
+HTML_1_OUT = ["""--
+MySignature"""]
+
+HTML_2 = """<div>
+ <font><span>I contact you about our meeting for tomorrow. Here is the schedule I propose:</span></font>
+</div>
+<div>
+ <ul>
+ <li><span>9 AM: brainstorming about our new amazing business app</span></li>
+ <li><span>9.45 AM: summary</span></li>
+ <li><span>10 AM: meeting with Fabien to present our app</span></li>
+ </ul>
+</div>
+<div>
+ <font><span>Is everything ok for you ?</span></font>
+</div>"""
+
+HTML_2_IN = ["<font><span>I contact you about our meeting for tomorrow. Here is the schedule I propose:</span></font>",
+ "<li><span>9 AM: brainstorming about our new amazing business app</span></li>",
+ "<li><span>9.45 AM: summary</span></li>",
+ "<li><span>10 AM: meeting with Fabien to present our app</span></li>",
+ "<font><span>Is everything ok for you ?</span></font>"]
+HTML_2_OUT = []
+
+HTML_3 = """<div><pre>This is an answer.
+
+Regards,
+XXXXXX
+----- Mail original -----</pre>
+
+
+<pre>Hi,
+
+
+My CRM-related question.
+
+Regards,
+
+XXXX</pre></div>"""
+
+HTML_3_IN = ["""<div><pre>This is an answer.
+
+Regards,
+XXXXXX
+----- Mail original -----</pre>"""]
+HTML_3_OUT = ["Hi,", "My CRM-related question.",
+ "Regards,"]
+
+HTML_4 = """
+<div>
+ <div>Hi Nicholas,</div>
+ <br>
+ <div>I'm free now. 00447710085916.</div>
+ <br>
+ <div>Regards,</div>
+ <div>Nicholas</div>
+ <br>
+ <span id="OLK_SRC_BODY_SECTION">
+ <div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
+ <span style="font-weight:bold">From: </span>OpenERP Enterprise &lt;<a href="mailto:sales@openerp.com">sales@openerp.com</a>&gt;<br><span style="font-weight:bold">Reply-To: </span>&lt;<a href="mailto:sales@openerp.com">sales@openerp.com</a>&gt;<br><span style="font-weight:bold">Date: </span>Wed, 17 Apr 2013 13:30:47 +0000<br><span style="font-weight:bold">To: </span>Microsoft Office User &lt;<a href="mailto:n.saxlund@babydino.com">n.saxlund@babydino.com</a>&gt;<br><span style="font-weight:bold">Subject: </span>Re: your OpenERP.com registration<br>
+ </div>
+ <br>
+ <div>
+ <p>Hello Nicholas Saxlund, </p>
+ <p>I noticed you recently registered to our OpenERP Online solution. </p>
+ <p>You indicated that you wish to use OpenERP in your own company. We would like to know more about your your business needs and requirements, and see how we can help you. When would you be available to discuss your project ?
+ </p>
+ <p>Best regards, </p>
+ <pre><a href="http://openerp.com">http://openerp.com</a>
+Belgium: +32.81.81.37.00
+U.S.: +1 (650) 307-6736
+India: +91 (79) 40 500 100
+ </pre>
+ </div>
+ </span>
+</div>"""
+
+HTML_5 = """<div><pre>Hi,
+
+I have downloaded OpenERP installer 7.0 and successfully installed the postgresql server and the OpenERP.
+I created a database and started to install module by log in as administrator.
+However, I was not able to install any module due to "OpenERP Server Error" as shown in the attachement.
+Could you please let me know how could I fix this problem?
+
+&nbsp;Regards,
+Goh Sin Yih
+
+
+________________________________
+ From: OpenERP Enterprise &lt;sales@openerp.com&gt;
+To: sinyih_goh@yahoo.com
+Sent: Friday, February 8, 2013 12:46 AM
+Subject: Feedback From Your OpenERP Trial
+
+
+Hello Goh Sin Yih,
+Thank you for having tested OpenERP Online.
+I noticed you started a trial of OpenERP Online (gsy) but you did not decide to keep using it.
+So, I just wanted to get in touch with you to get your feedback. Can you tell me what kind of application you were you looking for and why you didn't decide to continue with OpenERP?
+Thanks in advance for providing your feedback,
+Do not hesitate to contact me if you have any questions,
+Thanks,
+</pre>"""
+
+GMAIL_1 = """Hello,<div><br></div><div>Ok for me. I am replying directly in gmail, without signature.</div><div><br></div><div>Kind regards,</div><div><br></div><div>Demo.<br><br><div>On Thu, Nov 8, 2012 at 5:29 PM, <span>&lt;<a href="mailto:dummy@example.com">dummy@example.com</a>&gt;</span> wrote:<br><blockquote><div>I contact you about our meeting for tomorrow. Here is the schedule I propose:</div><div><ul><li>9 AM: brainstorming about our new amazing business app&lt;/span&gt;&lt;/li&gt;</li>
+<li>9.45 AM: summary</li><li>10 AM: meeting with Fabien to present our app</li></ul></div><div>Is everything ok for you ?</div>
+<div><p>--<br>Administrator</p></div>
+
+<div><p>Log in our portal at: <a href="http://localhost:8069#action=login&amp;db=mail_1&amp;login=demo">http://localhost:8069#action=login&amp;db=mail_1&amp;login=demo</a></p></div>
+</blockquote></div><br></div>"""
+
+GMAIL_1_IN = ['Ok for me. I am replying directly in gmail, without signature.']
+GMAIL_1_OUT = ['Administrator', 'Log in our portal at:']
+
+THUNDERBIRD_1 = """<div>On 11/08/2012 05:29 PM,
+ <a href="mailto:dummy@example.com">dummy@example.com</a> wrote:<br></div>
+ <blockquote>
+ <div>I contact you about our meeting for tomorrow. Here is the
+ schedule I propose:</div>
+ <div>
+ <ul><li>9 AM: brainstorming about our new amazing business
+ app&lt;/span&gt;&lt;/li&gt;</li>
+ <li>9.45 AM: summary</li>
+ <li>10 AM: meeting with Fabien to present our app</li>
+ </ul></div>
+ <div>Is everything ok for you ?</div>
+ <div>
+ <p>--<br>
+ Administrator</p>
+ </div>
+ <div>
+ <p>Log in our portal at:
+<a href="http://localhost:8069#action=login&amp;db=mail_1&amp;token=rHdWcUART5PhEnJRaXjH">http://localhost:8069#action=login&amp;db=mail_1&amp;token=rHdWcUART5PhEnJRaXjH</a></p>
+ </div>
+ </blockquote>
+ Ok for me. I am replying directly below your mail, using Thunderbird, with a signature.<br><br>
+ Did you receive my email about my new laptop, by the way ?<br><br>
+ Raoul.<br><pre>--
+Raoul Grosbedonn&#233;e
+</pre>"""
+
+THUNDERBIRD_1_IN = ['Ok for me. I am replying directly below your mail, using Thunderbird, with a signature.']
+THUNDERBIRD_1_OUT = ['I contact you about our meeting for tomorrow.', 'Raoul Grosbedon']
+
+HOTMAIL_1 = """<div>
+ <div dir="ltr"><br>&nbsp;
+ I have an amazing company, i'm learning OpenERP, it is a small company yet, but plannig to grow up quickly.
+ <br>&nbsp;<br>Kindest regards,<br>xxx<br>
+ <div>
+ <div id="SkyDrivePlaceholder">
+ </div>
+ <hr id="stopSpelling">
+ Subject: Re: your OpenERP.com registration<br>From: xxx@xxx.xxx<br>To: xxx@xxx.xxx<br>Date: Wed, 27 Mar 2013 17:12:12 +0000
+ <br><br>
+ Hello xxx,
+ <br>
+ I noticed you recently created an OpenERP.com account to access OpenERP Apps.
+ <br>
+ You indicated that you wish to use OpenERP in your own company.
+ We would like to know more about your your business needs and requirements, and see how
+ we can help you. When would you be available to discuss your project ?<br>
+ Best regards,<br>
+ <pre>
+ <a href="http://openerp.com" target="_blank">http://openerp.com</a>
+ Belgium: +32.81.81.37.00
+ U.S.: +1 (650) 307-6736
+ India: +91 (79) 40 500 100
+ </pre>
+ </div>
+ </div>
+</div>"""
+
+HOTMAIL_1_IN = ["I have an amazing company, i'm learning OpenERP, it is a small company yet, but plannig to grow up quickly."]
+HOTMAIL_1_OUT = ["Subject: Re: your OpenERP.com registration", " I noticed you recently created an OpenERP.com account to access OpenERP Apps.",
+ "We would like to know more about your your business needs and requirements", "Belgium: +32.81.81.37.00"]
+
+MSOFFICE_1 = """
+<div>
+<div class="WordSection1">
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ Our requirements are simple. Just looking to replace some spreadsheets for tracking quotes and possibly using the timecard module.
+ We are a company of 25 engineers providing product design services to clients.
+ </span>
+ </p>
+ <p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ I’ll install on a windows server and run a very limited trial to see how it works.
+ If we adopt OpenERP we will probably move to Linux or look for a hosted SaaS option.
+ </span>
+ </p>
+ <p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ <br>
+ I am also evaluating Adempiere and maybe others.
+ </span>
+ </p>
+ <p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ </span>
+ </p>
+ <p>&nbsp;</p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ I expect the trial will take 2-3 months as this is not a high priority for us.
+ </span>
+ </p>
+ <p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ </span>
+ </p>
+ <p>&nbsp;</p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ Alan
+ </span>
+ </p>
+ <p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ </span>
+ </p>
+ <p>&nbsp;</p>
+ <p></p>
+ <div>
+ <div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
+ <p class="MsoNormal">
+ <b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">
+ From:
+ </span></b>
+ <span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">
+ OpenERP Enterprise [mailto:sales@openerp.com]
+ <br><b>Sent:</b> Monday, 11 March, 2013 14:47<br><b>To:</b> Alan Widmer<br><b>Subject:</b> Re: your OpenERP.com registration
+ </span>
+ </p>
+ <p></p>
+ <p></p>
+ </div>
+ </div>
+ <p class="MsoNormal"></p>
+ <p>&nbsp;</p>
+ <p>Hello Alan Widmer, </p>
+ <p></p>
+ <p>I noticed you recently downloaded OpenERP. </p>
+ <p></p>
+ <p>
+ Uou mentioned you wish to use OpenERP in your own company. Please let me more about your
+ business needs and requirements? When will you be available to discuss about your project?
+ </p>
+ <p></p>
+ <p>Thanks for your interest in OpenERP, </p>
+ <p></p>
+ <p>Feel free to contact me if you have any questions, </p>
+ <p></p>
+ <p>Looking forward to hear from you soon. </p>
+ <p></p>
+ <pre><p>&nbsp;</p></pre>
+ <pre>--<p></p></pre>
+ <pre>Nicolas<p></p></pre>
+ <pre><a href="http://openerp.com">http://openerp.com</a><p></p></pre>
+ <pre>Belgium: +32.81.81.37.00<p></p></pre>
+ <pre>U.S.: +1 (650) 307-6736<p></p></pre>
+ <pre>India: +91 (79) 40 500 100<p></p></pre>
+ <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<p></p></pre>
+ </div>
+</div>"""
+
+MSOFFICE_1_IN = ['Our requirements are simple. Just looking to replace some spreadsheets for tracking quotes and possibly using the timecard module.']
+MSOFFICE_1_OUT = ['I noticed you recently downloaded OpenERP.', 'Uou mentioned you wish to use OpenERP in your own company.', 'Belgium: +32.81.81.37.00']
+
+MSOFFICE_2 = """
+<div>
+ <div class="WordSection1">
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Nicolas,</span></p><p></p>
+ <p></p>
+ <p class="MsoNormal" style="text-indent:.5in">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">We are currently investigating the possibility of moving away from our current ERP </span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ </span></p><p>&nbsp;</p>
+
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Thank You</span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Matt</span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ </span></p><p>&nbsp;</p>
+
+ <p></p>
+ <div>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Raoul Petitpoil</span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Poil Industries</span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Information Technology</span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">920 Super Street</span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Sanchez, Pa 17046 USA</span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Tel: xxx.xxx</span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Fax: xxx.xxx</span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Email: </span>
+ <a href="mailto:raoul@petitpoil.com">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:blue">raoul@petitpoil.com</span>
+ </a>
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ </span></p><p></p>
+
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">www.poilindustries.com</span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">www.superproducts.com</span></p><p></p>
+ <p></p>
+ </div>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ </span></p><p>&nbsp;</p>
+
+ <p></p>
+ <div>
+ <div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
+ <p class="MsoNormal">
+ <b>
+ <span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span>
+ </b>
+ <span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> OpenERP Enterprise [mailto:sales@openerp.com] <br><b>Sent:</b> Wednesday, April 17, 2013 1:31 PM<br><b>To:</b> Matt Witters<br><b>Subject:</b> Re: your OpenERP.com registration</span></p><p></p>
+ <p></p>
+ </div>
+ </div>
+ <p class="MsoNormal"></p>
+ <p>&nbsp;</p>
+ <p>Hello Raoul Petitpoil, </p>
+ <p></p>
+ <p>I noticed you recently downloaded OpenERP. </p>
+ <p></p>
+ <p>You indicated that you wish to use OpenERP in your own company. We would like to know more about your your business needs and requirements, and see how we can help you. When would you be available to discuss your project ? </p>
+ <p></p>
+ <p>Best regards, </p>
+ <p></p>
+ <pre> <p>&nbsp;</p>
+ </pre>
+ <pre>--<p></p></pre>
+ <pre>Nicolas<p></p></pre>
+ <pre> <a href="http://openerp.com">http://openerp.com</a>
+ <p></p>
+ </pre>
+ <pre>Belgium: +32.81.81.37.00<p></p></pre>
+ <pre>U.S.: +1 (650) 307-6736<p></p></pre>
+ <pre>India: +91 (79) 40 500 100<p></p></pre>
+ <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <p></p></pre>
+ </div>
+</div>"""
+
+MSOFFICE_2_IN = ['We are currently investigating the possibility']
+MSOFFICE_2_OUT = ['I noticed you recently downloaded OpenERP.', 'You indicated that you wish', 'Belgium: +32.81.81.37.00']
+
+MSOFFICE_3 = """<div>
+ <div class="WordSection1">
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Hi Nicolas&nbsp;!</span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ </span></p><p>&nbsp;</p>
+
+ <p></p>
+ <p class="MsoNormal">
+ <span lang="EN-US" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Yes I’d be glad to hear about your offers as we struggle every year with the planning/approving of LOA. </span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span lang="EN-US" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">I saw your boss yesterday on tv and immediately wanted to test the interface. </span></p><p></p>
+ <p></p>
+ <p class="MsoNormal">
+ <span lang="EN-US" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ </span></p><p>&nbsp;</p>
+
+ <p></p>
+ <div>
+ <p class="MsoNormal">
+ <b>
+ <span lang="NL-BE" style="font-size:10.0pt;font-family:&quot;Trebuchet MS&quot;,&quot;sans-serif&quot;;color:gray">Bien à vous, </span></b></p><p></p><b>
+ </b>
+ <p></p>
+ <p class="MsoNormal">
+ <b>
+ <span lang="NL-BE" style="font-size:10.0pt;font-family:&quot;Trebuchet MS&quot;,&quot;sans-serif&quot;;color:gray">Met vriendelijke groeten, </span></b></p><p></p><b>
+ </b>
+ <p></p>
+ <p class="MsoNormal">
+ <b>
+ <span lang="EN-GB" style="font-size:10.0pt;font-family:&quot;Trebuchet MS&quot;,&quot;sans-serif&quot;;color:gray">Best regards,</span></b></p><p></p><b>
+ </b>
+ <p></p>
+ <p class="MsoNormal">
+ <b>
+ <span lang="EN-GB" style="font-size:10.0pt;font-family:&quot;Trebuchet MS&quot;,&quot;sans-serif&quot;;color:gray">
+ </span></b></p><p><b>&nbsp;</b></p><b>
+
+ </b>
+ <p></p>
+ <p class="MsoNormal">
+ <b>
+ <span lang="EN-GB" style="font-size:10.0pt;font-family:&quot;Trebuchet MS&quot;,&quot;sans-serif&quot;;color:gray">R. Petitpoil&nbsp;&nbsp;&nbsp; <br></span>
+ </b>
+ <span lang="EN-GB" style="font-size:10.0pt;font-family:&quot;Trebuchet MS&quot;,&quot;sans-serif&quot;;color:gray">Human Resource Manager<b><br><br>Field Resource s.a n.v.&nbsp;&nbsp;<i> <br></i></b>Hermesstraat 6A <br>1930 Zaventem</span>
+ <span lang="EN-GB" style="font-size:8.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:gray"><br></span>
+ <b>
+ <span lang="FR" style="font-size:10.0pt;font-family:Wingdings;color:#1F497D">(</span>
+ </b>
+ <b>
+ <span lang="FR" style="font-size:9.0pt;font-family:Wingdings;color:#1F497D"> </span>
+ </b>
+ <b>
+ <span lang="EN-GB" style="font-size:8.0pt;font-family:&quot;Trebuchet MS&quot;,&quot;sans-serif&quot;;color:gray">xxx.xxx &nbsp;</span>
+ </b>
+ <b>
+ <span lang="EN-GB" style="font-size:9.0pt;font-family:&quot;Trebuchet MS&quot;,&quot;sans-serif&quot;;color:gray"><br></span>
+ </b>
+ <b>
+ <span lang="FR" style="font-size:10.0pt;font-family:&quot;Wingdings 2&quot;;color:#1F497D">7</span>
+ </b>
+ <b>
+ <span lang="FR" style="font-size:9.0pt;font-family:&quot;Wingdings 2&quot;;color:#1F497D"> </span>
+ </b>
+ <b>
+ <span lang="EN-GB" style="font-size:8.0pt;font-family:&quot;Trebuchet MS&quot;,&quot;sans-serif&quot;;color:gray">+32 2 727.05.91<br></span>
+ </b>
+ <span lang="EN-GB" style="font-size:24.0pt;font-family:Webdings;color:green">P</span>
+ <span lang="EN-GB" style="font-size:8.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:green"> <b>&nbsp;&nbsp; </b></span>
+ <b>
+ <span lang="EN-GB" style="font-size:9.0pt;font-family:&quot;Trebuchet MS&quot;,&quot;sans-serif&quot;;color:green">Please consider the environment before printing this email.</span>
+ </b>
+ <span lang="EN-GB" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:navy"> </span>
+ <span lang="EN-GB" style="font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:navy">
+ </span></p><p></p>
+
+ <p></p>
+ </div>
+ <p class="MsoNormal">
+ <span lang="EN-US" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">
+ </span></p><p>&nbsp;</p>
+
+ <p></p>
+ <div>
+ <div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
+ <p class="MsoNormal">
+ <b>
+ <span lang="FR" style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">De&nbsp;:</span>
+ </b>
+ <span lang="FR" style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> OpenERP Enterprise [mailto:sales@openerp.com] <br><b>Envoyé&nbsp;:</b> jeudi 18 avril 2013 11:31<br><b>À&nbsp;:</b> Paul Richard<br><b>Objet&nbsp;:</b> Re: your OpenERP.com registration</span></p><p></p>
+ <p></p>
+ </div>
+ </div>
+ <p class="MsoNormal"></p>
+ <p>&nbsp;</p>
+ <p>Hello Raoul PETITPOIL, </p>
+ <p></p>
+ <p>I noticed you recently registered to our OpenERP Online solution. </p>
+ <p></p>
+ <p>You indicated that you wish to use OpenERP in your own company. We would like to know more about your your business needs and requirements, and see how we can help you. When would you be available to discuss your project ? </p>
+ <p></p>
+ <p>Best regards, </p>
+ <p></p>
+ <pre> <p>&nbsp;</p>
+ </pre>
+ <pre>--<p></p></pre>
+ <pre>Nicolas<p></p></pre>
+ <pre> <a href="http://openerp.com">http://openerp.com</a>
+ <p></p>
+ </pre>
+ <pre>Belgium: +32.81.81.37.00<p></p></pre>
+ <pre>U.S.: +1 (650) 307-6736<p></p></pre>
+ <pre>India: +91 (79) 40 500 100<p></p></pre>
+ <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <p></p></pre>
+ </div>
+</div>"""
+
+MSOFFICE_3_IN = ['I saw your boss yesterday']
+MSOFFICE_3_OUT = ['I noticed you recently downloaded OpenERP.', 'You indicated that you wish', 'Belgium: +32.81.81.37.00']
diff --git a/openerp/tools/mail.py b/openerp/tools/mail.py
index 5970ce47040..4581d69c6ef 100644
--- a/openerp/tools/mail.py
+++ b/openerp/tools/mail.py
@@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Business Applications
-# Copyright (C) 2012 OpenERP S.A. (<http://openerp.com>).
+# Copyright (C) 2012-2013 OpenERP S.A. (<http://openerp.com>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -44,27 +44,54 @@ tags_to_kill = ["script", "head", "meta", "title", "link", "style", "frame", "if
tags_to_remove = ['html', 'body', 'font']
-def html_sanitize(src):
+def html_sanitize(src, silent=True):
if not src:
return src
src = ustr(src, errors='replace')
+ logger = _logger.getChild('html_sanitize')
+
# html encode email tags
part = re.compile(r"(<(([^a<>]|a[^<>\s])[^<>]*)@[^<>]+>)", re.IGNORECASE | re.DOTALL)
src = part.sub(lambda m: cgi.escape(m.group(1)), src)
-
- # some corner cases make the parser crash (such as <SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT> in test_mail)
+
+ kwargs = {
+ 'page_structure': True,
+ 'style': False, # do not remove style attributes
+ 'forms': True, # remove form tags
+ }
+ if etree.LXML_VERSION >= (2, 3, 1):
+ # kill_tags attribute has been added in version 2.3.1
+ kwargs.update({
+ 'kill_tags': tags_to_kill,
+ 'remove_tags': tags_to_remove,
+ })
+ else:
+ kwargs['remove_tags'] = tags_to_kill + tags_to_remove
+
+ if etree.LXML_VERSION >= (3, 1, 0):
+ kwargs.update({
+ 'safe_attrs_only': True,
+ 'safe_attrs': clean.defs.safe_attrs | set(['style']),
+ })
+ else:
+ # lxml < 3.1.0 does not allow to specify safe_attrs. We keep all attributes in order to keep "style"
+ kwargs['safe_attrs_only'] = False
+
try:
- cleaner = clean.Cleaner(page_structure=True, style=False, safe_attrs_only=False, forms=False, kill_tags=tags_to_kill, remove_tags=tags_to_remove)
+ # some corner cases make the parser crash (such as <SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT> in test_mail)
+ cleaner = clean.Cleaner(**kwargs)
cleaned = cleaner.clean_html(src)
- except TypeError, e:
- # lxml.clean version < 2.3.1 does not have a kill_tags attribute
- # to remove in 2014
- cleaner = clean.Cleaner(page_structure=True, style=False, safe_attrs_only=False, forms=False, remove_tags=tags_to_kill+tags_to_remove)
- cleaned = cleaner.clean_html(src)
- except:
- _logger.warning('html_sanitize failed to parse %s' % (src))
- cleaned = '<p>Impossible to parse</p>'
+ except etree.ParserError:
+ if not silent:
+ raise
+ logger.warning('ParserError obtained when sanitizing %r', src, exc_info=True)
+ cleaned = '<p>ParserError when sanitizing</p>'
+ except Exception:
+ if not silent:
+ raise
+ logger.warning('unknown error obtained when sanitizing %r', src, exc_info=True)
+ cleaned = '<p>Unknown error when sanitizing</p>'
return cleaned
@@ -72,17 +99,36 @@ def html_sanitize(src):
# HTML Cleaner
#----------------------------------------------------------
-def html_email_clean(html):
- """ html_email_clean: clean the html to display in the web client.
- - strip email quotes (remove blockquote nodes)
- - strip signatures (remove --\n{\n)Blahblah), by replacing <br> by
- \n to avoid ignoring signatures converted into html
-
- :param string html: sanitized html; tags like html or head should not
- be present in the html string. This method therefore takes as input
- html code coming from a sanitized source, like fields.html.
+def html_email_clean(html, remove=False, shorten=False, max_length=300):
+ """ html_email_clean: clean the html by doing the following steps:
+
+ - try to strip email quotes, by removing blockquotes or having some client-
+ specific heuristics
+ - try to strip signatures
+ - shorten the html to a maximum number of characters if requested
+
+ Some specific use case:
+
+ - MsOffice: ``div.style = border-top:solid;`` delimitates the beginning of
+ a quote; detecting by finding WordSection1 of MsoNormal
+ - Hotmail: ``hr.stopSpelling`` delimitates the beginning of a quote; detect
+ Hotmail by funding ``SkyDrivePlaceholder``
+
+ :param string html: sanitized html; tags like html or head should not
+ be present in the html string. This method therefore
+ takes as input html code coming from a sanitized source,
+ like fields.html.
+ :param boolean remove: remove the html code that is unwanted; otherwise it
+ is only flagged and tagged
+ :param boolean shorten: shorten the html; every excessing content will
+ be flagged as to remove
+ :param int max_length: if shortening, maximum number of characters before
+ shortening
"""
def _replace_matching_regex(regex, source, replace=''):
+ """ Replace all matching expressions in source by replace """
+ if not source:
+ return source
dest = ''
idx = 0
for item in re.finditer(regex, source):
@@ -91,62 +137,162 @@ def html_email_clean(html):
dest += source[idx:]
return dest
+ def _create_node(tag, text, tail=None, attrs={}):
+ new_node = etree.Element(tag)
+ new_node.text = text
+ new_node.tail = tail
+ for key, val in attrs.iteritems():
+ new_node.set(key, val)
+ return new_node
+
+ def _insert_new_node(node, index, new_node_tag, new_node_text, new_node_tail=None, new_node_attrs={}):
+ new_node = _create_node(new_node_tag, new_node_text, new_node_tail, new_node_attrs)
+ node.insert(index, new_node)
+ return new_node
+
+ def _tag_matching_regex_in_text(regex, node, new_node_tag='span', new_node_attrs={}):
+ text = node.text or ''
+ if not re.search(regex, text):
+ return
+
+ cur_node = node
+ node.text = ''
+ idx, iteration = 0, 0
+ for item in re.finditer(regex, text):
+ if iteration == 0:
+ cur_node.text = text[idx:item.start()]
+ else:
+ _insert_new_node(node, (iteration - 1) * 2 + 1, new_node_tag, text[idx:item.start()])
+ new_node = _insert_new_node(node, iteration * 2, new_node_tag, text[item.start():item.end()], None, new_node_attrs)
+
+ cur_node = new_node
+ idx = item.end()
+ iteration += 1
+ new_node = _insert_new_node(node, -1, new_node_tag, text[idx:] + (cur_node.tail or ''), None, {})
+
if not html or not isinstance(html, basestring):
return html
-
html = ustr(html)
- # 0. remove encoding attribute inside tags
+ # Pre processing
+ # ------------------------------------------------------------
+ # TDE TODO: --- MAIL ORIGINAL ---: '[\-]{4,}([^\-]*)[\-]{4,}'
+
+ # html: remove encoding attribute inside tags
doctype = re.compile(r'(<[^>]*\s)(encoding=(["\'][^"\']*?["\']|[^\s\n\r>]+)(\s[^>]*|/)?>)', re.IGNORECASE | re.DOTALL)
html = doctype.sub(r"", html)
- # 1. <br[ /]> -> \n, because otherwise the tree is obfuscated
- br_tags = re.compile(r'([<]\s*[bB][rR]\s*\/?[>])')
- html = _replace_matching_regex(br_tags, html, '__BR_TAG__')
+ # html: ClEditor seems to love using <div><br /><div> -> replace with <br />
+ br_div_tags = re.compile(r'(<div>\s*<br\s*\/>\s*<\/div>)', re.IGNORECASE)
+ html = _replace_matching_regex(br_div_tags, html, '<br />')
- # 2. form a tree, handle (currently ?) pure-text by enclosing them in a pre
+ # form a tree
root = lxml.html.fromstring(html)
if not len(root) and root.text is None and root.tail is None:
html = '<div>%s</div>' % html
root = lxml.html.fromstring(html)
- # 2.5 remove quoted text in nodes
- quote_tags = re.compile(r'(\n(>)+[^\n\r]*)')
+ # remove all tails and replace them by a span element, because managing text and tails can be a pain in the ass
for node in root.getiterator():
- if not node.text:
- continue
- node.text = _replace_matching_regex(quote_tags, node.text)
-
- # 3. remove blockquotes
- quotes = [el for el in root.getiterator(tag='blockquote')]
- for node in quotes:
- # copy the node tail into parent text
if node.tail:
- parent = node.getparent()
- parent.text = parent.text or '' + node.tail
- # remove the node
- node.getparent().remove(node)
-
- # 4. strip signatures
- signature = re.compile(r'([-]{2}[\s]?[\r\n]{1,2}[^\z]+)')
- for elem in root.getiterator():
- if elem.text:
- match = re.search(signature, elem.text)
- if match:
- elem.text = elem.text[:match.start()] + elem.text[match.end():]
- if elem.tail:
- match = re.search(signature, elem.tail)
- if match:
- elem.tail = elem.tail[:match.start()] + elem.tail[match.end():]
-
- # 5. \n back to <br/>
- html = etree.tostring(root, pretty_print=True)
- html = html.replace('__BR_TAG__', '<br />')
-
- # 6. Misc cleaning :
- # - ClEditor seems to love using <div><br /><div> -> replace with <br />
- br_div_tags = re.compile(r'(<div>\s*<br\s*\/>\s*<\/div>)')
- html = _replace_matching_regex(br_div_tags, html, '<br />')
+ tail_node = _create_node('span', node.tail)
+ node.tail = None
+ node.addnext(tail_node)
+
+ # form node and tag text-based quotes and signature
+ quote_tags = re.compile(r'(\n(>)+[^\n\r]*)')
+ signature = re.compile(r'([-]{2,}[\s]?[\r\n]{1,2}[^.]+)')
+ for node in root.getiterator():
+ _tag_matching_regex_in_text(quote_tags, node, 'span', {'text_quote': '1'})
+ _tag_matching_regex_in_text(signature, node, 'span', {'text_signature': '1'})
+
+ # Processing
+ # ------------------------------------------------------------
+
+ # tree: tag nodes
+ # signature_begin = False # try dynamic signature recognition
+ quote_begin = False
+ overlength = False
+ cur_char_nbr = 0
+ for node in root.getiterator():
+ # root: try to tag the client used to write the html
+ if 'WordSection1' in node.get('class', '') or 'MsoNormal' in node.get('class', ''):
+ root.set('msoffice', '1')
+ if 'SkyDrivePlaceholder' in node.get('class', '') or 'SkyDrivePlaceholder' in node.get('id', ''):
+ root.set('hotmail', '1')
+
+ # state of the parsing
+ if quote_begin:
+ node.set('in_quote', '1')
+ node.set('tail_remove', '1')
+ if overlength:
+ node.set('in_overlength', '1')
+ node.set('tail_remove', '1')
+
+ if root.get('msoffice') and node.tag == 'div' and 'border-top:solid' in node.get('style', ''):
+ quote_begin = True
+ node.set('in_quote', '1')
+ node.set('tail_remove', '1')
+ if root.get('hotmail') and node.tag == 'hr' and ('stopSpelling' in node.get('class', '') or 'stopSpelling' in node.get('id', '')):
+ quote_begin = True
+ node.set('in_quote', '1')
+ node.set('tail_remove', '1')
+
+ # shorten:
+ # 1/ truncate the text at the next available space
+ # 2/ create a 'read more' node, next to current node
+ # 3/ add the truncated text in a new node, next to 'read more' node
+ if shorten and not overlength and cur_char_nbr + len(node.text or '') > max_length:
+ overlength = True
+ # truncate text
+ innertext = node.text[0:(max_length - cur_char_nbr)]
+ outertext = node.text[(max_length - cur_char_nbr):]
+ stop_idx = outertext.find(' ')
+ if stop_idx == -1:
+ stop_idx = len(outertext)
+ node.text = innertext + outertext[0:stop_idx]
+ # create <span> ... <a href="#">read more</a></span> node
+ read_more_node = _create_node('span', ' ... ', None, {'class': 'oe_mail_expand'})
+ read_more_link_node = _create_node('a', 'read more', None, {'href': '#', 'class': 'oe_mail_expand'})
+ read_more_node.append(read_more_link_node)
+ # create outertext node
+ new_node = _create_node('span', outertext[stop_idx:])
+ # add newly created nodes in dom
+ node.addnext(new_node)
+ node.addnext(read_more_node)
+ # tag node
+ new_node.set('in_overlength', '1')
+
+ cur_char_nbr += len(node.text or '')
+
+ if node.tag == 'blockquote' or node.get('text_quote') or node.get('text_signature'):
+ node.set('in_quote', '1')
+
+ # Post processing
+ # ------------------------------------------------------------
+
+ to_remove = []
+ for node in root.getiterator():
+ if node.get('in_quote') or node.get('in_overlength'):
+ # copy the node tail into parent text
+ if node.tail and not node.get('tail_remove'):
+ parent = node.getparent()
+ parent.tail = node.tail + (parent.tail or '')
+ to_remove.append(node)
+ if node.get('tail_remove'):
+ node.tail = ''
+ for node in to_remove:
+ if remove:
+ node.getparent().remove(node)
+ else:
+ if not 'oe_mail_expand' in node.get('class', ''): # trick: read more link should be displayed even if it's in overlength
+ node_class = node.get('class', '') + ' ' + 'oe_mail_cleaned'
+ node.set('class', node_class)
+
+ # html: \n that were tail of elements have been encapsulated into <span> -> back to \n
+ html = etree.tostring(root, pretty_print=False)
+ linebreaks = re.compile(r'<span>([\s]*[\r\n]+[\s]*)<\/span>', re.IGNORECASE | re.DOTALL)
+ html = _replace_matching_regex(linebreaks, html, '\n')
return html
diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py
index 4f2d8177c0f..65e7c38e536 100644
--- a/openerp/tools/misc.py
+++ b/openerp/tools/misc.py
@@ -421,6 +421,7 @@ def get_iso_codes(lang):
ALL_LANGUAGES = {
'ab_RU': u'Abkhazian / аҧсуа',
+ 'am_ET': u'Amharic / አምሃርኛ',
'ar_SY': u'Arabic / الْعَرَبيّة',
'bg_BG': u'Bulgarian / български език',
'bs_BS': u'Bosnian / bosanski jezik',
diff --git a/openerp/workflow/wkf_expr.py b/openerp/workflow/wkf_expr.py
index 0b83195aec2..6f3be25802d 100644
--- a/openerp/workflow/wkf_expr.py
+++ b/openerp/workflow/wkf_expr.py
@@ -101,7 +101,7 @@ def check(cr, workitem, ident, transition, signal):
return False
uid = ident[0]
- if uid != openerp.SUPERUSER_ID and transition['groups_id']:
+ if uid != openerp.SUPERUSER_ID and transition['group_id']:
registry = openerp.registry(cr.dbname)
user_groups = registry['res.users'].read(cr, uid, [uid], ['groups_id'])[0]['groups_id']
if transition['group_id'] not in user_groups: