[MERGE] merge of the openerp python module branch.
authorVo Minh Thu <vmt@openerp.com>
Tue, 8 Feb 2011 15:01:49 +0000 (16:01 +0100)
committerVo Minh Thu <vmt@openerp.com>
Tue, 8 Feb 2011 15:01:49 +0000 (16:01 +0100)
bzr revid: vmt@openerp.com-20110208150149-x4vu09aj42ezma5a

1  2 
openerp/addons/base/i18n/nl_BE.po
openerp/osv/orm.py
openerp/release.py
openerp/tools/config.py

index 0000000,6038df8..15fd409
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,8082 +1,9264 @@@
 -# Translation of OpenERP Server.
 -# This file contains the translation of the following modules:
 -#     * base
++# Dutch (Belgium) translation for openobject-server
++# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
++# This file is distributed under the same license as the openobject-server package.
++# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+ #
+ msgid ""
+ msgstr ""
 -"Project-Id-Version: OpenERP Server 5.0.0\n"
 -"Report-Msgid-Bugs-To: support@openerp.com\n"
 -"POT-Creation-Date: 2009-12-09 16:01+0000\n"
 -"PO-Revision-Date: 2009-12-10 07:54+0000\n"
 -"Last-Translator: Mark van Deursen (Neobis) <mark@neobis.nl>\n"
 -"Language-Team: \n"
++"Project-Id-Version: openobject-server\n"
++"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
++"POT-Creation-Date: 2011-01-11 11:14+0000\n"
++"PO-Revision-Date: 2011-02-07 14:53+0000\n"
++"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
++"Language-Team: Dutch (Belgium) <nl_BE@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
 -"X-Launchpad-Export-Date: 2009-11-17 05:06+0000\n"
 -"X-Generator: Launchpad (build Unknown)\n"
++"X-Launchpad-Export-Date: 2011-02-08 04:35+0000\n"
++"X-Generator: Launchpad (build 12177)\n"
++
++#. module: base
++#: view:ir.filters:0
++#: field:ir.model.fields,domain:0
++#: field:ir.rule,domain:0
++#: field:ir.rule,domain_force:0
++#: field:res.partner.title,domain:0
++msgid "Domain"
++msgstr "Domeinnaam"
+ #. module: base
+ #: model:res.country,name:base.sh
+ msgid "Saint Helena"
 -msgstr "Saint Helena"
++msgstr "Sint-Helena"
+ #. module: base
 -#: wizard_view:res.partner.sms_send,init:0
 -msgid "SMS - Gateway: clickatell"
 -msgstr "SMS - Service : clickatell"
++#: view:ir.actions.report.xml:0
++msgid "Other Configuration"
++msgstr "Andere configuratie"
+ #. module: base
 -#: view:res.lang:0
 -msgid "%j - Day of the year as a decimal number [001,366]."
 -msgstr "%j - Dag van het jaar als een decimaal getal [001,366]."
++#: selection:ir.property,type:0
++msgid "DateTime"
++msgstr "DatumTijd"
++
++#. module: base
++#: code:addons/fields.py:534
++#, python-format
++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 ""
++"Het tweede argument van het many2many veld %s moet een SQL tabel zijn ! U "
++"gebruikte %s, wat geen geldige SQL tabelnaam is."
+ #. module: base
++#: view:ir.values:0
+ #: field:ir.values,meta_unpickle:0
+ msgid "Metadata"
 -msgstr "Metadata"
++msgstr "Metagegevens"
+ #. module: base
+ #: field:ir.ui.view,arch:0
+ #: field:ir.ui.view.custom,arch:0
+ msgid "View Architecture"
 -msgstr "Hiërargie Bekijken"
 -
 -#. module: base
 -#: code:addons/addons/base/ir/ir_model.py:0
 -#, python-format
 -msgid "You can not create this kind of document! (%s)"
 -msgstr "U kan dit soort documenten niet creëren! (%s)"
++msgstr "Opbouw weergave"
+ #. module: base
 -#: wizard_field:module.lang.import,init,code:0
++#: field:base.language.import,code:0
+ msgid "Code (eg:en__US)"
+ msgstr "Code (bijv: nl_BE)"
+ #. module: base
+ #: view:workflow:0
++#: view:workflow.activity:0
+ #: field:workflow.activity,wkf_id:0
+ #: field:workflow.instance,wkf_id:0
++#: field:workflow.transition,wkf_id:0
++#: field:workflow.workitem,wkf_id:0
+ msgid "Workflow"
 -msgstr ""
++msgstr "Werkschema"
++
++#. module: base
++#: view:partner.sms.send:0
++msgid "SMS - Gateway: clickatell"
++msgstr "SMS - Service : clickatell"
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Hungarian / Magyar"
 -msgstr "Hungarian / Magyar"
++msgstr "Hongaars / Magyar"
++
++#. module: base
++#: selection:ir.model.fields,select_level:0
++msgid "Not Searchable"
++msgstr "Niet zoekbaar"
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Spanish (VE) / Español (VE)"
++msgstr "Spaans (VE) / Spanje (VE)"
+ #. module: base
+ #: field:ir.actions.server,wkf_model_id:0
+ msgid "Workflow On"
 -msgstr ""
++msgstr "Werkschema op"
++
++#. module: base
++#: field:ir.actions.act_window,display_menu_tip:0
++msgid "Display Menu Tips"
++msgstr "Toon menu tips"
+ #. module: base
+ #: view:ir.module.module:0
+ msgid "Created Views"
 -msgstr "Aangemaakte Weergaves"
++msgstr "Aangemaakte weergaves"
+ #. module: base
 -#: view:workflow.activity:0
 -msgid "Outgoing transitions"
 -msgstr "Uitgaande mutaties"
++#: code:addons/base/ir/ir_model.py:485
++#, python-format
++msgid ""
++"You can not write in this document (%s) ! Be sure your user belongs to one "
++"of these groups: %s."
++msgstr ""
++"U kunt niet schrijven in dit document (%s) ! Controleer of uw gebruiker "
++"behoort bij één van deze groepen: %s."
+ #. module: base
 -#: selection:ir.report.custom,frequency:0
 -msgid "Yearly"
 -msgstr "Jaarlijks"
++#: help:ir.model.fields,domain:0
++msgid ""
++"The optional domain to restrict possible values for relationship fields, "
++"specified as a Python expression defining a list of triplets. For example: "
++"[('color','=','red')]"
++msgstr ""
++"Het optionele domein om mogelijke waardes voor relatievelden te beperken, in "
++"de vorm van een Python uitdrukking bestaande uit een lijst van triplets. "
++"Bijvoorbeeld: [('color','=','red')]"
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "The unlink method is not implemented on this object !"
 -msgstr "De unlink methode is niet in dit object geïmplenteerd !"
++#: field:res.partner,ref:0
++msgid "Reference"
++msgstr "Referentie"
+ #. module: base
+ #: field:ir.actions.act_window,target:0
+ msgid "Target Window"
 -msgstr "Doelvenster"
 -
 -#. module: base
 -#: model:ir.actions.todo,note:base.config_wizard_simple_view
 -msgid ""
 -"Choose between the \"Simplified Interface\" or the extended one.\n"
 -"If you are testing or using OpenERP for the first time, we suggest you to "
 -"use\n"
 -"the simplified interface, which has less options and fields but is easier "
 -"to\n"
 -"understand. You will be able to switch to the extended view later.\n"
 -"            "
 -msgstr ""
 -"Kies tussen de \"Eenvoudige Interface\" of de \"Uitgebreide Interface\".\n"
 -"Indien u Open ERP wil testen of voor de eerste keer gebruikt, raden\n"
 -"wij aan om de eenvoudige interface te kiezen met minder opties en velden\n"
 -"maar makkelijker om te begrijpen. U kan later wisselen naar de uitgebreide\n"
 -"interface.\n"
 -"            "
++msgstr "Doel (Venster)"
+ #. module: base
 -#: field:ir.rule,operand:0
 -msgid "Operand"
 -msgstr "Invoerwaarde"
++#: code:addons/base/res/res_user.py:507
++#, python-format
++msgid "Warning!"
++msgstr "Waarschuwing!"
+ #. module: base
 -#: model:res.country,name:base.kr
 -msgid "South Korea"
 -msgstr "Zuid-Korea"
++#: code:addons/base/ir/ir_model.py:304
++#, python-format
++msgid ""
++"Properties of base fields cannot be altered in this manner! Please modify "
++"them through Python code, preferably through a custom addon!"
++msgstr ""
++"Eigenschappen van basisvelden kunnen niet op deze manier gewijzigd worden! "
++"Wijzigt u deze door middel van Python-code, bij voorkeur in een eigen addon-"
++"module."
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_workflow_transition_form
 -#: model:ir.ui.menu,name:base.menu_workflow_transition
 -#: view:workflow.activity:0
 -msgid "Transitions"
 -msgstr "Mutaties"
++#: code:addons/osv.py:133
++#, python-format
++msgid "Constraint Error"
++msgstr "Voorwaarde Fout"
+ #. module: base
+ #: model:ir.model,name:base.model_ir_ui_view_custom
+ msgid "ir.ui.view.custom"
+ msgstr "ir.ui.view.custom"
+ #. module: base
+ #: model:res.country,name:base.sz
+ msgid "Swaziland"
 -msgstr "Swaziland"
++msgstr "Swasiland"
+ #. module: base
 -#: model:ir.model,name:base.model_ir_actions_report_custom
 -#: selection:ir.ui.menu,action:0
 -msgid "ir.actions.report.custom"
 -msgstr "ir.actions.report.custom"
++#: code:addons/orm.py:1993
++#: code:addons/orm.py:3653
++#, python-format
++msgid "created."
++msgstr "gemaakt."
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_CANCEL"
 -msgstr "STOCK_CANCEL"
++#: model:res.partner.category,name:base.res_partner_category_woodsuppliers0
++msgid "Wood Suppliers"
++msgstr "Houtleveranciers"
+ #. module: base
 -#: field:ir.report.custom,sortby:0
 -msgid "Sorted By"
 -msgstr "Gesorteerd op"
++#: code:addons/base/module/module.py:303
++#, python-format
++msgid ""
++"Some installed modules depend on the module you plan to Uninstall :\n"
++" %s"
++msgstr ""
++"Sommige geïnstalleerde modules zijn afhankelijk van de module die u wilt "
++"verwijderen: \n"
++" %s"
+ #. module: base
+ #: field:ir.sequence,number_increment:0
+ msgid "Increment Number"
 -msgstr ""
++msgstr "Stapgrootte"
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_res_company_tree
+ #: model:ir.ui.menu,name:base.menu_action_res_company_tree
+ msgid "Company's Structure"
+ msgstr "Bedrijfsstructuur"
+ #. module: base
 -#: model:ir.model,name:base.model_ir_report_custom_fields
 -msgid "ir.report.custom.fields"
 -msgstr "ir.report.custom.fields"
++#: selection:base.language.install,lang:0
++msgid "Inuktitut / ᐃᓄᒃᑎᑐᑦ"
++msgstr ""
++
++#. module: base
++#: view:res.partner:0
++msgid "Search Partner"
++msgstr "Zoek relatie"
+ #. module: base
 -#: code:addons/addons/base/module/wizard/wizard_export_lang.py:0
++#: code:addons/base/res/res_user.py:132
+ #, python-format
 -msgid "new"
 -msgstr "nieuw"
++msgid "\"smtp_server\" needs to be set to send mails to users"
++msgstr ""
++"\"smtp_server\" moet ingevuld zijn om mails te versturen naar gebruikers"
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_GOTO_TOP"
 -msgstr "STOCK_GOTO_TOP"
++#: code:addons/base/module/wizard/base_export_language.py:60
++#, python-format
++msgid "new"
++msgstr "nieuwe"
+ #. module: base
 -#: field:ir.actions.report.custom,multi:0
+ #: field:ir.actions.report.xml,multi:0
+ msgid "On multiple doc."
 -msgstr ""
++msgstr "Op meerdere doc."
+ #. module: base
+ #: field:ir.module.category,module_nr:0
+ msgid "Number of Modules"
+ msgstr "Aantal modules"
+ #. module: base
++#: help:multi_company.default,company_dest_id:0
++msgid "Company to store the current record"
++msgstr "Bedrijf om het huidige record op te slaan"
++
++#. module: base
+ #: field:res.partner.bank.type.field,size:0
+ msgid "Max. Size"
 -msgstr ""
++msgstr "Max. lengte"
+ #. module: base
+ #: field:res.partner.address,name:0
+ msgid "Contact Name"
 -msgstr "Naam contactpersoon"
++msgstr "Contactnaam"
+ #. module: base
 -#: code:addons/addons/base/module/wizard/wizard_export_lang.py:0
++#: code:addons/base/module/wizard/base_export_language.py:56
+ #, python-format
+ msgid ""
+ "Save this document to a %s file and edit it with a specific software or a "
+ "text editor. The file encoding is UTF-8."
+ msgstr ""
++"Sla dit document op als een %s bestand en bewerk het met daarvoor bedoelde "
++"software of een tekstverwerker. Het bestand is UTF-8 gecodeerd."
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_DELETE"
 -msgstr "STOCK_DELETE"
 -
 -#. module: base
 -#: code:addons/addons/base/ir/ir_model.py:0
 -#, python-format
 -msgid "Password mismatch !"
 -msgstr "Wachtwoord onjuist !"
 -
 -#. module: base
 -#: code:addons/addons/base/module/module.py:0
 -#, python-format
 -msgid "This url '%s' must provide an html file with links to zip modules"
++#: sql_constraint:res.lang:0
++msgid "The name of the language must be unique !"
+ msgstr ""
 -"Deze url: '%s' moet een html bestand bevatten met links naar zip modules."
+ #. module: base
+ #: selection:res.request,state:0
+ msgid "active"
 -msgstr "actief"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.wizard,wiz_name:0
+ msgid "Wizard Name"
 -msgstr "Naam Assistent"
 -
 -#. module: base
 -#: view:res.lang:0
 -msgid "%y - Year without century as a decimal number [00,99]."
 -msgstr "%y - Jaartal zonder eeuw als decimaal getal [00,99]."
 -
 -#. module: base
 -#: selection:maintenance.contract.wizard,state:0
 -msgid "Validated"
 -msgstr "Gevalideerd"
++msgstr ""
+ #. module: base
 -#: selection:ir.report.custom.fields,operation:0
 -msgid "Get Max"
 -msgstr "Haal Max. op"
++#: code:addons/orm.py:2160
++#, python-format
++msgid "Invalid group_by"
++msgstr ""
+ #. module: base
+ #: field:res.partner,credit_limit:0
+ msgid "Credit Limit"
+ msgstr ""
+ #. module: base
+ #: field:ir.model.data,date_update:0
+ msgid "Update Date"
 -msgstr "Update Datum"
++msgstr ""
++
++#. module: base
++#: view:ir.attachment:0
++msgid "Owner"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.act_window,src_model:0
+ msgid "Source Object"
 -msgstr "Bron Object"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.act_ir_actions_todo_form
+ #: view:ir.actions.todo:0
 -#: model:ir.ui.menu,name:base.menu_ir_actions_todo_form
+ msgid "Config Wizard Steps"
 -msgstr "Configuratie Wizard Stappen"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_ui_view_sc
+ msgid "ir.ui.view_sc"
 -msgstr "ir.ui.view_sc"
++msgstr ""
+ #. module: base
 -#: field:ir.model.access,group_id:0
 -#: field:ir.rule,rule_group:0
 -msgid "Group"
 -msgstr "Groep"
++#: field:res.widget.user,widget_id:0
++#: field:res.widget.wizard,widgets_list:0
++msgid "Widget"
++msgstr ""
+ #. module: base
 -#: view:wizard.module.lang.export:0
 -msgid "To browse official translations, you can visit this link: "
 -msgstr "Om de officiele vertalingen te bekijken kun je deze link bezoeken: "
++#: view:ir.model.access:0
++#: field:ir.model.access,group_id:0
++#: view:res.config.users:0
++msgid "Group"
++msgstr ""
+ #. module: base
+ #: field:ir.exports.line,name:0
+ #: field:ir.translation,name:0
+ #: field:res.partner.bank.type.field,name:0
+ msgid "Field Name"
 -msgstr "Veldnaam"
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.open_module_tree_uninstall
 -#: model:ir.ui.menu,name:base.menu_module_tree_uninstall
 -msgid "Uninstalled modules"
 -msgstr "Ongeïnstalleerde modules"
++msgstr ""
+ #. module: base
+ #: wizard_view:server.action.create,init:0
+ #: wizard_field:server.action.create,init,type:0
+ msgid "Select Action Type"
 -msgstr "Selecteer actie type"
 -
 -#. module: base
 -#: selection:ir.actions.todo,type:0
 -msgid "Configure"
 -msgstr "Configureren"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.tv
+ msgid "Tuvalu"
 -msgstr "Tuvalu"
++msgstr ""
+ #. module: base
+ #: selection:ir.model,state:0
 -#: selection:ir.model.grid,state:0
+ msgid "Custom Object"
 -msgstr "Aangepast Object"
++msgstr ""
+ #. module: base
+ #: field:res.lang,date_format:0
+ msgid "Date Format"
 -msgstr "Datum Format"
++msgstr ""
+ #. module: base
+ #: field:res.bank,email:0
+ #: field:res.partner.address,email:0
+ msgid "E-Mail"
 -msgstr "E-mail"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.an
+ msgid "Netherlands Antilles"
 -msgstr "Nederlandse Antillen"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/res/res_user.py:0
++#: code:addons/base/res/res_user.py:389
+ #, python-format
+ msgid ""
+ "You can not remove the admin user as it is used internally for resources "
+ "created by OpenERP (updates, module installation, ...)"
+ msgstr ""
 -"U kunt gebruiker 'admin' niet verwijderen. Deze wordt gebruikt om interne "
 -"handelingen zoals updates, module installaties, enz. uit te voeren."
+ #. module: base
+ #: model:res.country,name:base.gf
+ msgid "French Guyana"
 -msgstr "Frans Guinea"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Greek / Ελληνικά"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Bosnian / bosanski jezik"
 -msgstr "Bosnië"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.report.xml,attachment_use:0
+ msgid ""
+ "If you check this, then the second time the user prints with same attachment "
+ "name, it returns the previous report."
+ msgstr ""
 -"Als u dit aanvinkt, dan wordt de tweede keer dat de gebruiker het rapport "
 -"met dezelfde bijlagenaam het vorige rapport gebruikt."
+ #. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/orm.py:904
+ #, python-format
+ msgid "The read method is not implemented on this object !"
 -msgstr "De read methode is niet in dit object geïmplementeerd !"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_MEDIA_REWIND"
 -msgstr "STOCK_MEDIA_REWIND"
++#: help:res.lang,iso_code:0
++msgid "This ISO code is the name of po files to use for translations"
++msgstr ""
++
++#. module: base
++#: view:base.module.upgrade:0
++msgid "Your system will be updated."
++msgstr ""
+ #. module: base
+ #: field:ir.actions.todo,note:0
++#: selection:ir.property,type:0
+ msgid "Text"
 -msgstr "Tekst"
++msgstr ""
+ #. module: base
+ #: field:res.country,name:0
+ msgid "Country Name"
 -msgstr "Land"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.co
+ msgid "Colombia"
 -msgstr "Colombia"
++msgstr ""
+ #. module: base
+ #: view:ir.module.module:0
+ msgid "Schedule Upgrade"
 -msgstr "Upgrade Plannen"
 -
 -#. module: base
 -#: code:addons/service/web_services.py:0
 -#, python-format
 -msgid ""
 -"''\n"
 -"\n"
 -"OpenERP is an ERP+CRM program for small and medium businesses.\n"
 -"\n"
 -"The whole source code is distributed under the terms of the\n"
 -"GNU Public Licence.\n"
 -"\n"
 -"(c) 2003-TODAY, Fabien Pinckaers - Tiny sprl''"
+ msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/orm.py:838
+ #, python-format
+ msgid "Key/value '%s' not found in selection field '%s'"
+ msgstr ""
+ #. module: base
+ #: help:res.country,code:0
+ msgid ""
+ "The ISO country code in two chars.\n"
+ "You can use this field for quick search."
+ msgstr ""
 -"De ISO landcode in 2 tekens.\n"
 -"U kunt dit veld gebruiken voor snel zoeken."
+ #. module: base
+ #: model:res.country,name:base.pw
+ msgid "Palau"
 -msgstr "Palau"
++msgstr ""
+ #. module: base
+ #: view:res.partner:0
+ msgid "Sales & Purchases"
 -msgstr "Verkopen & Inkopen"
++msgstr ""
+ #. module: base
 -#: view:ir.actions.wizard:0
 -#: field:wizard.ir.model.menu.create.line,wizard_id:0
 -msgid "Wizard"
 -msgstr "Assistent"
++#: view:ir.translation:0
++msgid "Untranslated"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_CUT"
 -msgstr "STOCK_CUT"
++#: help:ir.actions.act_window,context:0
++msgid ""
++"Context dictionary as Python expression, empty by default (Default: {})"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.ir_action_wizard
+ #: view:ir.actions.wizard:0
+ #: model:ir.ui.menu,name:base.menu_ir_action_wizard
+ msgid "Wizards"
 -msgstr "Assistenten"
++msgstr ""
+ #. module: base
 -#: selection:res.config.view,view:0
 -msgid "Extended Interface"
 -msgstr "Uitgebreide Interface"
++#: model:res.partner.category,name:base.res_partner_category_miscellaneoussuppliers0
++msgid "Miscellaneous Suppliers"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_model.py:0
++#: code:addons/base/ir/ir_model.py:255
+ #, python-format
+ msgid "Custom fields must have a name that starts with 'x_' !"
 -msgstr "Aangepaste velden moet een naam hebben die beginnen met 'x_'!"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.server,action_id:0
+ msgid "Select the Action Window, Report, Wizard to be executed."
 -msgstr "Kies het Actievenster, Rapport of Assistent die u wilt uitvoeren"
++msgstr ""
+ #. module: base
 -#: view:wizard.module.lang.export:0
++#: view:res.config.users:0
++msgid "New User"
++msgstr ""
++
++#. module: base
++#: view:base.language.export:0
+ msgid "Export done"
 -msgstr "Export voltooid"
++msgstr ""
+ #. module: base
+ #: view:ir.model:0
+ msgid "Model Description"
 -msgstr "Model Omschrijving"
++msgstr ""
++
++#. 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 ""
+ #. module: base
+ #: field:workflow.transition,trigger_expr_id:0
+ msgid "Trigger Expression"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.jo
+ msgid "Jordan"
 -msgstr "Jordanië"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_model.py:0
 -#, python-format
 -msgid "You can not remove the model '%s' !"
 -msgstr "Het kunt het model '%s' niet verwijderen!"
++#: view:ir.module.module:0
++msgid "Certified"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.er
+ msgid "Eritrea"
 -msgstr "Eritrea"
++msgstr ""
+ #. module: base
 -#: view:res.config.view:0
 -msgid "Configure simple view"
 -msgstr "Eenvoudige weergave configureren"
++#: view:res.config:0
++#: view:res.config.installer:0
++msgid "description"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Bulgarian / български"
++#: model:ir.ui.menu,name:base.menu_base_action_rule
++msgid "Automated Actions"
+ msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_actions_actions
+ msgid "ir.actions.actions"
 -msgstr "ir.actions.actions"
++msgstr ""
++
++#. module: base
++#: view:partner.wizard.ean.check:0
++msgid "Want to check Ean ? "
++msgstr ""
++
++#. module: base
++#: field:ir.values,key2:0
++msgid "Event Type"
++msgstr ""
+ #. module: base
 -#: selection:ir.report.custom,type:0
 -msgid "Bar Chart"
 -msgstr "Staafgrafiek"
++#: view:base.language.export:0
++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 ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_DIALOG_ERROR"
 -msgstr "STOCK_DIALOG_ERROR"
++#: field:res.partner,title:0
++msgid "Partner Form"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_INDEX"
 -msgstr "STOCK_INDEX"
++#: selection:base.language.install,lang:0
++msgid "Swedish / svenska"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.rs
+ msgid "Serbia"
 -msgstr "Servië"
++msgstr ""
+ #. module: base
+ #: selection:ir.translation,type:0
+ msgid "Wizard View"
 -msgstr "Assistent Weergave"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.kh
+ msgid "Cambodia, Kingdom of"
 -msgstr "Cambodja"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.ir_sequence_form
+ #: view:ir.sequence:0
+ #: model:ir.ui.menu,name:base.menu_ir_sequence_form
+ #: model:ir.ui.menu,name:base.next_id_5
+ msgid "Sequences"
 -msgstr "Volgorden"
++msgstr ""
++
++#. module: base
++#: model:ir.model,name:base.model_base_language_import
++msgid "Language Import"
++msgstr ""
++
++#. module: base
++#: model:ir.model,name:base.model_res_config_users
++msgid "res.config.users"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Albanian / Shqip"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_crm_config_opportunity
++msgid "Opportunities"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_DIALOG_QUESTION"
 -msgstr "STOCK_DIALOG_QUESTION"
++#: model:ir.model,name:base.model_base_language_export
++msgid "base.language.export"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.pg
+ msgid "Papua New Guinea"
 -msgstr "Papua Nieuw Guinea"
++msgstr ""
++
++#. module: base
++#: help:ir.actions.report.xml,report_type:0
++msgid "Report Type, e.g. pdf, html, raw, sxw, odt, html2html, mako2html, ..."
++msgstr ""
+ #. module: base
+ #: model:res.partner.category,name:base.res_partner_category_4
+ msgid "Basic Partner"
 -msgstr "Basis Relatie"
++msgstr ""
+ #. module: base
 -#: rml:ir.module.reference:0
++#: report:ir.module.reference.graph:0
+ msgid ","
 -msgstr ","
++msgstr ""
++
++#. module: base
++#: view:res.partner:0
++msgid "My Partners"
++msgstr ""
++
++#. module: base
++#: view:ir.actions.report.xml:0
++msgid "XML Report"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.es
+ msgid "Spain"
 -msgstr "Spanje"
++msgstr ""
+ #. module: base
 -#: wizard_view:module.upgrade,end:0
 -#: wizard_view:module.upgrade,start:0
 -msgid "You may have to reinstall some language pack."
 -msgstr "Het kan nodig zijn om sommige vertalingen te her-installeren."
++#: model:ir.ui.menu,name:base.menu_translation_export
++msgid "Import / Export"
++msgstr ""
++
++#. module: base
++#: help:ir.actions.act_window,domain:0
++msgid ""
++"Optional domain filtering of the destination data, as a Python expression"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade
++#: model:ir.model,name:base.model_base_module_upgrade
++msgid "Module Upgrade"
++msgstr ""
++
++#. module: base
++#: view:res.config.users:0
++msgid ""
++"Groups are used to define access rights on objects and the visibility of "
++"screens and menus"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Spanish (UY) / Español (UY)"
++msgstr ""
+ #. module: base
++#: field:res.partner,mobile:0
+ #: field:res.partner.address,mobile:0
+ msgid "Mobile"
 -msgstr "Mobiel"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.om
+ msgid "Oman"
 -msgstr "Oman"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_payterm_form
+ #: model:ir.model,name:base.model_res_payterm
+ msgid "Payment term"
 -msgstr "Betalingstermijn"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.nu
+ msgid "Niue"
 -msgstr "Niue"
++msgstr ""
+ #. module: base
+ #: selection:ir.cron,interval_type:0
+ msgid "Work Days"
 -msgstr "Werkdagen"
++msgstr ""
+ #. module: base
 -#: help:ir.values,action_id:0
 -msgid "This field is not used, it only helps you to select the right action."
++#: selection:ir.module.module,license:0
++msgid "Other OSI Approved Licence"
+ msgstr ""
 -"Dit veld wordt niet gebruikt, het helpt u alleen de juiste actie te kiezen."
+ #. module: base
 -#: model:ir.actions.act_window,name:base.act_menu_create
 -#: view:wizard.ir.model.menu.create:0
 -msgid "Create Menu"
 -msgstr "Menu Aanmaken"
++#: help:res.config.users,context_lang:0
++#: help:res.users,context_lang:0
++msgid ""
++"Sets the language for the user's user interface, when UI translations are "
++"available"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.in
 -msgid "India"
 -msgstr "India"
++#: code:addons/orm.py:1043
++#, python-format
++msgid "The unlink method is not implemented on this object !"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,name:base.act_menu_create
++#: view:wizard.ir.model.menu.create:0
++msgid "Create Menu"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.in
++msgid "India"
++msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_maintenance_contract_module
 -msgid "maintenance contract modules"
 -msgstr "onderhoudscontract modules"
++#: model:ir.actions.act_window,name:base.res_request_link-act
++#: model:ir.ui.menu,name:base.menu_res_request_link_act
++msgid "Request Reference Types"
++msgstr ""
+ #. module: base
+ #: view:ir.values:0
+ msgid "client_action_multi, client_action_relate"
 -msgstr "client_action_multi, client_action_relate"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ad
+ msgid "Andorra, Principality of"
 -msgstr "Andorra"
++msgstr ""
+ #. module: base
+ #: field:ir.module.category,child_ids:0
+ #: field:res.partner.category,child_ids:0
+ msgid "Child Categories"
 -msgstr "Onderliggende categorieën"
++msgstr ""
+ #. module: base
 -#: selection:wizard.module.lang.export,format:0
 -msgid "TGZ Archive"
 -msgstr "TGZ archiefbestand"
++#: model:ir.model,name:base.model_ir_config_parameter
++msgid "ir.config_parameter"
++msgstr ""
+ #. module: base
 -#: field:res.partner.som,factor:0
 -msgid "Factor"
 -msgstr "Factor"
++#: selection:base.language.export,format:0
++msgid "TGZ Archive"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "%B - Full month name."
 -msgstr "%B - Volledige naam van de maand."
++msgstr ""
+ #. module: base
 -#: field:ir.actions.report.xml,report_type:0
 -#: field:ir.actions.todo,type:0
++#: view:ir.attachment:0
++#: field:ir.attachment,type:0
++#: field:ir.model,state:0
++#: field:ir.model.fields,state:0
++#: field:ir.property,type:0
+ #: field:ir.server.object.lines,type:0
+ #: field:ir.translation,type:0
++#: view:ir.ui.view:0
++#: view:ir.values:0
+ #: field:ir.values,key:0
+ #: view:res.partner:0
++#: view:res.partner.address:0
+ msgid "Type"
 -msgstr "Soort"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_FILE"
 -msgstr "STOCK_FILE"
++msgstr ""
+ #. module: base
 -#: field:ir.report.custom.fields,field_child2:0
 -msgid "Field child2"
++#: code:addons/orm.py:210
++#, python-format
++msgid ""
++"Language with code \"%s\" is not defined in your system !\n"
++"Define it through the Administration menu."
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.gu
+ msgid "Guam (USA)"
 -msgstr "Guam (VS)"
 -
 -#. module: base
 -#: model:ir.model,name:base.model_ir_model_grid
 -msgid "Objects Security Grid"
 -msgstr "Object Veiligheidspatroon"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_GO_DOWN"
 -msgstr "STOCK_GO_DOWN"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_OK"
 -msgstr "STOCK_OK"
++#: model:ir.ui.menu,name:base.menu_hr_project
++msgid "Human Resources Dashboard"
++msgstr ""
+ #. module: base
 -#: field:ir.actions.act_window.view,act_window_id:0
 -#: view:ir.actions.actions:0
 -#: field:ir.actions.todo,action_id:0
 -#: field:ir.ui.menu,action:0
 -#: field:ir.values,action_id:0
 -#: selection:ir.values,key:0
 -msgid "Action"
 -msgstr "Actie"
++#: code:addons/base/res/res_user.py:507
++#, python-format
++msgid "Setting empty passwords is not allowed for security reasons!"
++msgstr ""
+ #. module: base
+ #: selection:ir.actions.server,state:0
+ #: selection:workflow.activity,kind:0
+ msgid "Dummy"
+ msgstr ""
+ #. module: base
+ #: constraint:ir.ui.view:0
+ msgid "Invalid XML for View Architecture!"
 -msgstr "Ongeldige XML voor weergave opbouw"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ky
+ msgid "Cayman Islands"
 -msgstr "Kaaimaneilanden"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.kr
++msgid "South Korea"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,name:base.action_workflow_transition_form
++#: model:ir.ui.menu,name:base.menu_workflow_transition
++#: view:workflow.activity:0
++msgid "Transitions"
++msgstr ""
+ #. module: base
 -#: code:addons/report/custom.py:0
++#: code:addons/orm.py:4020
+ #, python-format
 -msgid ""
 -"The sum of the data (2nd field) is null.\n"
 -"We can't draw a pie chart !"
++msgid "Record #%d of %s not found, cannot copy!"
+ msgstr ""
 -"De som van de gegevens (2de veld) is nul.\n"
 -"Het is onmogelijk om een taart-diagram te tekenen."
+ #. module: base
 -#: field:ir.sequence,name:0
 -#: field:ir.sequence.type,name:0
 -msgid "Sequence Name"
++#: field:ir.module.module,contributors:0
++msgid "Contributors"
+ msgstr ""
+ #. module: base
 -#: model:res.country,name:base.td
 -msgid "Chad"
 -msgstr "Tsjaad"
++#: selection:ir.property,type:0
++msgid "Char"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: model:ir.actions.act_window,name:base.action_publisher_warranty_contract_form
++#: model:ir.ui.menu,name:base.menu_publisher_warranty_contract
++msgid "Contracts"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
+ msgid "Spanish (AR) / Español (AR)"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ug
+ msgid "Uganda"
 -msgstr "Oeganda"
++msgstr ""
++
++#. module: base
++#: field:ir.model.access,perm_unlink:0
++msgid "Delete Access"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ne
+ msgid "Niger"
 -msgstr "Niger"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Chinese (HK)"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ba
+ msgid "Bosnia-Herzegovina"
 -msgstr "Bosnië-Herzegovina"
++msgstr ""
+ #. module: base
 -#: field:ir.report.custom.fields,alignment:0
 -msgid "Alignment"
 -msgstr "Uitlijning"
++#: view:base.language.export:0
++msgid ""
++"To improve or expand the official translations, you should use directly "
++"Lauchpad's web interface (Rosetta). If you need to perform mass translation, "
++"Launchpad also allows uploading full .po files at once"
++msgstr ""
+ #. module: base
 -#: selection:ir.rule,operator:0
 -msgid ">="
 -msgstr ">="
++#: selection:base.language.install,lang:0
++msgid "Spanish (GT) / Español (GT)"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid ""
+ "%W - Week number of the year (Monday as the first day of the week) as a "
+ "decimal number [00,53]. All days in a new year preceding the first Monday "
+ "are considered to be in week 0."
+ msgstr ""
 -"%W - Weeknummer van het jaar (Maandag als eerste dag van de week) als "
 -"decimaal nummer [00,53]. Alle dagen in het nieuwe jaar, voor de eerste "
 -"maandag vallen in week 0."
 -
 -#. module: base
 -#: field:res.partner.event,planned_cost:0
 -msgid "Planned Cost"
 -msgstr "Geraamde Kosten"
 -
 -#. module: base
 -#: model:ir.model,name:base.model_ir_model_config
 -msgid "ir.model.config"
 -msgstr "ir.model.config"
+ #. module: base
+ #: field:ir.module.module,website:0
+ #: field:res.partner,website:0
+ msgid "Website"
 -msgstr "Website"
 -
 -#. module: base
 -#: view:ir.module.repository:0
 -msgid "Repository"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.gs
+ msgid "S. Georgia & S. Sandwich Isls."
+ msgstr ""
+ #. module: base
+ #: field:ir.actions.url,url:0
+ msgid "Action URL"
 -msgstr "Actie URL"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_JUSTIFY_FILL"
 -msgstr "STOCK_JUSTIFY_FILL"
++#: field:base.module.import,module_name:0
++msgid "Module Name"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.mh
+ msgid "Marshall Islands"
 -msgstr "Marshalleilanden"
++msgstr ""
++
++#. module: base
++#: code:addons/base/ir/ir_model.py:328
++#, python-format
++msgid "Changing the model of a field is forbidden!"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ht
+ msgid "Haiti"
 -msgstr "Haïti"
++msgstr ""
+ #. module: base
 -#: selection:ir.translation,type:0
 -msgid "RML"
 -msgstr "RML"
++#: view:ir.ui.view:0
++#: selection:ir.ui.view,type:0
++msgid "Search"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_partner_category
 -#: model:ir.ui.menu,name:base.menu_partner_category_main
 -msgid "Partners by Categories"
 -msgstr "Relaties per Categorie"
++#: code:addons/osv.py:136
++#, python-format
++msgid ""
++"The operation cannot be completed, probably due to the following:\n"
++"- deletion: you may be trying to delete a record while other records still "
++"reference it\n"
++"- creation/update: a mandatory field is not correctly set"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_report_custom.py:0
 -#, python-format
 -msgid "Pie charts need exactly two fields"
++#: view:ir.rule:0
++msgid ""
++"2. Group-specific rules are combined together with a logical AND operator"
+ msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/base/res/res_user.py:206
+ #, python-format
 -msgid "Id is not the same than existing one: %s"
++msgid "Operation Canceled"
+ msgstr ""
+ #. module: base
 -#: help:wizard.module.lang.export,lang:0
++#: help:base.language.export,lang:0
+ msgid "To export a new language, do not select a language."
+ msgstr ""
+ #. module: base
++#: view:res.request:0
++msgid "Request Date"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_hr_dasboard
++msgid "Dashboard"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_purchase_root
++msgid "Purchases"
++msgstr ""
++
++#. module: base
+ #: model:res.country,name:base.md
+ msgid "Moldavia"
 -msgstr "Moldavië"
++msgstr ""
+ #. module: base
+ #: view:ir.module.module:0
+ msgid "Features"
+ msgstr ""
+ #. module: base
 -#: field:ir.report.custom,frequency:0
 -msgid "Frequency"
 -msgstr ""
 -
 -#. module: base
 -#: field:ir.report.custom.fields,fc0_op:0
 -#: field:ir.report.custom.fields,fc1_op:0
 -#: field:ir.report.custom.fields,fc2_op:0
 -#: field:ir.report.custom.fields,fc3_op:0
 -msgid "Relation"
++#: view:ir.module.module:0
++#: report:ir.module.reference.graph:0
++msgid "Version"
+ msgstr ""
+ #. module: base
++#: view:ir.model.access:0
+ #: field:ir.model.access,perm_read:0
++#: view:ir.rule:0
+ msgid "Read Access"
+ msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_exports
+ msgid "ir.exports"
 -msgstr "ir.exports"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_MISSING_IMAGE"
 -msgstr "STOCK_MISSING_IMAGE"
 -
 -#. module: base
 -#: view:res.users:0
 -msgid "Define New Users"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_REMOVE"
 -msgstr "STOCK_REMOVE"
++#: code:addons/base/module/wizard/base_update_translations.py:38
++#, python-format
++msgid "No language with code \"%s\" exists"
++msgstr ""
+ #. module: base
 -#: selection:ir.actions.report.xml,report_type:0
 -msgid "raw"
++#: code:addons/base/publisher_warranty/publisher_warranty.py:163
++#, python-format
++msgid "Error during communication with the publisher warranty server."
+ msgstr ""
+ #. module: base
+ #: help:ir.actions.server,email:0
+ msgid ""
+ "Provides the fields that will be used to fetch the email address, e.g. when "
+ "you select the invoice, then `object.invoice_address_id.email` is the field "
+ "which gives the correct address"
+ msgstr ""
+ #. module: base
 -#: field:res.roles,name:0
 -msgid "Role Name"
++#: view:res.lang:0
++msgid "%Y - Year with century."
+ msgstr ""
+ #. module: base
 -#: field:res.partner,user_id:0
 -msgid "Dedicated Salesman"
++#: report:ir.module.reference.graph:0
++msgid "-"
+ msgstr ""
+ #. module: base
 -#: rml:ir.module.reference:0
 -msgid "-"
 -msgstr "‎-"
++#: view:publisher_warranty.contract.wizard:0
++msgid ""
++"This wizard helps you register a publisher warranty contract in your OpenERP "
++"system. After the contract has been registered, you will be able to send "
++"issues directly to OpenERP."
++msgstr ""
++
++#. module: base
++#: code:addons/orm.py:1744
++#, python-format
++msgid "The search method is not implemented on this object !"
++msgstr ""
++
++#. module: base
++#: view:wizard.ir.model.menu.create:0
++msgid "Create _Menu"
++msgstr ""
+ #. module: base
+ #: field:res.payterm,name:0
+ msgid "Payment Term (short name)"
+ msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_res_bank
+ #: view:res.bank:0
+ #: field:res.partner.bank,bank:0
+ msgid "Bank"
 -msgstr "Bank"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_exports_line
+ msgid "ir.exports.line"
 -msgstr "ir.exports.line"
++msgstr ""
++
++#. module: base
++#: help:base.language.install,overwrite:0
++msgid ""
++"If you check this box, your customized translations will be overwritten and "
++"replaced by the official ones."
++msgstr ""
++
++#. module: base
++#: field:ir.actions.report.xml,report_rml:0
++msgid "Main report file path"
++msgstr ""
+ #. module: base
++#: model:ir.actions.act_window,name:base.ir_action_report_xml
+ #: field:ir.module.module,reports_by_module:0
++#: model:ir.ui.menu,name:base.menu_ir_action_report_xml
+ msgid "Reports"
 -msgstr "Rapporten"
++msgstr ""
++
++#. module: base
++#: help:ir.actions.act_window.view,multi:0
++#: help:ir.actions.report.xml,multi:0
++msgid ""
++"If set to true, the action will not be displayed on the right toolbar of a "
++"form view."
++msgstr ""
+ #. module: base
+ #: field:workflow,on_create:0
+ msgid "On Create"
 -msgstr "Bij Aanmaken"
++msgstr ""
+ #. module: base
 -#: wizard_view:base.module.import,init:0
 -msgid "Please give your module .ZIP file to import."
++#: code:addons/base/ir/ir_model.py:607
++#, python-format
++msgid ""
++"'%s' contains too many dots. XML ids should not contain dots ! These are "
++"used to refer to other modules data, as in module.reference_id"
+ msgstr ""
+ #. module: base
 -#: wizard_field:res.partner.sms_send,init,user:0
++#: field:partner.sms.send,user:0
++#: field:res.config.users,login:0
+ #: field:res.users,login:0
+ msgid "Login"
+ msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_ir_sequence_type
 -msgid "ir.sequence.type"
 -msgstr "ir.sequence.type"
 -
 -#. module: base
 -#: view:maintenance.contract:0
 -#: field:maintenance.contract,module_ids:0
 -msgid "Covered Modules"
++#: view:ir.actions.server:0
++msgid ""
++"Access all the fields related to the current object using expressions, i.e. "
++"object.partner_id.name "
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_COPY"
 -msgstr "STOCK_COPY"
++#: model:ir.model,name:base.model_res_country_state
++msgid "Country state"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_model.py:0
 -#, python-format
 -msgid ""
 -"Model %s Does not Exist !"
++#: selection:ir.property,type:0
++msgid "Float"
+ msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_res_request_link
+ msgid "res.request.link"
 -msgstr "res.request.link"
++msgstr ""
+ #. module: base
 -#: wizard_button:module.module.update,init,update:0
 -msgid "Check new modules"
++#: field:ir.actions.wizard,name:0
++msgid "Wizard Info"
+ msgstr ""
+ #. module: base
 -#: model:res.country,name:base.km
 -msgid "Comoros"
++#: view:base.language.export:0
++#: model:ir.actions.act_window,name:base.action_wizard_lang_export
++#: model:ir.ui.menu,name:base.menu_wizard_lang_export
++msgid "Export Translation"
+ msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_server_action
 -#: view:ir.actions.server:0
 -#: model:ir.ui.menu,name:base.menu_server_action
 -msgid "Server Actions"
++#: help:res.log,secondary:0
++msgid ""
++"Do not display this log if it belongs to the same object the user is working "
++"on"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.tp
+ msgid "East Timor"
 -msgstr "Oost-Timor"
++msgstr ""
+ #. module: base
 -#: view:ir.rule:0
 -msgid "Simple domain setup"
++#: model:res.company,follow_up_msg:base.main_company
++msgid ""
++"Date : %(date)s\n"
++"\n"
++"Dear %(partner_name)s,\n"
++"\n"
++"Please find in attachment a reminder of all your unpaid invoices, for a "
++"total amount due of:\n"
++"\n"
++"%(followup_amount).2f %(company_currency)s\n"
++"\n"
++"Thanks,\n"
++"--\n"
++"%(user_signature)s\n"
++"%(company_name)s"
+ msgstr ""
+ #. module: base
+ #: field:res.currency,accuracy:0
+ msgid "Computational Accuracy"
+ msgstr ""
+ #. module: base
 -#: model:res.country,name:base.kg
 -msgid "Kyrgyz Republic (Kyrgyzstan)"
++#: selection:base.language.install,lang:0
++msgid "Sinhalese / සිංහල"
+ msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_wizard_ir_model_menu_create_line
+ msgid "wizard.ir.model.menu.create.line"
 -msgstr "wizard.ir.model.menu.create.line"
++msgstr ""
+ #. module: base
+ #: field:ir.attachment,res_id:0
+ msgid "Attached ID"
+ msgstr ""
+ #. module: base
+ #: view:ir.sequence:0
+ msgid "Day: %(day)s"
 -msgstr "Dag: %(day)s"
 -
 -#. module: base
 -#: code:addons/addons/base/ir/ir_model.py:0
 -#, python-format
 -msgid "You can not read this document! (%s)"
 -msgstr ""
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_FIND_AND_REPLACE"
 -msgstr "STOCK_FIND_AND_REPLACE"
 -
 -#. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "Relation not found: %s on '%s'"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-crm"
 -msgstr "terp-crm"
 -
 -#. module: base
+ #: model:res.country,name:base.mv
+ msgid "Maldives"
 -msgstr "Malediven"
++msgstr ""
+ #. module: base
+ #: help:ir.values,res_id:0
+ msgid "Keep 0 if the action must appear on all resources."
+ msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_rule
+ msgid "ir.rule"
 -msgstr "ir.rule"
 -
 -#. module: base
 -#: field:ir.report.custom.fields,width:0
 -msgid "Fixed Width"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-calendar"
 -msgstr "terp-calendar"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_YES"
 -msgstr "STOCK_YES"
++#: selection:ir.cron,interval_type:0
++msgid "Days"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.ir_action_report_custom
 -#: model:ir.ui.menu,name:base.menu_ir_action_report_custom
 -msgid "Report Custom"
++#: help:ir.actions.server,condition:0
++msgid ""
++"Condition that is to be tested before action is executed, e.g. "
++"object.list_price > object.cost_price"
+ msgstr ""
+ #. module: base
 -#: model:res.country,name:base.tm
 -msgid "Turkmenistan"
 -msgstr "Turkmenistan"
++#: code:addons/base/res/partner/partner.py:155
++#: code:addons/base/res/res_company.py:66
++#, python-format
++msgid " (copy)"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "7.  %H:%M:%S      ==> 18:25:20"
 -msgstr "7.  %H:%M:%S       ==> 18:25:20"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_partner_form
 -#: model:ir.ui.menu,name:base.menu_base_partner
 -#: model:ir.ui.menu,name:base.menu_partner_form
+ #: view:res.partner:0
++#: view:res.partner.category:0
++#: field:res.partner.category,partner_ids:0
+ msgid "Partners"
 -msgstr "Relaties"
++msgstr ""
++
++#. module: base
++#: field:res.partner.category,parent_left:0
++msgid "Left parent"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,name:base.res_widget_act_window
++#: model:ir.ui.menu,name:base.menu_res_widget_act_window
++msgid "Homepage Widgets"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.server,message:0
+ msgid ""
+ "Specify the message. You can use the fields from the object. e.g. `Dear [[ "
+ "object.partner_id.name ]]`"
+ msgstr ""
+ #. module: base
+ #: field:ir.attachment,res_model:0
+ msgid "Attached Model"
+ msgstr ""
+ #. module: base
 -#: field:ir.actions.server,trigger_name:0
 -msgid "Trigger Name"
++#: view:ir.rule:0
++msgid "Domain Setup"
++msgstr ""
++
++#. module: base
++#: field:ir.actions.server,trigger_name:0
++msgid "Trigger Name"
+ msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_model_access
+ msgid "ir.model.access"
 -msgstr "ir.model.access"
++msgstr ""
+ #. module: base
+ #: field:ir.cron,priority:0
 -#: field:ir.ui.view,priority:0
+ #: field:res.request,priority:0
+ #: field:res.request.link,priority:0
+ msgid "Priority"
 -msgstr "Prioriteit"
++msgstr ""
+ #. module: base
+ #: field:workflow.transition,act_from:0
+ msgid "Source Activity"
+ msgstr ""
+ #. module: base
+ #: view:ir.sequence:0
+ msgid "Legend (for prefix, suffix)"
+ msgstr ""
+ #. module: base
 -#: view:res.request:0
 -msgid "Reply"
++#: selection:ir.server.object.lines,type:0
++msgid "Formula"
+ msgstr ""
+ #. module: base
 -#: code:addons/addons/base/res/res_user.py:0
++#: code:addons/base/res/res_user.py:389
+ #, python-format
+ msgid "Can not remove root user!"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_JUSTIFY_LEFT"
 -msgstr "STOCK_JUSTIFY_LEFT"
 -
 -#. module: base
+ #: model:res.country,name:base.mw
+ msgid "Malawi"
 -msgstr "Malawi"
++msgstr ""
+ #. module: base
 -#: field:res.partner.address,type:0
 -msgid "Address Type"
++#: code:addons/base/res/res_user.py:51
++#: code:addons/base/res/res_user.py:413
++#, python-format
++msgid "%s (copy)"
+ msgstr ""
+ #. module: base
 -#: selection:ir.actions.todo,start_on:0
 -msgid "Auto"
++#: field:res.partner.address,type:0
++msgid "Address Type"
+ msgstr ""
+ #. module: base
 -#: view:res.request:0
 -msgid "End of Request"
++#: view:ir.ui.menu:0
++msgid "Full Path"
+ msgstr ""
+ #. module: base
+ #: view:res.request:0
+ msgid "References"
 -msgstr "Referenties"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid ""
+ "%U - Week number of the year (Sunday as the first day of the week) as a "
+ "decimal number [00,53]. All days in a new year preceding the first Sunday "
+ "are considered to be in week 0."
+ msgstr ""
 -"%U - Weeknummer (Zondag als eerste dag van week) als een decimaal getal "
 -"[00,53]. Alle dagen in het nieuwe jaar, voor de eerste zondag, vallen in  "
 -"week 0."
+ #. module: base
 -#: wizard_view:module.lang.install,init:0
 -msgid "Note that this operation may take a few minutes."
 -msgstr "Deze uitvoering kan enige minuten duren."
++#: view:ir.ui.view:0
++msgid "Advanced"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.fi
++msgid "Finland"
++msgstr ""
+ #. module: base
+ #: selection:ir.actions.act_window,view_type:0
+ #: selection:ir.actions.act_window.view,view_mode:0
++#: view:ir.ui.view:0
+ #: selection:ir.ui.view,type:0
+ #: selection:wizard.ir.model.menu.create.line,view_type:0
+ msgid "Tree"
+ msgstr ""
+ #. module: base
 -#: view:maintenance.contract.wizard:0
 -msgid "Could you check your contract information ?"
 -msgstr "Kunt u de contractinformatie controleren ?"
++#: help:res.config.users,password:0
++msgid ""
++"Keep empty if you don't want the user to be able to connect on the system."
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_CLEAR"
 -msgstr "STOCK_CLEAR"
++#: view:ir.actions.server:0
++msgid "Create / Write / Copy"
++msgstr ""
+ #. module: base
 -#: help:res.users,password:0
 -msgid ""
 -"Keep empty if you don't want the user to be able to connect on the system."
++#: view:base.language.export:0
++msgid "https://help.launchpad.net/Translations"
+ msgstr ""
+ #. module: base
+ #: field:ir.actions.act_window,view_mode:0
 -#: field:res.config.view,view:0
+ msgid "View Mode"
 -msgstr "Weergavemodus"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/fields.py:0
++#: view:base.language.import:0
++msgid ""
++"When using CSV format, please also check that the first line of your file is "
++"one of the following:"
++msgstr ""
++
++#. module: base
++#: code:addons/fields.py:114
+ #, python-format
+ msgid "Not implemented search_memory method !"
+ msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: view:res.log:0
++msgid "Logs"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
+ msgid "Spanish / Español"
 -msgstr "Spaans / Español"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Korean (KP) / 한국어 (KP)"
++msgstr ""
++
++#. module: base
++#: view:base.module.update:0
++msgid ""
++"This wizard will scan all module repositories on the server side to detect "
++"newly added modules as well as any change to existing modules."
++msgstr ""
+ #. module: base
+ #: field:res.company,logo:0
+ msgid "Logo"
 -msgstr "Logo"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_PROPERTIES"
 -msgstr "STOCK_PROPERTIES"
++#: view:res.partner.address:0
++msgid "Search Contact"
++msgstr ""
++
++#. module: base
++#: view:ir.module.module:0
++msgid "Uninstall (beta)"
++msgstr ""
+ #. module: base
+ #: selection:ir.actions.act_window,target:0
+ #: selection:ir.actions.url,target:0
+ msgid "New Window"
 -msgstr "Nieuw venster"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bs
+ msgid "Bahamas"
 -msgstr "Bahama's"
 -
 -#. module: base
 -#: selection:res.partner.event,partner_type:0
 -msgid "Commercial Prospect"
 -msgstr "Commercieel Prospect"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/res/partner/partner.py:0
++#: code:addons/base/res/partner/partner.py:250
+ #, python-format
+ msgid ""
+ "Couldn't generate the next id because some partners have an alphabetic id !"
+ msgstr ""
+ #. module: base
+ #: view:ir.attachment:0
+ msgid "Attachment"
 -msgstr "Bijlage"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ie
+ msgid "Ireland"
 -msgstr "Ierland"
 -
 -#. module: base
 -#: view:ir.sequence:0
 -msgid "Year without century: %(y)s"
 -msgstr "Jaartal zonder eeuw: %(y)s"
++msgstr ""
+ #. module: base
 -#: wizard_field:module.module.update,update,update:0
++#: field:base.module.update,update:0
+ msgid "Number of modules updated"
 -msgstr "Aantal modules bewerkt"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/fields.py:0
++#: code:addons/fields.py:100
+ #, python-format
+ msgid "Not implemented set_memory method !"
+ msgstr ""
+ #. module: base
++#: view:workflow.activity:0
++msgid "Workflow Activity"
++msgstr ""
++
++#. module: base
++#: view:ir.rule:0
++msgid ""
++"Example: GLOBAL_RULE_1 AND GLOBAL_RULE_2 AND ( (GROUP_A_RULE_1 AND "
++"GROUP_A_RULE_2) OR (GROUP_B_RULE_1 AND GROUP_B_RULE_2) )"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,help:base.action_ui_view
++msgid ""
++"Views allows you to personalize each view of OpenERP. You can add new "
++"fields, move fields, rename them or delete the ones that you do not need."
++msgstr ""
++
++#. module: base
+ #: field:ir.actions.act_window,groups_id:0
+ #: model:ir.actions.act_window,name:base.action_res_groups
++#: view:ir.actions.report.xml:0
+ #: field:ir.actions.report.xml,groups_id:0
++#: view:ir.actions.todo:0
+ #: field:ir.actions.todo,groups_id:0
+ #: field:ir.actions.wizard,groups_id:0
++#: view:ir.model:0
+ #: field:ir.model.fields,groups:0
++#: field:ir.rule,groups:0
++#: view:ir.ui.menu:0
+ #: field:ir.ui.menu,groups_id:0
+ #: model:ir.ui.menu,name:base.menu_action_res_groups
++#: field:res.config.users,groups_id:0
+ #: view:res.groups:0
+ #: view:res.users:0
+ #: field:res.users,groups_id:0
+ msgid "Groups"
 -msgstr "Groepen"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Spanish (CL) / Español (CL)"
++msgstr ""
++
++#. module: base
++#: view:res.config.users:0
++msgid ""
++"Create additional users and assign them groups that will allow them to have "
++"access to selected functionalities within the system. Click on 'Done' if you "
++"do not wish to add more users at this stage, you can always do this later."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bz
+ msgid "Belize"
 -msgstr "Belize"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ge
+ msgid "Georgia"
 -msgstr "Georgië"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.pl
+ msgid "Poland"
 -msgstr "Polen"
++msgstr ""
++
++#. module: base
++#: help:ir.actions.act_window,view_mode:0
++msgid ""
++"Comma-separated list of allowed view modes, such as 'form', 'tree', "
++"'calendar', etc. (Default: tree,form)"
++msgstr ""
++
++#. module: base
++#: code:addons/orm.py:3147
++#, python-format
++msgid "A document was modified since you last viewed it (%s:%d)"
++msgstr ""
++
++#. module: base
++#: view:workflow:0
++msgid "Workflow Editor"
++msgstr ""
+ #. module: base
+ #: selection:ir.module.module,state:0
+ #: selection:ir.module.module.dependency,state:0
+ msgid "To be removed"
 -msgstr "Te verwijderen"
++msgstr ""
+ #. module: base
 -#: view:maintenance.contract.wizard:0
 -msgid "Maintenance contract added !"
 -msgstr "Onderhoudscontract toegevoegd !"
++#: model:ir.model,name:base.model_ir_sequence
++msgid "ir.sequence"
++msgstr ""
+ #. module: base
 -#: view:wizard.module.update_translations:0
++#: help:ir.actions.server,expression:0
+ msgid ""
 -"This wizard will detect new terms in the application so that you can update "
 -"them manually."
++"Enter the field/expression that will return the list. E.g. select the sale "
++"order in Object, and you can have loop on the sales order line. Expression = "
++"`object.order_line`."
+ msgstr ""
 -"Deze assistent zal nieuwe termen in de toepassing opsporen zodat deze "
 -"handmatig kunnen worden bijgewerkt"
+ #. module: base
 -#: help:ir.actions.server,expression:0
 -msgid "Enter the field/expression that will return the list. E.g. select the sale order in Object, and you can have loop on the sales order line. Expression = `object.order_line`."
++#: field:ir.property,fields_id:0
++#: selection:ir.translation,type:0
++#: field:multi_company.default,field_id:0
++msgid "Field"
+ msgstr ""
+ #. module: base
 -#: selection:ir.translation,type:0
 -msgid "Wizard Field"
 -msgstr "Assistent Veld"
++#: view:ir.rule:0
++msgid "Groups (no group = global)"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_SELECT_COLOR"
 -msgstr "STOCK_SELECT_COLOR"
++#: model:res.country,name:base.fo
++msgid "Faroe Islands"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_NO"
 -msgstr "STOCK_NO"
++#: selection:res.config.users,view:0
++#: selection:res.config.view,view:0
++#: selection:res.users,view:0
++msgid "Simplified"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.st
+ msgid "Saint Tome (Sao Tome) and Principe"
+ msgstr ""
+ #. module: base
+ #: selection:res.partner.address,type:0
+ msgid "Invoice"
 -msgstr "Factuur"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_REDO"
 -msgstr "STOCK_REDO"
++#: selection:base.language.install,lang:0
++msgid "Portugese (BR) / Português (BR)"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bb
+ msgid "Barbados"
 -msgstr "Barbados"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.mg
+ msgid "Madagascar"
 -msgstr "Madagascar"
++msgstr ""
+ #. module: base
 -#: constraint:ir.model:0
++#: code:addons/base/ir/ir_model.py:96
++#, python-format
+ msgid ""
+ "The Object name must start with x_ and not contain any special character !"
+ msgstr ""
 -"De objectnaam moet beginnen met x_ en mag geen speciale karakters bevatten !"
++
++#. module: base
++#: field:ir.actions.configuration.wizard,note:0
++msgid "Next Wizard"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_menu_admin
 -#: field:ir.report.custom,menu_id:0
+ #: view:ir.ui.menu:0
+ #: field:ir.ui.menu,name:0
+ msgid "Menu"
 -msgstr "Menu"
++msgstr ""
+ #. module: base
+ #: field:res.currency,rate:0
+ msgid "Current Rate"
 -msgstr "Huidige koers"
++msgstr ""
+ #. module: base
+ #: field:ir.ui.view.custom,ref_id:0
+ msgid "Original View"
+ msgstr ""
+ #. module: base
+ #: view:ir.values:0
+ msgid "Action To Launch"
+ msgstr ""
+ #. module: base
+ #: field:ir.actions.url,target:0
+ msgid "Action Target"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ai
+ msgid "Anguilla"
+ msgstr ""
+ #. module: base
 -#: field:ir.model.config,password_check:0
 -msgid "Confirmation"
 -msgstr "Bevestiging"
 -
 -#. module: base
 -#: code:addons/addons/base/ir/ir_report_custom.py:0
 -#, python-format
 -msgid "Enter at least one field !"
 -msgstr "Er moet tenminste één veld worden ingevuld !"
 -
 -#. module: base
 -#: model:res.country,name:base.ve
 -msgid "Venezuela"
 -msgstr "Venezuela"
 -
 -#. module: base
+ #: field:ir.ui.view_sc,name:0
+ msgid "Shortcut Name"
 -msgstr "Naam Snelkoppeling"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.act_window,limit:0
+ msgid "Default limit for the list view"
 -msgstr "Standaard aantal items in lijst-weergave"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.server,write_id:0
+ msgid ""
+ "Provide the field name that the record id refers to for the write operation. "
+ "If it is empty it will refer to the active id of the object."
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.zw
+ msgid "Zimbabwe"
 -msgstr "Zimbabwe"
++msgstr ""
+ #. module: base
 -#: model:ir.ui.menu,name:base.menu_translation_export
 -msgid "Import / Export"
 -msgstr "Import / Export"
++#: view:base.module.update:0
++msgid "Please be patient, as this operation may take a few seconds..."
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_config_user_form
 -#: view:res.users:0
 -msgid "Configure User"
 -msgstr "Gebruiker Configureren"
++#: help:ir.values,action_id:0
++msgid "This field is not used, it only helps you to select the right action."
++msgstr ""
+ #. module: base
+ #: field:ir.actions.server,email:0
+ msgid "Email Address"
 -msgstr "E-mailadres"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_model.py:0
 -#, python-format
 -msgid "You can not write in this document! (%s)"
++#: selection:base.language.install,lang:0
++msgid "French (BE) / Français (BE)"
+ msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ #: field:workflow.activity,action_id:0
+ msgid "Server Action"
 -msgstr "Server Actie"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.tt
+ msgid "Trinidad and Tobago"
 -msgstr "Trinidad en Tobago"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.lv
+ msgid "Latvia"
 -msgstr "Letland"
++msgstr ""
+ #. module: base
+ #: view:ir.values:0
+ msgid "Values"
 -msgstr "Waarden"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ msgid "Field Mappings"
+ msgstr ""
+ #. module: base
++#: view:base.language.export:0
++msgid "Export Translations"
++msgstr ""
++
++#. module: base
+ #: model:ir.ui.menu,name:base.menu_custom
+ msgid "Customization"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.py
+ msgid "Paraguay"
 -msgstr "Paraguay"
 -
 -#. module: base
 -#: selection:ir.report.custom.fields,alignment:0
 -msgid "left"
 -msgstr "links"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_actions_act_window_close
+ msgid "ir.actions.act_window_close"
 -msgstr "ir.actions.act_window_close"
++msgstr ""
+ #. module: base
+ #: field:ir.server.object.lines,col1:0
+ msgid "Destination"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.lt
+ msgid "Lithuania"
 -msgstr "Litouwen"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_PRINT_PREVIEW"
 -msgstr "STOCK_PRINT_PREVIEW"
++#: model:ir.actions.act_window,name:base.action_view_partner_clear_ids
++#: model:ir.model,name:base.model_partner_clear_ids
++#: view:partner.clear.ids:0
++msgid "Clear IDs"
++msgstr ""
++
++#. module: base
++#: help:ir.cron,model:0
++msgid ""
++"Name of object whose function will be called when this scheduler will run. "
++"e.g. 'res.partener'"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/orm.py:1040
+ #, python-format
+ msgid "The perm_read method is not implemented on this object !"
 -msgstr "De perm_read methode is niet in dit object geïmplementeerd !"
++msgstr ""
++
++#. module: base
++#: view:res.lang:0
++msgid "%y - Year without century [00,99]."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.si
+ msgid "Slovenia"
 -msgstr "Slovenië"
++msgstr ""
+ #. module: base
 -#: view:res.partner.canal:0
 -#: field:res.partner.event,canal_id:0
 -msgid "Channel"
 -msgstr "Kanaal"
++#: model:res.country,name:base.pk
++msgid "Pakistan"
++msgstr ""
++
++#. module: base
++#: code:addons/orm.py:1350
++#, python-format
++msgid "Invalid Object Architecture!"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_email_gateway_form
++msgid "Messages"
++msgstr ""
++
++#. module: base
++#: code:addons/base/ir/ir_model.py:303
++#: code:addons/base/ir/ir_model.py:317
++#: code:addons/base/ir/ir_model.py:319
++#: code:addons/base/ir/ir_model.py:321
++#: code:addons/base/ir/ir_model.py:328
++#: code:addons/base/ir/ir_model.py:331
++#: code:addons/base/module/wizard/base_update_translations.py:38
++#, python-format
++msgid "Error!"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "%p - Equivalent of either AM or PM."
 -msgstr "%p - Equivalent van AM of PM."
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ msgid "Iteration Actions"
+ msgstr ""
+ #. module: base
 -#: field:maintenance.contract,date_stop:0
++#: help:multi_company.default,company_id:0
++msgid "Company where the user is connected"
++msgstr ""
++
++#. module: base
++#: field:publisher_warranty.contract,date_stop:0
+ msgid "Ending Date"
 -msgstr "Einddatum"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.nz
+ msgid "New Zealand"
 -msgstr "Nieuw-Zeeland"
++msgstr ""
+ #. module: base
 -#: model:res.partner.category,name:base.res_partner_category_7
 -msgid "Openstuff.net"
 -msgstr "Openstuff.net"
++#: code:addons/orm.py:3366
++#, python-format
++msgid ""
++"One of the records you are trying to modify has already been deleted "
++"(Document type: %s)."
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.nf
 -msgid "Norfolk Island"
 -msgstr "Norfolkeiland"
++#: model:ir.actions.act_window,help:base.action_country
++msgid ""
++"Display and manage the list of all countries that can be assigned to your "
++"partner records. You can create or delete countries to make sure the ones "
++"you are working on will be maintained."
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_MEDIA_PLAY"
 -msgstr "STOCK_MEDIA_PLAY"
++#: model:res.partner.category,name:base.res_partner_category_7
++msgid "Openstuff.net"
++msgstr ""
+ #. module: base
 -#: field:ir.rule,operator:0
 -msgid "Operator"
 -msgstr "Operator"
++#: model:res.country,name:base.nf
++msgid "Norfolk Island"
++msgstr ""
+ #. module: base
 -#: wizard_view:module.lang.install,start:0
 -msgid "Installation Done"
 -msgstr "Installatie gereed"
++#: selection:base.language.install,lang:0
++msgid "Korean (KR) / 한국어 (KR)"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_OPEN"
 -msgstr "STOCK_OPEN"
++#: help:ir.model.fields,model:0
++msgid "The technical name of the model this field belongs to"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.server,action_id:0
+ #: selection:ir.actions.server,state:0
+ msgid "Client Action"
+ msgstr ""
+ #. module: base
 -#: selection:ir.report.custom.fields,alignment:0
 -msgid "right"
 -msgstr "rechts"
 -
 -#. module: base
+ #: model:res.country,name:base.bd
+ msgid "Bangladesh"
 -msgstr "Bangladesh"
++msgstr ""
+ #. module: base
+ #: constraint:res.company:0
+ msgid "Error! You can not create recursive companies."
+ msgstr ""
+ #. module: base
 -#: selection:maintenance.contract,state:0
++#: selection:publisher_warranty.contract,state:0
+ msgid "Valid"
 -msgstr "Geldig"
 -
 -#. module: base
 -#: code:addons/addons/base/ir/ir_model.py:0
 -#, python-format
 -msgid "You can not delete this document! (%s)"
 -msgstr "U kunt dit document niet verwijderen! (%s)"
++msgstr ""
+ #. module: base
+ #: selection:ir.translation,type:0
+ msgid "XSL"
 -msgstr "XSL"
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.action_partner_other_form
 -#: model:ir.ui.menu,name:base.menu_partner_other_form
 -msgid "Others Partners"
+ msgstr ""
+ #. module: base
 -#: code:addons/addons/base/module/module.py:0
++#: code:addons/base/module/module.py:322
+ #, python-format
+ msgid "Can not upgrade module '%s'. It is not installed."
 -msgstr "U kunt module '%s' niet upgraden. Deze module is niet geïnstalleerd."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.cu
+ msgid "Cuba"
 -msgstr "Cuba"
++msgstr ""
+ #. module: base
 -#: view:res.lang:0
 -msgid "%S - Second as a decimal number [00,61]."
 -msgstr "%S - Seconden als een decimaal getal [00,61]."
++#: model:ir.model,name:base.model_res_partner_event
++msgid "res.partner.event"
++msgstr ""
++
++#. module: base
++#: model:res.widget,title:base.facebook_widget
++msgid "Facebook"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.am
+ msgid "Armenia"
 -msgstr "Armenië"
++msgstr ""
+ #. module: base
 -#: view:ir.sequence:0
 -msgid "Year with century: %(year)s"
 -msgstr "Jaartal met eeuw: %(year)s"
++#: 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 ""
+ #. module: base
 -#: selection:ir.report.custom,frequency:0
 -msgid "Daily"
 -msgstr "Dagelijks"
++#: constraint:ir.cron:0
++msgid "Invalid arguments"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.se
+ msgid "Sweden"
 -msgstr "Zweden"
++msgstr ""
+ #. module: base
+ #: selection:ir.actions.act_window.view,view_mode:0
+ #: selection:ir.ui.view,type:0
+ #: selection:wizard.ir.model.menu.create.line,view_type:0
+ msgid "Gantt"
 -msgstr "Gantt"
++msgstr ""
+ #. module: base
+ #: view:ir.property:0
+ msgid "Property"
+ msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_res_partner_bank_type
+ #: view:res.partner.bank.type:0
+ msgid "Bank Account Type"
 -msgstr "Bankrekening Type"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-project"
 -msgstr "terp-project"
++#: field:base.language.export,config_logo:0
++#: field:base.language.import,config_logo:0
++#: field:base.language.install,config_logo:0
++#: field:base.module.import,config_logo:0
++#: field:base.module.update,config_logo:0
++#: field:base.update.translations,config_logo:0
++#: field:ir.actions.configuration.wizard,config_logo:0
++#: field:ir.wizard.screen,config_logo:0
++#: field:publisher_warranty.contract.wizard,config_logo:0
++#: field:res.config,config_logo:0
++#: field:res.config.installer,config_logo:0
++#: field:res.config.users,config_logo:0
++#: field:res.config.view,config_logo:0
++msgid "Image"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ msgid "Iteration Action Configuration"
+ msgstr ""
+ #. module: base
 -#: model:res.country,name:base.at
++#: selection:publisher_warranty.contract,state:0
++msgid "Canceled"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.at
+ msgid "Austria"
 -msgstr "Oostenrijk"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,state:0
++#: selection:base.module.import,state:0
++#: selection:base.module.update,state:0
++msgid "done"
++msgstr ""
+ #. module: base
+ #: selection:ir.actions.act_window.view,view_mode:0
++#: model:ir.ui.menu,name:base.menu_calendar_configuration
+ #: selection:ir.ui.view,type:0
+ #: selection:wizard.ir.model.menu.create.line,view_type:0
+ msgid "Calendar"
+ msgstr ""
+ #. module: base
++#: field:res.partner.address,partner_id:0
++msgid "Partner Name"
++msgstr ""
++
++#. module: base
+ #: field:workflow.activity,signal_send:0
+ msgid "Signal (subflow.*)"
+ msgstr ""
+ #. module: base
+ #: model:res.partner.category,name:base.res_partner_category_17
+ msgid "HR sector"
+ msgstr ""
+ #. module: base
++#: code:addons/orm.py:3817
++#, python-format
++msgid ""
++"Invalid \"order\" specified. A valid \"order\" specification is a comma-"
++"separated list of valid field names (optionally followed by asc/desc for the "
++"direction)"
++msgstr ""
++
++#. module: base
+ #: model:ir.model,name:base.model_ir_module_module_dependency
+ msgid "Module dependency"
 -msgstr "Module afhankelijkheid"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_JUSTIFY_CENTER"
 -msgstr "STOCK_JUSTIFY_CENTER"
++#: selection:publisher_warranty.contract.wizard,state:0
++msgid "Draft"
++msgstr ""
+ #. module: base
 -#: view:res.config.view:0
 -msgid "Choose Your Mode"
++#: selection:res.config.users,view:0
++#: selection:res.config.view,view:0
++#: selection:res.users,view:0
++msgid "Extended"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,help:base.action_partner_title_contact
++msgid ""
++"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: "
++"Mr., Mrs. "
+ msgstr ""
+ #. module: base
+ #: field:res.company,rml_footer1:0
+ msgid "Report Footer 1"
+ msgstr ""
+ #. module: base
+ #: field:res.company,rml_footer2:0
+ msgid "Report Footer 2"
+ msgstr ""
+ #. module: base
+ #: view:ir.model.access:0
 -#: model:ir.ui.menu,name:base.menu_security_access
+ #: view:res.groups:0
+ #: field:res.groups,model_access:0
+ msgid "Access Controls"
+ msgstr ""
+ #. module: base
+ #: view:ir.module.module:0
+ #: field:ir.module.module,dependencies_id:0
+ msgid "Dependencies"
 -msgstr "Afhankelijkheden"
++msgstr ""
+ #. module: base
 -#: field:res.partner,parent_id:0
++#: field:multi_company.default,company_id:0
+ msgid "Main Company"
+ msgstr ""
+ #. module: base
 -#: field:ir.report.custom.fields,bgcolor:0
 -msgid "Background Color"
 -msgstr "Achtergrondkleur"
++#: field:ir.ui.menu,web_icon_hover:0
++msgid "Web Icon File (hover)"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ msgid ""
+ "If you use a formula type, use a python expression using the variable "
+ "'object'."
+ msgstr ""
 -"Wanneer u een formule type gebruikt, gebruik dan een python expressie die de "
 -"variabele 'object' gebruikt."
+ #. module: base
+ #: field:res.partner.address,birthdate:0
+ msgid "Birthdate"
 -msgstr "Geboortedatum"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_partner_title_contact
+ #: model:ir.ui.menu,name:base.menu_partner_title_contact
+ msgid "Contact Titles"
+ msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_res_partner_som
 -msgid "res.partner.som"
 -msgstr "res.partner.som"
++#: view:base.language.import:0
++msgid ""
++"Please double-check that the file encoding is set to UTF-8 (sometimes called "
++"Unicode) when the translator exports it."
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Spanish (DO) / Español (DO)"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_workflow_activity
+ msgid "workflow.activity"
 -msgstr "workflow.activity"
++msgstr ""
++
++#. module: base
++#: help:ir.ui.view_sc,res_id:0
++msgid ""
++"Reference of the target resource, whose model/table depends on the 'Resource "
++"Name' field."
++msgstr ""
+ #. module: base
+ #: field:ir.model.fields,select_level:0
+ msgid "Searchable"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.uy
+ msgid "Uruguay"
+ msgstr ""
+ #. module: base
 -#: view:res.partner.event:0
 -msgid "Document Link"
++#: selection:base.language.install,lang:0
++msgid "Finnish / Suomi"
+ msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_res_partner_title
 -msgid "res.partner.title"
 -msgstr "res.partner.title"
++#: field:ir.rule,perm_write:0
++msgid "Apply For Write"
++msgstr ""
+ #. module: base
+ #: field:ir.sequence,prefix:0
+ msgid "Prefix"
 -msgstr "Voorvoegsel"
 -
 -#. module: base
 -#: field:ir.actions.server,loop_action:0
 -msgid "Loop Action"
+ msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "German / Deutsch"
 -msgstr "Duits / Deutsch"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.server,trigger_name:0
+ msgid "Select the Signal name that is to be used as the trigger."
+ msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ msgid "Fields Mapping"
+ msgstr ""
+ #. module: base
++#: selection:base.language.install,lang:0
++msgid "Portugese / Português"
++msgstr ""
++
++#. module: base
+ #: model:res.partner.title,name:base.res_partner_title_sir
+ msgid "Sir"
 -msgstr "De heer"
++msgstr ""
+ #. module: base
 -#: wizard_button:module.upgrade,next,start:0
 -msgid "Start Upgrade"
 -msgstr "Upgrade Starten"
++#: code:addons/orm.py:1622
++#, python-format
++msgid "There is no view of type '%s' defined for the structure!"
++msgstr ""
+ #. module: base
+ #: field:ir.default,ref_id:0
+ msgid "ID Ref."
 -msgstr "ID Ref."
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "French / Français"
 -msgstr "Frans / Français"
++#: model:ir.actions.server,name:base.action_start_configurator
++#: model:ir.ui.menu,name:base.menu_view_base_module_configuration
++msgid "Start Configuration"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.mt
+ msgid "Malta"
 -msgstr "Malta"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.server,fields_lines:0
+ msgid "Field Mappings."
+ msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_module_module
++#: view:ir.model.data:0
+ #: field:ir.model.data,module:0
+ #: view:ir.module.module:0
+ #: field:ir.module.module.dependency,module_id:0
 -#: rml:ir.module.reference:0
++#: report:ir.module.reference.graph:0
++#: field:ir.translation,module:0
+ msgid "Module"
 -msgstr "Module"
++msgstr ""
+ #. module: base
+ #: field:ir.attachment,description:0
++#: view:ir.module.module:0
+ #: field:ir.module.module,description:0
+ #: field:res.partner.bank,name:0
+ #: view:res.partner.event:0
+ #: field:res.partner.event,description:0
+ #: view:res.request:0
+ msgid "Description"
 -msgstr "Omschrijving"
++msgstr ""
+ #. module: base
 -#: field:res.users,action_id:0
 -msgid "Home Action"
++#: model:ir.actions.act_window,name:base.action_workflow_instance_form
++#: model:ir.ui.menu,name:base.menu_workflow_instance
++msgid "Instances"
+ msgstr ""
+ #. module: base
 -#: field:res.lang,grouping:0
 -msgid "Separator Format"
++#: model:res.country,name:base.aq
++msgid "Antarctica"
++msgstr ""
++
++#. module: base
++#: field:ir.actions.report.xml,auto:0
++msgid "Custom python parser"
++msgstr ""
++
++#. module: base
++#: view:base.language.import:0
++msgid "_Import"
++msgstr ""
++
++#. module: base
++#: view:res.partner.canal:0
++msgid "Channel"
+ msgstr ""
+ #. module: base
 -#: view:wizard.module.lang.export:0
 -msgid "Export language"
 -msgstr "Taal exporteren"
++#: field:res.lang,grouping:0
++msgid "Separator Format"
++msgstr ""
+ #. module: base
 -#: selection:maintenance.contract.wizard,state:0
++#: selection:publisher_warranty.contract,state:0
+ msgid "Unvalidated"
 -msgstr "Niet gevalideerd"
++msgstr ""
+ #. module: base
+ #: model:ir.ui.menu,name:base.next_id_9
+ msgid "Database Structure"
 -msgstr "Database Structuur"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.wizard,name:base.res_partner_mass_mailing_wizard
 -#: wizard_view:res.partner.spam_send,init:0
++#: model:ir.actions.act_window,name:base.action_partner_mass_mail
++#: model:ir.model,name:base.model_partner_wizard_spam
++#: view:partner.wizard.spam:0
+ msgid "Mass Mailing"
 -msgstr "Massa Mailing"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.yt
+ msgid "Mayotte"
+ msgstr ""
+ #. module: base
 -#: wizard_view:module.lang.import,init:0
 -msgid "You can also import .po files."
 -msgstr "U kunt ook .po bestanden importeren"
 -
 -#. module: base
 -#: code:addons/addons/base/maintenance/maintenance.py:0
 -#, python-format
 -msgid "Unable to find a valid contract"
 -msgstr ""
 -
 -#. module: base
 -#: code:addons/addons/base/ir/ir_actions.py:0
++#: code:addons/base/ir/ir_actions.py:597
+ #, python-format
+ msgid "Please specify an action to launch !"
 -msgstr "Kies aub een actie die moet worden uitgevoerd !"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_JUSTIFY_RIGHT"
 -msgstr "STOCK_JUSTIFY_RIGHT"
 -
 -#. module: base
 -#: model:ir.model,name:base.model_res_partner_function
 -msgid "Function of the contact"
 -msgstr "Functie contactpersoon"
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.open_module_tree_upgrade
 -#: model:ir.ui.menu,name:base.menu_module_tree_upgrade
 -msgid "Modules to be installed, upgraded or removed"
 -msgstr "Modules die worden geïnstalleerd, bijgewerkt of verwijderd"
++msgstr ""
+ #. module: base
+ #: view:res.payterm:0
+ msgid "Payment Term"
 -msgstr "Betalingsvoorwaarde"
 -
 -#. module: base
 -#: field:ir.report.custom,footer:0
 -msgid "Report Footer"
+ msgstr ""
+ #. module: base
+ #: selection:res.lang,direction:0
+ msgid "Right-to-Left"
 -msgstr "Rechts-naar-Links"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "Please check that all your lines have %d columns."
++#: view:ir.actions.act_window:0
++#: model:ir.actions.act_window,name:base.actions_ir_filters_view
++#: view:ir.filters:0
++#: model:ir.model,name:base.model_ir_filters
++#: model:ir.ui.menu,name:base.menu_ir_filters
++msgid "Filters"
+ msgstr ""
+ #. module: base
 -#: wizard_view:module.lang.import,init:0
 -msgid "Import language"
 -msgstr "Taal importeren"
++#: code:addons/orm.py:758
++#, python-format
++msgid "Please check that all your lines have %d columns."
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.ir_cron_act
+ #: view:ir.cron:0
+ #: model:ir.ui.menu,name:base.menu_ir_cron_act
+ msgid "Scheduled Actions"
 -msgstr "Geplande acties"
++msgstr ""
+ #. module: base
 -#: field:res.partner,title:0
+ #: field:res.partner.address,title:0
+ #: field:res.partner.title,name:0
++#: field:res.widget,title:0
+ msgid "Title"
 -msgstr "Titel"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "Recursivity Detected."
++#: help:ir.property,res_id:0
++msgid "If not set, acts as a default value for new resources"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-account"
 -msgstr "terp-account"
++#: code:addons/orm.py:3448
++#, python-format
++msgid "Recursivity Detected."
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/module/module.py:0
++#: code:addons/base/module/module.py:262
+ #, python-format
+ msgid "Recursion error in modules dependencies !"
+ msgstr ""
+ #. module: base
++#: view:base.language.install:0
++msgid ""
++"This wizard helps you add a new language to your OpenERP system. After "
++"loading a new language it becomes available as default interface language "
++"for users and partners."
++msgstr ""
++
++#. module: base
+ #: view:ir.model:0
+ msgid "Create a Menu"
 -msgstr "Menu aanmaken"
++msgstr ""
+ #. module: base
+ #: help:res.partner,vat:0
+ msgid ""
+ "Value Added Tax number. Check the box if the partner is subjected to the "
+ "VAT. Used by the VAT legal statement."
+ msgstr ""
 -"BTW nummer. Kies dit vakje als de relatie BTW plichtig is. Wordt gebruikt "
 -"bij de BTW rapportage."
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.action_module_category_tree
 -#: model:ir.ui.menu,name:base.menu_action_module_category_tree
 -msgid "Categories of Modules"
 -msgstr "Module Categorieën"
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Ukrainian / украї́нська мо́ва"
++#: model:ir.model,name:base.model_maintenance_contract
++msgid "maintenance.contract"
+ msgstr ""
+ #. module: base
 -#: selection:ir.actions.todo,state:0
 -msgid "Not Started"
 -msgstr "Niet Gestart"
 -
 -#. module: base
+ #: model:res.country,name:base.ru
+ msgid "Russian Federation"
 -msgstr "Rusland"
++msgstr ""
+ #. module: base
 -#: field:res.company,name:0
 -msgid "Company Name"
 -msgstr "Bedrijfsnaam"
++#: selection:base.language.install,lang:0
++msgid "Urdu / اردو"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_res_roles_form
 -#: model:ir.ui.menu,name:base.menu_action_res_roles_form
 -#: view:res.roles:0
 -#: view:res.users:0
 -#: field:res.users,roles_id:0
 -msgid "Roles"
 -msgstr "Rollen"
++#: field:res.company,name:0
++msgid "Company Name"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_country
+ #: model:ir.ui.menu,name:base.menu_country_partner
+ msgid "Countries"
 -msgstr "Landen"
++msgstr ""
++
++#. module: base
++#: selection:ir.translation,type:0
++msgid "RML  (deprecated - use Report)"
++msgstr ""
++
++#. module: base
++#: view:ir.rule:0
++msgid "Record rules"
++msgstr ""
++
++#. module: base
++#: view:ir.property:0
++msgid "Field Information"
++msgstr ""
++
++#. module: base
++#: view:ir.actions.todo:0
++msgid "Search Actions"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,name:base.action_view_partner_wizard_ean_check
++#: view:partner.wizard.ean.check:0
++msgid "Ean check"
++msgstr ""
++
++#. module: base
++#: field:res.partner,vat:0
++msgid "VAT"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "12. %w              ==> 5 ( Friday is the 6th day)"
 -msgstr "12. %w             ==> 5 ( Vrijdag is de 6de dag)"
++msgstr ""
+ #. module: base
+ #: constraint:res.partner.category:0
+ msgid "Error ! You can not create recursive categories."
+ msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "%x - Appropriate date representation."
 -msgstr "%x - Passende datum weergave"
 -
 -#. module: base
 -#: help:ir.module.repository,filter:0
 -msgid ""
 -"Regexp to search module on the repository webpage:\n"
 -"- The first parenthesis must match the name of the module.\n"
 -"- The second parenthesis must match the whole version number.\n"
 -"- The last parenthesis must match the extension of the module."
+ msgstr ""
+ #. module: base
+ #: view:res.lang:0
 -msgid "%M - Minute as a decimal number [00,59]."
 -msgstr "%M - Minuut als decimaal getal [00,59]"
++msgid "%d - Day of the month [01,31]."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.tj
+ msgid "Tajikistan"
 -msgstr "Tajikistan"
 -
 -#. module: base
 -#: help:ir.actions.report.xml,header:0
 -msgid "Add or not the coporate RML header"
 -msgstr "Wel of niet RML-bedrijfskoptekst toevoegen"
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.act_values_form_action
 -#: model:ir.ui.menu,name:base.menu_values_form_action
 -msgid "Connect Actions To Client Events"
+ msgstr ""
+ #. module: base
+ #: selection:ir.module.module,license:0
+ msgid "GPL-2 or later version"
 -msgstr "GPL-2 of latere versie"
++msgstr ""
+ #. module: base
 -#: selection:res.partner.event,type:0
 -msgid "Prospect Contact"
++#: model:res.partner.title,shortcut:base.res_partner_title_sir
++msgid "M."
+ msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_ir_actions_wizard
 -#: selection:ir.ui.menu,action:0
 -msgid "ir.actions.wizard"
 -msgstr "ir.actions.wizard"
++#: code:addons/base/module/module.py:429
++#, python-format
++msgid ""
++"Can not create the module file:\n"
++" %s"
++msgstr ""
++
++#. module: base
++#: code:addons/orm.py:2973
++#, python-format
++msgid ""
++"Operation prohibited by access rules, or performed on an already deleted "
++"document (Operation: read, Document type: %s)."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.nr
+ msgid "Nauru"
 -msgstr "Nauru"
++msgstr ""
++
++#. module: base
++#: code:addons/base/module/module.py:200
++#, python-format
++msgid "The certificate ID of the module must be unique !"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_property
+ msgid "ir.property"
 -msgstr "ir.property"
++msgstr ""
+ #. module: base
+ #: selection:ir.actions.act_window,view_type:0
+ #: selection:ir.actions.act_window.view,view_mode:0
++#: view:ir.ui.view:0
+ #: selection:ir.ui.view,type:0
+ #: selection:wizard.ir.model.menu.create.line,view_type:0
+ msgid "Form"
 -msgstr "Formulier"
 -
 -#. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "Can not define a column %s. Reserved keyword !"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.me
+ msgid "Montenegro"
 -msgstr "Montenegro"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_QUIT"
 -msgstr "STOCK_QUIT"
++msgstr ""
+ #. module: base
+ #: view:ir.cron:0
+ msgid "Technical Data"
+ msgstr ""
+ #. module: base
+ #: view:res.partner:0
+ #: field:res.partner,category_id:0
+ msgid "Categories"
 -msgstr "Categorieën"
++msgstr ""
++
++#. module: base
++#: view:base.language.import:0
++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 "
++"ones can be found on launchpad."
++msgstr ""
+ #. module: base
++#: view:ir.module.module:0
+ #: selection:ir.module.module,state:0
+ #: selection:ir.module.module.dependency,state:0
+ msgid "To be upgraded"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ly
+ msgid "Libya"
 -msgstr "Libië"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-purchase"
 -msgstr "terp-purchase"
 -
 -#. module: base
 -#: wizard_field:module.module.update,init,repositories:0
 -msgid "Repositories"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.cf
+ msgid "Central African Republic"
 -msgstr "Centraal-Afrikaanse Republiek"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.li
+ msgid "Liechtenstein"
 -msgstr "Liechtenstein"
 -
 -#. module: base
 -#: model:res.partner.title,name:base.res_partner_title_ltd
 -msgid "Ltd"
+ msgstr ""
+ #. module: base
 -#: field:ir.actions.server,expression:0
 -msgid "Loop Expression"
++#: model:ir.model,name:base.model_partner_sms_send
++#: view:partner.sms.send:0
++msgid "Send SMS"
+ msgstr ""
+ #. module: base
 -#: field:ir.actions.report.custom,report_id:0
 -msgid "Report Ref."
 -msgstr "Rapport Ref."
 -
 -#. module: base
+ #: field:res.partner,ean13:0
+ msgid "EAN13"
 -msgstr "EAN13"
++msgstr ""
++
++#. module: base
++#: code:addons/orm.py:1622
++#, python-format
++msgid "Invalid Architecture!"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.pt
+ msgid "Portugal"
 -msgstr "Portugal"
++msgstr ""
+ #. module: base
 -#: selection:maintenance.contract,state:0
 -msgid "Unvalid"
 -msgstr "Ongeldig"
++#: sql_constraint:ir.model.data:0
++msgid ""
++"You cannot have multiple records with the same id for the same module !"
++msgstr ""
+ #. module: base
+ #: field:ir.module.module,certificate:0
+ msgid "Quality Certificate"
 -msgstr "Kwaliteitscertificaat"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "6.  %d, %m         ==> 05, 12"
 -msgstr "6.  %d. %m         ==> 05. 12"
++msgstr ""
++
++#. module: base
++#: field:res.config.users,date:0
++#: field:res.users,date:0
++msgid "Last Connection"
++msgstr ""
++
++#. module: base
++#: field:ir.actions.act_window,help:0
++msgid "Action description"
++msgstr ""
+ #. module: base
+ #: help:res.partner,customer:0
+ msgid "Check this box if the partner is a customer."
 -msgstr "Vink dit vakje aan als de relatie een klant is"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.res_lang_act_window
+ #: model:ir.model,name:base.model_res_lang
+ #: model:ir.ui.menu,name:base.menu_res_lang_act_window
+ #: view:res.lang:0
+ msgid "Languages"
 -msgstr "Talen"
++msgstr ""
+ #. module: base
+ #: selection:workflow.activity,join_mode:0
+ #: selection:workflow.activity,split_mode:0
+ msgid "Xor"
 -msgstr "Xor"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ec
+ msgid "Ecuador"
 -msgstr "Ecuador"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/module/wizard/wizard_export_lang.py:0
++#: code:addons/base/module/wizard/base_export_language.py:52
+ #, python-format
+ msgid ""
+ "Save this document to a .CSV file and open it with your favourite "
+ "spreadsheet software. The file encoding is UTF-8. You have to translate the "
+ "latest column before reimporting it."
+ msgstr ""
+ #. module: base
++#: model:ir.actions.act_window,name:base.action_partner_customer_form
++#: model:ir.actions.act_window,name:base.action_partner_form
++#: model:ir.ui.menu,name:base.menu_partner_form
++#: view:res.partner:0
++msgid "Customers"
++msgstr ""
++
++#. module: base
+ #: model:res.country,name:base.au
+ msgid "Australia"
 -msgstr "Australië"
++msgstr ""
+ #. module: base
+ #: help:res.partner,lang:0
+ msgid ""
+ "If the selected language is loaded in the system, all documents related to "
+ "this partner will be printed in this language. If not, it will be english."
+ msgstr ""
+ #. module: base
 -#: rml:ir.module.reference:0
++#: report:ir.module.reference.graph:0
+ msgid "Menu :"
 -msgstr "Menu :"
++msgstr ""
+ #. module: base
+ #: selection:ir.model.fields,state:0
+ msgid "Base Field"
+ msgstr ""
+ #. module: base
 -#: field:ir.actions.report.xml,report_sxw_content:0
 -#: field:ir.actions.report.xml,report_sxw_content_data:0
 -msgid "SXW content"
++#: view:publisher_warranty.contract:0
++msgid "Validate"
++msgstr ""
++
++#. module: base
++#: field:ir.actions.todo,restart:0
++msgid "Restart"
++msgstr ""
++
++#. module: base
++#: field:ir.actions.report.xml,report_sxw_content:0
++#: field:ir.actions.report.xml,report_sxw_content_data:0
++msgid "SXW content"
++msgstr ""
++
++#. module: base
++#: view:ir.actions.wizard:0
++#: field:wizard.ir.model.menu.create.line,wizard_id:0
++msgid "Wizard"
+ msgstr ""
+ #. module: base
+ #: view:ir.cron:0
+ msgid "Action to Trigger"
+ msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_res_currency_rate
 -msgid "Currency Rate"
 -msgstr "Wisselkoers"
++#: code:addons/base/res/res_user.py:136
++#, python-format
++msgid "\"email_from\" needs to be set to send welcome mails to users"
++msgstr ""
+ #. module: base
 -#: field:ir.report.custom.fields,fc0_operande:0
 -#: field:ir.report.custom.fields,fc1_operande:0
 -#: field:ir.report.custom.fields,fc2_operande:0
 -#: field:ir.report.custom.fields,fc3_operande:0
+ #: selection:ir.translation,type:0
+ msgid "Constraint"
 -msgstr "Begrenzing"
++msgstr ""
+ #. module: base
+ #: selection:ir.values,key:0
+ #: selection:res.partner.address,type:0
+ msgid "Default"
+ msgstr ""
+ #. module: base
++#: view:ir.model.fields:0
+ #: field:ir.model.fields,required:0
+ #: field:res.partner.bank.type.field,required:0
+ msgid "Required"
 -msgstr "Verplicht"
++msgstr ""
+ #. module: base
 -#: field:ir.model.fields,domain:0
 -#: field:ir.rule,domain:0
 -#: field:res.partner.title,domain:0
 -msgid "Domain"
 -msgstr "Domein"
++#: view:res.users:0
++msgid "Default Filters"
++msgstr ""
+ #. module: base
+ #: field:res.request.history,name:0
+ msgid "Summary"
 -msgstr "Samenvatting"
++msgstr ""
++
++#. module: base
++#: field:multi_company.default,expression:0
++msgid "Expression"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.server,subject:0
+ msgid ""
+ "Specify the subject. You can use fields from the object, e.g. `Hello [[ "
+ "object.partner_id.name ]]`"
+ msgstr ""
 -"Geef het onderwerp. U kunt velden van het object gebruiken, bijv. `Beste [[ "
 -"object.partner_id.name ]]`"
+ #. module: base
+ #: view:res.company:0
+ msgid "Header/Footer"
 -msgstr "Koptekst/Voettekst"
 -
 -#. module: base
 -#: model:res.country,name:base.lb
 -msgid "Lebanon"
 -msgstr "Libanon"
++msgstr ""
+ #. module: base
 -#: wizard_field:module.lang.import,init,name:0
 -msgid "Language name"
 -msgstr "Taalnaam"
++#: help:ir.actions.act_window,help:0
++msgid ""
++"Optional help text for the users with a description of the target view, such "
++"as its usage and purpose."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.va
+ msgid "Holy See (Vatican City State)"
 -msgstr "Vaticaanstad"
++msgstr ""
+ #. module: base
 -#: wizard_field:base.module.import,init,module_file:0
++#: field:base.module.import,module_file:0
+ msgid "Module .ZIP file"
 -msgstr "Module .ZIP bestand"
++msgstr ""
+ #. module: base
 -#: field:workflow.transition,trigger_model:0
 -msgid "Trigger Object"
++#: field:ir.ui.view,xml_id:0
++msgid "XML ID"
++msgstr ""
++
++#. module: base
++#: model:res.partner.category,name:base.res_partner_category_16
++msgid "Telecom sector"
+ msgstr ""
+ #. module: base
 -#: selection:ir.report.custom,state:0
 -msgid "Subscribed"
 -msgstr "Geabonneerd"
++#: field:workflow.transition,trigger_model:0
++msgid "Trigger Object"
++msgstr ""
+ #. module: base
 -#: wizard_view:module.lang.install,init:0
 -#: wizard_view:module.upgrade,next:0
 -msgid "System Upgrade"
 -msgstr "Systeem Upgrade"
++#: view:res.users:0
++msgid "Current Activity"
++msgstr ""
+ #. module: base
++#: view:workflow.activity:0
+ #: field:workflow.activity,in_transitions:0
+ msgid "Incoming Transitions"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.sr
+ msgid "Suriname"
 -msgstr "Suriname"
 -
 -#. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "The create method is not implemented on this object !"
 -msgstr "De methode aanmaken is niet in dit object geïmplementeerd !"
++msgstr ""
+ #. module: base
 -#: field:ir.values,key2:0
 -#: view:res.partner.event.type:0
 -#: field:res.partner.event.type,name:0
 -msgid "Event Type"
++#: model:ir.ui.menu,name:base.marketing_menu
++msgid "Marketing"
+ msgstr ""
+ #. module: base
+ #: view:res.partner.bank:0
+ #: model:res.partner.bank.type,name:base.bank_normal
+ msgid "Bank account"
 -msgstr "Bankrekening"
++msgstr ""
+ #. module: base
 -#: view:ir.sequence.type:0
 -msgid "Sequence Type"
++#: selection:base.language.install,lang:0
++msgid "Spanish (HN) / Español (HN)"
+ msgstr ""
+ #. module: base
 -#: code:addons/addons/base/module/module.py:0
 -#, python-format
 -msgid ""
 -"You try to upgrade a module that depends on the module: %s.\n"
 -"But this module is not available in your system."
++#: view:ir.sequence.type:0
++msgid "Sequence Type"
+ msgstr ""
+ #. module: base
 -#: view:res.partner.address:0
 -msgid "Partner Address"
 -msgstr "Relatie Adres"
++#: view:ir.ui.view.custom:0
++msgid "Customized Architecture"
++msgstr ""
+ #. module: base
+ #: field:ir.module.module,license:0
+ msgid "License"
 -msgstr "Licentie"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_report_custom.py:0
 -#, python-format
 -msgid "Invalid operation"
 -msgstr "Ongeldige bewerking"
++#: field:ir.attachment,url:0
++msgid "Url"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_SAVE_AS"
 -msgstr "STOCK_SAVE_AS"
++#: selection:ir.actions.todo,restart:0
++msgid "Always"
++msgstr ""
++
++#. module: base
++#: selection:ir.translation,type:0
++msgid "SQL Constraint"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.server,srcmodel_id:0
++#: field:ir.model.fields,model_id:0
+ msgid "Model"
+ msgstr ""
+ #. module: base
 -#: code:addons/addons/base/module/module.py:0
 -#, python-format
++#: view:base.language.install:0
+ msgid ""
 -"You try to install a module that depends on the module: %s.\n"
 -"But this module is not available in your system."
++"The selected language has been successfully installed. You must change the "
++"preferences of the user and open a new menu to view the changes."
+ msgstr ""
+ #. module: base
 -#: field:ir.actions.act_window.view,view_id:0
 -#: field:ir.default,page:0
 -#: selection:ir.translation,type:0
 -#: field:wizard.ir.model.menu.create.line,view_id:0
 -msgid "View"
 -msgstr "Weergave"
 -
 -#. module: base
 -#: field:ir.actions.server,write_id:0
 -msgid "Write Id"
++#: sql_constraint:ir.config_parameter:0
++msgid "Key must be unique."
+ msgstr ""
+ #. module: base
+ #: view:ir.actions.act_window:0
+ msgid "Open a Window"
 -msgstr "Open een Venster"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.gq
+ msgid "Equatorial Guinea"
 -msgstr "Equatoriaal Guinea"
++msgstr ""
+ #. module: base
 -#: wizard_view:base.module.import,init:0
++#: view:base.module.import:0
++#: model:ir.actions.act_window,name:base.action_view_base_module_import
+ msgid "Module Import"
 -msgstr "Module import"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid ""
 -"Language with code \"%s\" is not defined in your system !\n"
 -"Define it through the Administration menu."
++#: field:res.bank,zip:0
++#: field:res.partner.address,zip:0
++#: field:res.partner.bank,zip:0
++msgid "Zip"
+ msgstr ""
+ #. module: base
++#: view:ir.module.module:0
+ #: field:ir.module.module,author:0
+ msgid "Author"
 -msgstr "Auteur"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_UNDELETE"
 -msgstr "STOCK_UNDELETE"
++#: model:res.country,name:base.mk
++msgid "FYROM"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "%c - Appropriate date and time representation."
 -msgstr "%c - Passende datum en tijd weergave."
++msgstr ""
++
++#. module: base
++#: code:addons/base/res/res_config.py:422
++#, python-format
++msgid ""
++"Your database is now fully configured.\n"
++"\n"
++"Click 'Continue' and enjoy your OpenERP experience..."
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Finland / Suomi"
++#: selection:base.language.install,lang:0
++msgid "Hebrew / עִבְרִי"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bo
+ msgid "Bolivia"
 -msgstr "Bolivië"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.gh
+ msgid "Ghana"
 -msgstr "Ghana"
++msgstr ""
+ #. module: base
+ #: field:res.lang,direction:0
+ msgid "Direction"
 -msgstr "Richting"
 -
 -#. module: base
 -#: model:ir.model,name:base.model_wizard_module_update_translations
 -msgid "wizard.module.update_translations"
 -msgstr "wizard.module.update_translations"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.act_window:0
+ #: model:ir.actions.act_window,name:base.action_ui_view
+ #: field:ir.actions.act_window,view_ids:0
+ #: field:ir.actions.act_window,views:0
+ #: field:ir.module.module,views_by_module:0
+ #: model:ir.ui.menu,name:base.menu_action_ui_view
+ #: view:ir.ui.view:0
 -#: view:wizard.ir.model.menu.create:0
 -#: field:wizard.ir.model.menu.create,view_ids:0
+ msgid "Views"
 -msgstr "Weergaven"
++msgstr ""
+ #. module: base
+ #: view:res.groups:0
+ #: field:res.groups,rule_groups:0
 -#: field:res.users,rules_id:0
+ msgid "Rules"
+ msgstr ""
+ #. module: base
 -#: code:addons/addons/base/module/module.py:0
++#: code:addons/base/module/module.py:216
+ #, python-format
+ msgid "You try to remove a module that is installed or will be installed"
+ msgstr ""
 -"U probeert een module te verwijderen die geïnstalleerd is of nog moet worden "
 -"geïnstalleerd."
+ #. module: base
 -#: help:ir.values,key2:0
 -msgid ""
 -"The kind of action or button in the client side that will trigger the action."
 -msgstr "De soort actie of knop in de client die deze actie zal triggeren."
++#: view:base.module.upgrade:0
++msgid "The selected modules have been updated / installed !"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_PASTE"
 -msgstr "STOCK_PASTE"
++#: selection:base.language.install,lang:0
++msgid "Spanish (PR) / Español (PR)"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.gt
+ msgid "Guatemala"
 -msgstr "Guatemala"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_workflow_form
++#: model:ir.ui.menu,name:base.menu_low_workflow
+ #: model:ir.ui.menu,name:base.menu_workflow
++#: model:ir.ui.menu,name:base.menu_workflow_root
+ msgid "Workflows"
+ msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_config_wizard_form
 -#: model:ir.ui.menu,name:base.menu_config_module
 -msgid "Configuration Wizard"
 -msgstr "Configuratie Assistent"
++#: field:ir.translation,xml_id:0
++msgid "XML Id"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,name:base.action_config_user_form
++msgid "Create Users"
++msgstr ""
++
++#. module: base
++#: model:ir.model,name:base.model_res_partner_title
++msgid "res.partner.title"
++msgstr ""
++
++#. module: base
++#: view:ir.values:0
++msgid "tree_but_action, client_print_multi"
++msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_res_roles
 -msgid "res.roles"
 -msgstr "res.roles"
++#: model:res.partner.category,name:base.res_partner_category_retailers0
++msgid "Retailers"
++msgstr ""
+ #. module: base
+ #: help:ir.cron,priority:0
+ msgid ""
+ "0=Very Urgent\n"
+ "10=Not urgent"
+ msgstr ""
+ #. module: base
 -#: view:res.users:0
++#: view:res.config:0
++#: view:res.config.installer:0
+ msgid "Skip"
 -msgstr "Overslaan"
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.res_request_link-act
 -#: model:ir.ui.menu,name:base.menu_res_request_link_act
 -msgid "Accepted Links in Requests"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ls
+ msgid "Lesotho"
 -msgstr "Lesotho"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.grant_menu_access
 -#: model:ir.ui.menu,name:base.menu_grant_menu_access
 -msgid "Grant Access To Menus"
 -msgstr "Geeft Toegang Tot Menu's"
++#: code:addons/base/ir/ir_model.py:114
++#, python-format
++msgid "You can not remove the model '%s' !"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ke
+ msgid "Kenya"
 -msgstr "Kenia"
++msgstr ""
+ #. module: base
 -#: view:res.config.view:0
 -msgid ""
 -"Choose the simplified interface if you are testing OpenERP for the first "
 -"time. Less used options or fields are automatically hidden. You will be able "
 -"to change this, later, through the Administration menu."
++#: view:res.partner.event:0
++msgid "Event"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_custom_reports
++msgid "Custom Reports"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Abkhazian / аҧсуа"
+ msgstr ""
 -"Kies de eenvoudige interface als u OpenERP voor de eerste keer test. Minder "
 -"opties gebruikt of velden worden automatisch verborgen. U kunt dit later "
 -"wijzigen in het Administratie menu."
+ #. module: base
 -#: code:addons/osv/orm.py:0
++#: view:base.module.configuration:0
++msgid "System Configuration Done"
++msgstr ""
++
++#. module: base
++#: code:addons/orm.py:929
+ #, python-format
+ msgid "Error occurred while validating the field(s) %s: %s"
+ msgstr ""
+ #. module: base
++#: view:ir.property:0
++msgid "Generic"
++msgstr ""
++
++#. module: base
+ #: model:res.country,name:base.sm
+ msgid "San Marino"
 -msgstr "San Marino"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bm
+ msgid "Bermuda"
 -msgstr "Bermuda"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.pe
+ msgid "Peru"
 -msgstr "Peru"
++msgstr ""
+ #. module: base
+ #: selection:ir.model.fields,on_delete:0
+ msgid "Set NULL"
 -msgstr "Set NULL"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bj
+ msgid "Benin"
 -msgstr "Benin"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_CONNECT"
 -msgstr "STOCK_CONNECT"
++#: code:addons/base/publisher_warranty/publisher_warranty.py:281
++#, python-format
++msgid "That contract is already registered in the system."
++msgstr ""
+ #. module: base
 -#: selection:ir.model.fields,select_level:0
 -msgid "Not Searchable"
 -msgstr "Niet Zoekbaar"
++#: help:ir.sequence,suffix:0
++msgid "Suffix value of the record for the sequence"
++msgstr ""
+ #. module: base
 -#: field:res.partner.event.type,key:0
 -msgid "Key"
 -msgstr "Sleutel"
++#: selection:base.language.install,lang:0
++msgid "Spanish (PY) / Español (PY)"
++msgstr ""
+ #. module: base
 -#: field:ir.cron,nextcall:0
 -msgid "Next Call Date"
++#: field:ir.config_parameter,key:0
++msgid "Key"
+ msgstr ""
+ #. module: base
+ #: field:res.company,rml_header:0
+ msgid "RML Header"
+ msgstr ""
+ #. module: base
 -#: wizard_field:res.partner.sms_send,init,app_id:0
++#: field:partner.sms.send,app_id:0
+ msgid "API ID"
 -msgstr "API ID"
++msgstr ""
++
++#. module: base
++#: code:addons/base/ir/ir_model.py:486
++#, python-format
++msgid ""
++"You can not create this document (%s) ! Be sure your user belongs to one of "
++"these groups: %s."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.mu
+ msgid "Mauritius"
 -msgstr "Mauritius"
++msgstr ""
+ #. module: base
 -#: wizard_view:module.module.update,init:0
 -msgid "Scan for new modules"
 -msgstr "Zoeken naar nieuwe modules"
++#: view:ir.model.access:0
++#: view:ir.rule:0
++msgid "Full Access"
++msgstr ""
+ #. module: base
++#: view:ir.actions.act_window:0
++#: view:ir.actions.report.xml:0
++#: view:ir.actions.wizard:0
++#: view:ir.model.fields:0
+ #: model:ir.ui.menu,name:base.menu_security
+ msgid "Security"
 -msgstr "Beveiliging"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_report_custom.py:0
 -#, python-format
 -msgid "Using a relation field which uses an unknown object"
++#: model:res.widget,title:base.openerp_favorites_twitter_widget
++msgid "OpenERP Favorites"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.za
+ msgid "South Africa"
 -msgstr "Zuid-Afrika"
 -
 -#. module: base
 -#: model:ir.model,name:base.model_wizard_module_lang_export
 -msgid "wizard.module.lang.export"
 -msgstr "wizard.module.lang.export"
++msgstr ""
+ #. module: base
++#: view:ir.module.module:0
+ #: selection:ir.module.module,state:0
+ #: selection:ir.module.module.dependency,state:0
+ msgid "Installed"
 -msgstr "Geïnstalleerd"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Ukrainian / українська"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,name:base.action_translation
++#: model:ir.ui.menu,name:base.menu_action_translation
++msgid "Translation Terms"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.sn
+ msgid "Senegal"
 -msgstr "Senegal"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.hu
+ msgid "Hungary"
 -msgstr "Hongarije"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_res_groups
+ msgid "res.groups"
 -msgstr "res.groups"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.br
+ msgid "Brazil"
 -msgstr "Brazilië"
++msgstr ""
++
++#. module: base
++#: view:res.lang:0
++msgid "%M - Minute [00,59]."
++msgstr ""
++
++#. module: base
++#: selection:ir.module.module,license:0
++msgid "Affero GPL-3"
++msgstr ""
+ #. module: base
+ #: field:ir.sequence,number_next:0
+ msgid "Next Number"
 -msgstr "Volgende nummer"
++msgstr ""
+ #. module: base
 -#: view:res.currency:0
 -#: field:res.currency,rate_ids:0
 -msgid "Rates"
++#: help:workflow.transition,condition:0
++msgid "Expression to be satisfied if we want the transition done."
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Spanish (PA) / Español (PA)"
+ msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Albanian / Shqipëri"
++#: view:res.currency:0
++#: field:res.currency,rate_ids:0
++msgid "Rates"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.sy
+ msgid "Syria"
 -msgstr "Syrië"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "======================================================"
 -msgstr "======================================================"
 -
 -#. module: base
 -#: field:ir.report.custom.fields,field_child3:0
 -msgid "Field child3"
+ msgstr ""
+ #. module: base
 -#: field:ir.report.custom.fields,field_child0:0
 -msgid "Field child0"
++#: help:ir.actions.server,mobile:0
++msgid ""
++"Provides fields that be used to fetch the mobile number, e.g. you select the "
++"invoice, then `object.invoice_address_id.mobile` is the field which gives "
++"the correct mobile number"
+ msgstr ""
+ #. module: base
 -#: field:ir.report.custom.fields,field_child1:0
 -msgid "Field child1"
++#: view:base.module.upgrade:0
++msgid "System update completed"
+ msgstr ""
+ #. module: base
 -#: field:ir.model.fields,selection:0
 -msgid "Field Selection"
++#: selection:res.request,state:0
++msgid "draft"
+ msgstr ""
+ #. module: base
++#: selection:ir.property,type:0
++#: field:res.currency,date:0
+ #: field:res.currency.rate,name:0
+ #: field:res.partner,date:0
+ #: field:res.partner.event,date:0
+ #: field:res.request,date_sent:0
+ msgid "Date"
 -msgstr "datum"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.report.xml,report_sxw:0
+ msgid "SXW path"
 -msgstr "SXW pad"
++msgstr ""
+ #. module: base
+ #: view:ir.attachment:0
+ msgid "Data"
 -msgstr "Gegevens"
 -
 -#. module: base
 -#: field:ir.cron,user_id:0
 -#: field:ir.ui.view.custom,user_id:0
 -#: field:ir.values,user_id:0
 -#: field:res.partner.event,user_id:0
 -#: view:res.users:0
 -msgid "User"
 -msgstr "Gebruiker"
 -
 -#. module: base
 -#: view:res.users:0
 -msgid "Groups are used to defined access rights on each screen and menu."
 -msgstr ""
 -"Groepen worden gebruikt om toegang tot schermen en menu's te verlenen."
++msgstr ""
+ #. module: base
+ #: field:ir.ui.menu,parent_id:0
+ #: field:wizard.ir.model.menu.create,menu_id:0
+ msgid "Parent Menu"
 -msgstr "Bovenliggend Menu"
++msgstr ""
+ #. module: base
 -#: help:ir.actions.act_window.view,multi:0
 -#: help:ir.actions.report.custom,multi:0
 -#: help:ir.actions.report.xml,multi:0
 -msgid ""
 -"If set to true, the action will not be displayed on the right toolbar of a "
 -"form view."
++#: field:ir.rule,perm_unlink:0
++msgid "Apply For Delete"
++msgstr ""
++
++#. module: base
++#: code:addons/base/ir/ir_model.py:319
++#, python-format
++msgid "Cannot rename column to %s, because that column already exists!"
+ msgstr ""
+ #. module: base
+ #: view:ir.attachment:0
+ msgid "Attached To"
+ msgstr ""
+ #. module: base
+ #: field:res.lang,decimal_point:0
+ msgid "Decimal Separator"
 -msgstr "Decimaal scheidingsteken"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,help:base.action_res_groups
++msgid ""
++"A group is a set of functional areas that will be assigned to the user in "
++"order to give them access and rights to specific applications and tasks in "
++"the system. You can create custom groups or edit the ones existing by "
++"default in order to customize the view of the menu that users will be able "
++"to see. Whether they can have a read, write, create and delete access right "
++"can be managed from here."
++msgstr ""
+ #. module: base
+ #: view:res.partner:0
+ #: view:res.request:0
+ #: field:res.request,history:0
+ msgid "History"
+ msgstr ""
+ #. module: base
+ #: field:ir.attachment,create_uid:0
+ msgid "Creator"
 -msgstr "Maker"
++msgstr ""
++
++#. module: base
++#: model:res.company,overdue_msg:base.main_company
++msgid ""
++"Please note that the following payments are now due. If your payment         "
++"                has been sent, kindly forward your payment details. If "
++"payment will be                         delayed further, please contact us "
++"to discuss.                         \n"
++"Would your payment have been carried out after this mail was sent, please "
++"consider the present one as void."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.mx
+ msgid "Mexico"
 -msgstr "Mexico"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Swedish / svenska"
 -msgstr "Sweeds / svenska"
++#: model:ir.ui.menu,name:base.menu_base_config_plugins
++msgid "Plugins"
++msgstr ""
+ #. module: base
+ #: field:res.company,child_ids:0
+ msgid "Child Companies"
+ msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_res_users
+ msgid "res.users"
 -msgstr "res.users"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ni
+ msgid "Nicaragua"
 -msgstr "Nicaragua"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/orm.py:1046
+ #, python-format
+ msgid "The write method is not implemented on this object !"
+ msgstr ""
+ #. module: base
+ #: view:res.partner.event:0
+ msgid "General Description"
 -msgstr "Algemene Omschrijving"
++msgstr ""
+ #. module: base
 -#: selection:res.partner.event,type:0
 -msgid "Sale Opportunity"
++#: model:ir.actions.act_window,name:base.action_config_simple_view_form
++#: view:res.config.view:0
++msgid "Configure Your Interface"
+ msgstr ""
+ #. module: base
+ #: field:ir.values,meta:0
+ msgid "Meta Datas"
+ msgstr ""
+ #. module: base
 -#: field:ir.rule,field_id:0
 -#: selection:ir.translation,type:0
 -msgid "Field"
 -msgstr "Veld"
++#: sql_constraint:ir.ui.view_sc:0
++msgid "Shortcut for this menu already exists!"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.ve
++msgid "Venezuela"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "9.  %j              ==> 340"
 -msgstr "9.  %j             ==> 340"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.zm
+ msgid "Zambia"
 -msgstr "Zambia"
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.ir_action_report_xml
 -#: model:ir.ui.menu,name:base.menu_ir_action_report_xml
 -msgid "Report Xml"
 -msgstr "Rapport Xml"
++msgstr ""
+ #. module: base
+ #: help:res.partner,user_id:0
+ msgid ""
+ "The internal user that is in charge of communicating with this partner if "
+ "any."
+ msgstr ""
+ #. module: base
++#: field:res.partner,parent_id:0
++msgid "Parent Partner"
++msgstr ""
++
++#. module: base
+ #: view:ir.module.module:0
+ msgid "Cancel Upgrade"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ci
+ msgid "Ivory Coast (Cote D'Ivoire)"
 -msgstr "Ivoorkust"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.kz
+ msgid "Kazakhstan"
 -msgstr "Kazachstan"
++msgstr ""
++
++#. module: base
++#: view:res.lang:0
++msgid "%w - Weekday number [0(Sunday),6]."
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,help:base.action_partner_form
++msgid ""
++"A customer is an entity you do business with, like a company or an "
++"organization. A customer can have several contacts or addresses which are "
++"the people working for this company. You can use the history tab, to follow "
++"all transactions related to a customer: sales order, emails, opportunities, "
++"claims, etc. If you use the email gateway, the Outlook or the Thunderbird "
++"plugin, don't forget to register emails to each contact so that the gateway "
++"will automatically attach incoming emails to the right partner."
++msgstr ""
+ #. module: base
+ #: field:ir.actions.report.xml,name:0
+ #: field:ir.actions.todo,name:0
+ #: field:ir.cron,name:0
+ #: field:ir.model.access,name:0
+ #: field:ir.model.fields,name:0
+ #: field:ir.module.category,name:0
+ #: field:ir.module.module,name:0
+ #: field:ir.module.module.dependency,name:0
 -#: rml:ir.module.reference:0
 -#: field:ir.module.repository,name:0
++#: report:ir.module.reference.graph:0
+ #: field:ir.property,name:0
 -#: field:ir.report.custom.fields,name:0
++#: field:ir.rule,name:0
++#: field:ir.sequence,name:0
++#: field:ir.sequence.type,name:0
+ #: field:ir.values,name:0
 -#: field:maintenance.contract.module,name:0
++#: field:multi_company.default,name:0
+ #: field:res.bank,name:0
+ #: field:res.config.view,name:0
+ #: field:res.lang,name:0
+ #: field:res.partner,name:0
+ #: field:res.partner.bank.type,name:0
++#: view:res.partner.event:0
+ #: field:res.request.link,name:0
 -#: field:res.users,name:0
+ #: field:workflow,name:0
+ #: field:workflow.activity,name:0
+ msgid "Name"
 -msgstr "Naam"
++msgstr ""
++
++#. module: base
++#: help:ir.actions.act_window,multi:0
++msgid ""
++"If set to true, the action will not be displayed on the right toolbar of a "
++"form view"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ms
+ msgid "Montserrat"
+ msgstr ""
+ #. module: base
++#: code:addons/base/ir/ir_model.py:205
++#, python-format
++msgid ""
++"The Selection Options expression is not a valid Pythonic expression.Please "
++"provide an expression in the [('key','Label'), ...] format."
++msgstr ""
++
++#. module: base
+ #: model:ir.ui.menu,name:base.menu_translation_app
+ msgid "Application Terms"
+ msgstr ""
+ #. module: base
 -#: selection:ir.report.custom.fields,operation:0
 -msgid "Calculate Average"
 -msgstr "Bereken Gemiddelde"
++#: help:res.config.users,context_tz:0
++#: help:res.users,context_tz:0
++msgid ""
++"The user's timezone, used to perform timezone conversions between the server "
++"and the client."
++msgstr ""
+ #. module: base
+ #: field:ir.module.module,demo:0
+ msgid "Demo data"
 -msgstr "Demo gegevens"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_workflow_instance_form
 -#: model:ir.ui.menu,name:base.menu_workflow_instance
 -msgid "Instances"
 -msgstr "Exemplaren"
++#: selection:base.language.install,lang:0
++msgid "English (UK)"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.aq
 -msgid "Antarctica"
 -msgstr "Antarctica"
++#: selection:base.language.install,lang:0
++msgid "Japanese / 日本語"
++msgstr ""
++
++#. module: base
++#: help:workflow.transition,act_from:0
++msgid ""
++"Source activity. When this activity is over, the condition is tested to "
++"determine if we can start the ACT_TO activity."
++msgstr ""
+ #. module: base
+ #: model:res.partner.category,name:base.res_partner_category_3
+ msgid "Starter Partner"
+ msgstr ""
+ #. module: base
++#: help:ir.model.fields,relation_field:0
++msgid ""
++"For one2many fields, the field on the target model that implement the "
++"opposite many2one relationship"
++msgstr ""
++
++#. module: base
+ #: model:ir.model,name:base.model_ir_actions_act_window_view
+ msgid "ir.actions.act_window.view"
 -msgstr "ir.actions.act_window.view"
++msgstr ""
+ #. module: base
 -#: rml:ir.module.reference:0
++#: report:ir.module.reference.graph:0
+ msgid "Web"
 -msgstr "Web"
 -
 -#. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid ""
 -"You try to write on an record that doesn't exist ' \\n                       "
 -"                 '(Document type: %s)."
+ msgstr ""
+ #. module: base
 -#: field:res.bank,zip:0
 -#: field:res.partner.address,zip:0
 -#: field:res.partner.bank,zip:0
 -msgid "Zip"
 -msgstr "Postcode"
 -
 -#. module: base
 -#: field:res.partner.event,planned_revenue:0
 -msgid "Planned Revenue"
 -msgstr "Geraamde Opbrengst"
++#: selection:base.language.install,lang:0
++msgid "English (CA)"
++msgstr ""
+ #. module: base
 -#: wizard_view:module.lang.import,init:0
 -msgid ""
 -"You have to import a .CSV file wich is encoded in UTF-8.  Please check that "
 -"the first line of your file is one of the following:"
++#: model:ir.model,name:base.model_publisher_warranty_contract
++msgid "publisher_warranty.contract"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.et
+ msgid "Ethiopia"
 -msgstr "Ethiopië"
 -
 -#. module: base
 -#: view:res.lang:0
 -msgid "%H - Hour (24-hour clock) as a decimal number [00,23]."
 -msgstr "%H - Uur (24-uurs aanduiding) als een decimaal getal  [00,23]."
++msgstr ""
+ #. module: base
 -#: view:res.roles:0
 -msgid "Role"
 -msgstr "Rol"
++#: help:res.country.state,code:0
++msgid "The state code in three chars.\n"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.sj
+ msgid "Svalbard and Jan Mayen Islands"
 -msgstr "Svalbard en Jan Mayen eilanden"
++msgstr ""
+ #. module: base
 -#: view:ir.rule:0
 -msgid "Test"
 -msgstr "Test"
++#: model:ir.model,name:base.model_ir_actions_wizard
++#: selection:ir.ui.menu,action:0
++msgid "ir.actions.wizard"
++msgstr ""
+ #. module: base
 -#: field:ir.report.custom.fields,groupby:0
++#: view:ir.actions.act_window:0
++#: view:ir.actions.report.xml:0
++#: view:ir.actions.server:0
++#: view:ir.filters:0
++#: view:res.request:0
+ msgid "Group By"
 -msgstr "Groeperen op"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_model.py:0
 -#, python-format
 -msgid "'%s' contains too many dots. XML ids should not contain dots ! These are used to refer to other modules data, as in module.reference_id"
++#: view:res.config:0
++#: view:res.config.installer:0
++msgid "title"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_DIALOG_WARNING"
 -msgstr "STOCK_DIALOG_WARNING"
++#: model:ir.model,name:base.model_base_language_install
++msgid "Install Language"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_ZOOM_IN"
 -msgstr "STOCK_ZOOM_IN"
++#: view:ir.translation:0
++msgid "Translation"
++msgstr ""
+ #. module: base
+ #: selection:res.request,state:0
+ msgid "closed"
+ msgstr ""
+ #. module: base
 -#: selection:wizard.module.lang.export,state:0
++#: selection:base.language.export,state:0
+ msgid "get"
+ msgstr ""
+ #. module: base
+ #: help:ir.model.fields,on_delete:0
+ msgid "On delete property for many2one fields"
+ msgstr ""
+ #. module: base
 -#: model:res.country,name:base.do
 -msgid "Dominican Republic"
 -msgstr "Dominicaanse Republiek"
++#: field:ir.actions.server,write_id:0
++msgid "Write Id"
++msgstr ""
+ #. module: base
 -#: field:ir.actions.act_window,domain:0
 -msgid "Domain Value"
++#: model:ir.ui.menu,name:base.menu_product
++msgid "Products"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_ITALIC"
 -msgstr "STOCK_ITALIC"
++#: field:ir.actions.act_window,domain:0
++#: field:ir.filters,domain:0
++msgid "Domain Value"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ msgid "SMS Configuration"
 -msgstr "SMS instellingen"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Spanish (BO) / Español (BO)"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.ir_access_act
+ #: model:ir.ui.menu,name:base.menu_ir_access_act
+ msgid "Access Controls List"
 -msgstr "Toegangscontrole Lijst"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.um
+ msgid "USA Minor Outlying Islands"
+ msgstr ""
+ #. module: base
+ #: field:res.partner.bank,state:0
+ #: field:res.partner.bank.type.field,bank_type_id:0
+ msgid "Bank Type"
+ msgstr ""
+ #. module: base
 -#: code:addons/addons/base/res/res_user.py:0
++#: code:addons/base/res/res_user.py:58
++#: code:addons/base/res/res_user.py:67
+ #, python-format
+ msgid "The name of the group can not start with \"-\""
 -msgstr "De naam van de groep kan niet beginnen met \"-\""
 -
 -#. module: base
 -#: wizard_view:module.upgrade,end:0
 -#: wizard_view:module.upgrade,start:0
 -msgid "We suggest you to reload the menu tab (Ctrl+t Ctrl+r)."
+ msgstr ""
+ #. module: base
+ #: view:ir.ui.view_sc:0
+ #: field:res.partner.title,shortcut:0
+ msgid "Shortcut"
+ msgstr ""
+ #. module: base
+ #: field:ir.model.data,date_init:0
+ msgid "Init Date"
+ msgstr ""
+ #. module: base
++#: selection:base.language.install,lang:0
++msgid "Gujarati / ગુજરાતી"
++msgstr ""
++
++#. module: base
++#: code:addons/base/module/module.py:257
++#, python-format
++msgid ""
++"Unable to process module \"%s\" because an external dependency is not met: %s"
++msgstr ""
++
++#. module: base
++#: view:publisher_warranty.contract.wizard:0
++msgid "Please enter the serial key provided in your contract document:"
++msgstr ""
++
++#. module: base
++#: view:workflow.activity:0
+ #: field:workflow.activity,flow_start:0
+ msgid "Flow Start"
+ msgstr ""
+ #. module: base
 -#: view:ir.model:0
 -#: view:ir.model.fields:0
 -msgid "Security on Groups"
++#: code:addons/__init__.py:834
++#, python-format
++msgid "module base cannot be loaded! (hint: verify addons-path)"
+ msgstr ""
+ #. module: base
+ #: view:res.partner.bank:0
+ msgid "Bank Account Owner"
 -msgstr "Rekeninghouder"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.act_values_form
 -#: model:ir.ui.menu,name:base.menu_values_form
+ msgid "Client Actions Connections"
+ msgstr ""
+ #. module: base
++#: field:ir.attachment,res_name:0
+ #: field:ir.ui.view_sc,resource:0
+ msgid "Resource Name"
+ msgstr ""
+ #. module: base
+ #: selection:ir.cron,interval_type:0
+ msgid "Hours"
 -msgstr "Uren"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.gp
+ msgid "Guadeloupe (French)"
+ msgstr ""
+ #. module: base
 -#: field:ir.report.custom.fields,cumulate:0
 -msgid "Accumulate"
 -msgstr "Verzamelen"
++#: code:addons/base/res/res_lang.py:157
++#: code:addons/base/res/res_lang.py:159
++#: code:addons/base/res/res_lang.py:161
++#, python-format
++msgid "User Error"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_report_custom.py:0
 -#, python-format
 -msgid "Tree can only be used in tabular reports"
++#: help:workflow.transition,signal:0
++msgid ""
++"When the operation of transition comes from a button pressed in the client "
++"form, signal tests the name of the pressed button. If signal is NULL, no "
++"button is necessary to validate this transition."
++msgstr ""
++
++#. module: base
++#: help:multi_company.default,object_id:0
++msgid "Object affected by this rule"
+ msgstr ""
+ #. module: base
 -#: rml:ir.module.reference:0
++#: report:ir.module.reference.graph:0
+ msgid "Directory"
+ msgstr ""
+ #. module: base
+ #: field:wizard.ir.model.menu.create,name:0
+ msgid "Menu Name"
+ msgstr ""
+ #. module: base
 -#: field:ir.report.custom,title:0
 -msgid "Report Title"
++#: view:ir.module.module:0
++msgid "Author Website"
+ msgstr ""
+ #. module: base
 -#: field:ir.report.custom.fields,fontcolor:0
 -msgid "Font color"
 -msgstr "Tekstkleur"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_SORT_DESCENDING"
 -msgstr "STOCK_SORT_DESCENDING"
++#: view:ir.attachment:0
++msgid "Month"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.my
+ msgid "Malaysia"
 -msgstr "Maleisië"
++msgstr ""
++
++#. module: base
++#: view:base.language.install:0
++#: model:ir.actions.act_window,name:base.action_view_base_language_install
++msgid "Load Official Translation"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_res_request_history
+ msgid "res.request.history"
 -msgstr "res.request.history"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ msgid "Client Action Configuration"
+ msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_partner_address_form
+ #: model:ir.model,name:base.model_res_partner_address
+ #: view:res.partner.address:0
+ msgid "Partner Addresses"
 -msgstr "Relatie adressen"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Indonesian / Bahasa Indonesia"
++#: help:ir.model.fields,translate:0
++msgid ""
++"Whether values for this field can be translated (enables the translation "
++"mechanism for that field)"
+ msgstr ""
+ #. module: base
 -#: model:res.country,name:base.as
 -msgid "American Samoa"
 -msgstr "Amerikaans Samoa"
++#: view:res.lang:0
++msgid "%S - Seconds [00,61]."
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/module/module.py:0
 -#, python-format
 -msgid ""
 -"Some installed modules depend on the module you plan to Uninstall :\n"
 -" %s"
++#: model:res.country,name:base.cv
++msgid "Cape Verde"
++msgstr ""
++
++#. module: base
++#: view:base.module.import:0
++msgid "Select module package to import (.zip file):"
+ msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.act_res_partner_event
+ #: field:res.partner,events:0
+ #: field:res.partner.event,name:0
++#: model:res.widget,title:base.events_widget
+ msgid "Events"
+ msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_res_roles
 -#: model:ir.ui.menu,name:base.menu_action_res_roles
 -msgid "Roles Structure"
 -msgstr ""
 -
 -#. module: base
+ #: model:ir.model,name:base.model_ir_actions_url
+ #: selection:ir.ui.menu,action:0
+ msgid "ir.actions.url"
 -msgstr "ir.actions.url"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_MEDIA_STOP"
 -msgstr "STOCK_MEDIA_STOP"
++#: model:res.widget,title:base.currency_converter_widget
++msgid "Currency Converter"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/orm.py:156
+ #, python-format
+ msgid "Wrong ID for the browse record, got %r, expected an integer."
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_DND_MULTIPLE"
 -msgstr "STOCK_DND_MULTIPLE"
 -
 -#. module: base
+ #: model:ir.actions.act_window,name:base.action_partner_addess_tree
+ #: view:res.partner:0
+ msgid "Partner Contacts"
 -msgstr "Contactpersonen"
++msgstr ""
+ #. module: base
 -#: wizard_field:module.module.update,update,add:0
++#: field:base.module.update,add:0
+ msgid "Number of modules added"
 -msgstr "Aantal toegevoegde modules"
++msgstr ""
+ #. module: base
 -#: field:workflow.transition,role_id:0
 -msgid "Role Required"
 -msgstr "Rol Vereist"
++#: view:res.currency:0
++msgid "Price Accuracy"
++msgstr ""
+ #. module: base
 -#: view:ir.module.module:0
 -msgid "Created Menus"
 -msgstr "Aangemaakte Menu's"
++#: selection:base.language.install,lang:0
++msgid "Latvian / latviešu valoda"
++msgstr ""
+ #. module: base
 -#: field:workflow.triggers,workitem_id:0
 -msgid "Workitem"
++#: view:res.config:0
++#: view:res.config.installer:0
++msgid "vsep"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "French / Français"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_INDENT"
 -msgstr "STOCK_INDENT"
++#: code:addons/orm.py:1049
++#, python-format
++msgid "The create method is not implemented on this object !"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_ZOOM_OUT"
 -msgstr "STOCK_ZOOM_OUT"
++#: field:workflow.triggers,workitem_id:0
++msgid "Workitem"
++msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_ir_ui_view
 -msgid "ir.ui.view"
 -msgstr "ir.ui.view"
++#: view:ir.actions.todo:0
++msgid "Set as Todo"
++msgstr ""
++
++#. module: base
++#: field:ir.actions.act_window.view,act_window_id:0
++#: view:ir.actions.actions:0
++#: field:ir.actions.todo,action_id:0
++#: field:ir.ui.menu,action:0
++#: field:ir.values,action_id:0
++#: selection:ir.values,key:0
++#: view:res.users:0
++msgid "Action"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ msgid "Email Configuration"
 -msgstr "Email Configuratie"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_cron
+ msgid "ir.cron"
 -msgstr "ir.cron"
++msgstr ""
+ #. module: base
 -#: field:res.request,act_to:0
 -#: field:res.request.history,act_to:0
 -msgid "To"
 -msgstr "Aan"
++#: view:ir.rule:0
++msgid "Combination of rules"
++msgstr ""
++
++#. module: base
++#: view:ir.sequence:0
++msgid "Current Year without Century: %(y)s"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.server,trigger_obj_id:0
+ msgid "Trigger On"
+ msgstr ""
+ #. module: base
 -#: model:res.country,name:base.fj
 -msgid "Fiji"
 -msgstr "Fiji"
++#: sql_constraint:ir.rule:0
++msgid "Rule must have at least one checked access right !"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_CLOSE"
 -msgstr "STOCK_CLOSE"
++#: model:res.country,name:base.fj
++msgid "Fiji"
++msgstr ""
+ #. module: base
 -#: view:res.lang:0
 -msgid "%m - Month as a decimal number [01,12]."
 -msgstr "%m - Maand als een decimaal getal [01,12]."
++#: field:ir.model.fields,size:0
++msgid "Size"
++msgstr ""
+ #. module: base
 -#: view:wizard.module.lang.export:0
 -msgid "Export Data"
 -msgstr "Gegevens exporteren"
++#: model:res.country,name:base.sd
++msgid "Sudan"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.fm
+ msgid "Micronesia"
 -msgstr "Micronesië"
++msgstr ""
+ #. module: base
+ #: view:res.request.history:0
+ msgid "Request History"
+ msgstr ""
+ #. module: base
++#: field:ir.actions.act_window,menus:0
+ #: field:ir.module.module,menus_by_module:0
+ #: view:res.groups:0
+ msgid "Menus"
 -msgstr "Menu's"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Serbian (Latin) / srpski"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.il
+ msgid "Israel"
 -msgstr "Israël"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.wizard,name:base.wizard_server_action_create
+ msgid "Create Action"
+ msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_model_model
+ #: model:ir.model,name:base.model_ir_model
+ #: model:ir.ui.menu,name:base.ir_model_model_menu
+ msgid "Objects"
 -msgstr "Objecten"
++msgstr ""
+ #. module: base
+ #: field:res.lang,time_format:0
+ msgid "Time Format"
 -msgstr "Tijdnotatie"
 -
 -#. module: base
 -#: wizard_view:module.upgrade,next:0
 -msgid "Your system will be upgraded."
+ msgstr ""
+ #. module: base
+ #: view:ir.module.module:0
+ msgid "Defined Reports"
 -msgstr "Gedefinieerde Rapporten"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-tools"
 -msgstr "terp-tools"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.report.xml:0
+ msgid "Report xml"
 -msgstr "XML Rapport"
++msgstr ""
+ #. module: base
++#: field:base.language.export,modules:0
+ #: model:ir.actions.act_window,name:base.action_module_open_categ
+ #: model:ir.actions.act_window,name:base.open_module_tree
+ #: view:ir.module.module:0
++#: model:ir.ui.menu,name:base.menu_management
+ #: model:ir.ui.menu,name:base.menu_module_tree
 -#: field:wizard.module.lang.export,modules:0
+ msgid "Modules"
 -msgstr "Modules"
++msgstr ""
+ #. module: base
++#: view:workflow.activity:0
+ #: selection:workflow.activity,kind:0
+ #: field:workflow.activity,subflow_id:0
+ #: field:workflow.workitem,subflow_id:0
+ msgid "Subflow"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_UNDO"
 -msgstr "STOCK_UNDO"
++#: model:ir.model,name:base.model_res_config
++msgid "res.config"
++msgstr ""
+ #. module: base
+ #: field:workflow.transition,signal:0
+ msgid "Signal (button Name)"
+ msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_res_bank_form
+ #: model:ir.ui.menu,name:base.menu_action_res_bank_form
+ #: view:res.bank:0
+ #: field:res.partner,bank_ids:0
+ msgid "Banks"
 -msgstr "Banken"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-sale"
 -msgstr "terp-sale"
 -
 -#. module: base
 -#: view:res.lang:0
 -msgid "%d - Day of the month as a decimal number [01,31]."
 -msgstr "%d - Dag van de maand als decimaal getal [01,31]."
 -
 -#. module: base
 -#: view:res.lang:0
 -msgid "%I - Hour (12-hour clock) as a decimal number [01,12]."
 -msgstr "%I - Uur (12-uurs klok) als decimal getal [01,12]."
 -
 -#. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Romanian / limba română"
 -msgstr "Roemeens / limba română"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_ADD"
 -msgstr "STOCK_ADD"
++msgstr ""
+ #. module: base
 -#: selection:ir.report.custom.fields,fc0_op:0
 -#: selection:ir.report.custom.fields,fc1_op:0
 -#: selection:ir.report.custom.fields,fc2_op:0
 -#: selection:ir.report.custom.fields,fc3_op:0
 -#: selection:ir.rule,operator:0
 -msgid "in"
++#: view:res.log:0
++msgid "Unread"
+ msgstr ""
+ #. module: base
+ #: field:ir.cron,doall:0
+ msgid "Repeat Missed"
 -msgstr "Herhaal gemiste"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/module/wizard/wizard_module_import.py:0
 -#, python-format
 -msgid "Can not create the module file: %s !"
 -msgstr "Kan het modulebestand niet aanmaken: %s !"
++#: help:ir.actions.server,state:0
++msgid "Type of the Action that is to be executed"
++msgstr ""
+ #. module: base
+ #: field:ir.server.object.lines,server_id:0
+ msgid "Object Mapping"
+ msgstr ""
+ #. module: base
+ #: help:res.currency,rate:0
+ #: help:res.currency.rate,rate:0
+ msgid "The rate of the currency to the currency of rate 1"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.uk
+ msgid "United Kingdom"
 -msgstr "Groot-Brittanië"
++msgstr ""
+ #. module: base
 -#: view:ir.actions.server:0
 -msgid "Create / Write"
 -msgstr "Aanmaken / Schrijven"
++#: view:res.config:0
++#: view:res.config.users:0
++#: view:res.config.view:0
++msgid "res_config_contents"
++msgstr ""
+ #. module: base
+ #: help:res.partner.category,active:0
+ msgid "The active field allows you to hide the category without removing it."
+ msgstr ""
 -"Het actieve veld staat toe dat de categorie wordt verborgen zonder ze te "
 -"verwijderen."
+ #. module: base
 -#: rml:ir.module.reference:0
++#: report:ir.module.reference.graph:0
+ msgid "Object:"
 -msgstr "Object:"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bw
+ msgid "Botswana"
 -msgstr "Botswana"
 -
 -#. module: base
 -#: view:ir.module.module:0
 -msgid "Uninstall (beta)"
+ msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_partner_title_partner
+ #: model:ir.ui.menu,name:base.menu_partner_title_partner
+ #: view:res.partner.title:0
+ msgid "Partner Titles"
 -msgstr "Relatietitels"
 -
 -#. module: base
 -#: selection:ir.actions.todo,type:0
 -msgid "Service"
 -msgstr "Dienst"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.act_window,auto_refresh:0
+ msgid "Add an auto-refresh on the view"
 -msgstr "Automatisch herladen aan weergave toevoegen"
++msgstr ""
++
++#. module: base
++#: help:res.partner,employee:0
++msgid "Check this box if the partner is an Employee."
++msgstr ""
+ #. module: base
 -#: wizard_view:module.upgrade,next:0
 -#: wizard_field:module.upgrade,next,module_download:0
 -msgid "Modules to download"
++#: field:ir.actions.report.xml,report_rml_content:0
++#: field:ir.actions.report.xml,report_rml_content_data:0
++msgid "RML content"
+ msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_workflow_workitem_form
+ #: model:ir.ui.menu,name:base.menu_workflow_workitem
+ msgid "Workitems"
+ msgstr ""
+ #. module: base
 -#: field:wizard.module.lang.export,advice:0
++#: field:base.language.export,advice:0
+ msgid "Advice"
 -msgstr "Advies"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_attachment
+ msgid "ir.attachment"
 -msgstr "ir.attachment"
++msgstr ""
++
++#. module: base
++#: code:addons/orm.py:3533
++#, python-format
++msgid ""
++"You cannot perform this operation. New Record Creation is not allowed for "
++"this object as this object is for reporting purpose."
++msgstr ""
++
++#. module: base
++#: view:base.language.import:0
++msgid "- module,type,name,res_id,src,value"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Lithuanian / Lietuvių kalba"
 -msgstr "Litouws / Lietuvių kalba"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.server,record_id:0
+ msgid ""
+ "Provide the field name where the record id is stored after the create "
+ "operations. If it is empty, you can not track the new record."
+ msgstr ""
 -"Geef de veldnaam waar het record id is opgeslagen na de aanmaak operaties. "
 -"Als het leeg is kunt u het nieuwe record niet volgen."
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "Couldn't find tag '%s' in parent view !"
 -msgstr "'%s' niet gevonden in de bovenliggende weergave !"
++#: help:ir.model.fields,relation:0
++msgid "For relationship fields, the technical name of the target model"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Indonesian / Bahasa Indonesia"
++msgstr ""
+ #. module: base
+ #: field:ir.ui.view,inherit_id:0
+ msgid "Inherited View"
+ msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_ir_translation
 -msgid "ir.translation"
 -msgstr "ir.translation"
++#: view:ir.translation:0
++msgid "Source Term"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.lu
 -msgid "Luxembourg"
 -msgstr "Luxemburg"
++#: model:ir.ui.menu,name:base.menu_main_pm
++msgid "Project"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.open_module_tree_install
 -#: model:ir.ui.menu,name:base.menu_module_tree_install
 -msgid "Installed modules"
 -msgstr "Geïnstalleerde modules"
++#: field:ir.ui.menu,web_icon_hover_data:0
++msgid "Web Icon Image (hover)"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "The name_get method is not implemented on this object !"
 -msgstr "De name_get methode is niet geïmplementeerd in dit object !"
++#: view:base.module.import:0
++msgid "Module file successfully imported!"
++msgstr ""
++
++#. module: base
++#: selection:ir.actions.todo,state:0
++msgid "Cancelled"
++msgstr ""
++
++#. module: base
++#: view:res.config.users:0
++msgid "Create User"
++msgstr ""
++
++#. module: base
++#: view:partner.clear.ids:0
++msgid "Want to Clear Ids ? "
++msgstr ""
++
++#. module: base
++#: field:publisher_warranty.contract,name:0
++#: field:publisher_warranty.contract.wizard,name:0
++msgid "Serial Key"
++msgstr ""
++
++#. module: base
++#: selection:res.request,priority:0
++msgid "Low"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_audit
++msgid "Audit"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.lc
+ msgid "Saint Lucia"
 -msgstr "Santa Lucia"
++msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_maintenance_contract
 -#: view:maintenance.contract:0
++#: view:publisher_warranty.contract:0
+ msgid "Maintenance Contract"
 -msgstr "Onderhoudscontract"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.server,trigger_obj_id:0
+ msgid "Select the object from the model on which the workflow will executed."
+ msgstr ""
+ #. module: base
 -#: field:ir.model,state:0
 -#: field:ir.model.fields,state:0
 -#: field:ir.model.grid,state:0
 -msgid "Manually Created"
 -msgstr "Handmatig aangemaakt"
 -
 -#. module: base
 -#: selection:ir.report.custom.fields,operation:0
 -msgid "Calculate Count"
 -msgstr "Bereken Aantal"
++#: field:res.partner,employee:0
++msgid "Employee"
++msgstr ""
+ #. module: base
+ #: field:ir.model.access,perm_create:0
+ msgid "Create Access"
+ msgstr ""
+ #. module: base
+ #: field:res.partner.address,state_id:0
+ msgid "Fed. State"
 -msgstr "Staat/Provincie"
++msgstr ""
++
++#. module: base
++#: field:ir.actions.server,copy_object:0
++msgid "Copy Of"
++msgstr ""
++
++#. module: base
++#: field:ir.model,osv_memory:0
++msgid "In-memory model"
++msgstr ""
++
++#. module: base
++#: view:partner.clear.ids:0
++msgid "Clear Ids"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.io
+ msgid "British Indian Ocean Territory"
 -msgstr "Brits Territorium in de Indische Oceaan"
++msgstr ""
++
++#. module: base
++#: field:res.config.users,view:0
++#: field:res.config.view,view:0
++#: field:res.users,view:0
++msgid "Interface"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ msgid "Field Mapping"
+ msgstr ""
+ #. module: base
 -#: field:maintenance.contract,date_start:0
 -msgid "Starting Date"
 -msgstr "Begindatum"
++#: view:publisher_warranty.contract:0
++msgid "Refresh Validation Dates"
++msgstr ""
+ #. module: base
+ #: view:ir.model:0
+ #: field:ir.model.fields,ttype:0
+ msgid "Field Type"
 -msgstr "Veldtype"
++msgstr ""
+ #. module: base
+ #: field:res.country.state,code:0
+ msgid "State Code"
 -msgstr "Staat/Provinciecode"
++msgstr ""
+ #. module: base
+ #: field:ir.model.fields,on_delete:0
+ msgid "On delete"
 -msgstr "Bij Verwijderen"
++msgstr ""
+ #. module: base
+ #: selection:res.lang,direction:0
+ msgid "Left-to-Right"
 -msgstr "Links-naar-Rechts"
++msgstr ""
+ #. module: base
++#: view:res.lang:0
+ #: field:res.lang,translatable:0
+ msgid "Translatable"
 -msgstr "Vertaalbaar"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.vn
+ msgid "Vietnam"
 -msgstr "Vietnam"
++msgstr ""
+ #. module: base
++#: field:res.config.users,signature:0
++#: view:res.users:0
+ #: field:res.users,signature:0
+ msgid "Signature"
+ msgstr ""
+ #. module: base
 -#: code:addons/osv/fields.py:0
++#: code:addons/fields.py:456
++#: code:addons/fields.py:654
++#: code:addons/fields.py:656
++#: code:addons/fields.py:658
++#: code:addons/fields.py:660
++#: code:addons/fields.py:662
++#: code:addons/fields.py:664
+ #, python-format
+ msgid "Not Implemented"
 -msgstr "Niet geïmplementeerd"
++msgstr ""
++
++#. module: base
++#: model:ir.model,name:base.model_res_widget_user
++msgid "res.widget.user"
++msgstr ""
+ #. module: base
+ #: field:res.partner.category,complete_name:0
+ msgid "Full Name"
 -msgstr "Volledige naam"
++msgstr ""
++
++#. module: base
++#: view:base.module.configuration:0
++msgid "_Ok"
++msgstr ""
++
++#. module: base
++#: help:ir.filters,user_id:0
++msgid "False means for every user"
++msgstr ""
++
++#. module: base
++#: code:addons/base/module/module.py:198
++#, python-format
++msgid "The name of the module must be unique !"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.mz
+ msgid "Mozambique"
 -msgstr "Mozambique"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_project_long_term
++msgid "Long Term Planning"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.server,message:0
 -#: wizard_field:res.partner.spam_send,init,text:0
++#: view:partner.sms.send:0
++#: field:partner.wizard.spam,text:0
++#: field:res.log,name:0
+ msgid "Message"
 -msgstr "Bericht"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.act_window.view,multi:0
+ msgid "On Multiple Doc."
+ msgstr ""
+ #. module: base
++#: view:res.partner:0
++#: field:res.partner,user_id:0
++msgid "Salesman"
++msgstr ""
++
++#. module: base
+ #: field:res.partner,address:0
+ #: view:res.partner.address:0
+ msgid "Contacts"
 -msgstr "Contactpersonen"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.fo
 -msgid "Faroe Islands"
 -msgstr "Faeröereilanden"
++#: code:addons/orm.py:3199
++#, python-format
++msgid ""
++"Unable to delete this document because it is used as a default property"
++msgstr ""
++
++#. module: base
++#: view:res.widget.wizard:0
++msgid "Add"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.wizard,name:base.wizard_upgrade
 -#: model:ir.ui.menu,name:base.menu_wizard_upgrade
++#: view:base.module.upgrade:0
++#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade_window
++#: model:ir.ui.menu,name:base.menu_view_base_module_upgrade
+ msgid "Apply Scheduled Upgrades"
 -msgstr "Geplande Upgrades Toepassen"
++msgstr ""
+ #. module: base
 -#: model:ir.ui.menu,name:base.maintenance
 -msgid "Maintenance"
 -msgstr "Onderhoud"
++#: view:res.widget:0
++msgid "Widgets"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.mp
 -msgid "Northern Mariana Islands"
 -msgstr "Noordelijke Marianaeilanden"
++#: model:res.country,name:base.cz
++msgid "Czech Republic"
++msgstr ""
++
++#. module: base
++#: view:res.widget.wizard:0
++msgid "Widget Wizard"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,help:base.act_ir_actions_todo_form
++msgid ""
++"The configuration wizards are used to help you configure a new instance of "
++"OpenERP. They are launched during the installation of new modules, but you "
++"can choose to restart some wizards manually from this menu."
++msgstr ""
++
++#. module: base
++#: code:addons/base/res/res_user.py:206
++#, python-format
++msgid ""
++"Please use the change password wizard (in User Preferences or User menu) to "
++"change your own password."
++msgstr ""
++
++#. module: base
++#: code:addons/orm.py:1350
++#, python-format
++msgid "Insufficient fields for Calendar View!"
++msgstr ""
++
++#. module: base
++#: selection:ir.property,type:0
++msgid "Integer"
++msgstr ""
++
++#. module: base
++#: help:ir.actions.report.xml,report_rml:0
++msgid ""
++"The path to the main report file (depending on Report Type) or NULL if the "
++"content is in another data field"
++msgstr ""
++
++#. module: base
++#: help:res.config.users,company_id:0
++#: help:res.users,company_id:0
++msgid "The company this user is currently working for."
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_wizard_ir_model_menu_create
+ msgid "wizard.ir.model.menu.create"
 -msgstr "wizard.ir.model.menu.create"
++msgstr ""
+ #. module: base
+ #: view:workflow.transition:0
+ msgid "Transition"
 -msgstr "Overgang"
++msgstr ""
+ #. module: base
 -#: field:ir.actions.todo,active:0
 -#: field:ir.cron,active:0
 -#: field:ir.module.repository,active:0
 -#: field:ir.sequence,active:0
 -#: field:res.bank,active:0
 -#: field:res.currency,active:0
 -#: field:res.lang,active:0
 -#: field:res.partner,active:0
 -#: field:res.partner.address,active:0
 -#: field:res.partner.canal,active:0
 -#: field:res.partner.category,active:0
 -#: field:res.partner.event.type,active:0
 -#: field:res.request,active:0
 -#: field:res.users,active:0
 -msgid "Active"
 -msgstr "Actief"
++#: field:res.groups,menu_access:0
++msgid "Access Menu"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.na
+ msgid "Namibia"
 -msgstr "Namibië"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.mn
+ msgid "Mongolia"
 -msgstr "Mongolië"
++msgstr ""
+ #. module: base
 -#: view:res.partner.som:0
 -msgid "Partner State of Mind"
++#: view:ir.module.module:0
++msgid "Created Menus"
+ msgstr ""
+ #. module: base
+ #: selection:ir.ui.view,type:0
+ msgid "mdx"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bi
+ msgid "Burundi"
 -msgstr "Burundi"
++msgstr ""
++
++#. module: base
++#: view:base.language.install:0
++#: view:base.module.import:0
++#: view:base.module.update:0
++#: view:publisher_warranty.contract.wizard:0
++#: view:res.request:0
++#: wizard_button:server.action.create,init,end:0
++#: wizard_button:server.action.create,step_1,end:0
++msgid "Close"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Spanish (MX) / Español (MX)"
++msgstr ""
++
++#. module: base
++#: view:res.log:0
++msgid "My Logs"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bt
+ msgid "Bhutan"
 -msgstr "Bhutan"
++msgstr ""
++
++#. module: base
++#: help:ir.sequence,number_next:0
++msgid "Next number of this sequence"
++msgstr ""
+ #. module: base
+ #: model:res.partner.category,name:base.res_partner_category_11
+ msgid "Textile Suppliers"
 -msgstr "Textiel leveranciers"
++msgstr ""
+ #. module: base
+ #: selection:ir.actions.url,target:0
+ msgid "This Window"
 -msgstr "Dit Venster"
++msgstr ""
++
++#. module: base
++#: view:publisher_warranty.contract:0
++msgid "Publisher Warranty Contracts"
++msgstr ""
+ #. module: base
 -#: field:wizard.module.lang.export,format:0
++#: help:res.log,name:0
++msgid "The logging message."
++msgstr ""
++
++#. module: base
++#: field:base.language.export,format:0
+ msgid "File Format"
 -msgstr "Bestandsformaat"
++msgstr ""
++
++#. module: base
++#: field:res.lang,iso_code:0
++msgid "ISO code"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_res_config_view
+ msgid "res.config.view"
 -msgstr "res.config.view"
++msgstr ""
++
++#. module: base
++#: view:res.log:0
++#: field:res.log,read:0
++msgid "Read"
++msgstr ""
++
++#. module: base
++#: sql_constraint:res.country:0
++msgid "The name of the country must be unique !"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_DIALOG_AUTHENTICATION"
 -msgstr "STOCK_DIALOG_AUTHENTICATION"
++#: model:ir.actions.act_window,help:base.action_country_state
++msgid ""
++"If you are working on the American market, you can manage the different "
++"federal states you are working on from here. Each state is attached to one "
++"country."
++msgstr ""
+ #. module: base
+ #: view:workflow.workitem:0
+ msgid "Workflow Workitems"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.vc
+ msgid "Saint Vincent & Grenadines"
 -msgstr "Saint Vincent & Grenadines"
++msgstr ""
+ #. module: base
 -#: field:ir.model.config,password:0
 -#: field:maintenance.contract,password:0
 -#: field:maintenance.contract.wizard,password:0
 -#: wizard_field:res.partner.sms_send,init,password:0
++#: field:partner.sms.send,password:0
++#: field:res.config.users,password:0
+ #: field:res.users,password:0
+ msgid "Password"
 -msgstr "Wachtwoord"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_model_fields
+ #: view:ir.model:0
+ #: field:ir.model,field_id:0
+ #: model:ir.model,name:base.model_ir_model_fields
+ #: view:ir.model.fields:0
 -#: field:ir.model.grid,field_id:0
 -#: field:ir.property,fields_id:0
 -#: field:ir.report.custom,fields_child0:0
+ #: model:ir.ui.menu,name:base.ir_model_model_fields
+ msgid "Fields"
 -msgstr "Velden"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.mk
 -msgid "Macedonia"
 -msgstr "Macedonië"
++#: model:ir.actions.act_window,name:base.action_partner_employee_form
++msgid "Employees"
++msgstr ""
++
++#. module: base
++#: help:res.log,read:0
++msgid ""
++"If this log item has been read, get() should not send it to the client"
++msgstr ""
+ #. module: base
+ #: field:res.company,rml_header2:0
++#: field:res.company,rml_header3:0
+ msgid "RML Internal Header"
+ msgstr ""
+ #. module: base
 -#: selection:ir.report.custom,print_format:0
 -msgid "a4"
 -msgstr "a4"
++#: field:ir.actions.act_window,search_view_id:0
++msgid "Search View Ref."
++msgstr ""
++
++#. module: base
++#: field:ir.module.module,installed_version:0
++msgid "Latest version"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,help:base.res_partner_canal-act
++msgid ""
++"Track from where is coming your leads and opportunities by creating specific "
++"channels that will be maintained at the creation of a document in the "
++"system. Some examples of channels can be: Website, Phone Call, Reseller, etc."
++msgstr ""
+ #. module: base
+ #: model:res.partner.bank.type.field,name:base.bank_normal_field
+ msgid "acc_number"
 -msgstr "acc_number"
++msgstr ""
+ #. module: base
++#: model:ir.actions.act_window,name:base.action_partner_address_form
+ #: model:ir.ui.menu,name:base.menu_partner_address_form
+ msgid "Addresses"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.mm
+ msgid "Myanmar"
 -msgstr "Myanmar (Birma)"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Chinese (CN) / 简体中文"
 -msgstr "Chinees (CN) / 简体中文"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_MEDIA_NEXT"
 -msgstr "STOCK_MEDIA_NEXT"
++msgstr ""
+ #. module: base
+ #: field:res.bank,street:0
+ #: field:res.partner.address,street:0
+ #: field:res.partner.bank,street:0
+ msgid "Street"
 -msgstr "Straat"
++msgstr ""
+ #. module: base
 -#: wizard_view:module.upgrade,next:0
 -msgid "Note that this operation my take a few minutes."
 -msgstr "Deze vewerking kan een paar minuten duren."
++#: model:res.country,name:base.yu
++msgid "Yugoslavia"
++msgstr ""
+ #. module: base
+ #: field:ir.model.data,name:0
+ msgid "XML Identifier"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ca
+ msgid "Canada"
 -msgstr "Canada"
 -
 -#. module: base
 -#: field:ir.actions.report.xml,report_name:0
 -msgid "Internal Name"
 -msgstr "Interne Naam"
++msgstr ""
+ #. module: base
+ #: selection:ir.module.module.dependency,state:0
+ msgid "Unknown"
 -msgstr "Onbekend"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_res_users_my
+ msgid "Change My Preferences"
 -msgstr "Mijn Voorkeuren Wijzigen"
++msgstr ""
+ #. module: base
 -#: constraint:ir.actions.act_window:0
++#: code:addons/base/ir/ir_actions.py:164
++#, python-format
+ msgid "Invalid model name in the action definition."
+ msgstr ""
+ #. module: base
 -#: wizard_field:res.partner.sms_send,init,text:0
++#: field:partner.sms.send,text:0
+ msgid "SMS Message"
 -msgstr "SMS Bericht"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_EDIT"
 -msgstr "STOCK_EDIT"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.cm
+ msgid "Cameroon"
 -msgstr "Kameroen"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bf
+ msgid "Burkina Faso"
 -msgstr "Burkina Faso"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_MEDIA_FORWARD"
 -msgstr "STOCK_MEDIA_FORWARD"
++msgstr ""
+ #. module: base
+ #: selection:ir.actions.todo,state:0
+ msgid "Skipped"
 -msgstr "Overgeslagen"
++msgstr ""
+ #. module: base
+ #: selection:ir.model.fields,state:0
+ msgid "Custom Field"
 -msgstr "Aangepast Veld"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.cc
 -msgid "Cocos (Keeling) Islands"
 -msgstr "Kokoseilanden (Keeling)"
++#: field:ir.module.module,web:0
++msgid "Has a web component"
++msgstr ""
+ #. module: base
 -#: field:workflow.instance,uid:0
 -msgid "User ID"
 -msgstr "Gebruikers ID"
++#: model:res.country,name:base.cc
++msgid "Cocos (Keeling) Islands"
++msgstr ""
+ #. module: base
 -#: view:ir.actions.server:0
 -msgid ""
 -"Access all the fields related to the current object using expression in "
 -"double brackets, i.e.[[ object.partner_id.name ]]"
++#: selection:base.language.install,state:0
++#: selection:base.module.import,state:0
++#: selection:base.module.update,state:0
++msgid "init"
+ msgstr ""
 -"Toegang tot alle velden gerelateerd aan het huidige object door gebruik te "
 -"maken van de expressie binnen dubbele blokhaken. Bijv. [[ "
 -"object.partner_id.name ]]"
+ #. module: base
+ #: view:res.lang:0
+ msgid "11. %U or %W       ==> 48 (49th week)"
 -msgstr "11. %U or %W       ==> 48 (49e week)"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_res_partner_bank_type_field
+ msgid "Bank type fields"
+ msgstr ""
+ #. module: base
 -#: wizard_view:module.lang.import,init:0
 -msgid "type,name,res_id,src,value"
 -msgstr "type,name,res_id,src,value"
++#: selection:base.language.install,lang:0
++msgid "Dutch / Nederlands"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Dutch / Nederlands"
 -msgstr "Dutch / Nederlands"
++#: code:addons/base/res/res_config.py:384
++#, python-format
++msgid ""
++"\n"
++"\n"
++"This addon is already installed on your system"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.to
 -msgid "Tonga"
 -msgstr "Tonga"
++#: help:ir.cron,interval_number:0
++msgid "Repeat every x."
++msgstr ""
+ #. module: base
+ #: wizard_view:server.action.create,step_1:0
+ #: wizard_field:server.action.create,step_1,report:0
+ msgid "Select Report"
 -msgstr "Selecteer Rapport"
 -
 -#. module: base
 -#: field:ir.report.custom.fields,fc1_condition:0
 -#: field:ir.report.custom.fields,fc2_condition:0
 -#: field:ir.report.custom.fields,fc3_condition:0
 -msgid "condition"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_SAVE"
 -msgstr "STOCK_SAVE"
++#: report:ir.module.reference.graph:0
++msgid "1cm 28cm 20cm 28cm"
++msgstr ""
+ #. module: base
 -#: rml:ir.module.reference:0
 -msgid "1cm 28cm 20cm 28cm"
 -msgstr "1cm 28cm 20cm 28cm"
++#: field:ir.module.module,maintainer:0
++msgid "Maintainer"
++msgstr ""
+ #. module: base
+ #: field:ir.sequence,suffix:0
+ msgid "Suffix"
 -msgstr "Achtervoegsel"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.mo
+ msgid "Macau"
 -msgstr "Macau"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.report.xml,name:base.res_partner_address_report
+ msgid "Labels"
 -msgstr "Etiketten"
++msgstr ""
+ #. module: base
 -#: wizard_field:res.partner.spam_send,init,from:0
++#: field:partner.wizard.spam,email_from:0
+ msgid "Sender's email"
 -msgstr "E-mailadres Afzender"
++msgstr ""
+ #. module: base
+ #: field:ir.default,field_name:0
+ msgid "Object Field"
 -msgstr "Objectveld"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "Records were modified in the meanwhile"
++#: selection:base.language.install,lang:0
++msgid "Spanish (PE) / Español (PE)"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_NEW"
 -msgstr "STOCK_NEW"
++#: selection:base.language.install,lang:0
++msgid "French (CH) / Français (CH)"
++msgstr ""
+ #. module: base
 -#: view:ir.report.custom.fields:0
 -msgid "Report Fields"
 -msgstr "Rapport Velden"
++#: help:res.config.users,action_id:0
++#: help:res.users,action_id:0
++msgid ""
++"If specified, this action will be opened at logon for this user, in addition "
++"to the standard menu."
++msgstr ""
+ #. module: base
 -#: view:res.partner:0
 -msgid "General"
 -msgstr "Algemeen"
++#: view:ir.values:0
++msgid "Client Actions"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/orm.py:1806
+ #, python-format
+ msgid "The exists method is not implemented on this object !"
+ msgstr ""
+ #. module: base
 -#: field:workflow.transition,act_to:0
 -msgid "Destination Activity"
 -msgstr ""
 -
 -#. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/base/module/module.py:336
+ #, python-format
 -msgid "The name_search method is not implemented on this object !"
 -msgstr "De name_search methode is niet in geïmplementeerd dit object !"
++msgid ""
++"You try to upgrade a module that depends on the module: %s.\n"
++"But this module is not available in your system."
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-mrp"
 -msgstr "terp-mrp"
++#: field:workflow.transition,act_to:0
++msgid "Destination Activity"
++msgstr ""
+ #. module: base
+ #: view:ir.values:0
+ msgid "Connect Events to Actions"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_ABOUT"
 -msgstr "STOCK_ABOUT"
++#: model:ir.model,name:base.model_base_update_translations
++msgid "base.update.translations"
++msgstr ""
+ #. module: base
+ #: field:ir.module.category,parent_id:0
+ #: field:res.partner.category,parent_id:0
+ msgid "Parent Category"
 -msgstr "Bovenliggende Categorie"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.fi
 -msgid "Finland"
 -msgstr "Finland"
++#: selection:ir.property,type:0
++msgid "Integer Big"
++msgstr ""
+ #. module: base
+ #: selection:res.partner.address,type:0
+ #: selection:res.partner.title,domain:0
++#: view:res.users:0
+ msgid "Contact"
 -msgstr "Contactpersoon"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_ui_menu
+ msgid "ir.ui.menu"
 -msgstr "ir.ui.menu"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.tw
 -msgid "Taiwan"
 -msgstr "Taiwan"
++#: model:res.country,name:base.us
++msgid "United States"
++msgstr ""
+ #. module: base
+ #: view:ir.module.module:0
+ msgid "Cancel Uninstall"
+ msgstr ""
+ #. module: base
 -#: model:res.country,name:base.cy
 -msgid "Cyprus"
 -msgstr "Cyprus"
++#: view:res.bank:0
++#: view:res.partner:0
++#: view:res.partner.address:0
++msgid "Communication"
++msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_ir_server_object_lines
 -msgid "ir.server.object.lines"
 -msgstr "ir.server.object.lines"
++#: view:ir.actions.report.xml:0
++msgid "RML Report"
++msgstr ""
+ #. module: base
 -#: field:ir.model.fields,size:0
 -msgid "Size"
 -msgstr "Grootte"
++#: model:ir.model,name:base.model_ir_server_object_lines
++msgid "ir.server.object.lines"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/module/module.py:0
++#: code:addons/base/module/module.py:531
+ #, python-format
+ msgid "Module %s: Invalid Quality Certificate"
 -msgstr "Module %s: Ongeldig Kwaliteitscertificaat"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.kw
+ msgid "Kuwait"
 -msgstr "Koeweit"
++msgstr ""
+ #. module: base
+ #: field:workflow.workitem,inst_id:0
+ msgid "Instance"
 -msgstr "Instantie"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.report.xml,attachment:0
+ msgid ""
+ "This is the filename of the attachment used to store the printing result. "
+ "Keep empty to not save the printed reports. You can use a python expression "
+ "with the object and time variables."
+ msgstr ""
 -"Dit is de bestandsnaam van de bijlage die gebruikt wordt voor opslag van het "
 -"afdrukresultaat. Laat leeg om het afgedrukte rapport niet op te slaan. U "
 -"kunt een python expressie gebruiken met het object en tijd variabelen"
++
++#. module: base
++#: selection:ir.property,type:0
++msgid "Many2One"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ng
+ msgid "Nigeria"
 -msgstr "Nigeria"
++msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_res_partner_event
 -msgid "res.partner.event"
 -msgstr "res.partner.event"
++#: code:addons/base/ir/ir_model.py:250
++#, python-format
++msgid "For selection fields, the Selection Options must be given!"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "Insertion Failed!"
++#: model:ir.actions.act_window,name:base.action_partner_sms_send
++msgid "SMS Send"
++msgstr ""
++
++#. module: base
++#: field:res.company,user_ids:0
++msgid "Accepted Users"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_UNDERLINE"
 -msgstr "STOCK_UNDERLINE"
++#: field:ir.ui.menu,web_icon_data:0
++msgid "Web Icon Image"
++msgstr ""
+ #. module: base
+ #: view:ir.values:0
+ msgid "Values for Event Type"
+ msgstr ""
+ #. module: base
 -#: model:res.country,name:base.zr
 -msgid "Zaire"
 -msgstr "Zaïre"
 -
 -#. module: base
+ #: selection:ir.model.fields,select_level:0
+ msgid "Always Searchable"
 -msgstr "Altijd doorzoekbaar"
 -
 -#. module: base
 -#: model:res.country,name:base.sd
 -msgid "Sudan"
 -msgstr "Soedan"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.hk
+ msgid "Hong Kong"
 -msgstr "Hong Kong"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.server,name:0
+ msgid "Easy to Refer action by name e.g. One Sales Order -> Many Invoices"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_ZOOM_100"
 -msgstr "STOCK_ZOOM_100"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_BOLD"
 -msgstr "STOCK_BOLD"
++#: model:ir.actions.act_window,help:base.action_partner_address_form
++msgid ""
++"Customers (also called Partners in other areas of the system) helps you "
++"manage your address book of companies whether they are prospects, customers "
++"and/or suppliers. The partner form allows you to track and record all the "
++"necessary information to interact with your partners from the company "
++"address to their contacts as well as pricelists, and much more. If you "
++"installed the CRM, with the history tab, you can track all the interactions "
++"with a partner such as opportunities, emails, or sales orders issued."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ph
+ msgid "Philippines"
 -msgstr "Filippijnen"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ma
+ msgid "Morocco"
 -msgstr "Marokko"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-graph"
 -msgstr "terp-graph"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "2.  %a ,%A         ==> Fri, Friday"
 -msgstr "2.  %a ,%A         ==> Vr, Vrijdag"
++msgstr ""
+ #. module: base
 -#: wizard_view:module.lang.install,start:0
 -msgid ""
 -"The selected language has been successfully installed. You must change the "
 -"preferences of the user and open a new menu to view changes."
++#: field:res.widget,content:0
++msgid "Content"
+ msgstr ""
 -"De geselecteerde taal is succesvol geïnstalleerd. Wijzig de voorkeur van de "
 -"betreffende gebruiker en open een nieuw menu om de wijzigingen te zien."
+ #. module: base
 -#: model:ir.model,name:base.model_ir_sequence
 -msgid "ir.sequence"
 -msgstr "ir.sequence"
++#: help:ir.rule,global:0
++msgid "If no group is specified the rule is global and applied to everyone"
++msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_res_partner_event_type
 -#: model:ir.ui.menu,name:base.next_id_14
 -#: view:res.partner.event:0
 -msgid "Partner Events"
++#: model:res.country,name:base.td
++msgid "Chad"
+ msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_workflow_transition
+ msgid "workflow.transition"
 -msgstr "workflow.transition"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "%a - Abbreviated weekday name."
 -msgstr "%a - Afkorting naam weekdag"
++msgstr ""
+ #. module: base
 -#: rml:ir.module.reference:0
++#: report:ir.module.reference.graph:0
+ msgid "Introspection report on objects"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.pf
+ msgid "Polynesia (French)"
 -msgstr "Frans Polynesië"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.dm
+ msgid "Dominica"
 -msgstr "Dominica"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.wizard,name:base.res_partner_send_sms_wizard
 -#: wizard_button:res.partner.sms_send,init,send:0
 -msgid "Send SMS"
 -msgstr "SMS verzenden"
++#: sql_constraint:publisher_warranty.contract:0
++msgid ""
++"Your publisher warranty contract is already subscribed in the system !"
++msgstr ""
++
++#. module: base
++#: help:ir.cron,nextcall:0
++msgid "Next planned execution date for this scheduler"
++msgstr ""
++
++#. module: base
++#: help:res.config.users,view:0
++#: help:res.users,view:0
++msgid "Choose between the simplified interface and the extended one"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.np
+ msgid "Nepal"
 -msgstr "Nepal"
++msgstr ""
+ #. module: base
 -#: field:res.partner.event,event_ical_id:0
 -msgid "iCal id"
 -msgstr "iCal id"
++#: code:addons/orm.py:2307
++#, python-format
++msgid ""
++"Invalid value for reference field \"%s\" (last part must be a non-zero "
++"integer): \"%s\""
++msgstr ""
+ #. module: base
 -#: field:ir.actions.act_window,view_type:0
 -#: field:ir.actions.act_window.view,view_mode:0
 -#: field:ir.ui.view,type:0
 -#: field:wizard.ir.model.menu.create.line,view_type:0
 -msgid "View Type"
 -msgstr "Weergavetype"
++#: help:ir.cron,args:0
++msgid "Arguments to be passed to the method. e.g. (uid,)"
++msgstr ""
+ #. module: base
 -#: wizard_view:res.partner.sms_send,init:0
 -msgid "Bulk SMS send"
 -msgstr "Bulk SMS verzenden"
++#: help:ir.ui.menu,groups_id:0
++msgid ""
++"If you have groups, the visibility of this menu will be based on these "
++"groups. If this field is empty, OpenERP will compute visibility based on the "
++"related object's read access."
++msgstr ""
+ #. module: base
 -#: model:ir.ui.menu,name:base.next_id_2
 -msgid "User Interface"
 -msgstr "Gebruikersinterface"
++#: model:ir.actions.act_window,name:base.action_ui_view_custom
++#: model:ir.ui.menu,name:base.menu_action_ui_view_custom
++#: view:ir.ui.view.custom:0
++msgid "Customized Views"
++msgstr ""
+ #. module: base
 -#: selection:ir.report.custom,type:0
 -msgid "Pie Chart"
++#: view:partner.sms.send:0
++msgid "Bulk SMS send"
+ msgstr ""
+ #. module: base
+ #: view:ir.sequence:0
+ msgid "Seconde: %(sec)s"
 -msgstr "Seconden: %(sec)s"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_view_base_module_update
++msgid "Update Modules List"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/module/module.py:0
++#: code:addons/base/module/module.py:255
+ #, python-format
+ msgid ""
 -"Can not create the module file:\n"
 -" %s"
++"Unable to upgrade module \"%s\" because an external dependency is not met: %s"
+ msgstr ""
 -"Kan het module bestand niet aanmaken:\n"
 -" %s"
+ #. module: base
 -#: model:ir.actions.wizard,name:base.wizard_update
 -#: model:ir.ui.menu,name:base.menu_module_update
 -msgid "Update Modules List"
++#: code:addons/base/res/res_user.py:257
++#, python-format
++msgid ""
++"Please keep in mind that documents currently displayed may not be relevant "
++"after switching to another company. If you have unsaved changes, please make "
++"sure to save and close all forms before switching to a different company. "
++"(You can click on Cancel in the User Preferences now)"
+ msgstr ""
+ #. module: base
+ #: view:ir.actions.configuration.wizard:0
+ msgid "Continue"
 -msgstr "Doorgaan"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "Object %s does not exists"
++#: selection:base.language.install,lang:0
++msgid "Thai / ภาษาไทย"
+ msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.ir_property_form
 -#: model:ir.ui.menu,name:base.menu_ir_property_form
 -msgid "Default Properties"
 -msgstr "Standaard eigenschappen"
++#: code:addons/orm.py:158
++#, python-format
++msgid "Object %s does not exists"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Slovenian / slovenščina"
 -msgstr "Sloveens / slovenščina"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.report.xml,attachment_use:0
+ msgid "Reload from Attachment"
 -msgstr "Opnieuw laden van bijlage"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bv
+ msgid "Bouvet Island"
 -msgstr "Bouvet eiland"
 -
 -#. module: base
 -#: field:ir.report.custom,print_orientation:0
 -msgid "Print orientation"
 -msgstr "Afdrukrichting"
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.action_wizard_lang_export
 -#: model:ir.ui.menu,name:base.menu_wizard_lang_export
 -msgid "Export a Translation File"
 -msgstr "Vertaalbestand exporteren"
++msgstr ""
+ #. module: base
+ #: field:ir.attachment,name:0
+ msgid "Attachment Name"
 -msgstr "Bijlagenaam"
++msgstr ""
+ #. module: base
 -#: wizard_field:module.lang.import,init,data:0
 -#: field:wizard.module.lang.export,data:0
++#: field:base.language.export,data:0
++#: field:base.language.import,data:0
+ msgid "File"
 -msgstr "Bestand"
++msgstr ""
+ #. module: base
 -#: view:res.users:0
++#: view:res.config.users:0
+ msgid "Add User"
 -msgstr "Voeg een gebruiker toe"
++msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_ir_actions_configuration_wizard
 -msgid "ir.actions.configuration.wizard"
 -msgstr "ir.actions.configuration.wizard"
++#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade_install
++msgid "Module Upgrade Install"
++msgstr ""
+ #. module: base
 -#: view:res.lang:0
 -msgid "%b - Abbreviated month name."
 -msgstr "%b - Afgekortte maandnaam"
++#: model:ir.model,name:base.model_ir_actions_configuration_wizard
++msgid "ir.actions.configuration.wizard"
++msgstr ""
+ #. module: base
 -#: field:ir.ui.view_sc,user_id:0
 -msgid "User Ref."
 -msgstr "Gebruikers Ref."
++#: view:res.lang:0
++msgid "%b - Abbreviated month name."
++msgstr ""
+ #. module: base
+ #: field:res.partner,supplier:0
++#: view:res.partner.address:0
++#: field:res.partner.address,is_supplier_add:0
+ #: model:res.partner.category,name:base.res_partner_category_8
+ msgid "Supplier"
 -msgstr "Leverancier"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ #: selection:ir.actions.server,state:0
+ msgid "Multi Actions"
+ msgstr ""
+ #. module: base
 -#: view:maintenance.contract.wizard:0
++#: view:base.language.export:0
++#: view:base.language.import:0
++#: view:wizard.ir.model.menu.create:0
+ msgid "_Close"
+ msgstr ""
+ #. module: base
 -#: selection:maintenance.contract,kind:0
 -msgid "Full"
 -msgstr "Volledig"
++#: field:multi_company.default,company_dest_id:0
++msgid "Default Company"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.cv
 -msgid "Cape Verde"
 -msgstr "Kaapverdië"
++#: selection:base.language.install,lang:0
++msgid "Spanish (EC) / Español (EC)"
++msgstr ""
+ #. module: base
 -#: selection:ir.actions.report.xml,report_type:0
 -msgid "html"
 -msgstr "html"
++#: help:ir.ui.view,xml_id:0
++msgid "ID of the view defined in xml file"
++msgstr ""
+ #. module: base
 -#: field:res.partner,vat:0
 -msgid "VAT"
 -msgstr "BTW"
++#: model:ir.model,name:base.model_base_module_import
++#: model:ir.ui.menu,name:base.menu_view_base_module_import
++msgid "Import Module"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.as
++msgid "American Samoa"
++msgstr ""
++
++#. module: base
++#: help:ir.actions.act_window,res_model:0
++msgid "Model name of the object to open in the view window"
++msgstr ""
++
++#. module: base
++#: field:res.log,secondary:0
++msgid "Secondary Log"
++msgstr ""
++
++#. module: base
++#: field:ir.model.fields,selectable:0
++msgid "Selectable"
++msgstr ""
+ #. module: base
+ #: view:res.request.link:0
+ msgid "Request Link"
+ msgstr ""
+ #. module: base
++#: view:ir.attachment:0
++#: selection:ir.attachment,type:0
+ #: field:ir.module.module,url:0
 -#: field:ir.module.repository,url:0
+ msgid "URL"
 -msgstr "URL"
++msgstr ""
+ #. module: base
+ #: help:res.country,name:0
+ msgid "The full name of the country."
 -msgstr "De volledige naam van het land."
++msgstr ""
+ #. module: base
+ #: selection:ir.actions.server,state:0
+ msgid "Iteration"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-stock"
 -msgstr "terp-stock"
 -
 -#. module: base
 -#: code:addons/addons/base/ir/ir_actions.py:0
 -#, python-format
 -msgid "Please specify the Partner Email address !"
 -msgstr ""
 -
 -#. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/orm.py:3448
++#: code:addons/orm.py:3532
+ #, python-format
+ msgid "UserError"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ae
+ msgid "United Arab Emirates"
 -msgstr "Verenigde Arabische Emiraten"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_MEDIA_RECORD"
 -msgstr "STOCK_MEDIA_RECORD"
++#: model:ir.ui.menu,name:base.menu_crm_case_job_req_main
++msgid "Recruitment"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.re
+ msgid "Reunion (French)"
 -msgstr "Reunion (Frans)"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.cz
 -msgid "Czech Republic"
 -msgstr "Tsjechië"
++#: code:addons/base/ir/ir_model.py:321
++#, python-format
++msgid ""
++"New column name must still start with x_ , because it is a custom field!"
++msgstr ""
++
++#. module: base
++#: view:ir.model.access:0
++#: view:ir.rule:0
++#: field:ir.rule,global:0
++msgid "Global"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.mp
++msgid "Northern Mariana Islands"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.sb
+ msgid "Solomon Islands"
 -msgstr "Salomoneilanden"
++msgstr ""
++
++#. module: base
++#: code:addons/base/ir/ir_model.py:490
++#: code:addons/orm.py:1897
++#: code:addons/orm.py:2972
++#: code:addons/orm.py:3165
++#: code:addons/orm.py:3365
++#: code:addons/orm.py:3817
++#, python-format
++msgid "AccessError"
++msgstr ""
++
++#. module: base
++#: view:res.request:0
++msgid "Waiting"
++msgstr ""
++
++#. module: base
++#: code:addons/__init__.py:834
++#, python-format
++msgid "Could not load base module"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "8.  %I:%M:%S %p  ==> 06:25:20 PM"
 -msgstr "8.  %I:%M:%S %p    ==> 06:25:20 PM"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/orm.py:1803
+ #, python-format
+ msgid "The copy method is not implemented on this object !"
+ msgstr ""
+ #. module: base
++#: field:res.log,create_date:0
++msgid "Creation Date"
++msgstr ""
++
++#. module: base
+ #: view:ir.translation:0
+ #: model:ir.ui.menu,name:base.menu_translation
+ msgid "Translations"
 -msgstr "Vertalingen"
++msgstr ""
+ #. module: base
+ #: field:ir.sequence,padding:0
+ msgid "Number padding"
+ msgstr ""
+ #. module: base
++#: view:ir.actions.report.xml:0
++msgid "Report"
++msgstr ""
++
++#. module: base
+ #: model:res.country,name:base.ua
+ msgid "Ukraine"
 -msgstr "Oekraïne"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.to
++msgid "Tonga"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_module_category
+ #: view:ir.module.category:0
+ msgid "Module Category"
 -msgstr "Module Categorie"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.us
 -msgid "United States"
 -msgstr "Verenigde Staten"
++#: view:partner.wizard.ean.check:0
++msgid "Ignore"
++msgstr ""
+ #. module: base
 -#: rml:ir.module.reference:0
++#: report:ir.module.reference.graph:0
+ msgid "Reference Guide"
+ msgstr ""
+ #. module: base
++#: view:ir.ui.view:0
++msgid "Architecture"
++msgstr ""
++
++#. module: base
+ #: model:res.country,name:base.ml
+ msgid "Mali"
 -msgstr "Mali"
++msgstr ""
++
++#. module: base
++#: help:res.config.users,email:0
++#: help:res.users,email:0
++msgid ""
++"If an email is provided, the user will be sent a message welcoming him.\n"
++"\n"
++"Warning: if \"email_from\" and \"smtp_server\" aren't configured, it won't "
++"be possible to email new users."
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_UNINDENT"
 -msgstr "STOCK_UNINDENT"
++#: selection:base.language.install,lang:0
++msgid "Flemish (BE) / Vlaams (BE)"
++msgstr ""
+ #. module: base
+ #: field:ir.cron,interval_number:0
+ msgid "Interval Number"
+ msgstr ""
+ #. module: base
 -#: selection:maintenance.contract,kind:0
 -msgid "Partial"
 -msgstr "Gedeeltelijk"
 -
 -#. module: base
+ #: model:res.country,name:base.tk
+ msgid "Tokelau"
 -msgstr "Tokelau"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.report.xml,report_xsl:0
+ msgid "XSL path"
 -msgstr "XSL pad"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bn
+ msgid "Brunei Darussalam"
 -msgstr "Brunei Darussalam"
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.action_partner_function_form
 -#: model:ir.ui.menu,name:base.menu_partner_function_form
 -#: view:res.partner.function:0
 -msgid "Partner Functions"
 -msgstr "Relatie Functies"
++msgstr ""
+ #. module: base
 -#: view:res.lang:0
 -msgid "%Y - Year with century as a decimal number."
 -msgstr "%Y - Jaartal met eeuw als decimaal getal."
++#: view:ir.actions.act_window:0
++#: field:ir.actions.act_window,view_type:0
++#: field:ir.actions.act_window.view,view_mode:0
++#: field:ir.ui.view,type:0
++#: field:wizard.ir.model.menu.create.line,view_type:0
++msgid "View Type"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_DIALOG_INFO"
 -msgstr "STOCK_DIALOG_INFO"
++#: model:ir.ui.menu,name:base.next_id_2
++msgid "User Interface"
++msgstr ""
+ #. module: base
+ #: field:ir.attachment,create_date:0
+ msgid "Date Created"
 -msgstr "Aanmaakdatum"
 -
 -#. module: base
 -#: model:res.country,name:base.fk
 -msgid "Falkland Islands"
 -msgstr "Falkland Eilanden"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_actions_todo
+ msgid "ir.actions.todo"
 -msgstr "ir.actions.todo"
++msgstr ""
+ #. module: base
 -#: view:wizard.module.lang.export:0
 -msgid "Get file"
 -msgstr "Bestand ophalen"
++#: code:addons/base/res/res_config.py:94
++#, python-format
++msgid "Couldn't find previous ir.actions.todo"
++msgstr ""
+ #. module: base
 -#: wizard_view:module.module.update,init:0
 -msgid ""
 -"This function will check for new modules in the 'addons' path and on module "
 -"repositories:"
++#: view:ir.actions.act_window:0
++msgid "General Settings"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_GO_BACK"
 -msgstr "STOCK_GO_BACK"
++#: model:ir.ui.menu,name:base.menu_administration_shortcut
++msgid "Custom Shortcuts"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "AccessError"
++#: selection:base.language.install,lang:0
++msgid "Vietnamese / Tiếng Việt"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.dz
+ msgid "Algeria"
 -msgstr "Algerije"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.be
+ msgid "Belgium"
 -msgstr "België"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "You cannot perform this operation."
 -msgstr "U kunt deze operatie niet uitvoeren."
++#: model:ir.model,name:base.model_osv_memory_autovacuum
++msgid "osv_memory.autovacuum"
++msgstr ""
+ #. module: base
++#: field:base.language.export,lang:0
++#: field:base.language.install,lang:0
++#: field:base.update.translations,lang:0
+ #: field:ir.translation,lang:0
 -#: wizard_field:module.lang.install,init,lang:0
++#: field:res.config.users,context_lang:0
+ #: field:res.partner,lang:0
+ #: field:res.users,context_lang:0
 -#: field:wizard.module.lang.export,lang:0
 -#: field:wizard.module.update_translations,lang:0
+ msgid "Language"
 -msgstr "Taal"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.gm
+ msgid "Gambia"
 -msgstr "Gambia"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_res_company_form
++#: model:ir.model,name:base.model_res_company
+ #: model:ir.ui.menu,name:base.menu_action_res_company_form
++#: model:ir.ui.menu,name:base.menu_res_company_global
+ #: view:res.company:0
++#: field:res.config.users,company_ids:0
++#: view:res.users:0
++#: field:res.users,company_ids:0
+ msgid "Companies"
 -msgstr "Bedrijven"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/fields.py:0
++#: view:res.lang:0
++msgid "%H - Hour (24-hour clock) [00,23]."
++msgstr ""
++
++#. module: base
++#: model:ir.model,name:base.model_res_widget
++msgid "res.widget"
++msgstr ""
++
++#. module: base
++#: code:addons/base/ir/ir_model.py:258
++#, python-format
++msgid "Model %s does not exist!"
++msgstr ""
++
++#. module: base
++#: code:addons/base/res/res_lang.py:159
++#, python-format
++msgid "You cannot delete the language which is User's Preferred Language !"
++msgstr ""
++
++#. module: base
++#: code:addons/fields.py:103
+ #, python-format
+ msgid "Not implemented get_memory method !"
 -msgstr "Niet geïmplementeerde get_memory methode !"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ #: field:ir.actions.server,code:0
+ #: selection:ir.actions.server,state:0
+ msgid "Python Code"
 -msgstr "Python Code"
++msgstr ""
+ #. module: base
 -#: help:ir.actions.server,state:0
 -msgid "Type of the Action that is to be executed"
 -msgstr "Soort Actie die moet worden uitgevoerd"
++#: code:addons/base/module/wizard/base_module_import.py:67
++#, python-format
++msgid "Can not create the module file: %s !"
++msgstr ""
+ #. module: base
+ #: model:ir.module.module,description:base.module_meta_information
+ msgid "The kernel of OpenERP, needed for all installation."
 -msgstr "De basis van OpenERP, noodzakelijk in alle installaties."
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_partner_customer_form
 -#: model:ir.ui.menu,name:base.menu_partner_customer_form
 -msgid "Customers Partners"
 -msgstr "Klanten"
++#: view:base.language.install:0
++#: view:base.module.import:0
++#: view:base.module.update:0
++#: view:base.module.upgrade:0
++#: view:base.update.translations:0
++#: view:partner.clear.ids:0
++#: view:partner.sms.send:0
++#: view:partner.wizard.spam:0
++#: view:publisher_warranty.contract.wizard:0
++#: view:res.widget.wizard:0
++msgid "Cancel"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_actions.py:0
 -#, python-format
 -msgid "Please specify server option --smtp-from !"
 -msgstr "Geef aub server optie --smtp-from !"
++#: selection:base.language.export,format:0
++msgid "PO File"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.nt
+ msgid "Neutral Zone"
 -msgstr "Neutrale Zone"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Hindi / हिंदी"
++msgstr ""
++
++#. module: base
++#: view:ir.model:0
++msgid "Custom"
++msgstr ""
++
++#. module: base
++#: view:res.request:0
++msgid "Current"
++msgstr ""
+ #. module: base
+ #: model:res.partner.category,name:base.res_partner_category_9
+ msgid "Components Supplier"
+ msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_res_users
 -#: field:ir.actions.todo,users_id:0
+ #: field:ir.default,uid:0
+ #: model:ir.ui.menu,name:base.menu_action_res_users
+ #: model:ir.ui.menu,name:base.menu_users
+ #: view:res.groups:0
+ #: field:res.groups,users:0
 -#: field:res.roles,users:0
+ #: view:res.users:0
+ msgid "Users"
 -msgstr "Gebruikers"
++msgstr ""
+ #. module: base
+ #: field:ir.module.module,published_version:0
+ msgid "Published Version"
 -msgstr "Gepubliceerde Versie"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.is
+ msgid "Iceland"
 -msgstr "IJsland"
++msgstr ""
+ #. module: base
 -#: view:res.users:0
 -msgid "Roles are used to defined available actions, provided by workflows."
++#: model:ir.actions.act_window,name:base.ir_action_window
++#: model:ir.ui.menu,name:base.menu_ir_action_window
++msgid "Window Actions"
++msgstr ""
++
++#. module: base
++#: view:res.lang:0
++msgid "%I - Hour (12-hour clock) [01,12]."
++msgstr ""
++
++#. module: base
++#: selection:publisher_warranty.contract.wizard,state:0
++msgid "Finished"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.de
+ msgid "Germany"
 -msgstr "Duitsland"
++msgstr ""
+ #. module: base
+ #: view:ir.sequence:0
+ msgid "Week of the year: %(woy)s"
 -msgstr "Week van het jaar: %(woy)s"
++msgstr ""
+ #. module: base
+ #: model:res.partner.category,name:base.res_partner_category_14
+ msgid "Bad customers"
 -msgstr "Slechte klanten"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_HARDDISK"
 -msgstr "STOCK_HARDDISK"
++msgstr ""
+ #. module: base
 -#: rml:ir.module.reference:0
++#: report:ir.module.reference.graph:0
+ msgid "Reports :"
 -msgstr "Rapporten :"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_APPLY"
 -msgstr "STOCK_APPLY"
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.action_maintenance_contract_form
 -#: model:ir.ui.menu,name:base.menu_maintenance_contract
 -msgid "Your Maintenance Contracts"
 -msgstr "Uw Onderhoudscontracten"
 -
 -#. module: base
 -#: view:res.users:0
 -msgid ""
 -"Please note that you will have to logout and relog if you change your "
 -"password."
 -msgstr "U moet uitloggen en weer inloggen indien u uw wachtwoord wijzigt."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.gy
+ msgid "Guyana"
 -msgstr "Guyana"
 -
 -#. module: base
 -#: selection:ir.module.module,license:0
 -msgid "GPL-3"
 -msgstr "GPL-3"
++msgstr ""
+ #. module: base
 -#: selection:ir.module.module,license:0
 -msgid "GPL-2"
 -msgstr "GPL-2"
++#: help:ir.actions.act_window,view_type:0
++msgid ""
++"View type: set to 'tree' for a hierarchical tree view, or 'form' for other "
++"views"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Portugese (BR) / português (BR)"
 -msgstr "Portugees (BR) / português (BR)"
++#: code:addons/base/res/res_config.py:421
++#, python-format
++msgid "Click 'Continue' to configure the next addon..."
++msgstr ""
+ #. module: base
+ #: field:ir.actions.server,record_id:0
+ msgid "Create Id"
 -msgstr "Aanmaak ID"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.hn
+ msgid "Honduras"
 -msgstr "Honduras"
++msgstr ""
++
++#. module: base
++#: help:res.config.users,menu_tips:0
++#: help:res.users,menu_tips:0
++msgid ""
++"Check out this box if you want to always display tips on each menu action"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.eg
+ msgid "Egypt"
 -msgstr "Egypte"
++msgstr ""
++
++#. module: base
++#: field:ir.rule,perm_read:0
++msgid "Apply For Read"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.server,model_id:0
+ msgid ""
+ "Select the object on which the action will work (read, write, create)."
+ msgstr ""
+ #. module: base
 -#: view:ir.model:0
 -msgid "Fields Description"
 -msgstr "Omschrijving Velden"
++#: code:addons/base/ir/ir_actions.py:629
++#, python-format
++msgid "Please specify server option --email-from !"
++msgstr ""
+ #. module: base
 -#: code:addons/tools/translate.py:0
 -#, python-format
 -msgid "Bad file format"
 -msgstr "Fout bestandsformaat"
++#: field:base.language.import,name:0
++msgid "Language Name"
++msgstr ""
++
++#. module: base
++#: selection:ir.property,type:0
++msgid "Boolean"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_CDROM"
 -msgstr "STOCK_CDROM"
++#: view:ir.model:0
++msgid "Fields Description"
++msgstr ""
+ #. module: base
++#: view:ir.attachment:0
++#: view:ir.cron:0
++#: view:ir.model.access:0
++#: view:ir.model.data:0
++#: view:ir.model.fields:0
++#: view:ir.module.module:0
++#: view:ir.rule:0
++#: view:ir.ui.view:0
++#: view:ir.values:0
++#: view:res.partner:0
++#: view:res.partner.address:0
++#: view:workflow.activity:0
++msgid "Group By..."
++msgstr ""
++
++#. module: base
++#: view:ir.model.fields:0
+ #: field:ir.model.fields,readonly:0
+ #: field:res.partner.bank.type.field,readonly:0
+ msgid "Readonly"
 -msgstr "Alleen Lezen"
 -
 -#. module: base
 -#: field:res.partner.event,type:0
 -msgid "Type of Event"
+ msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.ir_sequence_type
 -#: model:ir.ui.menu,name:base.menu_ir_sequence_type
 -msgid "Sequence Types"
++#: field:ir.actions.act_window.view,view_id:0
++#: field:ir.default,page:0
++#: selection:ir.translation,type:0
++#: field:wizard.ir.model.menu.create.line,view_id:0
++msgid "View"
+ msgstr ""
+ #. module: base
+ #: selection:ir.module.module,state:0
+ #: selection:ir.module.module.dependency,state:0
+ msgid "To be installed"
 -msgstr "Te installeren"
++msgstr ""
+ #. module: base
++#: help:ir.actions.act_window,display_menu_tip:0
++msgid ""
++"It gives the status if the tip has to be displayed or not when a user "
++"executes an action"
++msgstr ""
++
++#. module: base
++#: view:ir.model:0
+ #: model:ir.module.module,shortdesc:base.module_meta_information
++#: field:res.currency,base:0
+ msgid "Base"
+ msgstr ""
+ #. module: base
++#: selection:base.language.install,lang:0
++msgid "Telugu / తెలుగు"
++msgstr ""
++
++#. module: base
+ #: model:res.country,name:base.lr
+ msgid "Liberia"
 -msgstr "Liberië"
++msgstr ""
+ #. module: base
+ #: view:ir.attachment:0
+ #: view:ir.model:0
+ #: view:res.groups:0
+ #: view:res.partner:0
+ #: field:res.partner,comment:0
 -#: field:res.partner.function,ref:0
++#: model:res.widget,title:base.note_widget
+ msgid "Notes"
 -msgstr "Notities"
++msgstr ""
+ #. module: base
 -#: field:ir.property,value:0
++#: field:ir.config_parameter,value:0
++#: field:ir.property,value_binary:0
++#: field:ir.property,value_datetime:0
++#: field:ir.property,value_float:0
++#: field:ir.property,value_integer:0
++#: field:ir.property,value_reference:0
++#: field:ir.property,value_text:0
+ #: selection:ir.server.object.lines,type:0
+ #: field:ir.server.object.lines,value:0
++#: view:ir.values:0
+ #: field:ir.values,value:0
+ #: field:ir.values,value_unpickle:0
+ msgid "Value"
 -msgstr "Waarde"
 -
 -#. module: base
 -#: view:wizard.module.update_translations:0
 -msgid "Update Translations"
 -msgstr "Vertalingen bijwerken"
++msgstr ""
+ #. module: base
++#: field:ir.sequence,code:0
++#: field:ir.sequence.type,code:0
+ #: selection:ir.translation,type:0
+ #: field:res.bank,code:0
 -#: field:res.currency,code:0
 -#: field:res.lang,code:0
 -#: field:res.partner,ref:0
+ #: field:res.partner.bank.type,code:0
 -#: field:res.partner.function,code:0
+ msgid "Code"
 -msgstr "Code"
++msgstr ""
++
++#. module: base
++#: model:ir.model,name:base.model_res_config_installer
++msgid "res.config.installer"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.mc
+ msgid "Monaco"
 -msgstr "Monaco"
++msgstr ""
+ #. module: base
+ #: selection:ir.cron,interval_type:0
+ msgid "Minutes"
 -msgstr "Minuten"
 -
 -#. module: base
 -#: wizard_view:module.upgrade,end:0
 -#: wizard_view:module.upgrade,start:0
 -msgid "The modules have been upgraded / installed !"
 -msgstr "De modules zijn bewerkt / geïnstalleerd !"
++msgstr ""
+ #. module: base
+ #: selection:ir.translation,type:0
 -#: view:wizard.module.lang.export:0
+ msgid "Help"
 -msgstr "Help"
++msgstr ""
+ #. module: base
 -#: code:addons/tools/amount_to_text_en.py:0
 -#, python-format
 -msgid "Number too large '%d', can not translate it"
 -msgstr "Getal te groot '%d', kan niet worden omgezet."
++#: help:res.config.users,menu_id:0
++#: help:res.users,menu_id:0
++msgid ""
++"If specified, the action will replace the standard menu for this user."
++msgstr ""
++
++#. module: base
++#: selection:ir.actions.server,state:0
++msgid "Write Object"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_fundrising
++msgid "Fund Raising"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-hr"
 -msgstr "terp-hr"
++#: model:ir.actions.act_window,name:base.ir_sequence_type
++#: model:ir.ui.menu,name:base.menu_ir_sequence_type
++msgid "Sequence Codes"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Spanish (CO) / Español (CO)"
++msgstr ""
++
++#. module: base
++#: view:base.module.configuration:0
++msgid ""
++"All pending configuration wizards have been executed. You may restart "
++"individual wizards via the list of configuration wizards."
++msgstr ""
+ #. module: base
+ #: wizard_button:server.action.create,step_1,create:0
+ msgid "Create"
 -msgstr "Aanmaken"
++msgstr ""
++
++#. module: base
++#: view:ir.sequence:0
++msgid "Current Year with Century: %(year)s"
++msgstr ""
+ #. module: base
+ #: field:ir.exports,export_fields:0
+ msgid "Export ID"
 -msgstr "Export ID"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.fr
+ msgid "France"
 -msgstr "Frankrijk"
++msgstr ""
++
++#. module: base
++#: model:ir.model,name:base.model_res_log
++msgid "res.log"
++msgstr ""
+ #. module: base
++#: help:ir.translation,module:0
++#: help:ir.translation,xml_id:0
++msgid "Maps to the ir_model_data for which this translation is provided."
++msgstr ""
++
++#. module: base
++#: view:workflow.activity:0
+ #: field:workflow.activity,flow_stop:0
+ msgid "Flow Stop"
+ msgstr ""
+ #. module: base
+ #: selection:ir.cron,interval_type:0
+ msgid "Weeks"
 -msgstr "Weken"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.af
+ msgid "Afghanistan, Islamic State of"
 -msgstr "Afghanistan"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/module/wizard/wizard_module_import.py:0
++#: code:addons/base/module/wizard/base_module_import.py:67
+ #, python-format
+ msgid "Error !"
 -msgstr "Fout !"
++msgstr ""
+ #. module: base
+ #: model:res.partner.bank.type.field,name:base.bank_normal_field_contry
+ msgid "country_id"
+ msgstr ""
+ #. module: base
+ #: field:ir.cron,interval_type:0
+ msgid "Interval Unit"
+ msgstr ""
+ #. module: base
 -#: field:maintenance.contract,kind:0
++#: field:publisher_warranty.contract,kind:0
+ #: field:workflow.activity,kind:0
+ msgid "Kind"
 -msgstr "Soort"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/orm.py:3775
+ #, python-format
+ msgid "This method does not exist anymore"
 -msgstr "Deze methode bestaat niet meer"
 -
 -#. module: base
 -#: selection:ir.actions.todo,start_on:0
 -msgid "Manual"
+ msgstr ""
+ #. module: base
+ #: field:res.bank,fax:0
+ #: field:res.partner.address,fax:0
+ msgid "Fax"
 -msgstr "Fax"
++msgstr ""
+ #. module: base
+ #: field:res.lang,thousands_sep:0
+ msgid "Thousands Separator"
 -msgstr "Scheidingsteken voor duizendtallen"
++msgstr ""
+ #. module: base
+ #: field:res.request,create_date:0
+ msgid "Created Date"
 -msgstr "Aanmaakdatum"
 -
 -#. module: base
 -#: selection:ir.report.custom,type:0
 -msgid "Line Plot"
+ msgstr ""
+ #. module: base
 -#: field:ir.default,value:0
 -msgid "Default Value"
 -msgstr "Standaardwaarde"
 -
 -#. module: base
+ #: help:ir.actions.server,loop_action:0
+ msgid ""
+ "Select the action that will be executed. Loop action will not be avaliable "
+ "inside loop."
+ msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Chinese (TW) / 正體字"
 -msgstr "Chinees (TW) / 正體字"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_GO_UP"
 -msgstr "STOCK_GO_UP"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_res_request
+ msgid "res.request"
 -msgstr "res.request"
++msgstr ""
+ #. module: base
 -#: selection:ir.actions.report.xml,report_type:0
 -msgid "pdf"
 -msgstr "pdf"
++#: view:ir.model:0
++msgid "In Memory"
++msgstr ""
+ #. module: base
 -#: field:ir.default,company_id:0
 -#: field:ir.property,company_id:0
 -#: field:ir.values,company_id:0
 -#: view:res.company:0
 -#: field:res.users,company_id:0
 -msgid "Company"
 -msgstr "Bedrijf"
++#: view:ir.actions.todo:0
++msgid "Todo"
++msgstr ""
+ #. module: base
+ #: field:ir.attachment,datas:0
+ msgid "File Content"
 -msgstr "Bestandsinhoud"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.pa
+ msgid "Panama"
 -msgstr "Panama"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.gi
 -msgid "Gibraltar"
 -msgstr "Gibraltar"
++#: model:res.partner.title,name:base.res_partner_title_ltd
++msgid "Ltd"
++msgstr ""
+ #. module: base
 -#: selection:wizard.module.lang.export,format:0
 -msgid "PO File"
 -msgstr "PO Bestand"
++#: help:workflow.transition,group_id:0
++msgid ""
++"The group that a user must have to be authorized to validate this transition."
++msgstr ""
+ #. module: base
 -#: view:ir.attachment:0
 -msgid "Preview"
 -msgstr "Voorbeeldweergave"
++#: constraint:res.config.users:0
++#: constraint:res.users:0
++msgid "The chosen company is not in the allowed companies for this user"
++msgstr ""
+ #. module: base
 -#: view:ir.actions.configuration.wizard:0
 -msgid "Skip Step"
 -msgstr "Stap Overslaan"
++#: model:res.country,name:base.gi
++msgid "Gibraltar"
++msgstr ""
++
++#. module: base
++#: field:ir.actions.report.xml,report_name:0
++msgid "Service Name"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.pn
+ msgid "Pitcairn Island"
 -msgstr "Pitcairn eiland"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.res_partner_event_type-act
 -#: model:ir.ui.menu,name:base.menu_res_partner_event_type-act
 -msgid "Active Partner Events"
++#: view:base.module.upgrade:0
++msgid ""
++"We suggest to reload the menu tab to see the new menus (Ctrl+T then Ctrl+R)."
+ msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_rule
+ #: model:ir.ui.menu,name:base.menu_action_rule
+ msgid "Record Rules"
+ msgstr ""
+ #. module: base
 -#: view:ir.sequence:0
 -msgid "Day of the year: %(doy)s"
 -msgstr "Dag van het jaar: %(doy)s"
++#: field:res.config.users,name:0
++#: field:res.users,name:0
++msgid "User Name"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_SPELL_CHECK"
 -msgstr "STOCK_SPELL_CHECK"
++#: view:ir.sequence:0
++msgid "Day of the year: %(doy)s"
++msgstr ""
+ #. module: base
+ #: view:ir.model:0
+ #: view:ir.model.fields:0
 -#: view:ir.property:0
 -#: model:ir.ui.menu,name:base.next_id_15
++#: view:workflow.activity:0
+ msgid "Properties"
 -msgstr "Eigenschappen"
++msgstr ""
++
++#. module: base
++#: help:ir.sequence,padding:0
++msgid ""
++"OpenERP will automatically adds some '0' on the left of the 'Next Number' to "
++"get the required padding size."
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "%A - Full weekday name."
 -msgstr "%A - Volledige naam van de dag."
++msgstr ""
+ #. module: base
+ #: selection:ir.cron,interval_type:0
+ msgid "Months"
 -msgstr "Maanden"
++msgstr ""
+ #. module: base
 -#: selection:ir.translation,type:0
 -msgid "Selection"
 -msgstr "Selectie"
++#: field:ir.actions.act_window,search_view:0
++msgid "Search View"
++msgstr ""
+ #. module: base
 -#: field:ir.rule,domain_force:0
 -msgid "Force Domain"
 -msgstr "Domein forceren"
++#: sql_constraint:res.lang:0
++msgid "The code of the language must be unique !"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_attachment
++#: view:ir.actions.report.xml:0
+ #: view:ir.attachment:0
+ #: model:ir.ui.menu,name:base.menu_action_attachment
+ msgid "Attachments"
 -msgstr "Bijlagen"
 -
 -#. module: base
 -#: view:maintenance.contract.wizard:0
 -msgid "_Validate"
+ msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_maintenance_contract_wizard
 -msgid "maintenance.contract.wizard"
 -msgstr "maintenance.contract.wizard"
++#: model:ir.ui.menu,name:base.menu_base_partner
++#: model:ir.ui.menu,name:base.menu_sale_config_sales
++#: model:ir.ui.menu,name:base.menu_sales
++msgid "Sales"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.server,child_ids:0
+ msgid "Other Actions"
+ msgstr ""
+ #. module: base
+ #: selection:ir.actions.todo,state:0
++#: view:res.config.users:0
+ msgid "Done"
 -msgstr "Voltooid"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_GOTO_FIRST"
 -msgstr "STOCK_GOTO_FIRST"
++msgstr ""
+ #. module: base
+ #: model:res.partner.title,name:base.res_partner_title_miss
+ msgid "Miss"
 -msgstr "Mej."
++msgstr ""
+ #. module: base
++#: view:ir.model.access:0
+ #: field:ir.model.access,perm_write:0
++#: view:ir.rule:0
+ msgid "Write Access"
+ msgstr ""
+ #. module: base
++#: view:res.lang:0
++msgid "%m - Month number [01,12]."
++msgstr ""
++
++#. module: base
+ #: field:res.bank,city:0
+ #: field:res.partner,city:0
+ #: field:res.partner.address,city:0
+ #: field:res.partner.bank,city:0
+ msgid "City"
 -msgstr "Plaats"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.qa
+ msgid "Qatar"
 -msgstr "Qatar"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.it
+ msgid "Italy"
 -msgstr "Italië"
 -
 -#. module: base
 -#: selection:ir.rule,operator:0
 -msgid "<>"
 -msgstr "<>"
++msgstr ""
+ #. module: base
 -#: selection:ir.rule,operator:0
 -msgid "<="
 -msgstr "<="
++#: view:ir.actions.todo:0
++#: selection:ir.actions.todo,state:0
++msgid "To Do"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Estonian / Eesti keel"
 -msgstr "Estlands / Eesti keel"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Portugese / português"
 -msgstr "Portugees / português"
++#: field:res.config.users,email:0
++#: field:res.partner,email:0
++#: field:res.users,email:0
++msgid "E-mail"
++msgstr ""
+ #. module: base
+ #: selection:ir.module.module,license:0
+ msgid "GPL-3 or later version"
 -msgstr "GPL-3 of latere versie"
++msgstr ""
+ #. module: base
+ #: field:workflow.activity,action:0
+ msgid "Python Action"
+ msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "Unknown position in inherited view %s !"
 -msgstr "Onbekende positie in geërfde weergave %s !"
++#: selection:base.language.install,lang:0
++msgid "English (US)"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,name:base.action_model_data
++#: view:ir.model.data:0
++#: model:ir.ui.menu,name:base.ir_model_data_menu
++msgid "Object Identifiers"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,help:base.action_partner_title_partner
++msgid ""
++"Manage the partner titles you want to have available in your system. The "
++"partner titles is the legal status of the company: Private Limited, SA, etc."
++msgstr ""
+ #. module: base
 -#: field:res.partner.event,probability:0
 -msgid "Probability (0.50)"
++#: view:base.language.export:0
++msgid "To browse official translations, you can start with these links:"
+ msgstr ""
+ #. module: base
 -#: field:ir.report.custom,repeat_header:0
 -msgid "Repeat Header"
++#: code:addons/base/ir/ir_model.py:484
++#, python-format
++msgid ""
++"You can not read this document (%s) ! Be sure your user belongs to one of "
++"these groups: %s."
+ msgstr ""
+ #. module: base
++#: view:res.bank:0
++#: field:res.config.users,address_id:0
++#: view:res.partner.address:0
++#: view:res.users:0
+ #: field:res.users,address_id:0
+ msgid "Address"
 -msgstr "Adres"
++msgstr ""
+ #. module: base
+ #: field:ir.module.module,latest_version:0
+ msgid "Installed version"
 -msgstr "Geïnstalleerde versie"
++msgstr ""
+ #. module: base
 -#: model:ir.ui.menu,name:base.menu_workflow_root
 -msgid "Workflow Definitions"
++#: selection:base.language.install,lang:0
++msgid "Mongolian / монгол"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.mr
+ msgid "Mauritania"
 -msgstr "Mauretanië"
++msgstr ""
++
++#. module: base
++#: model:ir.model,name:base.model_ir_translation
++msgid "ir.translation"
++msgstr ""
++
++#. module: base
++#: view:base.module.update:0
++msgid "Module update result"
++msgstr ""
+ #. module: base
+ #: view:workflow.activity:0
+ #: field:workflow.workitem,act_id:0
+ msgid "Activity"
+ msgstr ""
+ #. module: base
++#: view:res.partner:0
++#: view:res.partner.address:0
++msgid "Postal Address"
++msgstr ""
++
++#. module: base
+ #: field:res.company,parent_id:0
+ msgid "Parent Company"
+ msgstr ""
+ #. module: base
++#: selection:base.language.install,lang:0
++msgid "Spanish (CR) / Español (CR)"
++msgstr ""
++
++#. module: base
+ #: field:res.currency.rate,rate:0
+ msgid "Rate"
 -msgstr "Wisselkoers"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.cg
+ msgid "Congo"
 -msgstr "Congo"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "Examples"
 -msgstr "Voorbeelden"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_MEDIA_PAUSE"
 -msgstr "STOCK_MEDIA_PAUSE"
 -
 -#. module: base
 -#: help:res.country.state,code:0
 -msgid "The state code in three chars.\n"
 -msgstr "De provinciecode in drie karakters.\n"
++msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_res_country_state
 -msgid "Country state"
 -msgstr "Staat/Provincie"
++#: field:ir.default,value:0
++msgid "Default Value"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.ir_property_form_all
 -#: model:ir.ui.menu,name:base.menu_ir_property_form_all
 -msgid "All Properties"
 -msgstr "Alle Eigenschappen"
++#: model:ir.ui.menu,name:base.menu_tools
++msgid "Tools"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.ir_action_window
 -#: model:ir.ui.menu,name:base.menu_ir_action_window
 -msgid "Window Actions"
 -msgstr "Venster Acties"
++#: model:res.country,name:base.kn
++msgid "Saint Kitts & Nevis Anguilla"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.ch
 -msgid "Switzerland"
 -msgstr "Zwitserland"
++#: code:addons/base/res/res_currency.py:100
++#, python-format
++msgid ""
++"No rate found \n"
++"for the currency: %s \n"
++"at the date: %s"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.kn
 -msgid "Saint Kitts & Nevis Anguilla"
 -msgstr "Saint Kitts & Nevis Anguilla"
++#: model:ir.actions.act_window,help:base.action_ui_view_custom
++msgid ""
++"Customized views are used when users reorganize the content of their "
++"dashboard views (via web client)"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_HOME"
 -msgstr "STOCK_HOME"
++#: field:ir.model,name:0
++#: field:ir.model.fields,model:0
++#: field:ir.values,model:0
++msgid "Object Name"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.server,srcmodel_id:0
+ msgid ""
+ "Object in which you want to create / write the object. If it is empty then "
+ "refer to the Object field."
+ msgstr ""
 -"Object waarbinnen u het object wilt aanmaken/schrijven. Als het leeg is dan "
 -"wordt het objectveld gebruikt."
+ #. module: base
++#: view:ir.module.module:0
+ #: selection:ir.module.module,state:0
+ #: selection:ir.module.module.dependency,state:0
+ msgid "Not Installed"
 -msgstr "Niet geïnstalleerd"
++msgstr ""
+ #. module: base
++#: view:workflow.activity:0
+ #: field:workflow.activity,out_transitions:0
+ msgid "Outgoing Transitions"
+ msgstr ""
+ #. module: base
+ #: field:ir.ui.menu,icon:0
+ msgid "Icon"
 -msgstr "Icoon"
++msgstr ""
++
++#. module: base
++#: help:ir.model.fields,model_id:0
++msgid "The model this field belongs to"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.mq
+ msgid "Martinique (French)"
 -msgstr "Martinique"
++msgstr ""
++
++#. module: base
++#: view:ir.sequence.type:0
++msgid "Sequences Type"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.res_request-act
+ #: model:ir.ui.menu,name:base.menu_res_request_act
 -#: model:ir.ui.menu,name:base.next_id_12
++#: model:ir.ui.menu,name:base.menu_resquest_ref
+ #: view:res.request:0
+ msgid "Requests"
 -msgstr "Verzoeken"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ye
+ msgid "Yemen"
 -msgstr "Jemen"
++msgstr ""
+ #. module: base
+ #: selection:workflow.activity,split_mode:0
+ msgid "Or"
 -msgstr "Of"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.pk
 -msgid "Pakistan"
 -msgstr "Pakistan"
++#: model:ir.actions.act_window,name:base.res_log_act_window
++#: model:ir.ui.menu,name:base.menu_res_log_act_window
++msgid "Client Logs"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.al
+ msgid "Albania"
 -msgstr "Albanië"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ws
+ msgid "Samoa"
 -msgstr "Samoa"
++msgstr ""
++
++#. module: base
++#: code:addons/base/res/res_lang.py:161
++#, python-format
++msgid ""
++"You cannot delete the language which is Active !\n"
++"Please de-activate the language first."
++msgstr ""
++
++#. module: base
++#: view:base.language.install:0
++#: view:base.module.import:0
++msgid ""
++"Please be patient, this operation may take a few minutes (depending on the "
++"number of modules currently installed)..."
++msgstr ""
+ #. module: base
+ #: field:ir.ui.menu,child_id:0
+ msgid "Child IDs"
 -msgstr "Onderliggende ID's"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_actions.py:0
++#: code:addons/base/ir/ir_actions.py:713
++#: code:addons/base/ir/ir_actions.py:716
+ #, python-format
+ msgid "Problem in configuration `Record Id` in Server Action!"
 -msgstr "Probleem in configuratie `Record id` in Server Actie!"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/maintenance/maintenance.py:0
++#: code:addons/orm.py:2306
++#: code:addons/orm.py:2316
+ #, python-format
 -msgid "This error occurs on database %s"
++msgid "ValidateError"
++msgstr ""
++
++#. module: base
++#: view:base.module.import:0
++#: view:base.module.update:0
++msgid "Open Modules"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,help:base.action_res_bank_form
++msgid "Manage bank records you want to be used in the system."
+ msgstr ""
+ #. module: base
 -#: wizard_button:base.module.import,init,import:0
 -#: model:ir.actions.wizard,name:base.wizard_base_module_import
 -#: model:ir.ui.menu,name:base.menu_wizard_module_import
++#: view:base.module.import:0
+ msgid "Import module"
 -msgstr "Importeer module"
++msgstr ""
++
++#. module: base
++#: field:ir.actions.server,loop_action:0
++msgid "Loop Action"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_DISCONNECT"
 -msgstr "STOCK_DISCONNECT"
++#: help:ir.actions.report.xml,report_file:0
++msgid ""
++"The path to the main report file (depending on Report Type) or NULL if the "
++"content is in another field"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.la
+ msgid "Laos"
 -msgstr "Laos"
++msgstr ""
+ #. module: base
+ #: selection:ir.actions.server,state:0
++#: field:res.config.users,user_email:0
++#: field:res.users,user_email:0
+ msgid "Email"
 -msgstr "Email"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_wizard_update_translations
 -#: model:ir.ui.menu,name:base.menu_wizard_update_translations
 -msgid "Resynchronise Terms"
++#: field:res.config.users,action_id:0
++#: field:res.users,action_id:0
++msgid "Home Action"
++msgstr ""
++
++#. module: base
++#: code:addons/custom.py:558
++#, python-format
++msgid ""
++"The sum of the data (2nd field) is null.\n"
++"We can't draw a pie chart !"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_lunch_reporting
++#: model:ir.ui.menu,name:base.menu_project_report
++#: model:ir.ui.menu,name:base.menu_report_association
++#: model:ir.ui.menu,name:base.menu_report_marketing
++#: model:ir.ui.menu,name:base.menu_reporting
++#: model:ir.ui.menu,name:base.next_id_64
++#: model:ir.ui.menu,name:base.next_id_73
++#: model:ir.ui.menu,name:base.reporting_menu
++msgid "Reporting"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.tg
+ msgid "Togo"
 -msgstr "Togo"
++msgstr ""
++
++#. module: base
++#: selection:ir.module.module,license:0
++msgid "Other Proprietary"
++msgstr ""
+ #. module: base
+ #: selection:workflow.activity,kind:0
+ msgid "Stop All"
 -msgstr "Alles stoppen"
++msgstr ""
++
++#. module: base
++#: code:addons/orm.py:412
++#, python-format
++msgid "The read_group method is not implemented on this object !"
++msgstr ""
++
++#. module: base
++#: view:ir.model.data:0
++msgid "Updatable"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "3.  %x ,%X         ==> 12/05/08, 18:25:20"
 -msgstr "3.  %x ,%X         ==> 12/05/08, 18:25:20"
++msgstr ""
+ #. module: base
+ #: selection:ir.model.fields,on_delete:0
+ msgid "Cascade"
+ msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_report_custom.py:0
 -#, python-format
 -msgid "Field %d should be a figure"
++#: field:workflow.transition,group_id:0
++msgid "Group Required"
+ msgstr ""
+ #. module: base
+ #: view:ir.actions.configuration.wizard:0
+ msgid "Next Configuration Step"
 -msgstr "Volgende Configuratie Stap"
++msgstr ""
+ #. module: base
+ #: field:res.groups,comment:0
+ msgid "Comment"
 -msgstr "Opmerking"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ro
+ msgid "Romania"
 -msgstr "Roemenië"
++msgstr ""
++
++#. module: base
++#: help:ir.cron,doall:0
++msgid ""
++"Enable this if you want to execute missed occurences as soon as the server "
++"restarts."
++msgstr ""
++
++#. module: base
++#: view:base.module.upgrade:0
++msgid "Start update"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_PREFERENCES"
 -msgstr "STOCK_PREFERENCES"
++#: code:addons/base/publisher_warranty/publisher_warranty.py:144
++#, python-format
++msgid "Contract validation error"
++msgstr ""
+ #. module: base
+ #: field:res.country.state,name:0
+ msgid "State Name"
 -msgstr "Naam Staat/Provincie"
++msgstr ""
+ #. module: base
+ #: field:workflow.activity,join_mode:0
+ msgid "Join Mode"
+ msgstr ""
+ #. module: base
++#: field:res.config.users,context_tz:0
+ #: field:res.users,context_tz:0
+ msgid "Timezone"
 -msgstr "Tijdszone"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_GOTO_LAST"
 -msgstr "STOCK_GOTO_LAST"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_actions_report_xml
+ #: selection:ir.ui.menu,action:0
+ msgid "ir.actions.report.xml"
 -msgstr "ir.actions.report.xml"
++msgstr ""
+ #. module: base
 -#: view:wizard.module.lang.export:0
 -msgid ""
 -"To improve some terms of the official translations of OpenERP, you should "
 -"modify the terms directly on the launchpad interface. If you made lots of "
 -"translations for your own module, you can also publish all your translation "
 -"at once."
++#: model:res.partner.title,shortcut:base.res_partner_title_miss
++msgid "Mss"
+ msgstr ""
 -"Om enkele termen van de officiële vertalingen van OpenERP te verbeteren kunt "
 -"u dit het beste direct op de launchpad pagina doen. Wanneer u veel "
 -"vertalingen heeft voor uw eigen module kunt u de vertaling ook ineens "
 -"publiceren."
+ #. module: base
 -#: wizard_button:module.lang.install,init,start:0
 -msgid "Start installation"
 -msgstr "Installatie Starten"
++#: model:ir.model,name:base.model_ir_ui_view
++msgid "ir.ui.view"
++msgstr ""
+ #. module: base
+ #: constraint:res.partner:0
+ msgid "Error ! You can not create recursive associated members."
+ msgstr ""
+ #. module: base
++#: help:res.lang,code:0
++msgid "This field is used to set/get locales for user"
++msgstr ""
++
++#. module: base
+ #: model:res.partner.category,name:base.res_partner_category_2
+ msgid "OpenERP Partners"
+ msgstr ""
+ #. module: base
++#: model:ir.ui.menu,name:base.menu_hr_manager
++msgid "HR Manager Dashboard"
++msgstr ""
++
++#. module: base
++#: code:addons/base/module/module.py:253
++#, python-format
++msgid ""
++"Unable to install module \"%s\" because an external dependency is not met: %s"
++msgstr ""
++
++#. module: base
++#: view:ir.module.module:0
++msgid "Search modules"
++msgstr ""
++
++#. module: base
+ #: model:res.country,name:base.by
+ msgid "Belarus"
 -msgstr "Wit-Rusland"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.act_window,name:0
+ #: field:ir.actions.act_window_close,name:0
+ #: field:ir.actions.actions,name:0
+ #: field:ir.actions.server,name:0
+ #: field:ir.actions.url,name:0
++#: field:ir.filters,name:0
+ msgid "Action Name"
+ msgstr ""
+ #. module: base
++#: model:ir.actions.act_window,help:base.action_res_users
++msgid ""
++"Create and manage users that will connect to the system. Users can be "
++"deactivated should there be a period of time during which they will/should "
++"not connect to the system. You can assign them groups in order to give them "
++"specific access to the applications they need to use in the system."
++msgstr ""
++
++#. module: base
+ #: selection:res.request,priority:0
+ msgid "Normal"
 -msgstr "Normaal"
++msgstr ""
+ #. module: base
+ #: field:res.bank,street2:0
+ #: field:res.partner.address,street2:0
+ msgid "Street2"
 -msgstr "Adres 2"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.pr
 -msgid "Puerto Rico"
 -msgstr "Puerto Rico"
++#: model:ir.actions.act_window,name:base.action_view_base_module_update
++msgid "Module Update"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/res/res_currency.py:0
++#: code:addons/base/module/wizard/base_module_upgrade.py:95
+ #, python-format
 -msgid ""
 -"No rate found \n"
 -"' \\n                    'for the currency: %s \n"
 -"' \\n                    'at the date: %s"
++msgid "Following modules are not installed or unknown: %s"
++msgstr ""
++
++#. module: base
++#: view:ir.cron:0
++#: field:ir.cron,user_id:0
++#: view:ir.filters:0
++#: field:ir.filters,user_id:0
++#: field:ir.ui.view.custom,user_id:0
++#: field:ir.values,user_id:0
++#: field:res.log,user_id:0
++#: field:res.partner.event,user_id:0
++#: view:res.users:0
++#: field:res.widget.user,user_id:0
++msgid "User"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.pr
++msgid "Puerto Rico"
+ msgstr ""
+ #. module: base
+ #: view:ir.actions.act_window:0
+ msgid "Open Window"
 -msgstr "Open venster"
++msgstr ""
+ #. module: base
 -#: field:ir.module.repository,filter:0
++#: field:ir.actions.act_window,auto_search:0
++msgid "Auto Search"
++msgstr ""
++
++#. module: base
++#: field:ir.actions.act_window,filter:0
+ msgid "Filter"
 -msgstr "Filter"
++msgstr ""
++
++#. module: base
++#: model:res.partner.title,shortcut:base.res_partner_title_madam
++msgid "Ms."
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.ch
++msgid "Switzerland"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.gd
+ msgid "Grenada"
 -msgstr "Grenada"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.wf
+ msgid "Wallis and Futuna Islands"
 -msgstr "Wallis and Futuna-eilanden"
++msgstr ""
+ #. module: base
+ #: selection:server.action.create,init,type:0
+ msgid "Open Report"
 -msgstr "Open rapport"
++msgstr ""
+ #. module: base
+ #: field:res.currency,rounding:0
+ msgid "Rounding factor"
 -msgstr "Afrondingsfactor"
++msgstr ""
+ #. module: base
 -#: wizard_view:module.module.update,update:0
 -msgid "New modules"
 -msgstr "Nieuwe modules"
++#: view:base.language.install:0
++msgid "Load"
++msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_res_company
 -msgid "res.company"
 -msgstr "res.company"
++#: help:res.config.users,name:0
++#: help:res.users,name:0
++msgid "The new user's real name, used for searching and most listings"
++msgstr ""
++
++#. module: base
++#: code:addons/osv.py:154
++#: code:addons/osv.py:156
++#, python-format
++msgid "Integrity Error"
++msgstr ""
+ #. module: base
 -#: wizard_view:module.upgrade,end:0
 -#: wizard_view:module.upgrade,start:0
 -msgid "System upgrade done"
 -msgstr "Bijwerken systeem voltooid"
++#: model:ir.model,name:base.model_ir_wizard_screen
++msgid "ir.wizard.screen"
++msgstr ""
++
++#. module: base
++#: code:addons/base/ir/ir_model.py:223
++#, python-format
++msgid "Size of the field can never be less than 1 !"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.so
+ msgid "Somalia"
 -msgstr "Somalië"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_config_simple_view_form
 -msgid "Configure Simple View"
 -msgstr "Eenvoudige Weergave Aanpassen"
++#: selection:publisher_warranty.contract,state:0
++msgid "Terminated"
++msgstr ""
+ #. module: base
+ #: model:res.partner.category,name:base.res_partner_category_13
+ msgid "Important customers"
 -msgstr "Belangrijke klanten"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_report_custom
 -#: view:ir.report.custom:0
 -msgid "Custom Report"
 -msgstr "Aangepast Rapport"
++#: view:res.lang:0
++msgid "Update Terms"
++msgstr ""
+ #. module: base
 -#: field:ir.cron,args:0
 -msgid "Arguments"
 -msgstr "Argumenten"
++#: field:partner.sms.send,mobile_to:0
++#: field:res.request,act_to:0
++#: field:res.request.history,act_to:0
++msgid "To"
++msgstr ""
+ #. module: base
 -#: selection:ir.actions.report.xml,report_type:0
 -msgid "sxw"
 -msgstr "sxw"
++#: view:ir.cron:0
++#: field:ir.cron,args:0
++msgid "Arguments"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/orm.py:716
+ #, python-format
+ msgid "Database ID doesn't exist: %s : %s"
+ msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "key '%s' not found in selection field '%s'"
++#: selection:ir.module.module,license:0
++msgid "GPL Version 2"
++msgstr ""
++
++#. module: base
++#: selection:ir.module.module,license:0
++msgid "GPL Version 3"
+ msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
++#: code:addons/orm.py:836
+ #, python-format
 -msgid "The value \"%s\" for the field \"%s\" is not in the selection"
++msgid "key '%s' not found in selection field '%s'"
+ msgstr ""
 -"De waarde \"% s\" voor het veld \"% s\" is niet opgenomen in de selectie"
+ #. module: base
 -#: field:ir.actions.report.xml,auto:0
 -msgid "Automatic XSL:RML"
 -msgstr "Automatische XSL:RML"
++#: view:partner.wizard.ean.check:0
++msgid "Correct EAN13"
++msgstr ""
+ #. module: base
 -#: view:ir.rule:0
 -msgid "Manual domain setup"
 -msgstr "Handmatige domein installatie"
++#: code:addons/orm.py:2317
++#, python-format
++msgid "The value \"%s\" for the field \"%s\" is not in the selection"
++msgstr ""
+ #. module: base
+ #: field:res.partner,customer:0
++#: view:res.partner.address:0
++#: field:res.partner.address,is_customer_add:0
+ #: model:res.partner.category,name:base.res_partner_category_0
 -#: selection:res.partner.event,partner_type:0
+ msgid "Customer"
 -msgstr "Klant"
++msgstr ""
+ #. module: base
 -#: field:ir.actions.report.custom,name:0
 -#: field:ir.report.custom,name:0
 -msgid "Report Name"
 -msgstr "Rapport Naam"
++#: selection:base.language.install,lang:0
++msgid "Spanish (NI) / Español (NI)"
++msgstr ""
+ #. module: base
+ #: field:ir.module.module,shortdesc:0
+ msgid "Short Description"
 -msgstr "Korte omschrijving"
 -
 -#. module: base
 -#: field:res.partner.event,partner_type:0
 -msgid "Partner Relation"
+ msgstr ""
+ #. module: base
+ #: field:ir.actions.act_window,context:0
++#: field:ir.filters,context:0
+ msgid "Context Value"
+ msgstr ""
+ #. module: base
+ #: view:ir.sequence:0
+ msgid "Hour 00->24: %(h24)s"
 -msgstr "Uur 00->24: %(h24)s"
++msgstr ""
++
++#. module: base
++#: field:ir.cron,nextcall:0
++msgid "Next Execution Date"
++msgstr ""
++
++#. module: base
++#: help:multi_company.default,field_id:0
++msgid "Select field property"
++msgstr ""
+ #. module: base
+ #: field:res.request.history,date_sent:0
+ msgid "Date sent"
 -msgstr "Verzenddatum"
++msgstr ""
+ #. module: base
+ #: view:ir.sequence:0
+ msgid "Month: %(month)s"
+ msgstr ""
+ #. module: base
+ #: field:ir.actions.act_window.view,sequence:0
+ #: field:ir.actions.server,sequence:0
+ #: field:ir.actions.todo,sequence:0
 -#: field:ir.module.repository,sequence:0
 -#: field:ir.report.custom.fields,sequence:0
++#: view:ir.cron:0
+ #: view:ir.sequence:0
+ #: field:ir.ui.menu,sequence:0
++#: view:ir.ui.view:0
++#: field:ir.ui.view,priority:0
+ #: field:ir.ui.view_sc,sequence:0
++#: field:multi_company.default,sequence:0
+ #: field:res.partner.bank,sequence:0
++#: field:res.widget.user,sequence:0
+ #: field:wizard.ir.model.menu.create.line,sequence:0
+ msgid "Sequence"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.tn
+ msgid "Tunisia"
 -msgstr "Tunesië"
++msgstr ""
+ #. module: base
 -#: field:ir.actions.wizard,name:0
 -msgid "Wizard Info"
 -msgstr "Assistent informatie"
++#: model:ir.ui.menu,name:base.menu_mrp_root
++msgid "Manufacturing"
++msgstr ""
+ #. module: base
 -#: help:ir.cron,numbercall:0
 -msgid ""
 -"Number of time the function is called,\n"
 -"a negative number indicates that the function will always be called"
++#: model:res.country,name:base.km
++msgid "Comoros"
+ msgstr ""
 -"Aantal keer dat de functie wordt aangeroepen,\n"
 -"een negatief getal geeft aan dat de functie altijd wordt aangeroepen"
+ #. module: base
 -#: model:res.partner.category,name:base.res_partner_category_16
 -msgid "Telecom sector"
 -msgstr "Telecom sector"
++#: model:ir.actions.act_window,name:base.action_server_action
++#: view:ir.actions.server:0
++#: model:ir.ui.menu,name:base.menu_server_action
++msgid "Server Actions"
++msgstr ""
+ #. module: base
+ #: view:ir.module.module:0
+ msgid "Cancel Install"
+ msgstr ""
+ #. module: base
++#: field:ir.model.fields,selection:0
++msgid "Selection Options"
++msgstr ""
++
++#. module: base
++#: field:res.partner.category,parent_right:0
++msgid "Right parent"
++msgstr ""
++
++#. module: base
+ #: view:res.lang:0
+ msgid "Legends for Date and Time Formats"
 -msgstr "Legenda voor Datum- en Tijdnotatie"
++msgstr ""
+ #. module: base
 -#: selection:ir.report.custom,frequency:0
 -msgid "Monthly"
 -msgstr "Maandelijks"
++#: selection:ir.actions.server,state:0
++msgid "Copy Object"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.res_partner_som-act
 -#: model:ir.ui.menu,name:base.menu_res_partner_som-act
 -msgid "States of mind"
++#: code:addons/base/res/res_user.py:581
++#, python-format
++msgid ""
++"Group(s) cannot be deleted, because some user(s) still belong to them: %s !"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_SORT_ASCENDING"
 -msgstr "STOCK_SORT_ASCENDING"
++#: model:ir.actions.act_window,name:base.action_country_state
++#: model:ir.ui.menu,name:base.menu_country_state_partner
++msgid "Fed. States"
++msgstr ""
+ #. module: base
+ #: view:ir.model:0
+ #: view:res.groups:0
+ msgid "Access Rules"
 -msgstr "Toegangsrechten"
++msgstr ""
+ #. module: base
+ #: field:ir.default,ref_table:0
+ msgid "Table Ref."
 -msgstr "Tabel Ref."
 -
 -#. module: base
 -#: field:res.roles,parent_id:0
 -msgid "Parent"
 -msgstr "Bovenliggende"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.act_window,res_model:0
 -#: field:ir.actions.report.custom,model:0
+ #: field:ir.actions.report.xml,model:0
+ #: field:ir.actions.server,model_id:0
+ #: field:ir.actions.wizard,model:0
+ #: field:ir.cron,model:0
+ #: field:ir.default,field_tbl:0
 -#: view:ir.model:0
++#: field:ir.filters,model_id:0
+ #: field:ir.model,model:0
++#: view:ir.model.access:0
+ #: field:ir.model.access,model_id:0
++#: view:ir.model.data:0
+ #: field:ir.model.data,model:0
 -#: field:ir.model.grid,model:0
 -#: field:ir.report.custom,model_id:0
++#: view:ir.model.fields:0
++#: view:ir.rule:0
++#: field:ir.rule,model_id:0
+ #: selection:ir.translation,type:0
++#: view:ir.ui.view:0
+ #: field:ir.ui.view,model:0
++#: view:ir.values:0
+ #: field:ir.values,model_id:0
++#: field:multi_company.default,object_id:0
++#: field:res.log,res_model:0
+ #: field:res.request.link,object:0
 -#: field:wizard.ir.model.menu.create,model_id:0
+ #: field:workflow.triggers,model:0
+ msgid "Object"
 -msgstr "Object"
++msgstr ""
++
++#. module: base
++#: code:addons/osv.py:151
++#, python-format
++msgid ""
++"\n"
++"\n"
++"[object with reference: %s - %s]"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_default
+ msgid "ir.default"
 -msgstr "ir.default"
++msgstr ""
+ #. module: base
+ #: view:ir.sequence:0
+ msgid "Minute: %(min)s"
 -msgstr "Minuut: %(min)s"
++msgstr ""
++
++#. module: base
++#: view:base.update.translations:0
++#: model:ir.actions.act_window,name:base.action_wizard_update_translations
++#: model:ir.ui.menu,name:base.menu_wizard_update_translations
++msgid "Synchronize Translations"
++msgstr ""
+ #. module: base
+ #: model:ir.ui.menu,name:base.next_id_10
+ msgid "Scheduler"
 -msgstr "Planner"
++msgstr ""
+ #. module: base
 -#: view:res.lang:0
 -msgid "%w - Weekday as a decimal number [0(Sunday),6]."
 -msgstr "%w - Weekdag als decimal getal [0(Zondag),6]."
++#: help:ir.cron,numbercall:0
++msgid ""
++"Number of time the function is called,\n"
++"a negative number indicates no limit"
++msgstr ""
+ #. module: base
 -#: view:wizard.module.lang.export:0
 -msgid "Export translation file"
 -msgstr "Vertaalbestand exporteren"
++#: code:addons/base/ir/ir_model.py:331
++#, python-format
++msgid ""
++"Changing the type of a column is not yet supported. Please drop it and "
++"create it again!"
++msgstr ""
++
++#. module: base
++#: field:ir.ui.view_sc,user_id:0
++msgid "User Ref."
++msgstr ""
++
++#. module: base
++#: code:addons/base/res/res_user.py:580
++#, python-format
++msgid "Warning !"
++msgstr ""
++
++#. module: base
++#: model:res.widget,title:base.google_maps_widget
++msgid "Google Maps"
++msgstr ""
+ #. module: base
+ #: model:ir.ui.menu,name:base.menu_base_config
+ #: model:ir.ui.menu,name:base.menu_config
++#: model:ir.ui.menu,name:base.menu_event_config
++#: model:ir.ui.menu,name:base.menu_lunch_survey_root
++#: model:ir.ui.menu,name:base.menu_marketing_config_association
++#: model:ir.ui.menu,name:base.menu_marketing_config_root
+ #: view:res.company:0
+ msgid "Configuration"
 -msgstr "Instellingen"
++msgstr ""
+ #. module: base
 -#: selection:res.partner.event,partner_type:0
 -msgid "Retailer"
 -msgstr "Detailhandelaar"
++#: model:ir.model,name:base.model_publisher_warranty_contract_wizard
++msgid "publisher_warranty.contract.wizard"
++msgstr ""
++
++#. module: base
++#: field:ir.actions.server,expression:0
++msgid "Loop Expression"
++msgstr ""
+ #. module: base
 -#: selection:ir.report.custom,type:0
 -msgid "Tabular"
 -msgstr "In tabelvorm"
++#: field:publisher_warranty.contract,date_start:0
++msgid "Starting Date"
++msgstr ""
+ #. module: base
 -#: field:ir.actions.todo,start_on:0
 -msgid "Start On"
 -msgstr "Start op"
++#: help:res.partner,website:0
++msgid "Website of Partner"
++msgstr ""
+ #. module: base
+ #: model:res.partner.category,name:base.res_partner_category_5
+ msgid "Gold Partner"
+ msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_res_partner
+ #: field:res.company,partner_id:0
 -#: field:res.partner.address,partner_id:0
++#: view:res.partner.address:0
+ #: field:res.partner.bank,partner_id:0
+ #: field:res.partner.event,partner_id:0
+ #: selection:res.partner.title,domain:0
++#: model:res.request.link,name:base.req_link_partner
+ msgid "Partner"
 -msgstr "Relatie"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.tr
+ msgid "Turkey"
 -msgstr "Turkije"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.fk
++msgid "Falkland Islands"
++msgstr ""
+ #. module: base
 -#: selection:ir.actions.report.xml,report_type:0
 -msgid "odt"
 -msgstr "odt"
++#: model:res.country,name:base.lb
++msgid "Lebanon"
++msgstr ""
+ #. module: base
 -#: field:ir.actions.report.custom,type:0
 -#: field:ir.actions.report.xml,type:0
 -#: field:ir.report.custom,type:0
++#: view:ir.actions.report.xml:0
++#: field:ir.actions.report.xml,report_type:0
+ msgid "Report Type"
 -msgstr "Rapporttype"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.todo,state:0
++#: view:ir.module.module:0
+ #: field:ir.module.module,state:0
+ #: field:ir.module.module.dependency,state:0
 -#: field:ir.report.custom,state:0
 -#: field:maintenance.contract,state:0
++#: field:publisher_warranty.contract,state:0
+ #: field:res.bank,state:0
+ #: view:res.country.state:0
+ #: field:res.partner.bank,state_id:0
++#: view:res.request:0
+ #: field:res.request,state:0
+ #: field:workflow.instance,state:0
+ #: field:workflow.workitem,state:0
+ msgid "State"
 -msgstr "Status"
 -
 -#. module: base
 -#: selection:ir.module.module,license:0
 -msgid "Other proprietary"
 -msgstr "Andere eigenaar"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-administration"
 -msgstr "terp-administratie"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_translation
 -#: model:ir.ui.menu,name:base.menu_action_translation
 -msgid "All terms"
 -msgstr "Alle Termen"
++#: selection:base.language.install,lang:0
++msgid "Galician / Galego"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.no
+ msgid "Norway"
 -msgstr "Noorwegen"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "4.  %b, %B         ==> Dec, December"
 -msgstr "4.  %b, %B         ==> Dec, December"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.wizard,name:base.wizard_lang_install
 -#: model:ir.ui.menu,name:base.menu_wizard_lang_install
++#: view:base.language.install:0
++#: model:ir.ui.menu,name:base.menu_view_base_language_install
+ msgid "Load an Official Translation"
 -msgstr "Laad een Officiele vertaling"
++msgstr ""
+ #. module: base
 -#: selection:res.partner.address,type:0
 -msgid "Delivery"
 -msgstr "Levering"
++#: view:res.currency:0
++msgid "Miscelleanous"
++msgstr ""
+ #. module: base
+ #: model:res.partner.category,name:base.res_partner_category_10
+ msgid "Open Source Service Company"
 -msgstr "Open Source Dienstverlener"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.kg
++msgid "Kyrgyz Republic (Kyrgyzstan)"
++msgstr ""
+ #. module: base
+ #: selection:res.request,state:0
+ msgid "waiting"
 -msgstr "in wacht"
++msgstr ""
+ #. module: base
 -#: field:ir.attachment,link:0
 -msgid "Link"
 -msgstr "Koppeling"
++#: field:ir.actions.report.xml,report_file:0
++msgid "Report file"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_workflow_triggers
+ msgid "workflow.triggers"
+ msgstr ""
+ #. module: base
 -#: field:ir.report.custom.fields,report_id:0
 -msgid "Report Ref"
 -msgstr "Rapport Ref."
++#: code:addons/base/ir/ir_model.py:62
++#, python-format
++msgid "Invalid search criterions"
++msgstr ""
++
++#. module: base
++#: view:ir.attachment:0
++msgid "Created"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.wizard,multi:0
+ msgid ""
+ "If set to true, the wizard will not be displayed on the right toolbar of a "
+ "form view."
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_DND"
 -msgstr "STOCK_DND"
++#: view:base.language.import:0
++msgid "- type,name,res_id,src,value"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.hm
+ msgid "Heard and McDonald Islands"
 -msgstr "Heard en McDonald Eilanden"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.act_window,view_id:0
+ msgid "View Ref."
 -msgstr "Weergave Ref."
 -
 -#. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Dutch (Belgium) / Nederlands (Belgïe)"
+ msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.open_repository_tree
 -#: view:ir.module.repository:0
 -#: model:ir.ui.menu,name:base.menu_module_repository_tree
 -msgid "Repository list"
++#: selection:ir.translation,type:0
++msgid "Selection"
+ msgstr ""
+ #. module: base
+ #: field:res.company,rml_header1:0
+ msgid "Report Header"
 -msgstr "Rapport koptekst"
 -
 -#. module: base
 -#: field:res.roles,child_id:0
 -msgid "Children"
 -msgstr "Onderliggende"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.act_window,type:0
+ #: field:ir.actions.act_window_close,type:0
+ #: field:ir.actions.actions,type:0
++#: field:ir.actions.report.xml,type:0
++#: view:ir.actions.server:0
+ #: field:ir.actions.server,state:0
+ #: field:ir.actions.server,type:0
+ #: field:ir.actions.url,type:0
+ #: field:ir.actions.wizard,type:0
+ msgid "Action Type"
 -msgstr "Soort actie"
++msgstr ""
++
++#. module: base
++#: code:addons/base/module/module.py:268
++#, python-format
++msgid ""
++"You try to install module '%s' that depends on module '%s'.\n"
++"But the latter module is not available in your system."
++msgstr ""
++
++#. module: base
++#: view:base.language.import:0
++#: model:ir.actions.act_window,name:base.action_view_base_import_language
++#: model:ir.ui.menu,name:base.menu_view_base_import_language
++msgid "Import Translation"
++msgstr ""
+ #. module: base
+ #: field:res.partner.bank.type,field_ids:0
+ msgid "Type fields"
 -msgstr "Soort velden"
++msgstr ""
+ #. module: base
++#: view:ir.module.module:0
+ #: field:ir.module.module,category_id:0
+ msgid "Category"
 -msgstr "Categorie"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_FLOPPY"
 -msgstr "STOCK_FLOPPY"
++#: view:ir.attachment:0
++#: selection:ir.attachment,type:0
++#: selection:ir.property,type:0
++msgid "Binary"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.server,sms:0
+ #: selection:ir.actions.server,state:0
+ msgid "SMS"
 -msgstr "SMS"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.cr
+ msgid "Costa Rica"
 -msgstr "Costa Rica"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/maintenance/maintenance.py:0
 -#, python-format
 -msgid "Your can't submit bug reports due to uncovered modules: %s"
++#: view:workflow.activity:0
++msgid "Conditions"
+ msgstr ""
+ #. module: base
 -#: view:ir.model:0
 -#: view:res.request:0
 -msgid "Status"
 -msgstr "Status"
++#: model:ir.actions.act_window,name:base.action_partner_other_form
++msgid "Other Partners"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_currency_form
+ #: model:ir.ui.menu,name:base.menu_action_currency_form
+ #: view:res.currency:0
+ msgid "Currencies"
 -msgstr "Valuta"
++msgstr ""
++
++#. module: base
++#: sql_constraint:res.groups:0
++msgid "The name of the group must be unique !"
++msgstr ""
+ #. module: base
+ #: view:ir.sequence:0
+ msgid "Hour 00->12: %(h12)s"
 -msgstr "Uur 00->12: %(h12)s"
++msgstr ""
+ #. module: base
+ #: help:res.partner.address,active:0
+ msgid "Uncheck the active field to hide the contact."
 -msgstr "Deselecteer het actieve veld om de contactpersoon te verbergen."
++msgstr ""
++
++#. module: base
++#: model:ir.model,name:base.model_res_widget_wizard
++msgid "Add a widget for User"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.dk
+ msgid "Denmark"
 -msgstr "Denemarken"
++msgstr ""
+ #. module: base
+ #: field:res.country,code:0
+ msgid "Country Code"
 -msgstr "Landcode"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_workflow_instance
+ msgid "workflow.instance"
+ msgstr ""
+ #. module: base
++#: code:addons/orm.py:278
++#, python-format
++msgid "Unknown attribute %s in %s "
++msgstr ""
++
++#. module: base
+ #: view:res.lang:0
+ msgid "10. %S              ==> 20"
 -msgstr "10. %S             ==> 20"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/fields.py:0
++#: code:addons/fields.py:106
+ #, python-format
+ msgid "undefined get method !"
+ msgstr ""
+ #. module: base
 -#: model:res.partner.title,name:base.res_partner_title_madam
 -msgid "Madam"
 -msgstr "Mevrouw"
++#: selection:base.language.install,lang:0
++msgid "Norwegian Bokmål / Norsk bokmål"
++msgstr ""
++
++#. module: base
++#: help:res.config.users,new_password:0
++#: help:res.users,new_password:0
++msgid ""
++"Only specify a value if you want to change the user password. This user will "
++"have to logout and login again!"
++msgstr ""
++
++#. module: base
++#: model:res.partner.title,name:base.res_partner_title_madam
++msgid "Madam"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.ee
++msgid "Estonia"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.dashboard
++msgid "Dashboards"
++msgstr ""
++
++#. module: base
++#: help:ir.attachment,type:0
++msgid "Binary File or external URL"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.ee
 -msgid "Estonia"
 -msgstr "Estland"
++#: field:res.config.users,new_password:0
++#: field:res.users,new_password:0
++msgid "Change password"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.nl
+ msgid "Netherlands"
 -msgstr "Nederland"
++msgstr ""
+ #. module: base
+ #: model:ir.ui.menu,name:base.next_id_4
+ msgid "Low Level Objects"
+ msgstr ""
+ #. module: base
 -#: model:ir.model,name:base.model_ir_report_custom
 -msgid "ir.report.custom"
 -msgstr "ir.report.custom"
 -
 -#. module: base
 -#: selection:res.partner.event,type:0
 -msgid "Purchase Offer"
 -msgstr "Inkoopofferte"
++#: view:res.company:0
++msgid "Your Logo - Use a size of about 450x150 pixels."
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_values
+ msgid "ir.values"
 -msgstr "ir.values"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Occitan (FR, post 1500) / Occitan"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_ZOOM_FIT"
 -msgstr "STOCK_ZOOM_FIT"
++#: model:ir.actions.act_window,help:base.open_module_tree
++msgid ""
++"You can install new modules in order to activate new features, menu, reports "
++"or data in your OpenERP instance. To install some modules, click on the "
++"button \"Schedule for Installation\" from the form view, then click on "
++"\"Apply Scheduled Upgrades\" to migrate your system."
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_emails
++#: model:ir.ui.menu,name:base.menu_mail_gateway
++msgid "Emails"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.cd
+ msgid "Congo, The Democratic Republic of the"
 -msgstr "Congo, Democratische Republiek"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Malayalam / മലയാളം"
++msgstr ""
+ #. module: base
+ #: view:res.request:0
+ #: field:res.request,body:0
+ #: field:res.request.history,req_id:0
+ msgid "Request"
 -msgstr "Verzoek"
 -
 -#. module: base
 -#: selection:ir.cron,interval_type:0
 -msgid "Days"
 -msgstr "Dagen"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.jp
+ msgid "Japan"
 -msgstr "Japan"
++msgstr ""
+ #. module: base
+ #: field:ir.cron,numbercall:0
+ msgid "Number of Calls"
+ msgstr ""
+ #. module: base
 -#: wizard_view:module.lang.install,start:0
 -msgid "Language file loaded."
 -msgstr "Taalbestand geladen."
 -
 -#. module: base
 -#: wizard_view:module.upgrade,next:0
 -#: wizard_field:module.upgrade,next,module_info:0
++#: view:base.module.upgrade:0
++#: field:base.module.upgrade,module_info:0
+ msgid "Modules to update"
 -msgstr "Bij te werken Modules"
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.action2
 -msgid "Company Architecture"
 -msgstr "Bedrijfsstructuur"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_GOTO_BOTTOM"
 -msgstr "STOCK_GOTO_BOTTOM"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.server,sequence:0
+ msgid ""
+ "Important when you deal with multiple actions, the execution order will be "
+ "decided based on this, low number is higher priority."
+ msgstr ""
+ #. module: base
+ #: field:ir.actions.report.xml,header:0
+ msgid "Add RML header"
 -msgstr "RML Koptekst Toevoegen"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.gr
+ msgid "Greece"
 -msgstr "Griekenland"
++msgstr ""
++
++#. module: base
++#: field:res.request,trigger_date:0
++msgid "Trigger Date"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Croatian / hrvatski jezik"
 -msgstr "Croatian / hrvatski jezik"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_GO_FORWARD"
 -msgstr "STOCK_GO_FORWARD"
++#: field:base.language.install,overwrite:0
++msgid "Overwrite Existing Terms"
++msgstr ""
+ #. module: base
+ #: help:ir.actions.server,code:0
+ msgid "Python code to be executed"
+ msgstr ""
+ #. module: base
++#: sql_constraint:res.country:0
++msgid "The code of the country must be unique !"
++msgstr ""
++
++#. module: base
+ #: selection:ir.module.module.dependency,state:0
+ msgid "Uninstallable"
 -msgstr "Niet installeerbaar"
++msgstr ""
+ #. module: base
+ #: view:res.partner.category:0
+ msgid "Partner Category"
 -msgstr "Relatiecategorie"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ #: selection:ir.actions.server,state:0
+ msgid "Trigger"
+ msgstr ""
+ #. module: base
 -#: field:ir.model.fields,translate:0
 -msgid "Translate"
 -msgstr "Vertalen"
++#: model:ir.model,name:base.model_base_module_update
++msgid "Update Module"
++msgstr ""
+ #. module: base
 -#: view:ir.actions.server:0
 -msgid ""
 -"Access all the fields related to the current object using expression in "
 -"double brackets, i.e. [[ object.partner_id.name ]]"
++#: view:ir.model.fields:0
++#: field:ir.model.fields,translate:0
++msgid "Translate"
+ msgstr ""
+ #. module: base
+ #: field:res.request.history,body:0
+ msgid "Body"
 -msgstr "Inhoud"
++msgstr ""
+ #. module: base
 -#: wizard_button:res.partner.spam_send,init,send:0
++#: view:partner.wizard.spam:0
+ msgid "Send Email"
 -msgstr "E-mail verzenden"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_SELECT_FONT"
 -msgstr "STOCK_SELECT_FONT"
++msgstr ""
+ #. module: base
++#: field:res.config.users,menu_id:0
+ #: field:res.users,menu_id:0
+ msgid "Menu Action"
+ msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
++#: help:ir.model.fields,selection:0
+ msgid ""
 -"Unable to delete this document because it is used as a default property"
++"List of options for a selection field, specified as a Python expression "
++"defining a list of (key, label) pairs. For example: "
++"[('blue','Blue'),('yellow','Yellow')]"
+ msgstr ""
+ #. module: base
 -#: selection:wizard.module.lang.export,state:0
++#: selection:base.language.export,state:0
+ msgid "choose"
 -msgstr "kiezen"
++msgstr ""
+ #. module: base
 -#: selection:ir.actions.act_window.view,view_mode:0
 -#: selection:ir.ui.view,type:0
 -#: selection:wizard.ir.model.menu.create.line,view_type:0
 -msgid "Graph"
 -msgstr "Grafiek"
++#: help:ir.model,osv_memory:0
++msgid ""
++"Indicates whether this object model lives in memory only, i.e. is not "
++"persisted (osv.osv_memory)"
++msgstr ""
+ #. module: base
+ #: field:res.partner,child_ids:0
+ #: field:res.request,ref_partner_id:0
+ msgid "Partner Ref."
 -msgstr "Ref. Relatie"
++msgstr ""
+ #. module: base
 -#: selection:ir.actions.report.xml,report_type:0
 -msgid "Html from html"
++#: model:ir.actions.act_window,name:base.action_partner_supplier_form
++#: model:ir.ui.menu,name:base.menu_procurement_management_supplier_name
++#: view:res.partner:0
++msgid "Suppliers"
+ msgstr ""
+ #. module: base
 -#: model:ir.ui.menu,name:base.menu_low_workflow
 -msgid "Workflow Items"
++#: view:publisher_warranty.contract.wizard:0
++msgid "Register"
+ msgstr ""
+ #. module: base
+ #: field:res.request,ref_doc2:0
+ msgid "Document Ref 2"
 -msgstr "Document Ref 2"
++msgstr ""
+ #. module: base
+ #: field:res.request,ref_doc1:0
+ msgid "Document Ref 1"
 -msgstr "Document Ref 1"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ga
+ msgid "Gabon"
 -msgstr "Gabon"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_model_data
+ msgid "ir.model.data"
 -msgstr "ir.model.data"
++msgstr ""
+ #. module: base
+ #: view:ir.model:0
++#: view:ir.rule:0
+ #: view:res.groups:0
+ msgid "Access Rights"
 -msgstr "Toegangsrechten"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.gl
+ msgid "Greenland"
 -msgstr "Groenland"
 -
 -#. module: base
 -#: help:ir.actions.report.xml,report_rml:0
 -msgid ""
 -"The .rml path of the file or NULL if the content is in report_rml_content"
+ msgstr ""
 -"Het .rml pad van het bestand of NULL als de inhoud zich bevind in "
 -"report_rml_content"
+ #. module: base
+ #: field:res.partner.bank,acc_number:0
+ msgid "Account Number"
 -msgstr "Rekeningnummer"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "1.  %c              ==> Fri Dec  5 18:25:20 2008"
 -msgstr "1.  %c             ==> Vrij Dec  5 18:25:20 2008"
 -
 -#. module: base
 -#: help:ir.ui.menu,groups_id:0
 -msgid ""
 -"If you have groups, the visibility of this menu will be based on these "
 -"groups. If this field is empty, Open ERP will compute visibility based on "
 -"the related object's read access."
+ msgstr ""
 -"Als u groepen gebruikt wordt de weergave van dit menu gebaseerd op deze "
 -"groepen. Is het veld leeg, dan zal OpenERP de weergave bepalen op basis van "
 -"de leesrechten op het gerelateerde object."
+ #. module: base
+ #: model:res.country,name:base.nc
+ msgid "New Caledonia (French)"
 -msgstr "Nieuw Caledonië (Frans)"
++msgstr ""
+ #. module: base
 -#: field:res.partner.function,name:0
 -msgid "Function Name"
 -msgstr "Functienaam"
++#: model:res.country,name:base.cy
++msgid "Cyprus"
++msgstr ""
+ #. module: base
 -#: view:maintenance.contract.wizard:0
 -msgid "_Cancel"
++#: view:base.module.import:0
++msgid ""
++"This wizard helps you add a new language to you OpenERP system. After "
++"loading a new language it becomes available as default interface language "
++"for users and partners."
+ msgstr ""
+ #. module: base
 -#: field:res.partner.category,name:0
 -msgid "Category Name"
++#: field:ir.actions.server,subject:0
++#: field:partner.wizard.spam,subject:0
++#: field:res.request,name:0
++msgid "Subject"
+ msgstr ""
+ #. module: base
+ #: field:res.request,act_from:0
+ #: field:res.request.history,act_from:0
+ msgid "From"
 -msgstr "Van"
++msgstr ""
++
++#. module: base
++#: view:res.users:0
++msgid "Preferences"
++msgstr ""
++
++#. module: base
++#: model:res.partner.category,name:base.res_partner_category_consumers0
++msgid "Consumers"
++msgstr ""
+ #. module: base
++#: view:res.config:0
+ #: wizard_button:server.action.create,init,step_1:0
+ msgid "Next"
 -msgstr "Volgende"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-report"
 -msgstr "terp-report"
++#: help:ir.cron,function:0
++msgid ""
++"Name of the method to be called on the object when this scheduler is "
++"executed."
++msgstr ""
+ #. module: base
 -#: field:ir.actions.report.xml,report_rml_content:0
 -#: field:ir.actions.report.xml,report_rml_content_data:0
 -msgid "RML content"
 -msgstr "RML inhoud"
++#: code:addons/base/ir/ir_model.py:219
++#, python-format
++msgid ""
++"The Selection Options expression is must be in the [('key','Label'), ...] "
++"format!"
++msgstr ""
+ #. module: base
 -#: view:workflow.activity:0
 -msgid "Incoming transitions"
++#: view:ir.actions.report.xml:0
++msgid "Miscellaneous"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.cn
+ msgid "China"
 -msgstr "China"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_model.py:0
++#: code:addons/base/res/res_user.py:516
+ #, python-format
 -msgid "Password empty !"
 -msgstr "Wachtwoord is leeg !"
 -
 -#. module: base
 -#: view:res.config.view:0
 -msgid "Set"
 -msgstr "Toepassen"
++msgid ""
++"--\n"
++"%(name)s %(email)s\n"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.eh
+ msgid "Western Sahara"
 -msgstr "West Sahara"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_workflow
+ msgid "workflow"
+ msgstr ""
+ #. module: base
++#: model:ir.actions.act_window,help:base.action_res_company_form
++msgid ""
++"Create and manage the companies that will be managed by OpenERP from here. "
++"Shops or subsidiaries can be created and maintained from here."
++msgstr ""
++
++#. module: base
+ #: model:res.country,name:base.id
+ msgid "Indonesia"
 -msgstr "Indonesië"
++msgstr ""
+ #. module: base
 -#: selection:ir.actions.todo,start_on:0
 -msgid "At Once"
 -msgstr "Onmiddellijk"
++#: view:base.update.translations:0
++msgid ""
++"This wizard will detect new terms to translate in the application, so that "
++"you can then add translations manually or perform a complete export (as a "
++"template for a new language example)."
++msgstr ""
+ #. module: base
 -#: help:ir.actions.server,condition:0
++#: help:multi_company.default,expression:0
+ msgid ""
 -"Condition that is to be tested before action is executed, e.g. "
 -"object.list_price > object.cost_price"
++"Expression, must be True to match\n"
++"use context.get or user (browse)"
+ msgstr ""
 -"Conditie die moet worden getest voor dat de actie wordt uitgevoerd, bijv. "
 -"object.list_price > object.cost_price"
+ #. module: base
+ #: model:res.country,name:base.bg
+ msgid "Bulgaria"
 -msgstr "Bulgarije"
++msgstr ""
++
++#. module: base
++#: view:publisher_warranty.contract.wizard:0
++msgid "Publisher warranty contract successfully registered!"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ao
+ msgid "Angola"
 -msgstr "Angola"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.tf
+ msgid "French Southern Territories"
 -msgstr "Franse Zuidelijke en Antarctische Gebieden"
 -
 -#. module: base
 -#: view:ir.actions.server:0
 -msgid ""
 -"Only one client action will be execute, last                                 "
 -"clinent action will be consider in case of multiples clients actions"
+ msgstr ""
 -"Slechts één client actie wordt uitgevoerd. De laatste client actie wordt "
 -"overwogen wanneer er meerdere client acties zijn."
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_HELP"
 -msgstr "STOCK_HELP"
+ #. module: base
+ #: model:ir.model,name:base.model_res_currency
+ #: field:res.company,currency_id:0
++#: field:res.company,currency_ids:0
+ #: view:res.currency:0
+ #: field:res.currency,name:0
+ #: field:res.currency.rate,currency_id:0
+ msgid "Currency"
 -msgstr "Valuta"
++msgstr ""
+ #. module: base
+ #: field:res.partner.canal,name:0
+ msgid "Channel Name"
 -msgstr "Kanaalnaam"
++msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "5.  %y, %Y         ==> 08, 2008"
 -msgstr "5.  %y, %Y         ==> 08, 2008"
++msgstr ""
+ #. module: base
 -#: wizard_view:module.lang.import,init:0
 -msgid "module,type,name,res_id,src,value"
 -msgstr "module,type,name,res_id,src,value"
++#: model:res.partner.title,shortcut:base.res_partner_title_ltd
++msgid "ltd"
++msgstr ""
+ #. module: base
 -#: field:ir.model.fields,model_id:0
+ #: field:ir.values,res_id:0
++#: field:res.log,res_id:0
+ msgid "Object ID"
 -msgstr "Object ID"
++msgstr ""
+ #. module: base
 -#: selection:ir.report.custom,print_orientation:0
++#: view:res.company:0
+ msgid "Landscape"
 -msgstr "Liggend"
 -
 -#. module: base
 -#: field:workflow.activity,split_mode:0
 -msgid "Split Mode"
+ msgstr ""
+ #. module: base
+ #: model:ir.ui.menu,name:base.menu_administration
+ msgid "Administration"
 -msgstr "Beheer"
++msgstr ""
+ #. module: base
 -#: selection:ir.rule,operator:0
 -msgid "child_of"
 -msgstr "child_of"
++#: view:base.module.update:0
++msgid "Click on Update below to start the process..."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ir
+ msgid "Iran"
 -msgstr "Iran"
++msgstr ""
+ #. module: base
 -#: field:ir.report.custom.fields,operation:0
++#: model:ir.actions.act_window,name:base.res_widget_user_act_window
++#: model:ir.ui.menu,name:base.menu_res_widget_user_act_window
++msgid "Widgets per User"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Slovak / Slovenský jazyk"
++msgstr ""
++
++#. module: base
++#: field:base.language.export,state:0
+ #: field:ir.ui.menu,icon_pict:0
 -#: field:wizard.module.lang.export,state:0
++#: field:publisher_warranty.contract.wizard,state:0
+ msgid "unknown"
 -msgstr "onbekend"
++msgstr ""
++
++#. module: base
++#: field:res.currency,symbol:0
++msgid "Symbol"
++msgstr ""
++
++#. module: base
++#: help:res.config.users,login:0
++#: help:res.users,login:0
++msgid "Used to log into the system"
++msgstr ""
++
++#. module: base
++#: view:base.update.translations:0
++msgid "Synchronize Translation"
++msgstr ""
+ #. module: base
+ #: field:ir.ui.view_sc,res_id:0
+ msgid "Resource Ref."
 -msgstr "Bron ref."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ki
+ msgid "Kiribati"
 -msgstr "Kiribati"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.iq
+ msgid "Iraq"
 -msgstr "Irak"
++msgstr ""
+ #. module: base
 -#: view:ir.actions.server:0
 -msgid "Action to Launch"
 -msgstr "Uit te voeren actie"
++#: model:ir.ui.menu,name:base.menu_association
++msgid "Association"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.cl
++msgid "Chile"
++msgstr ""
+ #. module: base
 -#: wizard_view:base.module.import,import:0
 -#: wizard_view:base.module.import,init:0
 -msgid "Module import"
++#: model:ir.ui.menu,name:base.menu_address_book
++#: model:ir.ui.menu,name:base.menu_config_address_book
++#: model:ir.ui.menu,name:base.menu_procurement_management_supplier
++msgid "Address Book"
+ msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_partner_supplier_form
 -#: model:ir.ui.menu,name:base.menu_partner_supplier_form
 -msgid "Suppliers Partners"
 -msgstr "Leveranciers"
++#: model:ir.model,name:base.model_ir_sequence_type
++msgid "ir.sequence.type"
++msgstr ""
+ #. module: base
 -#: selection:wizard.module.lang.export,format:0
++#: selection:base.language.export,format:0
+ msgid "CSV File"
 -msgstr "CSV-bestand"
++msgstr ""
+ #. module: base
 -#: selection:ir.model,state:0
 -#: selection:ir.model.grid,state:0
 -msgid "Base Object"
++#: field:res.company,account_no:0
++msgid "Account No."
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_STRIKETHROUGH"
 -msgstr "STOCK_STRIKETHROUGH"
++#: code:addons/base/res/res_lang.py:157
++#, python-format
++msgid "Base Language 'en_US' can not be deleted !"
++msgstr ""
+ #. module: base
 -#: selection:ir.report.custom.fields,fc0_op:0
 -#: selection:ir.report.custom.fields,fc1_op:0
 -#: selection:ir.report.custom.fields,fc2_op:0
 -#: selection:ir.report.custom.fields,fc3_op:0
 -msgid "(year)="
++#: selection:ir.model,state:0
++msgid "Base Object"
+ msgstr ""
+ #. module: base
 -#: rml:ir.module.reference:0
++#: report:ir.module.reference.graph:0
+ msgid "Dependencies :"
 -msgstr "Afhankelijkheden :"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-partner"
 -msgstr "terp-partner"
++msgstr ""
+ #. module: base
+ #: field:ir.model.fields,field_description:0
+ msgid "Field Label"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.dj
+ msgid "Djibouti"
 -msgstr "Djibouti"
++msgstr ""
+ #. module: base
+ #: field:ir.translation,value:0
+ msgid "Translation Value"
 -msgstr "Vertaling"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ag
+ msgid "Antigua and Barbuda"
 -msgstr "Antigua en Barbuda"
++msgstr ""
+ #. module: base
 -#: field:ir.actions.server,condition:0
 -#: field:ir.report.custom.fields,fc0_condition:0
 -#: field:workflow.transition,condition:0
 -msgid "Condition"
 -msgstr "Voorwaarde"
++#: code:addons/orm.py:3166
++#, python-format
++msgid ""
++"Operation prohibited by access rules, or performed on an already deleted "
++"document (Operation: %s, Document type: %s)."
++msgstr ""
+ #. module: base
 -#: model:ir.ui.menu,name:base.menu_management
 -msgid "Modules Management"
 -msgstr "Modulebeheer"
++#: model:res.country,name:base.zr
++msgid "Zaire"
++msgstr ""
+ #. module: base
+ #: field:ir.model.data,res_id:0
+ #: field:ir.translation,res_id:0
+ #: field:workflow.instance,res_id:0
+ #: field:workflow.triggers,res_id:0
+ msgid "Resource ID"
+ msgstr ""
+ #. module: base
+ #: view:ir.cron:0
+ #: field:ir.model,info:0
 -#: field:ir.model.grid,info:0
 -#: view:maintenance.contract:0
+ msgid "Information"
 -msgstr "Informatie"
 -
 -#. module: base
 -#: view:wizard.module.lang.export:0
 -msgid ""
 -"The official translations pack of all OpenERP/OpenObjects module are managed "
 -"through launchpad. We use their online interface to synchronize all "
 -"translations efforts."
+ msgstr ""
 -"De officiele vertalingen van alle OpenERP/OpenObjects modules worden beheerd "
 -"via launchpad. We gebruiken hun online interface om vertalingen te "
 -"synchroniseren."
+ #. module: base
 -#: field:ir.actions.report.xml,report_rml:0
 -msgid "RML path"
 -msgstr "RML pad"
++#: view:res.widget.user:0
++msgid "User Widgets"
++msgstr ""
+ #. module: base
 -#: field:ir.actions.configuration.wizard,item_id:0
 -msgid "Next Configuration Wizard"
 -msgstr "Volgende Configuratie Assistent"
++#: view:base.module.update:0
++msgid "Update Module List"
++msgstr ""
+ #. module: base
 -#: selection:ir.actions.todo,type:0
+ #: selection:res.partner.address,type:0
+ msgid "Other"
 -msgstr "Overige"
++msgstr ""
+ #. module: base
 -#: selection:ir.server.object.lines,type:0
 -msgid "Formula"
 -msgstr "Formule"
++#: view:res.request:0
++msgid "Reply"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Turkish / Türkçe"
 -msgstr "Turks / Türkçe"
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.action_translation_untrans
 -#: model:ir.ui.menu,name:base.menu_action_translation_untrans
 -msgid "Untranslated terms"
 -msgstr "Niet-vertaalde termen"
 -
 -#. module: base
 -#: wizard_view:module.lang.import,init:0
 -msgid "Import New Language"
 -msgstr "Importeer Nieuwe Taal"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_workflow_activity_form
+ #: model:ir.ui.menu,name:base.menu_workflow_activity
+ #: view:workflow:0
+ #: field:workflow,activities:0
+ msgid "Activities"
 -msgstr "Activiteiten"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.act_window,auto_refresh:0
+ msgid "Auto-Refresh"
+ msgstr ""
+ #. module: base
 -#: selection:ir.report.custom.fields,fc0_op:0
 -#: selection:ir.report.custom.fields,fc1_op:0
 -#: selection:ir.report.custom.fields,fc2_op:0
 -#: selection:ir.report.custom.fields,fc3_op:0
 -#: selection:ir.rule,operator:0
 -msgid "="
 -msgstr "="
++#: code:addons/base/ir/ir_model.py:62
++#, python-format
++msgid "The osv_memory field can only be compared with = and != operator."
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_report_custom.py:0
 -#, python-format
 -msgid "Second field should be figures"
++#: selection:ir.ui.view,type:0
++msgid "Diagram"
+ msgstr ""
+ #. module: base
 -#: field:res.request,trigger_date:0
 -msgid "Trigger Date"
++#: help:multi_company.default,name:0
++msgid "Name it to easily find a record"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,name:base.grant_menu_access
++#: model:ir.ui.menu,name:base.menu_grant_menu_access
++msgid "Menu Items"
+ msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_model_grid_security
 -#: model:ir.ui.menu,name:base.menu_ir_access_grid
 -msgid "Access Controls Grid"
 -msgstr "Toegangscontrole rooster"
++#: constraint:ir.rule:0
++msgid "Rules are not supported for osv_memory objects !"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_event_association
++#: model:ir.ui.menu,name:base.menu_event_main
++msgid "Events Organisation"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.ir_sequence_actions
+ #: model:ir.ui.menu,name:base.menu_custom_action
+ #: model:ir.ui.menu,name:base.menu_ir_sequence_actions
+ #: model:ir.ui.menu,name:base.next_id_6
++#: view:workflow.activity:0
+ msgid "Actions"
 -msgstr "Acties"
++msgstr ""
+ #. module: base
+ #: selection:res.request,priority:0
+ msgid "High"
 -msgstr "Hoog"
++msgstr ""
+ #. module: base
+ #: field:ir.exports.line,export_id:0
+ msgid "Export"
 -msgstr "Exporteren"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.hr
++msgid "Croatia"
++msgstr ""
+ #. module: base
+ #: help:res.bank,bic:0
+ msgid "Bank Identifier Code"
 -msgstr "Bank Identifier Code"
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.tm
++msgid "Turkmenistan"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_actions.py:0
 -#: code:addons/addons/base/ir/ir_model.py:0
 -#: code:addons/addons/base/maintenance/maintenance.py:0
 -#: code:addons/addons/base/module/module.py:0
 -#: code:addons/addons/base/res/res_currency.py:0
 -#: code:addons/addons/base/res/res_user.py:0
 -#: code:addons/osv/orm.py:0
 -#: code:addons/report/custom.py:0
++#: code:addons/base/ir/ir_actions.py:597
++#: code:addons/base/ir/ir_actions.py:629
++#: code:addons/base/ir/ir_actions.py:713
++#: code:addons/base/ir/ir_actions.py:716
++#: code:addons/base/ir/ir_model.py:114
++#: code:addons/base/ir/ir_model.py:204
++#: code:addons/base/ir/ir_model.py:218
++#: code:addons/base/ir/ir_model.py:232
++#: code:addons/base/ir/ir_model.py:250
++#: code:addons/base/ir/ir_model.py:255
++#: code:addons/base/ir/ir_model.py:258
++#: code:addons/base/module/module.py:215
++#: code:addons/base/module/module.py:258
++#: code:addons/base/module/module.py:262
++#: code:addons/base/module/module.py:268
++#: code:addons/base/module/module.py:303
++#: code:addons/base/module/module.py:321
++#: code:addons/base/module/module.py:336
++#: code:addons/base/module/module.py:429
++#: code:addons/base/module/module.py:531
++#: code:addons/base/publisher_warranty/publisher_warranty.py:163
++#: code:addons/base/publisher_warranty/publisher_warranty.py:281
++#: code:addons/base/res/res_currency.py:100
++#: code:addons/base/res/res_user.py:57
++#: code:addons/base/res/res_user.py:66
++#: code:addons/custom.py:558
++#: code:addons/orm.py:3199
+ #, python-format
+ msgid "Error"
 -msgstr "Fout"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.pm
+ msgid "Saint Pierre and Miquelon"
 -msgstr "Saint-Pierre en Miquelon"
 -
 -#. module: base
 -#: code:addons/addons/base/ir/ir_model.py:0
 -#, python-format
 -msgid "You can not remove the field '%s' !"
 -msgstr "Het veld '%s'  kan niet worden verwijderd!"
 -
 -#. module: base
 -#: field:res.partner.event,document:0
 -msgid "Document"
 -msgstr "Document"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_REFRESH"
 -msgstr "STOCK_REFRESH"
++#: help:ir.actions.report.xml,header:0
++msgid "Add or not the coporate RML header"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_STOP"
 -msgstr "STOCK_STOP"
++#: help:workflow.transition,act_to:0
++msgid "The destination activity."
++msgstr ""
+ #. module: base
 -#: view:wizard.module.update_translations:0
++#: view:base.module.update:0
++#: view:base.update.translations:0
+ msgid "Update"
 -msgstr "Bijwerken"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.report.xml,name:base.ir_module_reference_print
+ msgid "Technical guide"
 -msgstr "Technische gids"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_CONVERT"
 -msgstr "STOCK_CONVERT"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.tz
+ msgid "Tanzania"
 -msgstr "Tanzania"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Danish / Dansk"
++msgstr ""
++
++#. module: base
++#: selection:ir.model.fields,select_level:0
++msgid "Advanced Search (deprecated)"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.cx
+ msgid "Christmas Island"
 -msgstr "Christmaseiland"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ msgid "Other Actions Configuration"
 -msgstr "Configuratie andere Handelingen"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_EXECUTE"
 -msgstr "STOCK_EXECUTE"
++#: view:res.config.installer:0
++msgid "Install Modules"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.res_partner_canal-act
+ #: model:ir.model,name:base.model_res_partner_canal
+ #: model:ir.ui.menu,name:base.menu_res_partner_canal-act
++#: view:res.partner.canal:0
+ msgid "Channels"
 -msgstr "Kanalen"
++msgstr ""
++
++#. module: base
++#: view:ir.ui.view:0
++msgid "Extra Info"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,name:base.act_values_form_action
++#: model:ir.ui.menu,name:base.menu_values_form_action
++msgid "Client Events"
++msgstr ""
+ #. module: base
+ #: view:ir.module.module:0
+ msgid "Schedule for Installation"
 -msgstr "Inplannen voor installatie"
++msgstr ""
+ #. module: base
 -#: selection:ir.model.fields,select_level:0
 -msgid "Advanced Search"
 -msgstr "Uitgebreid Zoeken"
++#: model:ir.model,name:base.model_partner_wizard_ean_check
++msgid "Ean Check"
++msgstr ""
++
++#. module: base
++#: sql_constraint:res.config.users:0
++#: sql_constraint:res.users:0
++msgid "You can not have two users with the same login !"
++msgstr ""
++
++#. module: base
++#: model:ir.model,name:base.model_multi_company_default
++msgid "Default multi company"
++msgstr ""
++
++#. module: base
++#: view:res.request:0
++msgid "Send"
++msgstr ""
++
++#. module: base
++#: field:res.config.users,menu_tips:0
++#: field:res.users,menu_tips:0
++msgid "Menu Tips"
++msgstr ""
+ #. module: base
+ #: field:ir.translation,src:0
+ msgid "Source"
 -msgstr "Bron"
++msgstr ""
+ #. module: base
+ #: help:res.partner.address,partner_id:0
+ msgid "Keep empty for a private address, not related to partner."
 -msgstr "Laat leeg voor een privé adres, niet gerelateerd aan de relatie."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.vu
+ msgid "Vanuatu"
 -msgstr "Vanuatu"
++msgstr ""
+ #. module: base
+ #: view:res.company:0
+ msgid "Internal Header/Footer"
 -msgstr "Interne Koptekst/Voettekst"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/module/wizard/wizard_export_lang.py:0
++#: code:addons/base/module/wizard/base_export_language.py:59
+ #, python-format
+ msgid ""
+ "Save this document to a .tgz file. This archive containt UTF-8 %s files and "
+ "may be uploaded to launchpad."
+ msgstr ""
 -"Sla dit document op in een .tgz bestand. Dit archief bevat UTF-8 %s "
 -"bestanden en kan ge-upload worden naar launchpad."
+ #. module: base
 -#: wizard_button:module.upgrade,end,config:0
 -#: wizard_button:module.upgrade,start,config:0
++#: view:base.module.upgrade:0
+ msgid "Start configuration"
 -msgstr "Start configuratie"
++msgstr ""
++
++#. module: base
++#: view:base.language.export:0
++msgid "_Export"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: field:base.language.install,state:0
++#: field:base.module.import,state:0
++#: field:base.module.update,state:0
++msgid "state"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
+ msgid "Catalan / Català"
 -msgstr "Catalaans / Català"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_COLOR_PICKER"
 -msgstr "STOCK_COLOR_PICKER"
++#: model:res.country,name:base.do
++msgid "Dominican Republic"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.sa
 -msgid "Saudi Arabia"
 -msgstr "Saoedie Arabië"
++#: selection:base.language.install,lang:0
++msgid "Serbian (Cyrillic) / српски"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/ir/ir_report_custom.py:0
++#: code:addons/orm.py:2161
+ #, python-format
 -msgid "Bar charts need at least two fields"
 -msgstr "Staafdiagram heeft minimaal twee velden nodig"
++msgid ""
++"Invalid group_by specification: \"%s\".\n"
++"A group_by specification must be a list of valid fields."
++msgstr ""
++
++#. module: base
++#: model:res.country,name:base.sa
++msgid "Saudi Arabia"
++msgstr ""
+ #. module: base
+ #: help:res.partner,supplier:0
+ msgid ""
+ "Check this box if the partner is a supplier. If it's not checked, purchase "
+ "people will not see it when encoding a purchase order."
+ msgstr ""
 -"Vink dit vakje aan als de relatie een leverancier is. Als het niet is "
 -"aangevinkt zien inkopers de relatie niet bij het invoeren van een "
 -"inkooporder."
+ #. module: base
+ #: field:ir.model.fields,relation_field:0
+ msgid "Relation Field"
 -msgstr "Relatieveld"
++msgstr ""
++
++#. module: base
++#: view:res.partner.event:0
++msgid "Event Logs"
++msgstr ""
++
++#. module: base
++#: code:addons/base/module/wizard/base_module_configuration.py:37
++#, python-format
++msgid "System Configuration done"
++msgstr ""
+ #. module: base
+ #: field:workflow.triggers,instance_id:0
+ msgid "Destination Instance"
+ msgstr ""
+ #. module: base
++#: field:ir.actions.act_window,multi:0
+ #: field:ir.actions.wizard,multi:0
+ msgid "Action on Multiple Doc."
+ msgstr ""
+ #. module: base
 -#: view:wizard.module.lang.export:0
++#: view:base.language.export:0
+ msgid "https://translations.launchpad.net/openobject"
 -msgstr "https://translations.launchpad.net/openobject"
 -
 -#. module: base
 -#: model:ir.actions.act_window,name:base.action_partner_title
 -#: model:ir.ui.menu,name:base.menu_partner_title
 -msgid "Titles"
 -msgstr "Titels"
 -
 -#. module: base
 -#: field:ir.actions.todo,start_date:0
 -msgid "Start Date"
 -msgstr "Begindatum"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.report.xml,report_xml:0
+ msgid "XML path"
 -msgstr "XML pad"
++msgstr ""
++
++#. module: base
++#: selection:ir.actions.todo,restart:0
++msgid "On Skip"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.gn
+ msgid "Guinea"
 -msgstr "Guinea"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.todo,note:base.config_wizard_step_user
++#: model:res.country,name:base.lu
++msgid "Luxembourg"
++msgstr ""
++
++#. module: base
++#: help:ir.values,key2:0
+ msgid ""
 -"Create your users.\n"
 -"You will be able to assign groups to users. Groups define the access rights "
 -"of each users on the different objects of the system.\n"
 -"            "
++"The kind of action or button in the client side that will trigger the action."
+ msgstr ""
 -"Maak uw gebruikers aan.\n"
 -"U zal groepen aan gebruikers kunnen koppelen. Groepen bepalen de "
 -"toegangsrechten van elke gebruiker op verschillende objecten van het "
 -"systeem.\n"
 -"            "
+ #. module: base
 -#: selection:res.request,priority:0
 -msgid "Low"
 -msgstr "Laag"
++#: code:addons/base/ir/ir_ui_menu.py:285
++#, python-format
++msgid "Error ! You can not create recursive Menu."
++msgstr ""
+ #. module: base
 -#: view:ir.values:0
 -msgid "tree_but_action, client_print_multi"
 -msgstr "tree_but_action, client_print_multi"
++#: model:ir.actions.act_window,name:base.action_publisher_warranty_contract_add_wizard
++#: model:ir.ui.menu,name:base.menu_publisher_warranty_contract_add
++#: view:publisher_warranty.contract.wizard:0
++msgid "Register a Contract"
++msgstr ""
++
++#. module: base
++#: view:ir.rule:0
++msgid ""
++"3. If user belongs to several groups, the results from step 2 are combined "
++"with logical OR operator"
++msgstr ""
++
++#. module: base
++#: code:addons/base/publisher_warranty/publisher_warranty.py:145
++#, python-format
++msgid "Please check your publisher warranty contract name and validity."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.sv
+ msgid "El Salvador"
 -msgstr "El Salvador"
++msgstr ""
+ #. module: base
+ #: field:res.bank,phone:0
++#: field:res.partner,phone:0
+ #: field:res.partner.address,phone:0
+ msgid "Phone"
 -msgstr "Telefoon"
++msgstr ""
+ #. module: base
 -#: field:res.groups,menu_access:0
 -msgid "Access Menu"
 -msgstr "Toegangsmenu"
++#: field:ir.cron,active:0
++#: field:ir.sequence,active:0
++#: field:res.bank,active:0
++#: field:res.config.users,active:0
++#: field:res.currency,active:0
++#: field:res.lang,active:0
++#: field:res.partner,active:0
++#: field:res.partner.address,active:0
++#: field:res.partner.canal,active:0
++#: field:res.partner.category,active:0
++#: field:res.request,active:0
++#: field:res.users,active:0
++#: view:workflow.instance:0
++#: view:workflow.workitem:0
++msgid "Active"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.th
+ msgid "Thailand"
 -msgstr "Thailand"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_crm_config_lead
++msgid "Leads & Opportunities"
++msgstr ""
+ #. module: base
 -#: selection:ir.report.custom.fields,fc0_op:0
 -#: selection:ir.report.custom.fields,fc1_op:0
 -#: selection:ir.report.custom.fields,fc2_op:0
 -#: selection:ir.report.custom.fields,fc3_op:0
 -msgid ">"
 -msgstr ">"
++#: selection:base.language.install,lang:0
++msgid "Romanian / română"
++msgstr ""
+ #. module: base
 -#: field:ir.model.access,perm_unlink:0
 -msgid "Delete Permission"
 -msgstr "Toestemming Verwijderen"
++#: view:res.log:0
++msgid "System Logs"
++msgstr ""
+ #. module: base
+ #: selection:workflow.activity,join_mode:0
+ #: selection:workflow.activity,split_mode:0
+ msgid "And"
 -msgstr "En"
++msgstr ""
+ #. module: base
+ #: field:ir.model.fields,relation:0
+ msgid "Object Relation"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_PRINT"
 -msgstr "STOCK_PRINT"
 -
 -#. module: base
 -#: selection:ir.report.custom.fields,fc0_op:0
 -#: selection:ir.report.custom.fields,fc1_op:0
 -#: selection:ir.report.custom.fields,fc2_op:0
 -#: selection:ir.report.custom.fields,fc3_op:0
 -msgid "<"
 -msgstr "<"
++#: view:ir.rule:0
++#: view:res.partner:0
++msgid "General"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.uz
+ msgid "Uzbekistan"
 -msgstr "Oezbekistan"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_actions_act_window
+ #: selection:ir.ui.menu,action:0
+ msgid "ir.actions.act_window"
 -msgstr "ir.actions.act_window"
++msgstr ""
++
++#. module: base
++#: field:ir.rule,perm_create:0
++msgid "Apply For Create"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.vi
+ msgid "Virgin Islands (USA)"
 -msgstr "Virgin Islands"
++msgstr ""
+ #. module: base
 -#: view:ir.rule:0
 -msgid "If you don't force the domain, it will use the simple domain setup"
++#: model:res.country,name:base.tw
++msgid "Taiwan"
++msgstr ""
++
++#. module: base
++#: model:ir.model,name:base.model_res_currency_rate
++msgid "Currency Rate"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,help:base.grant_menu_access
++msgid ""
++"Manage and customize the items available and displayed in your OpenERP "
++"system menu. You can delete an item by clicking on the box at the beginning "
++"of each line and then delete it through the button that appeared. Items can "
++"be assigned to specific groups in order to make them accessible to some "
++"users within the system."
+ msgstr ""
+ #. module: base
 -#: field:ir.report.custom,field_parent:0
+ #: field:ir.ui.view,field_parent:0
+ msgid "Child Field"
 -msgstr "Onderliggend Veld"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.act_window,usage:0
+ #: field:ir.actions.act_window_close,usage:0
+ #: field:ir.actions.actions,usage:0
 -#: field:ir.actions.report.custom,usage:0
+ #: field:ir.actions.report.xml,usage:0
+ #: field:ir.actions.server,usage:0
+ #: field:ir.actions.wizard,usage:0
+ msgid "Action Usage"
 -msgstr "Actie Gebruik"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_workflow_workitem
+ msgid "workflow.workitem"
 -msgstr "workflow.workitem"
++msgstr ""
+ #. module: base
+ #: selection:ir.module.module,state:0
+ msgid "Not Installable"
 -msgstr "Niet installeerbaar"
++msgstr ""
+ #. module: base
 -#: rml:ir.module.reference:0
++#: report:ir.module.reference.graph:0
+ msgid "View :"
+ msgstr ""
+ #. module: base
+ #: field:ir.model.fields,view_load:0
+ msgid "View Auto-Load"
+ msgstr ""
+ #. module: base
 -#: field:ir.module.module,installed_version:0
 -msgid "Latest version"
 -msgstr "Laatste Versie"
 -
 -#. module: base
 -#: selection:ir.actions.server,state:0
 -msgid "Write Object"
 -msgstr "Object Schrijven"
++#: code:addons/base/ir/ir_model.py:232
++#, python-format
++msgid "You cannot remove the field '%s' !"
++msgstr ""
+ #. module: base
 -#: field:ir.report.custom,print_format:0
 -msgid "Print format"
 -msgstr "Afdruk opmaak"
++#: field:ir.exports,resource:0
++#: view:ir.property:0
++#: field:ir.property,res_id:0
++msgid "Resource"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_JUMP_TO"
 -msgstr "STOCK_JUMP_TO"
++#: field:ir.ui.menu,web_icon:0
++msgid "Web Icon File"
++msgstr ""
+ #. module: base
 -#: field:ir.actions.todo,end_date:0
 -msgid "End Date"
 -msgstr "Einddatum"
++#: selection:base.language.install,lang:0
++msgid "Persian / فارس"
++msgstr ""
+ #. module: base
 -#: field:ir.exports,resource:0
 -#: field:ir.property,res_id:0
 -msgid "Resource"
++#: view:ir.actions.act_window:0
++msgid "View Ordering"
+ msgstr ""
+ #. module: base
 -#: field:maintenance.contract,name:0
 -#: field:maintenance.contract.wizard,name:0
 -msgid "Contract ID"
 -msgstr "Contract ID"
++#: code:addons/base/module/wizard/base_module_upgrade.py:95
++#, python-format
++msgid "Unmet dependency !"
++msgstr ""
+ #. module: base
 -#: selection:ir.report.custom.fields,alignment:0
 -msgid "center"
 -msgstr "midden"
++#: view:base.language.import:0
++msgid ""
++"Supported file formats: *.csv (Comma-separated values) or *.po (GetText "
++"Portable Objects)"
++msgstr ""
+ #. module: base
 -#: code:addons/osv/fields.py:0
++#: code:addons/base/ir/ir_model.py:487
+ #, python-format
+ msgid ""
 -"The second argument of the many2many field %s must be a SQL table !'\\n      "
 -"          'You used %s, which is not a valid SQL table name."
++"You can not delete this document (%s) ! Be sure your user belongs to one of "
++"these groups: %s."
+ msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_country_state
 -#: model:ir.ui.menu,name:base.menu_country_state_partner
 -#: field:maintenance.contract.wizard,state:0
 -msgid "States"
 -msgstr "Staten/Provincies"
 -
 -#. module: base
 -#: field:ir.actions.configuration.wizard,name:0
 -msgid "Next Wizard"
 -msgstr "Volgende Assistent"
++#: model:ir.model,name:base.model_base_module_configuration
++msgid "base.module.configuration"
++msgstr ""
+ #. module: base
++#: field:base.language.export,name:0
+ #: field:ir.attachment,datas_fname:0
 -#: field:wizard.module.lang.export,name:0
+ msgid "Filename"
 -msgstr "Bestandsnaam"
++msgstr ""
+ #. module: base
+ #: field:ir.model,access_ids:0
 -#: field:ir.model.grid,access_ids:0
++#: view:ir.model.access:0
+ msgid "Access"
 -msgstr "Toegang"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.sk
+ msgid "Slovak Republic"
 -msgstr "Slowakije"
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.publisher_warranty
++msgid "Publisher Warranty"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.aw
+ msgid "Aruba"
 -msgstr "Aruba"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ar
+ msgid "Argentina"
 -msgstr "Argentinië"
++msgstr ""
+ #. module: base
+ #: field:res.groups,name:0
+ msgid "Group Name"
 -msgstr "Groepsnaam"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.bh
+ msgid "Bahrain"
 -msgstr "Bahrein"
++msgstr ""
+ #. module: base
+ #: model:res.partner.category,name:base.res_partner_category_12
+ msgid "Segmentation"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_FIND"
 -msgstr "STOCK_FIND"
++#: view:ir.attachment:0
++#: field:ir.attachment,company_id:0
++#: field:ir.default,company_id:0
++#: field:ir.property,company_id:0
++#: field:ir.sequence,company_id:0
++#: field:ir.values,company_id:0
++#: view:res.company:0
++#: field:res.config.users,company_id:0
++#: field:res.currency,company_id:0
++#: field:res.partner,company_id:0
++#: field:res.partner.address,company_id:0
++#: view:res.users:0
++#: field:res.users,company_id:0
++msgid "Company"
++msgstr ""
++
++#. module: base
++#: view:res.users:0
++msgid "Email & Signature"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_maintenance_contract_add_wizard
 -#: model:ir.ui.menu,name:base.menu_maintenance_contract_add
 -#: view:maintenance.contract.wizard:0
 -msgid "Add Maintenance Contract"
 -msgstr "Voeg onderhoudscontract toe"
++#: view:publisher_warranty.contract:0
++msgid "Publisher Warranty Contract"
++msgstr ""
+ #. module: base
 -#: rml:ir.module.reference:0
 -#: field:maintenance.contract.module,version:0
 -msgid "Version"
 -msgstr "Versie"
++#: selection:base.language.install,lang:0
++msgid "Bulgarian / български език"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Vietnam / Cộng hòa xã hội chủ nghĩa Việt Nam"
++#: model:ir.ui.menu,name:base.menu_aftersale
++msgid "After-Sale Services"
+ msgstr ""
+ #. module: base
 -#: field:ir.actions.act_window,limit:0
 -#: field:ir.report.custom,limitt:0
 -msgid "Limit"
 -msgstr "Limiet"
++#: view:ir.actions.todo:0
++msgid "Launch"
++msgstr ""
+ #. module: base
 -#: help:ir.actions.server,wkf_model_id:0
 -msgid "Workflow to be executed on this model."
++#: field:ir.actions.act_window,limit:0
++msgid "Limit"
+ msgstr ""
+ #. module: base
 -#: code:addons/osv/orm.py:0
 -#, python-format
 -msgid "The search method is not implemented on this object !"
++#: help:ir.actions.server,wkf_model_id:0
++msgid "Workflow to be executed on this model."
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.jm
+ msgid "Jamaica"
 -msgstr "Jamaica"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,help:base.action_partner_category_form
++msgid ""
++"Manage the partner categories in order to better classify them for tracking "
++"and analysis purposes. A partner may belong to several categories and "
++"categories have a hierarchy structure: a partner belonging to a category "
++"also belong to his parent category."
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.az
+ msgid "Azerbaijan"
 -msgstr "Azerbeidzjan"
++msgstr ""
+ #. module: base
 -#: code:addons/addons/base/res/partner/partner.py:0
++#: code:addons/base/res/partner/partner.py:250
+ #, python-format
+ msgid "Warning"
 -msgstr "Waarschuwing"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Arabic / الْعَرَبيّة"
 -msgstr "Arabisch / الْعَرَبيّة"
 -
 -#. module: base
 -#: selection:ir.report.custom,state:0
 -msgid "Unsubscribed"
+ msgstr ""
+ #. module: base
+ #: model:res.country,name:base.vg
+ msgid "Virgin Islands (British)"
 -msgstr "Virgin Islands (Brits)"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_MEDIA_PREVIOUS"
 -msgstr "STOCK_MEDIA_PREVIOUS"
++#: view:ir.property:0
++#: model:ir.ui.menu,name:base.next_id_15
++msgid "Parameters"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Czech / Čeština"
 -msgstr "Tsjechisch / Čeština"
++msgstr ""
+ #. module: base
+ #: view:ir.actions.server:0
+ msgid "Trigger Configuration"
+ msgstr ""
+ #. module: base
 -#: model:res.country,name:base.rw
 -msgid "Rwanda"
 -msgstr "Rwanda"
 -
 -#. module: base
 -#: constraint:res.partner:0
 -msgid "The VAT doesn't seem to be correct."
 -msgstr "De BTW lijkt niet correct te zijn."
++#: model:ir.actions.act_window,help:base.action_partner_supplier_form
++msgid ""
++"You can access all information regarding your suppliers from the supplier "
++"form: accounting data, history of emails, meetings, purchases, etc. You can "
++"uncheck the 'Suppliers' filter button in order to search in all your "
++"partners, including customers and prospects."
++msgstr ""
+ #. module: base
 -#: selection:ir.report.custom.fields,operation:0
 -msgid "Calculate Sum"
 -msgstr "Som Berekenen"
++#: model:res.country,name:base.rw
++msgid "Rwanda"
++msgstr ""
+ #. module: base
+ #: view:ir.sequence:0
+ msgid "Day of the week (0:Monday): %(weekday)s"
 -msgstr "Dag van de week (0:Maandag): %(weekday)s"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.ck
+ msgid "Cook Islands"
 -msgstr "Cook Eilanden"
 -
 -#. module: base
 -#: help:ir.actions.server,mobile:0
 -msgid ""
 -"Provides fields that be used to fetch the mobile number, e.g. you select the "
 -"invoice, then `object.invoice_address_id.mobile` is the field which gives "
 -"the correct mobile number"
+ msgstr ""
+ #. module: base
+ #: field:ir.model.data,noupdate:0
+ msgid "Non Updatable"
 -msgstr "Niet bijwerkbaar"
++msgstr ""
++
++#. module: base
++#: selection:base.language.install,lang:0
++msgid "Klingon"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.sg
+ msgid "Singapore"
 -msgstr "Singapore"
++msgstr ""
+ #. module: base
+ #: selection:ir.actions.act_window,target:0
+ msgid "Current Window"
 -msgstr "Huidig Venster"
++msgstr ""
+ #. module: base
+ #: view:ir.values:0
+ msgid "Action Source"
+ msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_NETWORK"
 -msgstr "STOCK_NETWORK"
++#: view:res.config.view:0
++msgid ""
++"If you use OpenERP for the first time we strongly advise you to select the "
++"simplified interface, which has less features but is easier. You can always "
++"switch later from the user preferences."
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_res_country
+ #: field:res.bank,country:0
+ #: view:res.country:0
+ #: field:res.country.state,country_id:0
+ #: field:res.partner,country:0
++#: view:res.partner.address:0
+ #: field:res.partner.address,country_id:0
+ #: field:res.partner.bank,country_id:0
+ msgid "Country"
 -msgstr "Land"
 -
 -#. module: base
 -#: wizard_view:base.module.import,import:0
 -msgid "Module successfully imported !"
 -msgstr "Module succesvol geïmporteerd !"
++msgstr ""
+ #. module: base
+ #: field:ir.model.fields,complete_name:0
+ #: field:ir.ui.menu,complete_name:0
+ msgid "Complete Name"
 -msgstr "Volledige Naam"
 -
 -#. module: base
 -#: view:ir.report.custom:0
 -msgid "Subscribe Report"
+ msgstr ""
+ #. module: base
+ #: field:ir.values,object:0
+ msgid "Is Object"
 -msgstr "Is Object"
++msgstr ""
++
++#. module: base
++#: view:ir.rule:0
++msgid ""
++"1. Global rules are combined together with a logical AND operator, and with "
++"the result of the following steps"
++msgstr ""
++
++#. module: base
++#: field:res.partner.category,name:0
++msgid "Category Name"
++msgstr ""
+ #. module: base
+ #: model:res.partner.category,name:base.res_partner_category_15
+ msgid "IT sector"
 -msgstr "IT sector"
++msgstr ""
+ #. module: base
 -#: view:ir.report.custom:0
 -msgid "Unsubscribe Report"
++#: view:ir.actions.act_window:0
++msgid "Select Groups"
+ msgstr ""
+ #. module: base
+ #: view:res.lang:0
+ msgid "%X - Appropriate time representation."
 -msgstr "%X - Passende tijdweergave."
++msgstr ""
+ #. module: base
 -#: view:res.company:0
 -msgid "Your Logo - Use a size of about 450x150 pixels."
 -msgstr "Uw Logo - Gebruik een afmeting van ongeveer 450x150 pixels."
++#: selection:base.language.install,lang:0
++msgid "Spanish (SV) / Español (SV)"
++msgstr ""
+ #. module: base
+ #: help:res.lang,grouping:0
+ msgid ""
+ "The Separator Format should be like [,n] where 0 < n :starting from Unit "
+ "digit.-1 will end the separation. e.g. [3,2,-1] will represent 106500 to be "
+ "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 ""
+ #. module: base
 -#: selection:ir.report.custom,print_orientation:0
++#: view:res.company:0
+ msgid "Portrait"
 -msgstr "Staand"
++msgstr ""
+ #. module: base
 -#: field:ir.actions.server,subject:0
 -#: wizard_field:res.partner.spam_send,init,subject:0
 -#: field:res.request,name:0
 -msgid "Subject"
 -msgstr "Onderwerp"
++#: code:addons/base/ir/ir_model.py:317
++#, python-format
++msgid "Can only rename one column at a time!"
++msgstr ""
+ #. module: base
+ #: selection:ir.translation,type:0
+ msgid "Wizard Button"
 -msgstr "Assistent Knop"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_DIRECTORY"
 -msgstr "STOCK_DIRECTORY"
++#: selection:ir.translation,type:0
++msgid "Report/Template"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.act_window,name:base.action_partner_customer_form_new
 -#: model:ir.ui.menu,name:base.menu_partner_customer_form_new
 -msgid "New Partner"
 -msgstr "Nieuwe Relatie"
++#: selection:ir.actions.act_window.view,view_mode:0
++#: selection:ir.ui.view,type:0
++#: selection:wizard.ir.model.menu.create.line,view_type:0
++msgid "Graph"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_ir_actions_server
++#: selection:ir.ui.menu,action:0
+ msgid "ir.actions.server"
 -msgstr "ir.actions.server"
 -
 -#. module: base
 -#: view:ir.actions.report.custom:0
 -msgid "Report custom"
 -msgstr "Aangepast Rapport"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.configuration.wizard,progress:0
++#: field:res.config,progress:0
++#: field:res.config.installer,progress:0
++#: field:res.config.users,progress:0
++#: field:res.config.view,progress:0
+ msgid "Configuration Progress"
 -msgstr "Configuratie Voortgang"
++msgstr ""
+ #. module: base
++#: model:ir.actions.act_window,name:base.act_ir_actions_todo_form
++#: model:ir.ui.menu,name:base.menu_ir_actions_todo_form
+ #: model:ir.ui.menu,name:base.next_id_11
+ msgid "Configuration Wizards"
 -msgstr "Configuratie Assistenten"
++msgstr ""
+ #. module: base
 -#: model:ir.ui.menu,name:base.menu_localisation
 -msgid "Localisation"
 -msgstr "Localisatie"
++#: field:res.lang,code:0
++msgid "Locale Code"
++msgstr ""
+ #. module: base
 -#: selection:res.config.view,view:0
 -msgid "Simplified Interface"
++#: field:workflow.activity,split_mode:0
++msgid "Split Mode"
+ msgstr ""
+ #. module: base
 -#: model:res.country,name:base.cl
 -msgid "Chile"
 -msgstr "Chili"
++#: view:base.module.upgrade:0
++msgid "Note that this operation might take a few minutes."
++msgstr ""
++
++#. module: base
++#: model:ir.ui.menu,name:base.menu_localisation
++msgid "Localisation"
++msgstr ""
+ #. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "STOCK_REVERT_TO_SAVED"
 -msgstr "STOCK_REVERT_TO_SAVED"
++#: view:ir.actions.server:0
++msgid "Action to Launch"
++msgstr ""
++
++#. module: base
++#: view:ir.cron:0
++msgid "Execution"
++msgstr ""
+ #. module: base
 -#: model:ir.actions.wizard,name:base.wizard_lang_import
 -#: model:ir.ui.menu,name:base.menu_wizard_lang_import
 -msgid "Import a Translation File"
 -msgstr "Vertaalbestand importeren"
++#: field:ir.actions.server,condition:0
++#: field:workflow.transition,condition:0
++msgid "Condition"
++msgstr ""
+ #. module: base
+ #: help:ir.values,model_id:0
+ msgid "This field is not used, it only helps you to select a good model."
+ msgstr ""
 -"Dit veld wordt niet gebruikt, het helpt u alleen om een goed model te kiezen."
+ #. module: base
+ #: field:ir.ui.view,name:0
+ msgid "View Name"
 -msgstr "Weergave Naam"
++msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Italian / Italiano"
 -msgstr "Italiaans / Italiano"
++msgstr ""
+ #. module: base
+ #: field:ir.actions.report.xml,attachment:0
+ msgid "Save As Attachment Prefix"
 -msgstr "Opslaan Als Bijlage Voorvoegsel"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.hr
 -msgid "Croatia"
 -msgstr "Kroatië"
++#: view:ir.actions.server:0
++msgid ""
++"Only one client action will be executed, last client action will be "
++"considered in case of multiple client actions."
++msgstr ""
++
++#. module: base
++#: view:res.lang:0
++msgid "%j - Day of the year [001,366]."
++msgstr ""
+ #. module: base
+ #: field:ir.actions.server,mobile:0
+ msgid "Mobile No"
 -msgstr "Mobiel nr"
++msgstr ""
+ #. module: base
+ #: model:ir.actions.act_window,name:base.action_partner_by_category
+ #: model:ir.actions.act_window,name:base.action_partner_category_form
+ #: model:ir.model,name:base.model_res_partner_category
+ #: model:ir.ui.menu,name:base.menu_partner_category_form
+ #: view:res.partner.category:0
+ msgid "Partner Categories"
 -msgstr "Relatie Categorieën"
++msgstr ""
+ #. module: base
 -#: field:ir.sequence,code:0
 -#: field:ir.sequence.type,code:0
 -msgid "Sequence Code"
++#: view:base.module.upgrade:0
++msgid "System Update"
++msgstr ""
++
++#. module: base
++#: selection:ir.translation,type:0
++msgid "Wizard Field"
+ msgstr ""
+ #. module: base
 -#: selection:ir.report.custom,print_format:0
 -msgid "a5"
 -msgstr "a5"
++#: help:ir.sequence,prefix:0
++msgid "Prefix value of the record for the sequence"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.sc
+ msgid "Seychelles"
 -msgstr "Seychellen"
++msgstr ""
+ #. module: base
+ #: model:ir.model,name:base.model_res_partner_bank
+ #: view:res.partner.bank:0
+ msgid "Bank Accounts"
 -msgstr "Bankrekeningen"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.sl
+ msgid "Sierra Leone"
 -msgstr "Sierra Leone"
++msgstr ""
+ #. module: base
+ #: view:res.company:0
+ #: view:res.partner:0
+ msgid "General Information"
 -msgstr "Algemene Informatie"
 -
 -#. module: base
 -#: selection:ir.ui.menu,icon:0
 -msgid "terp-product"
 -msgstr "terp-product"
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.tc
+ msgid "Turks and Caicos Islands"
 -msgstr "Turks en Caicoseilanden"
++msgstr ""
+ #. module: base
+ #: field:res.partner.bank,owner_name:0
+ msgid "Account Owner"
 -msgstr "Rekeninghouder"
++msgstr ""
++
++#. module: base
++#: code:addons/base/res/res_user.py:256
++#, python-format
++msgid "Company Switch Warning"
++msgstr ""
++
++#. module: base
++#: model:ir.actions.act_window,name:base.action_res_widget_wizard
++msgid "Homepage Widgets Management"
++msgstr ""
+ #. module: base
+ #: field:workflow,osv:0
+ #: field:workflow.instance,res_type:0
+ msgid "Resource Object"
+ msgstr ""
+ #. module: base
++#: help:ir.sequence,number_increment:0
++msgid "The next number of the sequence will be incremented by this number"
++msgstr ""
++
++#. module: base
+ #: field:ir.cron,function:0
+ #: field:res.partner.address,function:0
+ #: selection:workflow.activity,kind:0
+ msgid "Function"
 -msgstr "Functie"
++msgstr ""
+ #. module: base
 -#: field:res.partner.event,som:0
 -#: field:res.partner.som,name:0
 -msgid "State of Mind"
++#: view:res.widget:0
++msgid "Search Widget"
+ msgstr ""
+ #. module: base
 -#: field:ir.attachment,preview:0
 -msgid "Image Preview"
 -msgstr "Afbeeldingsvoorbeeld"
++#: selection:ir.actions.todo,restart:0
++msgid "Never"
++msgstr ""
+ #. module: base
 -#: model:res.country,name:base.yu
 -msgid "Yugoslavia"
 -msgstr "Joegoslavië"
++#: selection:res.partner.address,type:0
++msgid "Delivery"
++msgstr ""
+ #. module: base
+ #: model:res.partner.title,name:base.res_partner_title_pvt_ltd
++#: model:res.partner.title,shortcut:base.res_partner_title_pvt_ltd
+ msgid "Corp."
+ msgstr ""
+ #. module: base
 -#: wizard_view:module.lang.install,init:0
 -msgid "Choose a language to install:"
 -msgstr "Selecteer de te installeren taal:"
 -
 -#. module: base
+ #: model:res.country,name:base.gw
+ msgid "Guinea Bissau"
 -msgstr "Guinea Bissau"
++msgstr ""
+ #. module: base
+ #: view:workflow.instance:0
+ msgid "Workflow Instances"
+ msgstr ""
+ #. module: base
 -#: code:addons/addons/base/res/partner/partner.py:0
++#: code:addons/base/res/partner/partner.py:261
+ #, python-format
+ msgid "Partners: "
 -msgstr "Relaties: "
++msgstr ""
+ #. module: base
+ #: model:res.country,name:base.kp
+ msgid "North Korea"
 -msgstr "Noord-Korea"
++msgstr ""
+ #. module: base
+ #: selection:ir.actions.server,state:0
+ msgid "Create Object"
 -msgstr "Object Aanmaken"
++msgstr ""
++
++#. module: base
++#: view:ir.filters:0
++#: field:res.log,context:0
++msgid "Context"
++msgstr ""
+ #. module: base
+ #: field:res.bank,bic:0
+ msgid "BIC/Swift code"
 -msgstr "BIC/Swift code"
++msgstr ""
+ #. module: base
+ #: model:res.partner.category,name:base.res_partner_category_1
+ msgid "Prospect"
+ msgstr ""
+ #. module: base
 -#: selection:module.lang.install,init,lang:0
++#: selection:base.language.install,lang:0
+ msgid "Polish / Język polski"
 -msgstr "Pools / Język polski"
++msgstr ""
+ #. module: base
+ #: field:ir.exports,name:0
+ msgid "Export Name"
 -msgstr "Exportnaam"
++msgstr ""
+ #. module: base
+ #: help:res.partner.address,type:0
+ msgid ""
+ "Used to select automatically the right address according to the context in "
+ "sales and purchases documents."
+ msgstr ""
 -"Wordt gebruikt om automatisch het juiste adres te kiezen afhankelijk van de "
 -"context in verkoop- en inkoopdocumenten"
+ #. module: base
+ #: model:res.country,name:base.lk
+ msgid "Sri Lanka"
 -msgstr "Sri Lanka"
 -
 -#. module: base
 -#: selection:module.lang.install,init,lang:0
 -msgid "Russian / русский язык"
 -msgstr "Russisch / русский язык"
 -
 -#. module: base
 -#: sql_constraint:res.user:0
 -msgid "You cannot have two users with the same login !"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:ir.model.fields:0
 -msgid "Size of the field can never be less than 1 !"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:ir.ui.view_sc:0
 -msgid "Shortcut for this menu already exists!"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:ir.model.data:0
 -msgid "You cannot have multiple records with the same id for the same module !"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:maintenance.contract:0
 -msgid "Your maintenance contract is already subscribed in the system !"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:ir.module.module:0
 -#: sql_constraint:ir.module.web:0
 -msgid "The name of the module must be unique !"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:ir.module.module:0
 -msgid "The certificate ID of the module must be unique !"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:res.partner.function:0
 -msgid "The Code of the Partner Function must be unique !"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:res.partner:0
 -msgid "The name of the Partner must be unique !"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:res.country:0
 -msgid "The name of the country must be unique !"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:res.country:0
 -msgid "The code of the country must be unique !"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:res.lang:0
 -msgid "The name of the language must be unique !"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:res.lang:0
 -msgid "The code of the language must be unique !"
 -msgstr ""
 - 
 -#. module: base
 -#: sql_constraint:res.groups:0
 -msgid "The name of the group must be unique !"
 -msgstr ""
 - 
 -#. module: base
 -#: code:addons/osv/osv.py:0
 -#, python-format
 -msgid "Constraint Error"
 -msgstr ""
 -
 -#. module: base
 -#: code:addons/osv/osv.py:0
 -#, python-format
 -msgid "The operation cannot be completed, probably due to the following:\n- deletion: you may be trying to delete a record while other records still reference it\n- creation/update: a mandatory field is not correctly set"
 -msgstr ""
 -
 -#. module: base
 -#: code:addons/osv/osv.py:0
 -#, python-format
 -msgid "\n\n[object with reference: %s - %s]"
 -msgstr ""
 -
 -#. module: base
 -#: code:addons/osv/osv.py:0
 -#, python-format
 -msgid "Integrity Error"
 -msgstr ""
 -
 -#. module: base
 -#: code:addons/base/res/res_lang.py:0
 -#, python-format
 -msgid "User Error"
 -msgstr ""
 -
 -#. module: base
 -#: code:addons/base/res/res_lang.py:0
 -#, python-format
 -msgid "Base Language 'en_US' can not be deleted !"
+ msgstr ""
+ #. module: base
 -#: code:addons/base/res/res_lang.py:0
 -#, python-format
 -msgid "You cannot delete the language which is User's Preferred Language !"
 -msgstr ""
 -
 -#. module: base
 -#: code:addons/base/res/res_lang.py:0
 -#, python-format
 -msgid "You cannot delete the language which is Active !\nPlease de-activate the language first."
++#: selection:base.language.install,lang:0
++msgid "Russian / русский язык"
+ msgstr ""
 -
 -#~ msgid "Make the rule global, otherwise it needs to be put on a group or user"
 -#~ msgstr ""
 -#~ "Maak dit een globale regel, anders moet de regel aan een groep of gebruiker "
 -#~ "worden gekoppeld"
index 0000000,d8b7546..758ab84
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,4242 +1,4245 @@@
+ # -*- coding: utf-8 -*-
+ ##############################################################################
+ #
+ #    OpenERP, Open Source Management Solution
+ #    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+ #
+ #    This program is free software: you can redistribute it and/or modify
+ #    it under the terms of the GNU Affero General Public License as
+ #    published by the Free Software Foundation, either version 3 of the
+ #    License, or (at your option) any later version.
+ #
+ #    This program is distributed in the hope that it will be useful,
+ #    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ #    GNU Affero General Public License for more details.
+ #
+ #    You should have received a copy of the GNU Affero General Public License
+ #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #
+ ##############################################################################
+ #
+ # Object relationnal mapping to postgresql module
+ #    . Hierarchical structure
+ #    . Constraints consistency, validations
+ #    . Object meta Data depends on its status
+ #    . Optimised processing by complex query (multiple actions at once)
+ #    . Default fields value
+ #    . Permissions optimisation
+ #    . Persistant object: DB postgresql
+ #    . Datas conversions
+ #    . Multi-level caching system
+ #    . 2 different inheritancies
+ #    . Fields:
+ #         - classicals (varchar, integer, boolean, ...)
+ #         - relations (one2many, many2one, many2many)
+ #         - functions
+ #
+ #
+ import calendar
+ import copy
+ import datetime
+ import logging
+ import warnings
+ import operator
+ import pickle
+ import re
+ import time
+ import traceback
+ import types
+ import openerp.netsvc as netsvc
+ from lxml import etree
+ from openerp.tools.config import config
+ from openerp.tools.translate import _
+ import fields
+ from query import Query
+ import openerp.tools as tools
+ from openerp.tools.safe_eval import safe_eval as eval
+ # List of etree._Element subclasses that we choose to ignore when parsing XML.
+ from openerp.tools import SKIPPED_ELEMENT_TYPES
+ regex_order = re.compile('^(([a-z0-9_]+|"[a-z0-9_]+")( *desc| *asc)?( *, *|))+$', re.I)
+ POSTGRES_CONFDELTYPES = {
+     'RESTRICT': 'r',
+     'NO ACTION': 'a',
+     'CASCADE': 'c',
+     'SET NULL': 'n',
+     'SET DEFAULT': 'd',
+ }
+ def last_day_of_current_month():
+     today = datetime.date.today()
+     last_day = str(calendar.monthrange(today.year, today.month)[1])
+     return time.strftime('%Y-%m-' + last_day)
+ def intersect(la, lb):
+     return filter(lambda x: x in lb, la)
+ class except_orm(Exception):
+     def __init__(self, name, value):
+         self.name = name
+         self.value = value
+         self.args = (name, value)
+ class BrowseRecordError(Exception):
+     pass
+ # Readonly python database object browser
+ class browse_null(object):
+     def __init__(self):
+         self.id = False
+     def __getitem__(self, name):
+         return None
+     def __getattr__(self, name):
+         return None  # XXX: return self ?
+     def __int__(self):
+         return False
+     def __str__(self):
+         return ''
+     def __nonzero__(self):
+         return False
+     def __unicode__(self):
+         return u''
+ #
+ # TODO: execute an object method on browse_record_list
+ #
+ class browse_record_list(list):
+     def __init__(self, lst, context=None):
+         if not context:
+             context = {}
+         super(browse_record_list, self).__init__(lst)
+         self.context = context
+ class browse_record(object):
+     logger = netsvc.Logger()
+     def __init__(self, cr, uid, id, table, cache, context=None, list_class=None, fields_process=None):
+         '''
+         table : the object (inherited from orm)
+         context : dictionary with an optional context
+         '''
+         if fields_process is None:
+             fields_process = {}
+         if context is None:
+             context = {}
+         self._list_class = list_class or browse_record_list
+         self._cr = cr
+         self._uid = uid
+         self._id = id
+         self._table = table
+         self._table_name = self._table._name
+         self.__logger = logging.getLogger(
+             'osv.browse_record.' + self._table_name)
+         self._context = context
+         self._fields_process = fields_process
+         cache.setdefault(table._name, {})
+         self._data = cache[table._name]
+         if not (id and isinstance(id, (int, long,))):
+             raise BrowseRecordError(_('Wrong ID for the browse record, got %r, expected an integer.') % (id,))
+ #        if not table.exists(cr, uid, id, context):
+ #            raise BrowseRecordError(_('Object %s does not exists') % (self,))
+         if id not in self._data:
+             self._data[id] = {'id': id}
+         self._cache = cache
+     def __getitem__(self, name):
+         if name == 'id':
+             return self._id
+         if name not in self._data[self._id]:
+             # build the list of fields we will fetch
+             # fetch the definition of the field which was asked for
+             if name in self._table._columns:
+                 col = self._table._columns[name]
+             elif name in self._table._inherit_fields:
+                 col = self._table._inherit_fields[name][2]
+             elif hasattr(self._table, str(name)):
+                 attr = getattr(self._table, name)
+                 if isinstance(attr, (types.MethodType, types.LambdaType, types.FunctionType)):
+                     return lambda *args, **argv: attr(self._cr, self._uid, [self._id], *args, **argv)
+                 else:
+                     return attr
+             else:
+                 self.logger.notifyChannel("browse_record", netsvc.LOG_WARNING,
+                     "Field '%s' does not exist in object '%s': \n%s" % (
+                         name, self, ''.join(traceback.format_exc())))
+                 raise KeyError("Field '%s' does not exist in object '%s'" % (
+                     name, self))
+             # if the field is a classic one or a many2one, we'll fetch all classic and many2one fields
+             if col._prefetch:
+                 # gen the list of "local" (ie not inherited) fields which are classic or many2one
+                 fields_to_fetch = filter(lambda x: x[1]._classic_write, self._table._columns.items())
+                 # gen the list of inherited fields
+                 inherits = map(lambda x: (x[0], x[1][2]), self._table._inherit_fields.items())
+                 # complete the field list with the inherited fields which are classic or many2one
+                 fields_to_fetch += filter(lambda x: x[1]._classic_write, inherits)
+             # otherwise we fetch only that field
+             else:
+                 fields_to_fetch = [(name, col)]
+             ids = filter(lambda id: name not in self._data[id], self._data.keys())
+             # read the results
+             field_names = map(lambda x: x[0], fields_to_fetch)
+             field_values = self._table.read(self._cr, self._uid, ids, field_names, context=self._context, load="_classic_write")
+             # TODO: improve this, very slow for reports
+             if self._fields_process:
+                 lang = self._context.get('lang', 'en_US') or 'en_US'
+                 lang_obj_ids = self.pool.get('res.lang').search(self._cr, self._uid, [('code', '=', lang)])
+                 if not lang_obj_ids:
+                     raise Exception(_('Language with code "%s" is not defined in your system !\nDefine it through the Administration menu.') % (lang,))
+                 lang_obj = self.pool.get('res.lang').browse(self._cr, self._uid, lang_obj_ids[0])
+                 for field_name, field_column in fields_to_fetch:
+                     if field_column._type in self._fields_process:
+                         for result_line in field_values:
+                             result_line[field_name] = self._fields_process[field_column._type](result_line[field_name])
+                             if result_line[field_name]:
+                                 result_line[field_name].set_value(self._cr, self._uid, result_line[field_name], self, field_column, lang_obj)
+             if not field_values:
+                 # Where did those ids come from? Perhaps old entries in ir_model_dat?
+                 self.__logger.warn("No field_values found for ids %s in %s", ids, self)
+                 raise KeyError('Field %s not found in %s'%(name, self))
+             # create browse records for 'remote' objects
+             for result_line in field_values:
+                 new_data = {}
+                 for field_name, field_column in fields_to_fetch:
+                     if field_column._type in ('many2one', 'one2one'):
+                         if result_line[field_name]:
+                             obj = self._table.pool.get(field_column._obj)
+                             if isinstance(result_line[field_name], (list, tuple)):
+                                 value = result_line[field_name][0]
+                             else:
+                                 value = result_line[field_name]
+                             if value:
+                                 # FIXME: this happen when a _inherits object
+                                 #        overwrite a field of it parent. Need
+                                 #        testing to be sure we got the right
+                                 #        object and not the parent one.
+                                 if not isinstance(value, browse_record):
+                                     new_data[field_name] = browse_record(self._cr,
+                                         self._uid, value, obj, self._cache,
+                                         context=self._context,
+                                         list_class=self._list_class,
+                                         fields_process=self._fields_process)
+                                 else:
+                                     new_data[field_name] = value
+                             else:
+                                 new_data[field_name] = browse_null()
+                         else:
+                             new_data[field_name] = browse_null()
+                     elif field_column._type in ('one2many', 'many2many') and len(result_line[field_name]):
+                         new_data[field_name] = self._list_class([browse_record(self._cr, self._uid, id, self._table.pool.get(field_column._obj), self._cache, context=self._context, list_class=self._list_class, fields_process=self._fields_process) for id in result_line[field_name]], self._context)
+                     elif field_column._type in ('reference'):
+                         if result_line[field_name]:
+                             if isinstance(result_line[field_name], browse_record):
+                                 new_data[field_name] = result_line[field_name]
+                             else:
+                                 ref_obj, ref_id = result_line[field_name].split(',')
+                                 ref_id = long(ref_id)
+                                 if ref_id:
+                                     obj = self._table.pool.get(ref_obj)
+                                     new_data[field_name] = browse_record(self._cr, self._uid, ref_id, obj, self._cache, context=self._context, list_class=self._list_class, fields_process=self._fields_process)
+                                 else:
+                                     new_data[field_name] = browse_null()
+                         else:
+                             new_data[field_name] = browse_null()
+                     else:
+                         new_data[field_name] = result_line[field_name]
+                 self._data[result_line['id']].update(new_data)
+         if not name in self._data[self._id]:
+             #how did this happen?
+             self.logger.notifyChannel("browse_record", netsvc.LOG_ERROR,
+                     "Fields to fetch: %s, Field values: %s"%(field_names, field_values))
+             self.logger.notifyChannel("browse_record", netsvc.LOG_ERROR,
+                     "Cached: %s, Table: %s"%(self._data[self._id], self._table))
+             raise KeyError(_('Unknown attribute %s in %s ') % (name, self))
+         return self._data[self._id][name]
+     def __getattr__(self, name):
+         try:
+             return self[name]
+         except KeyError, e:
+             raise AttributeError(e)
+     def __contains__(self, name):
+         return (name in self._table._columns) or (name in self._table._inherit_fields) or hasattr(self._table, name)
+     def __hasattr__(self, name):
+         return name in self
+     def __int__(self):
+         return self._id
+     def __str__(self):
+         return "browse_record(%s, %d)" % (self._table_name, self._id)
+     def __eq__(self, other):
+         if not isinstance(other, browse_record):
+             return False
+         return (self._table_name, self._id) == (other._table_name, other._id)
+     def __ne__(self, other):
+         if not isinstance(other, browse_record):
+             return True
+         return (self._table_name, self._id) != (other._table_name, other._id)
+     # we need to define __unicode__ even though we've already defined __str__
+     # because we have overridden __getattr__
+     def __unicode__(self):
+         return unicode(str(self))
+     def __hash__(self):
+         return hash((self._table_name, self._id))
+     __repr__ = __str__
+ def get_pg_type(f):
+     '''
+     returns a tuple
+     (type returned by postgres when the column was created, type expression to create the column)
+     '''
+     type_dict = {
+             fields.boolean: 'bool',
+             fields.integer: 'int4',
+             fields.integer_big: 'int8',
+             fields.text: 'text',
+             fields.date: 'date',
+             fields.time: 'time',
+             fields.datetime: 'timestamp',
+             fields.binary: 'bytea',
+             fields.many2one: 'int4',
+             }
+     if type(f) in type_dict:
+         f_type = (type_dict[type(f)], type_dict[type(f)])
+     elif isinstance(f, fields.float):
+         if f.digits:
+             f_type = ('numeric', 'NUMERIC')
+         else:
+             f_type = ('float8', 'DOUBLE PRECISION')
+     elif isinstance(f, (fields.char, fields.reference)):
+         f_type = ('varchar', 'VARCHAR(%d)' % (f.size,))
+     elif isinstance(f, fields.selection):
+         if isinstance(f.selection, list) and isinstance(f.selection[0][0], (str, unicode)):
+             f_size = reduce(lambda x, y: max(x, len(y[0])), f.selection, f.size or 16)
+         elif isinstance(f.selection, list) and isinstance(f.selection[0][0], int):
+             f_size = -1
+         else:
+             f_size = getattr(f, 'size', None) or 16
+         if f_size == -1:
+             f_type = ('int4', 'INTEGER')
+         else:
+             f_type = ('varchar', 'VARCHAR(%d)' % f_size)
+     elif isinstance(f, fields.function) and eval('fields.'+(f._type), globals()) in type_dict:
+         t = eval('fields.'+(f._type), globals())
+         f_type = (type_dict[t], type_dict[t])
+     elif isinstance(f, fields.function) and f._type == 'float':
+         if f.digits:
+             f_type = ('numeric', 'NUMERIC')
+         else:
+             f_type = ('float8', 'DOUBLE PRECISION')
+     elif isinstance(f, fields.function) and f._type == 'selection':
+         f_type = ('text', 'text')
+     elif isinstance(f, fields.function) and f._type == 'char':
+         f_type = ('varchar', 'VARCHAR(%d)' % (f.size))
+     else:
+         logger = netsvc.Logger()
+         logger.notifyChannel("init", netsvc.LOG_WARNING, '%s type not supported!' % (type(f)))
+         f_type = None
+     return f_type
+ class orm_template(object):
+     _name = None
+     _columns = {}
+     _constraints = []
+     _defaults = {}
+     _rec_name = 'name'
+     _parent_name = 'parent_id'
+     _parent_store = False
+     _parent_order = False
+     _date_name = 'date'
+     _order = 'id'
+     _sequence = None
+     _description = None
+     _inherits = {}
+     _table = None
+     _invalids = set()
+     _log_create = False
+     CONCURRENCY_CHECK_FIELD = '__last_update'
+     def log(self, cr, uid, id, message, secondary=False, context=None):
+         return self.pool.get('res.log').create(cr, uid,
+                 {
+                     'name': message,
+                     'res_model': self._name,
+                     'secondary': secondary,
+                     'res_id': id,
+                 },
+                 context=context
+         )
+     def view_init(self, cr, uid, fields_list, context=None):
+         """Override this method to do specific things when a view on the object is opened."""
+         pass
+     def read_group(self, cr, uid, domain, fields, groupby, offset=0, limit=None, context=None, orderby=False):
+         raise NotImplementedError(_('The read_group method is not implemented on this object !'))
+     def _field_create(self, cr, context=None):
+         if context is None:
+             context = {}
+         cr.execute("SELECT id FROM ir_model WHERE model=%s", (self._name,))
+         if not cr.rowcount:
+             cr.execute('SELECT nextval(%s)', ('ir_model_id_seq',))
+             model_id = cr.fetchone()[0]
+             cr.execute("INSERT INTO ir_model (id,model, name, info,state) VALUES (%s, %s, %s, %s, %s)", (model_id, self._name, self._description, self.__doc__, 'base'))
+         else:
+             model_id = cr.fetchone()[0]
+         if 'module' in context:
+             name_id = 'model_'+self._name.replace('.', '_')
+             cr.execute('select * from ir_model_data where name=%s and module=%s', (name_id, context['module']))
+             if not cr.rowcount:
+                 cr.execute("INSERT INTO ir_model_data (name,date_init,date_update,module,model,res_id) VALUES (%s, now(), now(), %s, %s, %s)", \
+                     (name_id, context['module'], 'ir.model', model_id)
+                 )
+         cr.commit()
+         cr.execute("SELECT * FROM ir_model_fields WHERE model=%s", (self._name,))
+         cols = {}
+         for rec in cr.dictfetchall():
+             cols[rec['name']] = rec
+         for (k, f) in self._columns.items():
+             vals = {
+                 'model_id': model_id,
+                 'model': self._name,
+                 'name': k,
+                 'field_description': f.string.replace("'", " "),
+                 'ttype': f._type,
+                 'relation': f._obj or '',
+                 'view_load': (f.view_load and 1) or 0,
+                 'select_level': tools.ustr(f.select or 0),
+                 'readonly': (f.readonly and 1) or 0,
+                 'required': (f.required and 1) or 0,
+                 'selectable': (f.selectable and 1) or 0,
+                 'relation_field': (f._type=='one2many' and isinstance(f, fields.one2many)) and f._fields_id or '',
+             }
+             # When its a custom field,it does not contain f.select
+             if context.get('field_state', 'base') == 'manual':
+                 if context.get('field_name', '') == k:
+                     vals['select_level'] = context.get('select', '0')
+                 #setting value to let the problem NOT occur next time
+                 elif k in cols:
+                     vals['select_level'] = cols[k]['select_level']
+             if k not in cols:
+                 cr.execute('select nextval(%s)', ('ir_model_fields_id_seq',))
+                 id = cr.fetchone()[0]
+                 vals['id'] = id
+                 cr.execute("""INSERT INTO ir_model_fields (
+                     id, model_id, model, name, field_description, ttype,
+                     relation,view_load,state,select_level,relation_field
+                 ) VALUES (
+                     %s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s
+                 )""", (
+                     id, vals['model_id'], vals['model'], vals['name'], vals['field_description'], vals['ttype'],
+                      vals['relation'], bool(vals['view_load']), 'base',
+                     vals['select_level'], vals['relation_field']
+                 ))
+                 if 'module' in context:
+                     name1 = 'field_' + self._table + '_' + k
+                     cr.execute("select name from ir_model_data where name=%s", (name1,))
+                     if cr.fetchone():
+                         name1 = name1 + "_" + str(id)
+                     cr.execute("INSERT INTO ir_model_data (name,date_init,date_update,module,model,res_id) VALUES (%s, now(), now(), %s, %s, %s)", \
+                         (name1, context['module'], 'ir.model.fields', id)
+                     )
+             else:
+                 for key, val in vals.items():
+                     if cols[k][key] != vals[key]:
+                         cr.execute('update ir_model_fields set field_description=%s where model=%s and name=%s', (vals['field_description'], vals['model'], vals['name']))
+                         cr.commit()
+                         cr.execute("""UPDATE ir_model_fields SET
+                             model_id=%s, field_description=%s, ttype=%s, relation=%s,
+                             view_load=%s, select_level=%s, readonly=%s ,required=%s, selectable=%s, relation_field=%s
+                         WHERE
+                             model=%s AND name=%s""", (
+                                 vals['model_id'], vals['field_description'], vals['ttype'],
+                                 vals['relation'], bool(vals['view_load']),
+                                 vals['select_level'], bool(vals['readonly']), bool(vals['required']), bool(vals['selectable']), vals['relation_field'], vals['model'], vals['name']
+                             ))
+                         break
+         cr.commit()
+     def _auto_init(self, cr, context=None):
+         self._field_create(cr, context=context)
+     def __init__(self, cr):
+         if not self._name and not hasattr(self, '_inherit'):
+             name = type(self).__name__.split('.')[0]
+             msg = "The class %s has to have a _name attribute" % name
+             logger = netsvc.Logger()
+             logger.notifyChannel('orm', netsvc.LOG_ERROR, msg)
+             raise except_orm('ValueError', msg)
+         if not self._description:
+             self._description = self._name
+         if not self._table:
+             self._table = self._name.replace('.', '_')
+     def browse(self, cr, uid, select, context=None, list_class=None, fields_process=None):
+         """Fetch records as objects allowing to use dot notation to browse fields and relations
+         :param cr: database cursor
+         :param user: current user id
+         :param select: id or list of ids
+         :param context: context arguments, like lang, time zone
+         :rtype: object or list of objects requested
+         """
+         self._list_class = list_class or browse_record_list
+         cache = {}
+         # need to accepts ints and longs because ids coming from a method
+         # launched by button in the interface have a type long...
+         if isinstance(select, (int, long)):
+             return browse_record(cr, uid, select, self, cache, context=context, list_class=self._list_class, fields_process=fields_process)
+         elif isinstance(select, list):
+             return self._list_class([browse_record(cr, uid, id, self, cache, context=context, list_class=self._list_class, fields_process=fields_process) for id in select], context=context)
+         else:
+             return browse_null()
+     def __export_row(self, cr, uid, row, fields, context=None):
+         if context is None:
+             context = {}
+         def check_type(field_type):
+             if field_type == 'float':
+                 return 0.0
+             elif field_type == 'integer':
+                 return 0
+             elif field_type == 'boolean':
+                 return False
+             return ''
+         def selection_field(in_field):
+             col_obj = self.pool.get(in_field.keys()[0])
+             if f[i] in col_obj._columns.keys():
+                 return  col_obj._columns[f[i]]
+             elif f[i] in col_obj._inherits.keys():
+                 selection_field(col_obj._inherits)
+             else:
+                 return False
+         lines = []
+         data = map(lambda x: '', range(len(fields)))
+         done = []
+         for fpos in range(len(fields)):
+             f = fields[fpos]
+             if f:
+                 r = row
+                 i = 0
+                 while i < len(f):
+                     if f[i] == '.id':
+                         r = r['id']
+                     elif f[i] == 'id':
+                         model_data = self.pool.get('ir.model.data')
+                         data_ids = model_data.search(cr, uid, [('model', '=', r._table_name), ('res_id', '=', r['id'])])
+                         if len(data_ids):
+                             d = model_data.read(cr, uid, data_ids, ['name', 'module'])[0]
+                             if d['module']:
+                                 r = '%s.%s' % (d['module'], d['name'])
+                             else:
+                                 r = d['name']
+                         else:
+                             break
+                     else:
+                         r = r[f[i]]
+                         # To display external name of selection field when its exported
+                         cols = False
+                         if f[i] in self._columns.keys():
+                             cols = self._columns[f[i]]
+                         elif f[i] in self._inherit_fields.keys():
+                             cols = selection_field(self._inherits)
+                         if cols and cols._type == 'selection':
+                             sel_list = cols.selection
+                             if r and type(sel_list) == type([]):
+                                 r = [x[1] for x in sel_list if r==x[0]]
+                                 r = r and r[0] or False
+                     if not r:
+                         if f[i] in self._columns:
+                             r = check_type(self._columns[f[i]]._type)
+                         elif f[i] in self._inherit_fields:
+                             r = check_type(self._inherit_fields[f[i]][2]._type)
+                         data[fpos] = r or False
+                         break
+                     if isinstance(r, (browse_record_list, list)):
+                         first = True
+                         fields2 = map(lambda x: (x[:i+1]==f[:i+1] and x[i+1:]) \
+                                 or [], fields)
+                         if fields2 in done:
+                             if [x for x in fields2 if x]:
+                                 break
+                         done.append(fields2)
+                         for row2 in r:
+                             lines2 = self.__export_row(cr, uid, row2, fields2,
+                                     context)
+                             if first:
+                                 for fpos2 in range(len(fields)):
+                                     if lines2 and lines2[0][fpos2]:
+                                         data[fpos2] = lines2[0][fpos2]
+                                 if not data[fpos]:
+                                     dt = ''
+                                     for rr in r:
+                                         name_relation = self.pool.get(rr._table_name)._rec_name
+                                         if isinstance(rr[name_relation], browse_record):
+                                             rr = rr[name_relation]
+                                         rr_name = self.pool.get(rr._table_name).name_get(cr, uid, [rr.id], context=context)
+                                         rr_name = rr_name and rr_name[0] and rr_name[0][1] or ''
+                                         dt += tools.ustr(rr_name or '') + ','
+                                     data[fpos] = dt[:-1]
+                                     break
+                                 lines += lines2[1:]
+                                 first = False
+                             else:
+                                 lines += lines2
+                         break
+                     i += 1
+                 if i == len(f):
+                     if isinstance(r, browse_record):
+                         r = self.pool.get(r._table_name).name_get(cr, uid, [r.id], context=context)
+                         r = r and r[0] and r[0][1] or ''
+                     data[fpos] = tools.ustr(r or '')
+         return [data] + lines
+     def export_data(self, cr, uid, ids, fields_to_export, context=None):
+         """
+         Export fields for selected objects
+         :param cr: database cursor
+         :param uid: current user id
+         :param ids: list of ids
+         :param fields_to_export: list of fields
+         :param context: context arguments, like lang, time zone
+         :rtype: dictionary with a *datas* matrix
+         This method is used when exporting data via client menu
+         """
+         if context is None:
+             context = {}
+         cols = self._columns.copy()
+         for f in self._inherit_fields:
+             cols.update({f: self._inherit_fields[f][2]})
+         def fsplit(x):
+             if x=='.id': return [x]
+             return x.replace(':id','/id').replace('.id','/.id').split('/')
+         fields_to_export = map(fsplit, fields_to_export)
+         fields_export = fields_to_export + []
+         warning = ''
+         warning_fields = []
+         datas = []
+         for row in self.browse(cr, uid, ids, context):
+             datas += self.__export_row(cr, uid, row, fields_to_export, context)
+         return {'datas': datas}
+     def import_data(self, cr, uid, fields, datas, mode='init', current_module='', noupdate=False, context=None, filename=None):
+         """
+         Import given data in given module
+         :param cr: database cursor
+         :param uid: current user id
+         :param fields: list of fields
+         :param data: data to import
+         :param mode: 'init' or 'update' for record creation
+         :param current_module: module name
+         :param noupdate: flag for record creation
+         :param context: context arguments, like lang, time zone,
+         :param filename: optional file to store partial import state for recovery
+         :rtype: tuple
+         This method is used when importing data via client menu.
+         Example of fields to import for a sale.order::
+             .id,                         (=database_id)
+             partner_id,                  (=name_search)
+             order_line/.id,              (=database_id)
+             order_line/name,
+             order_line/product_id/id,    (=xml id)
+             order_line/price_unit,
+             order_line/product_uom_qty,
+             order_line/product_uom/id    (=xml_id)
+         """
+         if not context:
+             context = {}
+         def _replace_field(x):
+             x = re.sub('([a-z0-9A-Z_])\\.id$', '\\1/.id', x)
+             return x.replace(':id','/id').split('/')
+         fields = map(_replace_field, fields)
+         logger = netsvc.Logger()
+         ir_model_data_obj = self.pool.get('ir.model.data')
+         # mode: id (XML id) or .id (database id) or False for name_get
+         def _get_id(model_name, id, current_module=False, mode='id'):
+             if mode=='.id':
+                 id = int(id)
+                 obj_model = self.pool.get(model_name)
+                 ids = obj_model.search(cr, uid, [('id', '=', int(id))])
+                 if not len(ids):
+                     raise Exception(_("Database ID doesn't exist: %s : %s") %(model_name, id))
+             elif mode=='id':
+                 if '.' in id:
+                     module, xml_id = id.rsplit('.', 1)
+                 else:
+                     module, xml_id = current_module, id
+                 record_id = ir_model_data_obj._get_id(cr, uid, module, xml_id)
+                 ir_model_data = ir_model_data_obj.read(cr, uid, [record_id], ['res_id'])
+                 if not ir_model_data:
+                     raise ValueError('No references to %s.%s' % (module, xml_id))
+                 id = ir_model_data[0]['res_id']
+             else:
+                 obj_model = self.pool.get(model_name)
+                 ids = obj_model.name_search(cr, uid, id, operator='=')
+                 if not ids:
+                     raise ValueError('No record found for %s' % (id,))
+                 id = ids[0][0]
+             return id
+         # IN:
+         #   datas: a list of records, each record is defined by a list of values
+         #   prefix: a list of prefix fields ['line_ids']
+         #   position: the line to process, skip is False if it's the first line of the current record
+         # OUT:
+         #   (res, position, warning, res_id) with
+         #     res: the record for the next line to process (including it's one2many)
+         #     position: the new position for the next line
+         #     res_id: the ID of the record if it's a modification
+         def process_liness(self, datas, prefix, current_module, model_name, fields_def, position=0, skip=0):
+             line = datas[position]
+             row = {}
+             warning = []
+             data_res_id = False
+             xml_id = False
+             nbrmax = position+1
+             done = {}
+             for i in range(len(fields)):
+                 res = False
+                 if not line[i]:
+                     continue
+                 if i >= len(line):
+                     raise Exception(_('Please check that all your lines have %d columns.') % (len(fields),))
+                 field = fields[i]
+                 if field[:len(prefix)] <> prefix:
+                     if line[i] and skip:
+                         return False
+                     continue
+                 # ID of the record using a XML ID
+                 if field[len(prefix)]=='id':
+                     try:
+                         data_res_id = _get_id(model_name, line[i], current_module, 'id')
+                     except ValueError, e:
+                         pass
+                     xml_id = line[i]
+                     continue
+                 # ID of the record using a database ID
+                 elif field[len(prefix)]=='.id':
+                     data_res_id = _get_id(model_name, line[i], current_module, '.id')
+                     continue
+                 # recursive call for getting children and returning [(0,0,{})] or [(1,ID,{})]
+                 if fields_def[field[len(prefix)]]['type']=='one2many':
+                     if field[len(prefix)] in done:
+                         continue
+                     done[field[len(prefix)]] = True
+                     relation_obj = self.pool.get(fields_def[field[len(prefix)]]['relation'])
+                     newfd = relation_obj.fields_get( cr, uid, context=context )
+                     pos = position
+                     res = []
+                     first = 0
+                     while pos < len(datas):
+                         res2 = process_liness(self, datas, prefix + [field[len(prefix)]], current_module, relation_obj._name, newfd, pos, first)
+                         if not res2:
+                             break
+                         (newrow, pos, w2, data_res_id2, xml_id2) = res2
+                         nbrmax = max(nbrmax, pos)
+                         warning += w2
+                         first += 1
+                         if (not newrow) or not reduce(lambda x, y: x or y, newrow.values(), 0):
+                             break
+                         res.append( (data_res_id2 and 1 or 0, data_res_id2 or 0, newrow) )
+                 elif fields_def[field[len(prefix)]]['type']=='many2one':
+                     relation = fields_def[field[len(prefix)]]['relation']
+                     if len(field) == len(prefix)+1:
+                         mode = False
+                     else:
+                         mode = field[len(prefix)+1]
+                     res = _get_id(relation, line[i], current_module, mode)
+                 elif fields_def[field[len(prefix)]]['type']=='many2many':
+                     relation = fields_def[field[len(prefix)]]['relation']
+                     if len(field) == len(prefix)+1:
+                         mode = False
+                     else:
+                         mode = field[len(prefix)+1]
+                     # TODO: improve this by using csv.csv_reader
+                     res = []
+                     for db_id in line[i].split(config.get('csv_internal_sep')):
+                         res.append( _get_id(relation, db_id, current_module, mode) )
+                     res = [(6,0,res)]
+                 elif fields_def[field[len(prefix)]]['type'] == 'integer':
+                     res = line[i] and int(line[i]) or 0
+                 elif fields_def[field[len(prefix)]]['type'] == 'boolean':
+                     res = line[i].lower() not in ('0', 'false', 'off')
+                 elif fields_def[field[len(prefix)]]['type'] == 'float':
+                     res = line[i] and float(line[i]) or 0.0
+                 elif fields_def[field[len(prefix)]]['type'] == 'selection':
+                     for key, val in fields_def[field[len(prefix)]]['selection']:
+                         if line[i] in [tools.ustr(key), tools.ustr(val)]:
+                             res = key
+                             break
+                     if line[i] and not res:
+                         logger.notifyChannel("import", netsvc.LOG_WARNING,
+                                 _("key '%s' not found in selection field '%s'") % \
+                                         (line[i], field[len(prefix)]))
+                         warning += [_("Key/value '%s' not found in selection field '%s'") % (line[i], field[len(prefix)])]
+                 else:
+                     res = line[i]
+                 row[field[len(prefix)]] = res or False
+             result = (row, nbrmax, warning, data_res_id, xml_id)
+             return result
+         fields_def = self.fields_get(cr, uid, context=context)
+         if config.get('import_partial', False) and filename:
+             data = pickle.load(file(config.get('import_partial')))
+             original_value = data.get(filename, 0)
+         position = 0
+         while position<len(datas):
+             res = {}
+             (res, position, warning, res_id, xml_id) = \
+                     process_liness(self, datas, [], current_module, self._name, fields_def, position=position)
+             if len(warning):
+                 cr.rollback()
+                 return (-1, res, 'Line ' + str(position) +' : ' + '!\n'.join(warning), '')
+             try:
+                 id = ir_model_data_obj._update(cr, uid, self._name,
+                      current_module, res, mode=mode, xml_id=xml_id,
+                      noupdate=noupdate, res_id=res_id, context=context)
+             except Exception, e:
+                 return (-1, res, 'Line ' + str(position) +' : ' + str(e), '')
+             if config.get('import_partial', False) and filename and (not (position%100)):
+                 data = pickle.load(file(config.get('import_partial')))
+                 data[filename] = position
+                 pickle.dump(data, file(config.get('import_partial'), 'wb'))
+                 if context.get('defer_parent_store_computation'):
+                     self._parent_store_compute(cr)
+                 cr.commit()
+         if context.get('defer_parent_store_computation'):
+             self._parent_store_compute(cr)
+         return (position, 0, 0, 0)
+     def read(self, cr, user, ids, fields=None, context=None, load='_classic_read'):
+         """
+         Read records with given ids with the given fields
+         :param cr: database cursor
+         :param user: current user id
+         :param ids: id or list of the ids of the records to read
+         :param fields: optional list of field names to return (default: all fields would be returned)
+         :type fields: list (example ['field_name_1', ...])
+         :param context: optional context dictionary - it may contains keys for specifying certain options
+                         like ``context_lang``, ``context_tz`` to alter the results of the call.
+                         A special ``bin_size`` boolean flag may also be passed in the context to request the
+                         value of all fields.binary columns to be returned as the size of the binary instead of its
+                         contents. This can also be selectively overriden by passing a field-specific flag
+                         in the form ``bin_size_XXX: True/False`` where ``XXX`` is the name of the field.
+                         Note: The ``bin_size_XXX`` form is new in OpenERP v6.0.
+         :return: list of dictionaries((dictionary per record asked)) with requested field values
+         :rtype: [{‘name_of_the_field’: value, ...}, ...]
+         :raise AccessError: * if user has no read rights on the requested object
+                             * if user tries to bypass access rules for read on the requested object
+         """
+         raise NotImplementedError(_('The read method is not implemented on this object !'))
+     def get_invalid_fields(self, cr, uid):
+         return list(self._invalids)
+     def _validate(self, cr, uid, ids, context=None):
+         context = context or {}
+         lng = context.get('lang', False) or 'en_US'
+         trans = self.pool.get('ir.translation')
+         error_msgs = []
+         for constraint in self._constraints:
+             fun, msg, fields = constraint
+             if not fun(self, cr, uid, ids):
+                 # Check presence of __call__ directly instead of using
+                 # callable() because it will be deprecated as of Python 3.0
+                 if hasattr(msg, '__call__'):
+                     tmp_msg = msg(self, cr, uid, ids, context=context)
+                     if isinstance(tmp_msg, tuple):
+                         tmp_msg, params = tmp_msg
+                         translated_msg = tmp_msg % params
+                     else:
+                         translated_msg = tmp_msg
+                 else:
+                     translated_msg = trans._get_source(cr, uid, self._name, 'constraint', lng, source=msg) or msg
+                 error_msgs.append(
+                         _("Error occurred while validating the field(s) %s: %s") % (','.join(fields), translated_msg)
+                 )
+                 self._invalids.update(fields)
+         if error_msgs:
+             cr.rollback()
+             raise except_orm('ValidateError', '\n'.join(error_msgs))
+         else:
+             self._invalids.clear()
+     def default_get(self, cr, uid, fields_list, context=None):
+         """
+         Returns default values for the fields in fields_list.
+         :param fields_list: list of fields to get the default values for (example ['field1', 'field2',])
+         :type fields_list: list
+         :param context: optional context dictionary - it may contains keys for specifying certain options
+                         like ``context_lang`` (language) or ``context_tz`` (timezone) to alter the results of the call.
+                         It may contain keys in the form ``default_XXX`` (where XXX is a field name), to set
+                         or override a default value for a field.
+                         A special ``bin_size`` boolean flag may also be passed in the context to request the
+                         value of all fields.binary columns to be returned as the size of the binary instead of its
+                         contents. This can also be selectively overriden by passing a field-specific flag
+                         in the form ``bin_size_XXX: True/False`` where ``XXX`` is the name of the field.
+                         Note: The ``bin_size_XXX`` form is new in OpenERP v6.0.
+         :return: dictionary of the default values (set on the object model class, through user preferences, or in the context)
+         """
+         # trigger view init hook
+         self.view_init(cr, uid, fields_list, context)
+         if not context:
+             context = {}
+         defaults = {}
+         # get the default values for the inherited fields
+         for t in self._inherits.keys():
+             defaults.update(self.pool.get(t).default_get(cr, uid, fields_list,
+                 context))
+         # get the default values defined in the object
+         for f in fields_list:
+             if f in self._defaults:
+                 if callable(self._defaults[f]):
+                     defaults[f] = self._defaults[f](self, cr, uid, context)
+                 else:
+                     defaults[f] = self._defaults[f]
+             fld_def = ((f in self._columns) and self._columns[f]) \
+                     or ((f in self._inherit_fields) and self._inherit_fields[f][2]) \
+                     or False
+             if isinstance(fld_def, fields.property):
+                 property_obj = self.pool.get('ir.property')
+                 prop_value = property_obj.get(cr, uid, f, self._name, context=context)
+                 if prop_value:
+                     if isinstance(prop_value, (browse_record, browse_null)):
+                         defaults[f] = prop_value.id
+                     else:
+                         defaults[f] = prop_value
+                 else:
+                     if f not in defaults:
+                         defaults[f] = False
+         # get the default values set by the user and override the default
+         # values defined in the object
+         ir_values_obj = self.pool.get('ir.values')
+         res = ir_values_obj.get(cr, uid, 'default', False, [self._name])
+         for id, field, field_value in res:
+             if field in fields_list:
+                 fld_def = (field in self._columns) and self._columns[field] or self._inherit_fields[field][2]
+                 if fld_def._type in ('many2one', 'one2one'):
+                     obj = self.pool.get(fld_def._obj)
+                     if not obj.search(cr, uid, [('id', '=', field_value or False)]):
+                         continue
+                 if fld_def._type in ('many2many'):
+                     obj = self.pool.get(fld_def._obj)
+                     field_value2 = []
+                     for i in range(len(field_value)):
+                         if not obj.search(cr, uid, [('id', '=',
+                             field_value[i])]):
+                             continue
+                         field_value2.append(field_value[i])
+                     field_value = field_value2
+                 if fld_def._type in ('one2many'):
+                     obj = self.pool.get(fld_def._obj)
+                     field_value2 = []
+                     for i in range(len(field_value)):
+                         field_value2.append({})
+                         for field2 in field_value[i]:
+                             if field2 in obj._columns.keys() and obj._columns[field2]._type in ('many2one', 'one2one'):
+                                 obj2 = self.pool.get(obj._columns[field2]._obj)
+                                 if not obj2.search(cr, uid,
+                                         [('id', '=', field_value[i][field2])]):
+                                     continue
+                             elif field2 in obj._inherit_fields.keys() and obj._inherit_fields[field2][2]._type in ('many2one', 'one2one'):
+                                 obj2 = self.pool.get(obj._inherit_fields[field2][2]._obj)
+                                 if not obj2.search(cr, uid,
+                                         [('id', '=', field_value[i][field2])]):
+                                     continue
+                             # TODO add test for many2many and one2many
+                             field_value2[i][field2] = field_value[i][field2]
+                     field_value = field_value2
+                 defaults[field] = field_value
+         # get the default values from the context
+         for key in context or {}:
+             if key.startswith('default_') and (key[8:] in fields_list):
+                 defaults[key[8:]] = context[key]
+         return defaults
+     def perm_read(self, cr, user, ids, context=None, details=True):
+         raise NotImplementedError(_('The perm_read method is not implemented on this object !'))
+     def unlink(self, cr, uid, ids, context=None):
+         raise NotImplementedError(_('The unlink method is not implemented on this object !'))
+     def write(self, cr, user, ids, vals, context=None):
+         raise NotImplementedError(_('The write method is not implemented on this object !'))
+     def create(self, cr, user, vals, context=None):
+         raise NotImplementedError(_('The create method is not implemented on this object !'))
+     def fields_get_keys(self, cr, user, context=None):
+         res = self._columns.keys()
+         for parent in self._inherits:
+             res.extend(self.pool.get(parent).fields_get_keys(cr, user, context))
+         return res
+     # returns the definition of each field in the object
+     # the optional fields parameter can limit the result to some fields
+     def fields_get(self, cr, user, allfields=None, context=None, write_access=True):
+         if context is None:
+             context = {}
+         res = {}
+         translation_obj = self.pool.get('ir.translation')
+         for parent in self._inherits:
+             res.update(self.pool.get(parent).fields_get(cr, user, allfields, context))
+         if self._columns.keys():
+             for f in self._columns.keys():
+                 field_col = self._columns[f]
+                 if allfields and f not in allfields:
+                     continue
+                 res[f] = {'type': field_col._type}
+                 # This additional attributes for M2M and function field is added
+                 # because we need to display tooltip with this additional information
+                 # when client is started in debug mode.
+                 if isinstance(field_col, fields.function):
+                     res[f]['function'] = field_col._fnct and field_col._fnct.func_name or False
+                     res[f]['store'] = field_col.store
+                     if isinstance(field_col.store, dict):
+                         res[f]['store'] = str(field_col.store)
+                     res[f]['fnct_search'] = field_col._fnct_search and field_col._fnct_search.func_name or False
+                     res[f]['fnct_inv'] = field_col._fnct_inv and field_col._fnct_inv.func_name or False
+                     res[f]['fnct_inv_arg'] = field_col._fnct_inv_arg or False
+                     res[f]['func_obj'] = field_col._obj or False
+                     res[f]['func_method'] = field_col._method
+                 if isinstance(field_col, fields.many2many):
+                     res[f]['related_columns'] = list((field_col._id1, field_col._id2))
+                     res[f]['third_table'] = field_col._rel
+                 for arg in ('string', 'readonly', 'states', 'size', 'required', 'group_operator',
+                         'change_default', 'translate', 'help', 'select', 'selectable'):
+                     if getattr(field_col, arg):
+                         res[f][arg] = getattr(field_col, arg)
+                 if not write_access:
+                     res[f]['readonly'] = True
+                     res[f]['states'] = {}
+                 for arg in ('digits', 'invisible', 'filters'):
+                     if getattr(field_col, arg, None):
+                         res[f][arg] = getattr(field_col, arg)
+                 if field_col.string:
+                     res_trans = translation_obj._get_source(cr, user, self._name + ',' + f, 'field', context.get('lang', False) or 'en_US')
+                     if res_trans:
+                         res[f]['string'] = res_trans
+                 if field_col.help:
+                     help_trans = translation_obj._get_source(cr, user, self._name + ',' + f, 'help', context.get('lang', False) or 'en_US')
+                     if help_trans:
+                         res[f]['help'] = help_trans
+                 if hasattr(field_col, 'selection'):
+                     if isinstance(field_col.selection, (tuple, list)):
+                         sel = field_col.selection
+                         # translate each selection option
+                         sel2 = []
+                         for (key, val) in sel:
+                             val2 = None
+                             if val:
+                                 val2 = translation_obj._get_source(cr, user, self._name + ',' + f, 'selection', context.get('lang', False) or 'en_US', val)
+                             sel2.append((key, val2 or val))
+                         sel = sel2
+                         res[f]['selection'] = sel
+                     else:
+                         # call the 'dynamic selection' function
+                         res[f]['selection'] = field_col.selection(self, cr, user, context)
+                 if res[f]['type'] in ('one2many', 'many2many', 'many2one', 'one2one'):
+                     res[f]['relation'] = field_col._obj
+                     res[f]['domain'] = field_col._domain
+                     res[f]['context'] = field_col._context
+         else:
+             #TODO : read the fields from the database
+             pass
+         if allfields:
+             # filter out fields which aren't in the fields list
+             for r in res.keys():
+                 if r not in allfields:
+                     del res[r]
+         return res
+     #
+     # Overload this method if you need a window title which depends on the context
+     #
+     def view_header_get(self, cr, user, view_id=None, view_type='form', context=None):
+         return False
+     def __view_look_dom(self, cr, user, node, view_id, context=None):
+         if not context:
+             context = {}
+         result = False
+         fields = {}
+         children = True
+         def encode(s):
+             if isinstance(s, unicode):
+                 return s.encode('utf8')
+             return s
+         # return True if node can be displayed to current user
+         def check_group(node):
+             if node.get('groups'):
+                 groups = node.get('groups').split(',')
+                 access_pool = self.pool.get('ir.model.access')
+                 can_see = any(access_pool.check_groups(cr, user, group) for group in groups)
+                 if not can_see:
+                     node.set('invisible', '1')
+                     if 'attrs' in node.attrib:
+                         del(node.attrib['attrs']) #avoid making field visible later
+                 del(node.attrib['groups'])
+                 return can_see
+             else:
+                 return True
+         if node.tag in ('field', 'node', 'arrow'):
+             if node.get('object'):
+                 attrs = {}
+                 views = {}
+                 xml = "<form>"
+                 for f in node:
+                     if f.tag in ('field'):
+                         xml += etree.tostring(f, encoding="utf-8")
+                 xml += "</form>"
+                 new_xml = etree.fromstring(encode(xml))
+                 ctx = context.copy()
+                 ctx['base_model_name'] = self._name
+                 xarch, xfields = self.pool.get(node.get('object')).__view_look_dom_arch(cr, user, new_xml, view_id, ctx)
+                 views['form'] = {
+                     'arch': xarch,
+                     'fields': xfields
+                 }
+                 attrs = {'views': views}
+                 fields = xfields
+             if node.get('name'):
+                 attrs = {}
+                 try:
+                     if node.get('name') in self._columns:
+                         column = self._columns[node.get('name')]
+                     else:
+                         column = self._inherit_fields[node.get('name')][2]
+                 except Exception:
+                     column = False
+                 if column:
+                     relation = self.pool.get(column._obj)
+                     children = False
+                     views = {}
+                     for f in node:
+                         if f.tag in ('form', 'tree', 'graph'):
+                             node.remove(f)
+                             ctx = context.copy()
+                             ctx['base_model_name'] = self._name
+                             xarch, xfields = relation.__view_look_dom_arch(cr, user, f, view_id, ctx)
+                             views[str(f.tag)] = {
+                                 'arch': xarch,
+                                 'fields': xfields
+                             }
+                     attrs = {'views': views}
+                     if node.get('widget') and node.get('widget') == 'selection':
+                         # Prepare the cached selection list for the client. This needs to be
+                         # done even when the field is invisible to the current user, because
+                         # other events could need to change its value to any of the selectable ones
+                         # (such as on_change events, refreshes, etc.)
+                         # If domain and context are strings, we keep them for client-side, otherwise
+                         # we evaluate them server-side to consider them when generating the list of
+                         # possible values
+                         # TODO: find a way to remove this hack, by allow dynamic domains
+                         dom = []
+                         if column._domain and not isinstance(column._domain, basestring):
+                             dom = column._domain
+                         dom += eval(node.get('domain', '[]'), {'uid': user, 'time': time})
+                         search_context = dict(context)
+                         if column._context and not isinstance(column._context, basestring):
+                             search_context.update(column._context)
+                         attrs['selection'] = relation._name_search(cr, user, '', dom, context=search_context, limit=None, name_get_uid=1)
+                         if (node.get('required') and not int(node.get('required'))) or not column.required:
+                             attrs['selection'].append((False, ''))
+                 fields[node.get('name')] = attrs
+         elif node.tag in ('form', 'tree'):
+             result = self.view_header_get(cr, user, False, node.tag, context)
+             if result:
+                 node.set('string', result)
+         elif node.tag == 'calendar':
+             for additional_field in ('date_start', 'date_delay', 'date_stop', 'color'):
+                 if node.get(additional_field):
+                     fields[node.get(additional_field)] = {}
+         if 'groups' in node.attrib:
+             check_group(node)
+         # translate view
+         if ('lang' in context) and not result:
+             if node.get('string'):
+                 trans = self.pool.get('ir.translation')._get_source(cr, user, self._name, 'view', context['lang'], node.get('string'))
+                 if trans == node.get('string') and ('base_model_name' in context):
+                     # If translation is same as source, perhaps we'd have more luck with the alternative model name
+                     # (in case we are in a mixed situation, such as an inherited view where parent_view.model != model
+                     trans = self.pool.get('ir.translation')._get_source(cr, user, context['base_model_name'], 'view', context['lang'], node.get('string'))
+                 if trans:
+                     node.set('string', trans)
+             if node.get('confirm'):
+                 trans = self.pool.get('ir.translation')._get_source(cr, user, self._name, 'view', context['lang'], node.get('confirm'))
+                 if trans:
+                     node.set('confirm', trans)
+             if node.get('sum'):
+                 trans = self.pool.get('ir.translation')._get_source(cr, user, self._name, 'view', context['lang'], node.get('sum'))
+                 if trans:
+                     node.set('sum', trans)
+         for f in node:
+             if children or (node.tag == 'field' and f.tag in ('filter','separator')):
+                 fields.update(self.__view_look_dom(cr, user, f, view_id, context))
+         return fields
+     def _disable_workflow_buttons(self, cr, user, node):
+         if user == 1:
+             # admin user can always activate workflow buttons
+             return node
+         # TODO handle the case of more than one workflow for a model or multiple
+         # transitions with different groups and same signal
+         usersobj = self.pool.get('res.users')
+         buttons = (n for n in node.getiterator('button') if n.get('type') != 'object')
+         for button in buttons:
+             user_groups = usersobj.read(cr, user, [user], ['groups_id'])[0]['groups_id']
+             cr.execute("""SELECT DISTINCT t.group_id
+                         FROM wkf
+                   INNER JOIN wkf_activity a ON a.wkf_id = wkf.id
+                   INNER JOIN wkf_transition t ON (t.act_to = a.id)
+                        WHERE wkf.osv = %s
+                          AND t.signal = %s
+                          AND t.group_id is NOT NULL
+                    """, (self._name, button.get('name')))
+             group_ids = [x[0] for x in cr.fetchall() if x[0]]
+             can_click = not group_ids or bool(set(user_groups).intersection(group_ids))
+             button.set('readonly', str(int(not can_click)))
+         return node
+     def __view_look_dom_arch(self, cr, user, node, view_id, context=None):
+         fields_def = self.__view_look_dom(cr, user, node, view_id, context=context)
+         node = self._disable_workflow_buttons(cr, user, node)
+         arch = etree.tostring(node, encoding="utf-8").replace('\t', '')
+         fields = {}
+         if node.tag == 'diagram':
+             if node.getchildren()[0].tag == 'node':
+                 node_fields = self.pool.get(node.getchildren()[0].get('object')).fields_get(cr, user, fields_def.keys(), context)
+             if node.getchildren()[1].tag == 'arrow':
+                 arrow_fields = self.pool.get(node.getchildren()[1].get('object')).fields_get(cr, user, fields_def.keys(), context)
+             for key, value in node_fields.items():
+                 fields[key] = value
+             for key, value in arrow_fields.items():
+                 fields[key] = value
+         else:
+             fields = self.fields_get(cr, user, fields_def.keys(), context)
+         for field in fields_def:
+             if field == 'id':
+                 # sometime, the view may contain the (invisible) field 'id' needed for a domain (when 2 objects have cross references)
+                 fields['id'] = {'readonly': True, 'type': 'integer', 'string': 'ID'}
+             elif field in fields:
+                 fields[field].update(fields_def[field])
+             else:
+                 cr.execute('select name, model from ir_ui_view where (id=%s or inherit_id=%s) and arch like %s', (view_id, view_id, '%%%s%%' % field))
+                 res = cr.fetchall()[:]
+                 model = res[0][1]
+                 res.insert(0, ("Can't find field '%s' in the following view parts composing the view of object model '%s':" % (field, model), None))
+                 msg = "\n * ".join([r[0] for r in res])
+                 msg += "\n\nEither you wrongly customized this view, or some modules bringing those views are not compatible with your current data model"
+                 netsvc.Logger().notifyChannel('orm', netsvc.LOG_ERROR, msg)
+                 raise except_orm('View error', msg)
+         return arch, fields
+     def __get_default_calendar_view(self):
+         """Generate a default calendar view (For internal use only).
+         """
+         arch = ('<?xml version="1.0" encoding="utf-8"?>\n'
+                 '<calendar string="%s"') % (self._description)
+         if (self._date_name not in self._columns):
+             date_found = False
+             for dt in ['date', 'date_start', 'x_date', 'x_date_start']:
+                 if dt in self._columns:
+                     self._date_name = dt
+                     date_found = True
+                     break
+             if not date_found:
+                 raise except_orm(_('Invalid Object Architecture!'), _("Insufficient fields for Calendar View!"))
+         if self._date_name:
+             arch += ' date_start="%s"' % (self._date_name)
+         for color in ["user_id", "partner_id", "x_user_id", "x_partner_id"]:
+             if color in self._columns:
+                 arch += ' color="' + color + '"'
+                 break
+         dt_stop_flag = False
+         for dt_stop in ["date_stop", "date_end", "x_date_stop", "x_date_end"]:
+             if dt_stop in self._columns:
+                 arch += ' date_stop="' + dt_stop + '"'
+                 dt_stop_flag = True
+                 break
+         if not dt_stop_flag:
+             for dt_delay in ["date_delay", "planned_hours", "x_date_delay", "x_planned_hours"]:
+                 if dt_delay in self._columns:
+                     arch += ' date_delay="' + dt_delay + '"'
+                     break
+         arch += ('>\n'
+                  '  <field name="%s"/>\n'
+                  '</calendar>') % (self._rec_name)
+         return arch
+     def __get_default_search_view(self, cr, uid, context=None):
+         form_view = self.fields_view_get(cr, uid, False, 'form', context=context)
+         tree_view = self.fields_view_get(cr, uid, False, 'tree', context=context)
+         fields_to_search = set()
+         fields = self.fields_get(cr, uid, context=context)
+         for field in fields:
+             if fields[field].get('select'):
+                 fields_to_search.add(field)
+         for view in (form_view, tree_view):
+             view_root = etree.fromstring(view['arch'])
+             # Only care about select=1 in xpath below, because select=2 is covered
+             # by the custom advanced search in clients
+             fields_to_search = fields_to_search.union(view_root.xpath("//field[@select=1]/@name"))
+         tree_view_root = view_root # as provided by loop above
+         search_view = etree.Element("search", attrib={'string': tree_view_root.get("string", "")})
+         field_group = etree.Element("group")
+         search_view.append(field_group)
+         for field_name in fields_to_search:
+             field_group.append(etree.Element("field", attrib={'name': field_name}))
+         return etree.tostring(search_view, encoding="utf-8").replace('\t', '')
+     #
+     # if view_id, view_type is not required
+     #
+     def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
+         """
+         Get the detailed composition of the requested view like fields, model, view architecture
+         :param cr: database cursor
+         :param user: current user id
+         :param view_id: id of the view or None
+         :param view_type: type of the view to return if view_id is None ('form', tree', ...)
+         :param context: context arguments, like lang, time zone
+         :param toolbar: true to include contextual actions
+         :param submenu: example (portal_project module)
+         :return: dictionary describing the composition of the requested view (including inherited views and extensions)
+         :raise AttributeError:
+                             * if the inherited view has unknown position to work with other than 'before', 'after', 'inside', 'replace'
+                             * if some tag other than 'position' is found in parent view
+         :raise Invalid ArchitectureError: if there is view type other than form, tree, calendar, search etc defined on the structure
+         """
+         if not context:
+             context = {}
+         def encode(s):
+             if isinstance(s, unicode):
+                 return s.encode('utf8')
+             return s
+         def raise_view_error(error_msg, child_view_id):
+             view, child_view = self.pool.get('ir.ui.view').browse(cr, user, [view_id, child_view_id], context)
+             raise AttributeError(("View definition error for inherited view '%(xml_id)s' on '%(model)s' model: " + error_msg)
+                                  %  { 'xml_id': child_view.xml_id,
+                                       'parent_xml_id': view.xml_id,
+                                       'model': self._name, })
+         def _inherit_apply(src, inherit, inherit_id=None):
+             def _find(node, node2):
+                 if node2.tag == 'xpath':
+                     res = node.xpath(node2.get('expr'))
+                     if res:
+                         return res[0]
+                     else:
+                         return None
+                 else:
+                     for n in node.getiterator(node2.tag):
+                         res = True
+                         if node2.tag == 'field':
+                             # only compare field names, a field can be only once in a given view
+                             # at a given level (and for multilevel expressions, we should use xpath
+                             # inheritance spec anyway)
+                             if node2.get('name') == n.get('name'):
+                                 return n
+                             else:
+                                 continue
+                         for attr in node2.attrib:
+                             if attr == 'position':
+                                 continue
+                             if n.get(attr):
+                                 if n.get(attr) == node2.get(attr):
+                                     continue
+                             res = False
+                         if res:
+                             return n
+                 return None
+             # End: _find(node, node2)
+             doc_dest = etree.fromstring(encode(inherit))
+             toparse = [doc_dest]
+             while len(toparse):
+                 node2 = toparse.pop(0)
+                 if isinstance(node2, SKIPPED_ELEMENT_TYPES):
+                     continue
+                 if node2.tag == 'data':
+                     toparse += [ c for c in doc_dest ]
+                     continue
+                 node = _find(src, node2)
+                 if node is not None:
+                     pos = 'inside'
+                     if node2.get('position'):
+                         pos = node2.get('position')
+                     if pos == 'replace':
+                         parent = node.getparent()
+                         if parent is None:
+                             src = copy.deepcopy(node2[0])
+                         else:
+                             for child in node2:
+                                 node.addprevious(child)
+                             node.getparent().remove(node)
+                     elif pos == 'attributes':
+                         for child in node2.getiterator('attribute'):
+                             attribute = (child.get('name'), child.text and child.text.encode('utf8') or None)
+                             if attribute[1]:
+                                 node.set(attribute[0], attribute[1])
+                             else:
+                                 del(node.attrib[attribute[0]])
+                     else:
+                         sib = node.getnext()
+                         for child in node2:
+                             if pos == 'inside':
+                                 node.append(child)
+                             elif pos == 'after':
+                                 if sib is None:
+                                     node.addnext(child)
+                                     node = child
+                                 else:
+                                     sib.addprevious(child)
+                             elif pos == 'before':
+                                 node.addprevious(child)
+                             else:
+                                 raise_view_error("Invalid position value: '%s'" % pos, inherit_id)
+                 else:
+                     attrs = ''.join([
+                         ' %s="%s"' % (attr, node2.get(attr))
+                         for attr in node2.attrib
+                         if attr != 'position'
+                     ])
+                     tag = "<%s%s>" % (node2.tag, attrs)
+                     raise_view_error("Element '%s' not found in parent view '%%(parent_xml_id)s'" % tag, inherit_id)
+             return src
+         # End: _inherit_apply(src, inherit)
+         result = {'type': view_type, 'model': self._name}
+         ok = True
+         model = True
+         sql_res = False
+         parent_view_model = None
+         while ok:
+             view_ref = context.get(view_type + '_view_ref', False)
+             if view_ref and not view_id:
+                 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]
+             if view_id:
+                 query = "SELECT arch,name,field_parent,id,type,inherit_id,model FROM ir_ui_view WHERE id=%s"
+                 params = (view_id,)
+                 if model:
+                     query += " AND model=%s"
+                     params += (self._name,)
+                 cr.execute(query, params)
+             else:
+                 cr.execute('''SELECT
+                         arch,name,field_parent,id,type,inherit_id,model
+                     FROM
+                         ir_ui_view
+                     WHERE
+                         model=%s AND
+                         type=%s AND
+                         inherit_id IS NULL
+                     ORDER BY priority''', (self._name, view_type))
+             sql_res = cr.fetchone()
+             if not sql_res:
+                 break
+             ok = sql_res[5]
+             view_id = ok or sql_res[3]
+             model = False
+             parent_view_model = sql_res[6]
+         # if a view was found
+         if sql_res:
+             result['type'] = sql_res[4]
+             result['view_id'] = sql_res[3]
+             result['arch'] = sql_res[0]
+             def _inherit_apply_rec(result, inherit_id):
+                 # get all views which inherit from (ie modify) this view
+                 cr.execute('select arch,id from ir_ui_view where inherit_id=%s and model=%s order by priority', (inherit_id, self._name))
+                 sql_inherit = cr.fetchall()
+                 for (inherit, id) in sql_inherit:
+                     result = _inherit_apply(result, inherit, id)
+                     result = _inherit_apply_rec(result, id)
+                 return result
+             inherit_result = etree.fromstring(encode(result['arch']))
+             result['arch'] = _inherit_apply_rec(inherit_result, sql_res[3])
+             result['name'] = sql_res[1]
+             result['field_parent'] = sql_res[2] or False
+         else:
+             # otherwise, build some kind of default view
+             if view_type == 'form':
+                 res = self.fields_get(cr, user, context=context)
+                 xml = '<?xml version="1.0" encoding="utf-8"?> ' \
+                      '<form string="%s">' % (self._description,)
+                 for x in res:
+                     if res[x]['type'] not in ('one2many', 'many2many'):
+                         xml += '<field name="%s"/>' % (x,)
+                         if res[x]['type'] == 'text':
+                             xml += "<newline/>"
+                 xml += "</form>"
+             elif view_type == 'tree':
+                 _rec_name = self._rec_name
+                 if _rec_name not in self._columns:
+                     _rec_name = self._columns.keys()[0]
+                 xml = '<?xml version="1.0" encoding="utf-8"?>' \
+                        '<tree string="%s"><field name="%s"/></tree>' \
+                        % (self._description, self._rec_name)
+             elif view_type == 'calendar':
+                 xml = self.__get_default_calendar_view()
+             elif view_type == 'search':
+                 xml = self.__get_default_search_view(cr, user, context)
+             else:
+                 xml = '<?xml version="1.0"?>' # what happens here, graph case?
+                 raise except_orm(_('Invalid Architecture!'), _("There is no view of type '%s' defined for the structure!") % view_type)
+             result['arch'] = etree.fromstring(encode(xml))
+             result['name'] = 'default'
+             result['field_parent'] = False
+             result['view_id'] = 0
+         if parent_view_model != self._name:
+             ctx = context.copy()
+             ctx['base_model_name'] = parent_view_model
+         else:
+             ctx = context
+         xarch, xfields = self.__view_look_dom_arch(cr, user, result['arch'], view_id, context=ctx)
+         result['arch'] = xarch
+         result['fields'] = xfields
+         if submenu:
+             if context and context.get('active_id', False):
+                 data_menu = self.pool.get('ir.ui.menu').browse(cr, user, context['active_id'], context).action
+                 if data_menu:
+                     act_id = data_menu.id
+                     if act_id:
+                         data_action = self.pool.get('ir.actions.act_window').browse(cr, user, [act_id], context)[0]
+                         result['submenu'] = getattr(data_action, 'menus', False)
+         if toolbar:
+             def clean(x):
+                 x = x[2]
+                 for key in ('report_sxw_content', 'report_rml_content',
+                         'report_sxw', 'report_rml',
+                         'report_sxw_content_data', 'report_rml_content_data'):
+                     if key in x:
+                         del x[key]
+                 return x
+             ir_values_obj = self.pool.get('ir.values')
+             resprint = ir_values_obj.get(cr, user, 'action',
+                     'client_print_multi', [(self._name, False)], False,
+                     context)
+             resaction = ir_values_obj.get(cr, user, 'action',
+                     'client_action_multi', [(self._name, False)], False,
+                     context)
+             resrelate = ir_values_obj.get(cr, user, 'action',
+                     'client_action_relate', [(self._name, False)], False,
+                     context)
+             resprint = map(clean, resprint)
+             resaction = map(clean, resaction)
+             resaction = filter(lambda x: not x.get('multi', False), resaction)
+             resprint = filter(lambda x: not x.get('multi', False), resprint)
+             resrelate = map(lambda x: x[2], resrelate)
+             for x in resprint + resaction + resrelate:
+                 x['string'] = x['name']
+             result['toolbar'] = {
+                 'print': resprint,
+                 'action': resaction,
+                 'relate': resrelate
+             }
+         return result
+     _view_look_dom_arch = __view_look_dom_arch
+     def search_count(self, cr, user, args, context=None):
+         if not context:
+             context = {}
+         res = self.search(cr, user, args, context=context, count=True)
+         if isinstance(res, list):
+             return len(res)
+         return res
+     def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
+         """
+         Search for records based on a search domain.
+         :param cr: database cursor
+         :param user: current user id
+         :param args: list of tuples specifying the search domain [('field_name', 'operator', value), ...]. Pass an empty list to match all records.
+         :param offset: optional number of results to skip in the returned values (default: 0)
+         :param limit: optional max number of records to return (default: **None**)
+         :param order: optional columns to sort by (default: self._order=id )
+         :param context: optional context arguments, like lang, time zone
+         :type context: dictionary
+         :param count: optional (default: **False**), if **True**, returns only the number of records matching the criteria, not their ids
+         :return: id or list of ids of records matching the criteria
+         :rtype: integer or list of integers
+         :raise AccessError: * if user tries to bypass access rules for read on the requested object.
+         **Expressing a search domain (args)**
+         Each tuple in the search domain needs to have 3 elements, in the form: **('field_name', 'operator', value)**, where:
+             * **field_name** must be a valid name of field of the object model, possibly following many-to-one relationships using dot-notation, e.g 'street' or 'partner_id.country' are valid values.
+             * **operator** must be a string with a valid comparison operator from this list: ``=, !=, >, >=, <, <=, like, ilike, in, not in, child_of, parent_left, parent_right``
+               The semantics of most of these operators are obvious.
+               The ``child_of`` operator will look for records who are children or grand-children of a given record,
+               according to the semantics of this model (i.e following the relationship field named by
+               ``self._parent_name``, by default ``parent_id``.
+             * **value** must be a valid value to compare with the values of **field_name**, depending on its type.
+         Domain criteria can be combined using 3 logical operators than can be added between tuples:  '**&**' (logical AND, default), '**|**' (logical OR), '**!**' (logical NOT).
+         These are **prefix** operators and the arity of the '**&**' and '**|**' operator is 2, while the arity of the '**!**' is just 1.
+         Be very careful about this when you combine them the first time.
+         Here is an example of searching for Partners named *ABC* from Belgium and Germany whose language is not english ::
+             [('name','=','ABC'),'!',('language.code','=','en_US'),'|',('country_id.code','=','be'),('country_id.code','=','de'))
+         The '&' is omitted as it is the default, and of course we could have used '!=' for the language, but what this domain really represents is::
+             (name is 'ABC' AND (language is NOT english) AND (country is Belgium OR Germany))
+         """
+         return self._search(cr, user, args, offset=offset, limit=limit, order=order, context=context, count=count)
+     def _search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False, access_rights_uid=None):
+         """
+         Private implementation of search() method, allowing specifying the uid to use for the access right check.
+         This is useful for example when filling in the selection list for a drop-down and avoiding access rights errors,
+         by specifying ``access_rights_uid=1`` to bypass access rights check, but not ir.rules!
+         :param access_rights_uid: optional user ID to use when checking access rights
+                                   (not for ir.rules, this is only for ir.model.access)
+         """
+         raise NotImplementedError(_('The search method is not implemented on this object !'))
+     def name_get(self, cr, user, ids, context=None):
+         """
+         :param cr: database cursor
+         :param user: current user id
+         :type user: integer
+         :param ids: list of ids
+         :param context: context arguments, like lang, time zone
+         :type context: dictionary
+         :return: tuples with the text representation of requested objects for to-many relationships
+         """
+         if not context:
+             context = {}
+         if not ids:
+             return []
+         if isinstance(ids, (int, long)):
+             ids = [ids]
+         return [(r['id'], tools.ustr(r[self._rec_name])) for r in self.read(cr, user, ids,
+             [self._rec_name], context, load='_classic_write')]
+     def name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100):
+         """
+         Search for records and their display names according to a search domain.
+         :param cr: database cursor
+         :param user: current user id
+         :param name: object name to search
+         :param args: list of tuples specifying search criteria [('field_name', 'operator', 'value'), ...]
+         :param operator: operator for search criterion
+         :param context: context arguments, like lang, time zone
+         :type context: dictionary
+         :param limit: optional max number of records to return
+         :return: list of object names matching the search criteria, used to provide completion for to-many relationships
+         This method is equivalent of :py:meth:`~osv.osv.osv.search` on **name** + :py:meth:`~osv.osv.osv.name_get` on the result.
+         See :py:meth:`~osv.osv.osv.search` for an explanation of the possible values for the search domain specified in **args**.
+         """
+         return self._name_search(cr, user, name, args, operator, context, limit)
+     # private implementation of name_search, allows passing a dedicated user for the name_get part to
+     # solve some access rights issues
+     def _name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100, name_get_uid=None):
+         if args is None:
+             args = []
+         if context is None:
+             context = {}
+         args = args[:]
+         if name:
+             args += [(self._rec_name, operator, name)]
+         access_rights_uid = name_get_uid or user
+         ids = self._search(cr, user, args, limit=limit, context=context, access_rights_uid=access_rights_uid)
+         res = self.name_get(cr, access_rights_uid, ids, context)
+         return res
+     def copy(self, cr, uid, id, default=None, context=None):
+         raise NotImplementedError(_('The copy method is not implemented on this object !'))
+     def exists(self, cr, uid, id, context=None):
+         raise NotImplementedError(_('The exists method is not implemented on this object !'))
+     def read_string(self, cr, uid, id, langs, fields=None, context=None):
+         res = {}
+         res2 = {}
+         self.pool.get('ir.model.access').check(cr, uid, 'ir.translation', 'read', context=context)
+         if not fields:
+             fields = self._columns.keys() + self._inherit_fields.keys()
+         #FIXME: collect all calls to _get_source into one SQL call.
+         for lang in langs:
+             res[lang] = {'code': lang}
+             for f in fields:
+                 if f in self._columns:
+                     res_trans = self.pool.get('ir.translation')._get_source(cr, uid, self._name+','+f, 'field', lang)
+                     if res_trans:
+                         res[lang][f] = res_trans
+                     else:
+                         res[lang][f] = self._columns[f].string
+         for table in self._inherits:
+             cols = intersect(self._inherit_fields.keys(), fields)
+             res2 = self.pool.get(table).read_string(cr, uid, id, langs, cols, context)
+         for lang in res2:
+             if lang in res:
+                 res[lang]['code'] = lang
+             for f in res2[lang]:
+                 res[lang][f] = res2[lang][f]
+         return res
+     def write_string(self, cr, uid, id, langs, vals, context=None):
+         self.pool.get('ir.model.access').check(cr, uid, 'ir.translation', 'write', context=context)
+         #FIXME: try to only call the translation in one SQL
+         for lang in langs:
+             for field in vals:
+                 if field in self._columns:
+                     src = self._columns[field].string
+                     self.pool.get('ir.translation')._set_ids(cr, uid, self._name+','+field, 'field', lang, [0], vals[field], src)
+         for table in self._inherits:
+             cols = intersect(self._inherit_fields.keys(), vals)
+             if cols:
+                 self.pool.get(table).write_string(cr, uid, id, langs, vals, context)
+         return True
+     def _check_removed_columns(self, cr, log=False):
+         raise NotImplementedError()
+     def _add_missing_default_values(self, cr, uid, values, context=None):
+         missing_defaults = []
+         avoid_tables = [] # avoid overriding inherited values when parent is set
+         for tables, parent_field in self._inherits.items():
+             if parent_field in values:
+                 avoid_tables.append(tables)
+         for field in self._columns.keys():
+             if not field in values:
+                 missing_defaults.append(field)
+         for field in self._inherit_fields.keys():
+             if (field not in values) and (self._inherit_fields[field][0] not in avoid_tables):
+                 missing_defaults.append(field)
+         if len(missing_defaults):
+             # override defaults with the provided values, never allow the other way around
+             defaults = self.default_get(cr, uid, missing_defaults, context)
+             for dv in defaults:
+                 if ((dv in self._columns and self._columns[dv]._type == 'many2many') \
+                      or (dv in self._inherit_fields and self._inherit_fields[dv][2]._type == 'many2many')) \
+                         and defaults[dv] and isinstance(defaults[dv][0], (int, long)):
+                     defaults[dv] = [(6, 0, defaults[dv])]
+                 if (dv in self._columns and self._columns[dv]._type == 'one2many' \
+                     or (dv in self._inherit_fields and self._inherit_fields[dv][2]._type == 'one2many')) \
+                         and isinstance(defaults[dv], (list, tuple)) and isinstance(defaults[dv][0], dict):
+                     defaults[dv] = [(0, 0, x) for x in defaults[dv]]
+             defaults.update(values)
+             values = defaults
+         return values
+ class orm_memory(orm_template):
+     _protected = ['read', 'write', 'create', 'default_get', 'perm_read', 'unlink', 'fields_get', 'fields_view_get', 'search', 'name_get', 'distinct_field_get', 'name_search', 'copy', 'import_data', 'search_count', 'exists']
+     _inherit_fields = {}
+     _max_count = 200
+     _max_hours = 1
+     _check_time = 20
+     def __init__(self, cr):
+         super(orm_memory, self).__init__(cr)
+         self.datas = {}
+         self.next_id = 0
+         self.check_id = 0
+         cr.execute('delete from wkf_instance where res_type=%s', (self._name,))
+     def _check_access(self, uid, object_id, mode):
+         if uid != 1 and self.datas[object_id]['internal.create_uid'] != uid:
+             raise except_orm(_('AccessError'), '%s access is only allowed on your own records for osv_memory objects except for the super-user' % mode.capitalize())
+     def vaccum(self, cr, uid):
+         self.check_id += 1
+         if self.check_id % self._check_time:
+             return True
+         tounlink = []
+         max = time.time() - self._max_hours * 60 * 60
+         for id in self.datas:
+             if self.datas[id]['internal.date_access'] < max:
+                 tounlink.append(id)
+         self.unlink(cr, 1, tounlink)
+         if len(self.datas) > self._max_count:
+             sorted = map(lambda x: (x[1]['internal.date_access'], x[0]), self.datas.items())
+             sorted.sort()
+             ids = map(lambda x: x[1], sorted[:len(self.datas)-self._max_count])
+             self.unlink(cr, uid, ids)
+         return True
+     def read(self, cr, user, ids, fields_to_read=None, context=None, load='_classic_read'):
+         if not context:
+             context = {}
+         if not fields_to_read:
+             fields_to_read = self._columns.keys()
+         result = []
+         if self.datas:
+             ids_orig = ids
+             if isinstance(ids, (int, long)):
+                 ids = [ids]
+             for id in ids:
+                 r = {'id': id}
+                 for f in fields_to_read:
+                     record = self.datas.get(id)
+                     if record:
+                         self._check_access(user, id, 'read')
+                         r[f] = record.get(f, False)
+                         if r[f] and isinstance(self._columns[f], fields.binary) and context.get('bin_size', False):
+                             r[f] = len(r[f])
+                 result.append(r)
+                 if id in self.datas:
+                     self.datas[id]['internal.date_access'] = time.time()
+             fields_post = filter(lambda x: x in self._columns and not getattr(self._columns[x], load), fields_to_read)
+             for f in fields_post:
+                 res2 = self._columns[f].get_memory(cr, self, ids, f, user, context=context, values=result)
+                 for record in result:
+                     record[f] = res2[record['id']]
+             if isinstance(ids_orig, (int, long)):
+                 return result[0]
+         return result
+     def write(self, cr, user, ids, vals, context=None):
+         if not ids:
+             return True
+         vals2 = {}
+         upd_todo = []
+         for field in vals:
+             if self._columns[field]._classic_write:
+                 vals2[field] = vals[field]
+             else:
+                 upd_todo.append(field)
+         for object_id in ids:
+             self._check_access(user, object_id, mode='write')
+             self.datas[object_id].update(vals2)
+             self.datas[object_id]['internal.date_access'] = time.time()
+             for field in upd_todo:
+                 self._columns[field].set_memory(cr, self, object_id, field, vals[field], user, context)
+         self._validate(cr, user, [object_id], context)
+         wf_service = netsvc.LocalService("workflow")
+         wf_service.trg_write(user, self._name, object_id, cr)
+         return object_id
+     def create(self, cr, user, vals, context=None):
+         self.vaccum(cr, user)
+         self.next_id += 1
+         id_new = self.next_id
+         vals = self._add_missing_default_values(cr, user, vals, context)
+         vals2 = {}
+         upd_todo = []
+         for field in vals:
+             if self._columns[field]._classic_write:
+                 vals2[field] = vals[field]
+             else:
+                 upd_todo.append(field)
+         self.datas[id_new] = vals2
+         self.datas[id_new]['internal.date_access'] = time.time()
+         self.datas[id_new]['internal.create_uid'] = user
+         for field in upd_todo:
+             self._columns[field].set_memory(cr, self, id_new, field, vals[field], user, context)
+         self._validate(cr, user, [id_new], context)
+         if self._log_create and not (context and context.get('no_store_function', False)):
+             message = self._description + \
+                 " '" + \
+                 self.name_get(cr, user, [id_new], context=context)[0][1] + \
+                 "' "+ _("created.")
+             self.log(cr, user, id_new, message, True, context=context)
+         wf_service = netsvc.LocalService("workflow")
+         wf_service.trg_create(user, self._name, id_new, cr)
+         return id_new
+     def _where_calc(self, cr, user, args, active_test=True, context=None):
+         if not context:
+             context = {}
+         args = args[:]
+         res = []
+         # if the object has a field named 'active', filter out all inactive
+         # records unless they were explicitely asked for
+         if 'active' in self._columns and (active_test and context.get('active_test', True)):
+             if args:
+                 active_in_args = False
+                 for a in args:
+                     if a[0] == 'active':
+                         active_in_args = True
+                 if not active_in_args:
+                     args.insert(0, ('active', '=', 1))
+             else:
+                 args = [('active', '=', 1)]
+         if args:
+             import expression
+             e = expression.expression(args)
+             e.parse(cr, user, self, context)
+             res = e.exp
+         return res or []
+     def _search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False, access_rights_uid=None):
+         if not context:
+             context = {}
+         # implicit filter on current user except for superuser
+         if user != 1:
+             if not args:
+                 args = []
+             args.insert(0, ('internal.create_uid', '=', user))
+         result = self._where_calc(cr, user, args, context=context)
+         if result == []:
+             return self.datas.keys()
+         res = []
+         counter = 0
+         #Find the value of dict
+         f = False
+         if result:
+             for id, data in self.datas.items():
+                 counter = counter + 1
+                 data['id'] = id
+                 if limit and (counter > int(limit)):
+                     break
+                 f = True
+                 for arg in result:
+                     if arg[1] == '=':
+                         val = eval('data[arg[0]]'+'==' +' arg[2]', locals())
+                     elif arg[1] in ['<', '>', 'in', 'not in', '<=', '>=', '<>']:
+                         val = eval('data[arg[0]]'+arg[1] +' arg[2]', locals())
+                     elif arg[1] in ['ilike']:
+                         val = (str(data[arg[0]]).find(str(arg[2]))!=-1)
+                     f = f and val
+                 if f:
+                     res.append(id)
+         if count:
+             return len(res)
+         return res or []
+     def unlink(self, cr, uid, ids, context=None):
+         for id in ids:
+             self._check_access(uid, id, 'unlink')
+             self.datas.pop(id, None)
+         if len(ids):
+             cr.execute('delete from wkf_instance where res_type=%s and res_id IN %s', (self._name, tuple(ids)))
+         return True
+     def perm_read(self, cr, user, ids, context=None, details=True):
+         result = []
+         credentials = self.pool.get('res.users').name_get(cr, user, [user])[0]
+         create_date = time.strftime('%Y-%m-%d %H:%M:%S')
+         for id in ids:
+             self._check_access(user, id, 'read')
+             result.append({
+                 'create_uid': credentials,
+                 'create_date': create_date,
+                 'write_uid': False,
+                 'write_date': False,
+                 'id': id,
+                 'xmlid' : False,
+             })
+         return result
+     def _check_removed_columns(self, cr, log=False):
+         # nothing to check in memory...
+         pass
+     def exists(self, cr, uid, id, context=None):
+         return id in self.datas
+ class orm(orm_template):
+     _sql_constraints = []
+     _table = None
+     _protected = ['read', 'write', 'create', 'default_get', 'perm_read', 'unlink', 'fields_get', 'fields_view_get', 'search', 'name_get', 'distinct_field_get', 'name_search', 'copy', 'import_data', 'search_count', 'exists']
+     __logger = logging.getLogger('orm')
+     __schema = logging.getLogger('orm.schema')
+     def read_group(self, cr, uid, domain, fields, groupby, offset=0, limit=None, context=None, orderby=False):
+         """
+         Get the list of records in list view grouped by the given ``groupby`` fields
+         :param cr: database cursor
+         :param uid: current user id
+         :param domain: list specifying search criteria [['field_name', 'operator', 'value'], ...]
+         :param fields: list of fields present in the list view specified on the object
+         :param groupby: list of fields on which to groupby the records
+         :type fields_list: list (example ['field_name_1', ...])
+         :param offset: optional number of records to skip
+         :param limit: optional max number of records to return
+         :param context: context arguments, like lang, time zone
+         :param order: optional ``order by`` specification, for overriding the natural
+                       sort ordering of the groups, see also :py:meth:`~osv.osv.osv.search`
+                       (supported only for many2one fields currently)
+         :return: list of dictionaries(one dictionary for each record) containing:
+                     * the values of fields grouped by the fields in ``groupby`` argument
+                     * __domain: list of tuples specifying the search criteria
+                     * __context: dictionary with argument like ``groupby``
+         :rtype: [{'field_name_1': value, ...]
+         :raise AccessError: * if user has no read rights on the requested object
+                             * if user tries to bypass access rules for read on the requested object
+         """
+         context = context or {}
+         self.pool.get('ir.model.access').check(cr, uid, self._name, 'read', context=context)
+         if not fields:
+             fields = self._columns.keys()
+         query = self._where_calc(cr, uid, domain, context=context)
+         self._apply_ir_rules(cr, uid, query, 'read', context=context)
+         # Take care of adding join(s) if groupby is an '_inherits'ed field
+         groupby_list = groupby
+         qualified_groupby_field = groupby
+         if groupby:
+             if isinstance(groupby, list):
+                 groupby = groupby[0]
+             qualified_groupby_field = self._inherits_join_calc(groupby, query)
+         if groupby:
+             assert not groupby or groupby in fields, "Fields in 'groupby' must appear in the list of fields to read (perhaps it's missing in the list view?)"
+             groupby_def = self._columns.get(groupby) or (self._inherit_fields.get(groupby) and self._inherit_fields.get(groupby)[2])
+             assert groupby_def and groupby_def._classic_write, "Fields in 'groupby' must be regular database-persisted fields (no function or related fields), or function fields with store=True"
+         fget = self.fields_get(cr, uid, fields)
+         float_int_fields = filter(lambda x: fget[x]['type'] in ('float', 'integer'), fields)
+         flist = ''
+         group_count = group_by = groupby
+         if groupby:
+             if fget.get(groupby):
+                 if fget[groupby]['type'] in ('date', 'datetime'):
+                     flist = "to_char(%s,'yyyy-mm') as %s " % (qualified_groupby_field, groupby)
+                     groupby = "to_char(%s,'yyyy-mm')" % (qualified_groupby_field)
+                 else:
+                     flist = qualified_groupby_field
+             else:
+                 # Don't allow arbitrary values, as this would be a SQL injection vector!
+                 raise except_orm(_('Invalid group_by'),
+                                  _('Invalid group_by specification: "%s".\nA group_by specification must be a list of valid fields.')%(groupby,))
+         fields_pre = [f for f in float_int_fields if
+                    f == self.CONCURRENCY_CHECK_FIELD
+                 or (f in self._columns and getattr(self._columns[f], '_classic_write'))]
+         for f in fields_pre:
+             if f not in ['id', 'sequence']:
+                 group_operator = fget[f].get('group_operator', 'sum')
+                 if flist:
+                     flist += ', '
+                 qualified_field = '"%s"."%s"' % (self._table, f)
+                 flist += "%s(%s) AS %s" % (group_operator, qualified_field, f)
+         gb = groupby and (' GROUP BY ' + qualified_groupby_field) or ''
+         from_clause, where_clause, where_clause_params = query.get_sql()
+         where_clause = where_clause and ' WHERE ' + where_clause
+         limit_str = limit and ' limit %d' % limit or ''
+         offset_str = offset and ' offset %d' % offset or ''
+         if len(groupby_list) < 2 and context.get('group_by_no_leaf'):
+             group_count = '_'
+         cr.execute('SELECT min(%s.id) AS id, count(%s.id) AS %s_count' % (self._table, self._table, group_count) + (flist and ',') + flist + ' FROM ' + from_clause + where_clause + gb + limit_str + offset_str, where_clause_params)
+         alldata = {}
+         groupby = group_by
+         for r in cr.dictfetchall():
+             for fld, val in r.items():
+                 if val == None: r[fld] = False
+             alldata[r['id']] = r
+             del r['id']
+         data_ids = self.search(cr, uid, [('id', 'in', alldata.keys())], order=orderby or groupby, context=context)
+         # the IDS of records that have groupby field value = False or '' should be sorted too
+         data_ids += filter(lambda x:x not in data_ids, alldata.keys())
+         data = self.read(cr, uid, data_ids, groupby and [groupby] or ['id'], context=context)
+         # restore order of the search as read() uses the default _order (this is only for groups, so the size of data_read shoud be small):
+         data.sort(lambda x,y: cmp(data_ids.index(x['id']), data_ids.index(y['id'])))
+         for d in data:
+             if groupby:
+                 d['__domain'] = [(groupby, '=', alldata[d['id']][groupby] or False)] + domain
+                 if not isinstance(groupby_list, (str, unicode)):
+                     if groupby or not context.get('group_by_no_leaf', False):
+                         d['__context'] = {'group_by': groupby_list[1:]}
+             if groupby and groupby in fget:
+                 if d[groupby] and fget[groupby]['type'] in ('date', 'datetime'):
+                     dt = datetime.datetime.strptime(alldata[d['id']][groupby][:7], '%Y-%m')
+                     days = calendar.monthrange(dt.year, dt.month)[1]
+                     d[groupby] = datetime.datetime.strptime(d[groupby][:10], '%Y-%m-%d').strftime('%B %Y')
+                     d['__domain'] = [(groupby, '>=', alldata[d['id']][groupby] and datetime.datetime.strptime(alldata[d['id']][groupby][:7] + '-01', '%Y-%m-%d').strftime('%Y-%m-%d') or False),\
+                                      (groupby, '<=', alldata[d['id']][groupby] and datetime.datetime.strptime(alldata[d['id']][groupby][:7] + '-' + str(days), '%Y-%m-%d').strftime('%Y-%m-%d') or False)] + domain
+                 del alldata[d['id']][groupby]
+             d.update(alldata[d['id']])
+             del d['id']
+         return data
+     def _inherits_join_add(self, parent_model_name, query):
+         """
+         Add missing table SELECT and JOIN clause to ``query`` for reaching the parent table (no duplicates)
+         :param parent_model_name: name of the parent model for which the clauses should be added
+         :param query: query object on which the JOIN should be added
+         """
+         inherits_field = self._inherits[parent_model_name]
+         parent_model = self.pool.get(parent_model_name)
+         parent_table_name = parent_model._table
+         quoted_parent_table_name = '"%s"' % parent_table_name
+         if quoted_parent_table_name not in query.tables:
+             query.tables.append(quoted_parent_table_name)
+             query.where_clause.append('("%s".%s = %s.id)' % (self._table, inherits_field, parent_table_name))
+     def _inherits_join_calc(self, field, query):
+         """
+         Adds missing table select and join clause(s) to ``query`` for reaching
+         the field coming from an '_inherits' parent table (no duplicates).
+         :param field: name of inherited field to reach
+         :param query: query object on which the JOIN should be added
+         :return: qualified name of field, to be used in SELECT clause
+         """
+         current_table = self
+         while field in current_table._inherit_fields and not field in current_table._columns:
+             parent_model_name = current_table._inherit_fields[field][0]
+             parent_table = self.pool.get(parent_model_name)
+             self._inherits_join_add(parent_model_name, query)
+             current_table = parent_table
+         return '"%s".%s' % (current_table._table, field)
+     def _parent_store_compute(self, cr):
+         if not self._parent_store:
+             return
+         logger = netsvc.Logger()
+         logger.notifyChannel('data', netsvc.LOG_INFO, 'Computing parent left and right for table %s...' % (self._table, ))
+         def browse_rec(root, pos=0):
+ # TODO: set order
+             where = self._parent_name+'='+str(root)
+             if not root:
+                 where = self._parent_name+' IS NULL'
+             if self._parent_order:
+                 where += ' order by '+self._parent_order
+             cr.execute('SELECT id FROM '+self._table+' WHERE '+where)
+             pos2 = pos + 1
+             for id in cr.fetchall():
+                 pos2 = browse_rec(id[0], pos2)
+             cr.execute('update '+self._table+' set parent_left=%s, parent_right=%s where id=%s', (pos, pos2, root))
+             return pos2 + 1
+         query = 'SELECT id FROM '+self._table+' WHERE '+self._parent_name+' IS NULL'
+         if self._parent_order:
+             query += ' order by ' + self._parent_order
+         pos = 0
+         cr.execute(query)
+         for (root,) in cr.fetchall():
+             pos = browse_rec(root, pos)
+         return True
+     def _update_store(self, cr, f, k):
+         logger = netsvc.Logger()
+         logger.notifyChannel('data', netsvc.LOG_INFO, "storing computed values of fields.function '%s'" % (k,))
+         ss = self._columns[k]._symbol_set
+         update_query = 'UPDATE "%s" SET "%s"=%s WHERE id=%%s' % (self._table, k, ss[0])
+         cr.execute('select id from '+self._table)
+         ids_lst = map(lambda x: x[0], cr.fetchall())
+         while ids_lst:
+             iids = ids_lst[:40]
+             ids_lst = ids_lst[40:]
+             res = f.get(cr, self, iids, k, 1, {})
+             for key, val in res.items():
+                 if f._multi:
+                     val = val[k]
+                 # if val is a many2one, just write the ID
+                 if type(val) == tuple:
+                     val = val[0]
+                 if (val<>False) or (type(val)<>bool):
+                     cr.execute(update_query, (ss[1](val), key))
+     def _check_selection_field_value(self, cr, uid, field, value, context=None):
+         """Raise except_orm if value is not among the valid values for the selection field"""
+         if self._columns[field]._type == 'reference':
+             val_model, val_id_str = value.split(',', 1)
+             val_id = False
+             try:
+                 val_id = long(val_id_str)
+             except ValueError:
+                 pass
+             if not val_id:
+                 raise except_orm(_('ValidateError'),
+                                  _('Invalid value for reference field "%s" (last part must be a non-zero integer): "%s"') % (field, value))
+             val = val_model
+         else:
+             val = value
+         if isinstance(self._columns[field].selection, (tuple, list)):
+             if val in dict(self._columns[field].selection):
+                 return
+         elif val in dict(self._columns[field].selection(self, cr, uid, context=context)):
+             return
+         raise except_orm(_('ValidateError'),
+                          _('The value "%s" for the field "%s" is not in the selection') % (value, field))
+     def _check_removed_columns(self, cr, log=False):
+         # iterate on the database columns to drop the NOT NULL constraints
+         # of fields which were required but have been removed (or will be added by another module)
+         columns = [c for c in self._columns if not (isinstance(self._columns[c], fields.function) and not self._columns[c].store)]
+         columns += ('id', 'write_uid', 'write_date', 'create_uid', 'create_date') # openerp access columns
+         cr.execute("SELECT a.attname, a.attnotnull"
+                    "  FROM pg_class c, pg_attribute a"
+                    " WHERE c.relname=%s"
+                    "   AND c.oid=a.attrelid"
+                    "   AND a.attisdropped=%s"
+                    "   AND pg_catalog.format_type(a.atttypid, a.atttypmod) NOT IN ('cid', 'tid', 'oid', 'xid')"
+                    "   AND a.attname NOT IN %s", (self._table, False, tuple(columns))),
+         for column in cr.dictfetchall():
+             if log:
+                 self.__logger.debug("column %s is in the table %s but not in the corresponding object %s",
+                                     column['attname'], self._table, self._name)
+             if column['attnotnull']:
+                 cr.execute('ALTER TABLE "%s" ALTER COLUMN "%s" DROP NOT NULL' % (self._table, column['attname']))
+                 self.__schema.debug("Table '%s': column '%s': dropped NOT NULL constraint",
+                                     self._table, column['attname'])
+     def _auto_init(self, cr, context=None):
+         if context is None:
+             context = {}
+         store_compute = False
+         create = False
+         todo_end = []
+         self._field_create(cr, context=context)
+         if getattr(self, '_auto', True):
+             cr.execute("SELECT relname FROM pg_class WHERE relkind IN ('r','v') AND relname=%s", (self._table,))
+             if not cr.rowcount:
+                 cr.execute('CREATE TABLE "%s" (id SERIAL NOT NULL, PRIMARY KEY(id)) WITHOUT OIDS' % (self._table,))
+                 cr.execute("COMMENT ON TABLE \"%s\" IS '%s'" % (self._table, self._description.replace("'", "''")))
+                 create = True
+                 self.__schema.debug("Table '%s': created", self._table)
+             cr.commit()
+             if self._parent_store:
+                 cr.execute("""SELECT c.relname
+                     FROM pg_class c, pg_attribute a
+                     WHERE c.relname=%s AND a.attname=%s AND c.oid=a.attrelid
+                     """, (self._table, 'parent_left'))
+                 if not cr.rowcount:
+                     cr.execute('ALTER TABLE "%s" ADD COLUMN "parent_left" INTEGER' % (self._table,))
+                     cr.execute('ALTER TABLE "%s" ADD COLUMN "parent_right" INTEGER' % (self._table,))
+                     if 'parent_left' not in self._columns:
+                         self.__logger.error('create a column parent_left on object %s: fields.integer(\'Left Parent\', select=1)',
+                                             self._table)
+                         self.__schema.debug("Table '%s': added column '%s' with definition=%s",
+                                             self._table, 'parent_left', 'INTEGER')
+                     elif not self._columns['parent_left'].select:
+                         self.__logger.error('parent_left column on object %s must be indexed! Add select=1 to the field definition)',
+                                             self._table)
+                     if 'parent_right' not in self._columns:
+                         self.__logger.error('create a column parent_right on object %s: fields.integer(\'Right Parent\', select=1)',
+                                             self._table)
+                         self.__schema.debug("Table '%s': added column '%s' with definition=%s",
+                                             self._table, 'parent_right', 'INTEGER')
+                     elif not self._columns['parent_right'].select:
+                         self.__logger.error('parent_right column on object %s must be indexed! Add select=1 to the field definition)',
+                                             self._table)
+                     if self._columns[self._parent_name].ondelete != 'cascade':
+                         self.__logger.error("The column %s on object %s must be set as ondelete='cascade'",
+                                             self._parent_name, self._name)
+                     cr.commit()
+                     store_compute = True
+             if self._log_access:
+                 logs = {
+                     'create_uid': 'INTEGER REFERENCES res_users ON DELETE SET NULL',
+                     'create_date': 'TIMESTAMP',
+                     'write_uid': 'INTEGER REFERENCES res_users ON DELETE SET NULL',
+                     'write_date': 'TIMESTAMP'
+                 }
+                 for k in logs:
+                     cr.execute("""
+                         SELECT c.relname
+                           FROM pg_class c, pg_attribute a
+                          WHERE c.relname=%s AND a.attname=%s AND c.oid=a.attrelid
+                         """, (self._table, k))
+                     if not cr.rowcount:
+                         cr.execute('ALTER TABLE "%s" ADD COLUMN "%s" %s' % (self._table, k, logs[k]))
+                         cr.commit()
+                         self.__schema.debug("Table '%s': added column '%s' with definition=%s",
+                                             self._table, k, logs[k])
+             self._check_removed_columns(cr, log=False)
+             # iterate on the "object columns"
+             todo_update_store = []
+             update_custom_fields = context.get('update_custom_fields', False)
+             cr.execute("SELECT c.relname,a.attname,a.attlen,a.atttypmod,a.attnotnull,a.atthasdef,t.typname,CASE WHEN a.attlen=-1 THEN a.atttypmod-4 ELSE a.attlen END as size " \
+                "FROM pg_class c,pg_attribute a,pg_type t " \
+                "WHERE c.relname=%s " \
+                "AND c.oid=a.attrelid " \
+                "AND a.atttypid=t.oid", (self._table,))
+             col_data = dict(map(lambda x: (x['attname'], x),cr.dictfetchall()))
+             for k in self._columns:
+                 if k in ('id', 'write_uid', 'write_date', 'create_uid', 'create_date'):
+                     continue
+                 #Not Updating Custom fields
+                 if k.startswith('x_') and not update_custom_fields:
+                     continue
+                 f = self._columns[k]
+                 if isinstance(f, fields.one2many):
+                     cr.execute("SELECT relname FROM pg_class WHERE relkind='r' AND relname=%s", (f._obj,))
+                     if self.pool.get(f._obj):
+                         if f._fields_id not in self.pool.get(f._obj)._columns.keys():
+                             if not self.pool.get(f._obj)._inherits or (f._fields_id not in self.pool.get(f._obj)._inherit_fields.keys()):
+                                 raise except_orm('Programming Error', ("There is no reference field '%s' found for '%s'") % (f._fields_id, f._obj,))
+                     if cr.fetchone():
+                         cr.execute("SELECT count(1) as c FROM pg_class c,pg_attribute a WHERE c.relname=%s AND a.attname=%s AND c.oid=a.attrelid", (f._obj, f._fields_id))
+                         res = cr.fetchone()[0]
+                         if not res:
+                             cr.execute('ALTER TABLE "%s" ADD FOREIGN KEY (%s) REFERENCES "%s" ON DELETE SET NULL' % (self._obj, f._fields_id, f._table))
+                             self.__schema.debug("Table '%s': added foreign key '%s' with definition=REFERENCES \"%s\" ON DELETE SET NULL",
+                                 self._obj, f._fields_id, f._table)
+                 elif isinstance(f, fields.many2many):
+                     cr.execute("SELECT relname FROM pg_class WHERE relkind IN ('r','v') AND relname=%s", (f._rel,))
+                     if not cr.dictfetchall():
+                         if not self.pool.get(f._obj):
+                             raise except_orm('Programming Error', ('There is no reference available for %s') % (f._obj,))
+                         ref = self.pool.get(f._obj)._table
+ #                        ref = f._obj.replace('.', '_')
+                         cr.execute('CREATE TABLE "%s" ("%s" INTEGER NOT NULL REFERENCES "%s" ON DELETE CASCADE, "%s" INTEGER NOT NULL REFERENCES "%s" ON DELETE CASCADE, UNIQUE("%s","%s")) WITH OIDS' % (f._rel, f._id1, self._table, f._id2, ref, f._id1, f._id2))
+                         cr.execute('CREATE INDEX "%s_%s_index" ON "%s" ("%s")' % (f._rel, f._id1, f._rel, f._id1))
+                         cr.execute('CREATE INDEX "%s_%s_index" ON "%s" ("%s")' % (f._rel, f._id2, f._rel, f._id2))
+                         cr.execute("COMMENT ON TABLE \"%s\" IS 'RELATION BETWEEN %s AND %s'" % (f._rel, self._table, ref))
+                         cr.commit()
+                         self.__schema.debug("Create table '%s': relation between '%s' and '%s'",
+                                             f._rel, self._table, ref)
+                 else:
+                     res = col_data.get(k, [])
+                     res = res and [res] or []
+                     if not res and hasattr(f, 'oldname'):
+                         cr.execute("SELECT c.relname,a.attname,a.attlen,a.atttypmod,a.attnotnull,a.atthasdef,t.typname,CASE WHEN a.attlen=-1 THEN a.atttypmod-4 ELSE a.attlen END as size " \
+                             "FROM pg_class c,pg_attribute a,pg_type t " \
+                             "WHERE c.relname=%s " \
+                             "AND a.attname=%s " \
+                             "AND c.oid=a.attrelid " \
+                             "AND a.atttypid=t.oid", (self._table, f.oldname))
+                         res_old = cr.dictfetchall()
+                         if res_old and len(res_old) == 1:
+                             cr.execute('ALTER TABLE "%s" RENAME "%s" TO "%s"' % (self._table, f.oldname, k))
+                             res = res_old
+                             res[0]['attname'] = k
+                             self.__schema.debug("Table '%s': renamed column '%s' to '%s'",
+                                                 self._table, f.oldname, k)
+                     if len(res) == 1:
+                         f_pg_def = res[0]
+                         f_pg_type = f_pg_def['typname']
+                         f_pg_size = f_pg_def['size']
+                         f_pg_notnull = f_pg_def['attnotnull']
+                         if isinstance(f, fields.function) and not f.store and\
+                                 not getattr(f, 'nodrop', False):
+                             self.__logger.info('column %s (%s) in table %s removed: converted to a function !\n',
+                                                k, f.string, self._table)
+                             cr.execute('ALTER TABLE "%s" DROP COLUMN "%s" CASCADE' % (self._table, k))
+                             cr.commit()
+                             self.__schema.debug("Table '%s': dropped column '%s' with cascade",
+                                                  self._table, k)
+                             f_obj_type = None
+                         else:
+                             f_obj_type = get_pg_type(f) and get_pg_type(f)[0]
+                         if f_obj_type:
+                             ok = False
+                             casts = [
+                                 ('text', 'char', 'VARCHAR(%d)' % (f.size or 0,), '::VARCHAR(%d)'%(f.size or 0,)),
+                                 ('varchar', 'text', 'TEXT', ''),
+                                 ('int4', 'float', get_pg_type(f)[1], '::'+get_pg_type(f)[1]),
+                                 ('date', 'datetime', 'TIMESTAMP', '::TIMESTAMP'),
+                                 ('timestamp', 'date', 'date', '::date'),
+                                 ('numeric', 'float', get_pg_type(f)[1], '::'+get_pg_type(f)[1]),
+                                 ('float8', 'float', get_pg_type(f)[1], '::'+get_pg_type(f)[1]),
+                             ]
+                             if f_pg_type == 'varchar' and f._type == 'char' and f_pg_size < f.size:
+                                 cr.execute('ALTER TABLE "%s" RENAME COLUMN "%s" TO temp_change_size' % (self._table, k))
+                                 cr.execute('ALTER TABLE "%s" ADD COLUMN "%s" VARCHAR(%d)' % (self._table, k, f.size))
+                                 cr.execute('UPDATE "%s" SET "%s"=temp_change_size::VARCHAR(%d)' % (self._table, k, f.size))
+                                 cr.execute('ALTER TABLE "%s" DROP COLUMN temp_change_size CASCADE' % (self._table,))
+                                 cr.commit()
+                                 self.__schema.debug("Table '%s': column '%s' (type varchar) changed size from %s to %s",
+                                     self._table, k, f_pg_size, f.size)
+                             for c in casts:
+                                 if (f_pg_type==c[0]) and (f._type==c[1]):
+                                     if f_pg_type != f_obj_type:
+                                         ok = True
+                                         cr.execute('ALTER TABLE "%s" RENAME COLUMN "%s" TO temp_change_size' % (self._table, k))
+                                         cr.execute('ALTER TABLE "%s" ADD COLUMN "%s" %s' % (self._table, k, c[2]))
+                                         cr.execute(('UPDATE "%s" SET "%s"=temp_change_size'+c[3]) % (self._table, k))
+                                         cr.execute('ALTER TABLE "%s" DROP COLUMN temp_change_size CASCADE' % (self._table,))
+                                         cr.commit()
+                                         self.__schema.debug("Table '%s': column '%s' changed type from %s to %s",
+                                             self._table, k, c[0], c[1])
+                                     break
+                             if f_pg_type != f_obj_type:
+                                 if not ok:
+                                     i = 0
+                                     while True:
+                                         newname = k + '_moved' + str(i)
+                                         cr.execute("SELECT count(1) FROM pg_class c,pg_attribute a " \
+                                             "WHERE c.relname=%s " \
+                                             "AND a.attname=%s " \
+                                             "AND c.oid=a.attrelid ", (self._table, newname))
+                                         if not cr.fetchone()[0]:
+                                             break
+                                         i += 1
+                                     if f_pg_notnull:
+                                         cr.execute('ALTER TABLE "%s" ALTER COLUMN "%s" DROP NOT NULL' % (self._table, k))
+                                     cr.execute('ALTER TABLE "%s" RENAME COLUMN "%s" TO "%s"' % (self._table, k, newname))
+                                     cr.execute('ALTER TABLE "%s" ADD COLUMN "%s" %s' % (self._table, k, get_pg_type(f)[1]))
+                                     cr.execute("COMMENT ON COLUMN %s.%s IS '%s'" % (self._table, k, f.string.replace("'", "''")))
+                                     self.__schema.debug("Table '%s': column '%s' has changed type (DB=%s, def=%s), data moved to column %s !",
+                                         self._table, k, f_pg_type, f._type, newname)
+                             # if the field is required and hasn't got a NOT NULL constraint
+                             if f.required and f_pg_notnull == 0:
+                                 # set the field to the default value if any
+                                 if k in self._defaults:
+                                     if callable(self._defaults[k]):
+                                         default = self._defaults[k](self, cr, 1, context)
+                                     else:
+                                         default = self._defaults[k]
+                                     if (default is not None):
+                                         ss = self._columns[k]._symbol_set
+                                         query = 'UPDATE "%s" SET "%s"=%s WHERE "%s" is NULL' % (self._table, k, ss[0], k)
+                                         cr.execute(query, (ss[1](default),))
+                                 # add the NOT NULL constraint
+                                 cr.commit()
+                                 try:
+                                     cr.execute('ALTER TABLE "%s" ALTER COLUMN "%s" SET NOT NULL' % (self._table, k), log_exceptions=False)
+                                     cr.commit()
+                                     self.__schema.debug("Table '%s': column '%s': added NOT NULL constraint",
+                                                         self._table, k)
+                                 except Exception:
+                                     msg = "Table '%s': unable to set a NOT NULL constraint on column '%s' !\n"\
+                                         "If you want to have it, you should update the records and execute manually:\n"\
+                                         "ALTER TABLE %s ALTER COLUMN %s SET NOT NULL"
+                                     self.__schema.warn(msg, self._table, k, self._table, k)
+                                 cr.commit()
+                             elif not f.required and f_pg_notnull == 1:
+                                 cr.execute('ALTER TABLE "%s" ALTER COLUMN "%s" DROP NOT NULL' % (self._table, k))
+                                 cr.commit()
+                                 self.__schema.debug("Table '%s': column '%s': dropped NOT NULL constraint",
+                                                     self._table, k)
+                             # Verify index
+                             indexname = '%s_%s_index' % (self._table, k)
+                             cr.execute("SELECT indexname FROM pg_indexes WHERE indexname = %s and tablename = %s", (indexname, self._table))
+                             res2 = cr.dictfetchall()
+                             if not res2 and f.select:
+                                 cr.execute('CREATE INDEX "%s_%s_index" ON "%s" ("%s")' % (self._table, k, self._table, k))
+                                 cr.commit()
+                                 if f._type == 'text':
+                                     # FIXME: for fields.text columns we should try creating GIN indexes instead (seems most suitable for an ERP context)
+                                     msg = "Table '%s': Adding (b-tree) index for text column '%s'."\
+                                         "This is probably useless (does not work for fulltext search) and prevents INSERTs of long texts"\
+                                         " because there is a length limit for indexable btree values!\n"\
+                                         "Use a search view instead if you simply want to make the field searchable."
+                                     self.__schema.warn(msg, self._table, k, f._type)
+                             if res2 and not f.select:
+                                 cr.execute('DROP INDEX "%s_%s_index"' % (self._table, k))
+                                 cr.commit()
+                                 msg = "Table '%s': dropping index for column '%s' of type '%s' as it is not required anymore"
+                                 self.__schema.debug(msg, self._table, k, f._type)
+                             if isinstance(f, fields.many2one):
+                                 ref = self.pool.get(f._obj)._table
+                                 if ref != 'ir_actions':
+                                     cr.execute('SELECT confdeltype, conname FROM pg_constraint as con, pg_class as cl1, pg_class as cl2, '
+                                                 'pg_attribute as att1, pg_attribute as att2 '
+                                             'WHERE con.conrelid = cl1.oid '
+                                                 'AND cl1.relname = %s '
+                                                 'AND con.confrelid = cl2.oid '
+                                                 'AND cl2.relname = %s '
+                                                 'AND array_lower(con.conkey, 1) = 1 '
+                                                 'AND con.conkey[1] = att1.attnum '
+                                                 'AND att1.attrelid = cl1.oid '
+                                                 'AND att1.attname = %s '
+                                                 'AND array_lower(con.confkey, 1) = 1 '
+                                                 'AND con.confkey[1] = att2.attnum '
+                                                 'AND att2.attrelid = cl2.oid '
+                                                 'AND att2.attname = %s '
+                                                 "AND con.contype = 'f'", (self._table, ref, k, 'id'))
+                                     res2 = cr.dictfetchall()
+                                     if res2:
+                                         if res2[0]['confdeltype'] != POSTGRES_CONFDELTYPES.get(f.ondelete.upper(), 'a'):
+                                             cr.execute('ALTER TABLE "' + self._table + '" DROP CONSTRAINT "' + res2[0]['conname'] + '"')
+                                             cr.execute('ALTER TABLE "' + self._table + '" ADD FOREIGN KEY ("' + k + '") REFERENCES "' + ref + '" ON DELETE ' + f.ondelete)
+                                             cr.commit()
+                                             self.__schema.debug("Table '%s': column '%s': XXX",
+                                                 self._table, k)
+                     elif len(res) > 1:
+                         netsvc.Logger().notifyChannel('orm', netsvc.LOG_ERROR, "Programming error, column %s->%s has multiple instances !" % (self._table, k))
+                     if not res:
+                         if not isinstance(f, fields.function) or f.store:
+                             # add the missing field
+                             cr.execute('ALTER TABLE "%s" ADD COLUMN "%s" %s' % (self._table, k, get_pg_type(f)[1]))
+                             cr.execute("COMMENT ON COLUMN %s.%s IS '%s'" % (self._table, k, f.string.replace("'", "''")))
+                             self.__schema.debug("Table '%s': added column '%s' with definition=%s",
+                                 self._table, k, get_pg_type(f)[1])
+                             # initialize it
+                             if not create and k in self._defaults:
+                                 if callable(self._defaults[k]):
+                                     default = self._defaults[k](self, cr, 1, context)
+                                 else:
+                                     default = self._defaults[k]
+                                 ss = self._columns[k]._symbol_set
+                                 query = 'UPDATE "%s" SET "%s"=%s' % (self._table, k, ss[0])
+                                 cr.execute(query, (ss[1](default),))
+                                 cr.commit()
+                                 netsvc.Logger().notifyChannel('data', netsvc.LOG_DEBUG, "Table '%s': setting default value of new column %s" % (self._table, k))
+                             if isinstance(f, fields.function):
+                                 order = 10
+                                 if f.store is not True:
+                                     order = f.store[f.store.keys()[0]][2]
+                                 todo_update_store.append((order, f, k))
+                             # and add constraints if needed
+                             if isinstance(f, fields.many2one):
+                                 if not self.pool.get(f._obj):
+                                     raise except_orm('Programming Error', ('There is no reference available for %s') % (f._obj,))
+                                 ref = self.pool.get(f._obj)._table
+ #                                ref = f._obj.replace('.', '_')
+                                 # ir_actions is inherited so foreign key doesn't work on it
+                                 if ref != 'ir_actions':
+                                     cr.execute('ALTER TABLE "%s" ADD FOREIGN KEY ("%s") REFERENCES "%s" ON DELETE %s' % (self._table, k, ref, f.ondelete))
+                                     self.__schema.debug("Table '%s': added foreign key '%s' with definition=REFERENCES \"%s\" ON DELETE %s",
+                                         self._table, k, ref, f.ondelete)
+                             if f.select:
+                                 cr.execute('CREATE INDEX "%s_%s_index" ON "%s" ("%s")' % (self._table, k, self._table, k))
+                             if f.required:
+                                 try:
+                                     cr.commit()
+                                     cr.execute('ALTER TABLE "%s" ALTER COLUMN "%s" SET NOT NULL' % (self._table, k), log_exceptions=False)
+                                     self.__schema.debug("Table '%s': column '%s': added a NOT NULL constraint",
+                                         self._table, k)
+                                 except Exception:
+                                     msg = "WARNING: unable to set column %s of table %s not null !\n"\
+                                         "Try to re-run: openerp-server.py --update=module\n"\
+                                         "If it doesn't work, update records and execute manually:\n"\
+                                         "ALTER TABLE %s ALTER COLUMN %s SET NOT NULL"
+                                     self.__logger.warn(msg, k, self._table, self._table, k)
+                             cr.commit()
+             for order, f, k in todo_update_store:
+                 todo_end.append((order, self._update_store, (f, k)))
+         else:
+             cr.execute("SELECT relname FROM pg_class WHERE relkind IN ('r','v') AND relname=%s", (self._table,))
+             create = not bool(cr.fetchone())
+         cr.commit()     # start a new transaction
+         for (key, con, _) in self._sql_constraints:
+             conname = '%s_%s' % (self._table, key)
+             cr.execute("SELECT conname, pg_catalog.pg_get_constraintdef(oid, true) as condef FROM pg_constraint where conname=%s", (conname,))
+             existing_constraints = cr.dictfetchall()
+             sql_actions = {
+                 'drop': {
+                     'execute': False,
+                     'query': 'ALTER TABLE "%s" DROP CONSTRAINT "%s"' % (self._table, conname, ),
+                     'msg_ok': "Table '%s': dropped constraint '%s'. Reason: its definition changed from '%%s' to '%s'" % (
+                         self._table, conname, con),
+                     'msg_err': "Table '%s': unable to drop \'%s\' constraint !" % (self._table, con),
+                     'order': 1,
+                 },
+                 'add': {
+                     'execute': False,
+                     'query': 'ALTER TABLE "%s" ADD CONSTRAINT "%s" %s' % (self._table, conname, con,),
+                     'msg_ok': "Table '%s': added constraint '%s' with definition=%s" % (self._table, conname, con),
+                     'msg_err': "Table '%s': unable to add \'%s\' constraint !\n If you want to have it, you should update the records and execute manually:\n%%s" % (
+                         self._table, con),
+                     'order': 2,
+                 },
+             }
+             if not existing_constraints:
+                 # constraint does not exists:
+                 sql_actions['add']['execute'] = True
+                 sql_actions['add']['msg_err'] = sql_actions['add']['msg_err'] % (sql_actions['add']['query'], )
+             elif con.lower() not in [item['condef'].lower() for item in existing_constraints]:
+                 # constraint exists but its definition has changed:
+                 sql_actions['drop']['execute'] = True
+                 sql_actions['drop']['msg_ok'] = sql_actions['drop']['msg_ok'] % (existing_constraints[0]['condef'].lower(), )
+                 sql_actions['add']['execute'] = True
+                 sql_actions['add']['msg_err'] = sql_actions['add']['msg_err'] % (sql_actions['add']['query'], )
+             # we need to add the constraint:
+             sql_actions = [item for item in sql_actions.values()]
+             sql_actions.sort(key=lambda x: x['order'])
+             for sql_action in [action for action in sql_actions if action['execute']]:
+                 try:
+                     cr.execute(sql_action['query'])
+                     cr.commit()
+                     self.__schema.debug(sql_action['msg_ok'])
+                 except:
+                     self.__schema.warn(sql_action['msg_err'])
+                     cr.rollback()
+         if create:
+             if hasattr(self, "_sql"):
+                 for line in self._sql.split(';'):
+                     line2 = line.replace('\n', '').strip()
+                     if line2:
+                         cr.execute(line2)
+                         cr.commit()
+         if store_compute:
+             self._parent_store_compute(cr)
+             cr.commit()
+         return todo_end
+     def __init__(self, cr):
+         super(orm, self).__init__(cr)
+         if not hasattr(self, '_log_access'):
+             # if not access is not specify, it is the same value as _auto
+             self._log_access = getattr(self, "_auto", True)
+         self._columns = self._columns.copy()
+         for store_field in self._columns:
+             f = self._columns[store_field]
+             if hasattr(f, 'digits_change'):
+                 f.digits_change(cr)
+             if not isinstance(f, fields.function):
+                 continue
+             if not f.store:
+                 continue
+             if self._columns[store_field].store is True:
+                 sm = {self._name: (lambda self, cr, uid, ids, c={}: ids, None, 10, None)}
+             else:
+                 sm = self._columns[store_field].store
+             for object, aa in sm.items():
+                 if len(aa) == 4:
+                     (fnct, fields2, order, length) = aa
+                 elif len(aa) == 3:
+                     (fnct, fields2, order) = aa
+                     length = None
+                 else:
+                     raise except_orm('Error',
+                         ('Invalid function definition %s in object %s !\nYou must use the definition: store={object:(fnct, fields, priority, time length)}.' % (store_field, self._name)))
+                 self.pool._store_function.setdefault(object, [])
+                 ok = True
+                 for x, y, z, e, f, l in self.pool._store_function[object]:
+                     if (x==self._name) and (y==store_field) and (e==fields2):
+                         if f == order:
+                             ok = False
+                 if ok:
+                     self.pool._store_function[object].append( (self._name, store_field, fnct, fields2, order, length))
+                     self.pool._store_function[object].sort(lambda x, y: cmp(x[4], y[4]))
+         for (key, _, msg) in self._sql_constraints:
+             self.pool._sql_error[self._table+'_'+key] = msg
+         # Load manual fields
+         cr.execute("SELECT id FROM ir_model_fields WHERE name=%s AND model=%s", ('state', 'ir.model.fields'))
+         if cr.fetchone():
+             cr.execute('SELECT * FROM ir_model_fields WHERE model=%s AND state=%s', (self._name, 'manual'))
+             for field in cr.dictfetchall():
+                 if field['name'] in self._columns:
+                     continue
+                 attrs = {
+                     'string': field['field_description'],
+                     'required': bool(field['required']),
+                     'readonly': bool(field['readonly']),
+                     'domain': field['domain'] or None,
+                     'size': field['size'],
+                     'ondelete': field['on_delete'],
+                     'translate': (field['translate']),
+                     #'select': int(field['select_level'])
+                 }
+                 if field['ttype'] == 'selection':
+                     self._columns[field['name']] = getattr(fields, field['ttype'])(eval(field['selection']), **attrs)
+                 elif field['ttype'] == 'reference':
+                     self._columns[field['name']] = getattr(fields, field['ttype'])(selection=eval(field['selection']), **attrs)
+                 elif field['ttype'] == 'many2one':
+                     self._columns[field['name']] = getattr(fields, field['ttype'])(field['relation'], **attrs)
+                 elif field['ttype'] == 'one2many':
+                     self._columns[field['name']] = getattr(fields, field['ttype'])(field['relation'], field['relation_field'], **attrs)
+                 elif field['ttype'] == 'many2many':
+                     _rel1 = field['relation'].replace('.', '_')
+                     _rel2 = field['model'].replace('.', '_')
+                     _rel_name = 'x_%s_%s_%s_rel' % (_rel1, _rel2, field['name'])
+                     self._columns[field['name']] = getattr(fields, field['ttype'])(field['relation'], _rel_name, 'id1', 'id2', **attrs)
+                 else:
+                     self._columns[field['name']] = getattr(fields, field['ttype'])(**attrs)
+         self._inherits_check()
+         self._inherits_reload()
+         if not self._sequence:
+             self._sequence = self._table + '_id_seq'
+         for k in self._defaults:
+             assert (k in self._columns) or (k in self._inherit_fields), 'Default function defined in %s but field %s does not exist !' % (self._name, k,)
+         for f in self._columns:
+             self._columns[f].restart()
+     #
+     # Update objects that uses this one to update their _inherits fields
+     #
+     def _inherits_reload_src(self):
+         for obj in self.pool.obj_pool.values():
+             if self._name in obj._inherits:
+                 obj._inherits_reload()
+     def _inherits_reload(self):
+         res = {}
+         for table in self._inherits:
+             res.update(self.pool.get(table)._inherit_fields)
+             for col in self.pool.get(table)._columns.keys():
+                 res[col] = (table, self._inherits[table], self.pool.get(table)._columns[col])
+             for col in self.pool.get(table)._inherit_fields.keys():
+                 res[col] = (table, self._inherits[table], self.pool.get(table)._inherit_fields[col][2])
+         self._inherit_fields = res
+         self._inherits_reload_src()
+     def _inherits_check(self):
+         for table, field_name in self._inherits.items():
+             if field_name not in self._columns:
+                 logging.getLogger('init').info('Missing many2one field definition for _inherits reference "%s" in "%s", using default one.' % (field_name, self._name))
+                 self._columns[field_name] = fields.many2one(table, string="Automatically created field to link to parent %s" % table,
+                                                              required=True, ondelete="cascade")
+             elif not self._columns[field_name].required or self._columns[field_name].ondelete.lower() != "cascade":
+                 logging.getLogger('init').warning('Field definition for _inherits reference "%s" in "%s" must be marked as "required" with ondelete="cascade", forcing it.' % (field_name, self._name))
+                 self._columns[field_name].required = True
+                 self._columns[field_name].ondelete = "cascade"
+     #def __getattr__(self, name):
+     #    """
+     #    Proxies attribute accesses to the `inherits` parent so we can call methods defined on the inherited parent
+     #    (though inherits doesn't use Python inheritance).
+     #    Handles translating between local ids and remote ids.
+     #    Known issue: doesn't work correctly when using python's own super(), don't involve inherit-based inheritance
+     #                 when you have inherits.
+     #    """
+     #    for model, field in self._inherits.iteritems():
+     #        proxy = self.pool.get(model)
+     #        if hasattr(proxy, name):
+     #            attribute = getattr(proxy, name)
+     #            if not hasattr(attribute, '__call__'):
+     #                return attribute
+     #            break
+     #    else:
+     #        return super(orm, self).__getattr__(name)
+     #    def _proxy(cr, uid, ids, *args, **kwargs):
+     #        objects = self.browse(cr, uid, ids, kwargs.get('context', None))
+     #        lst = [obj[field].id for obj in objects if obj[field]]
+     #        return getattr(proxy, name)(cr, uid, lst, *args, **kwargs)
+     #    return _proxy
+     def fields_get(self, cr, user, fields=None, context=None):
+         """
+         Get the description of list of fields
+         :param cr: database cursor
+         :param user: current user id
+         :param fields: list of fields
+         :param context: context arguments, like lang, time zone
+         :return: dictionary of field dictionaries, each one describing a field of the business object
+         :raise AccessError: * if user has no create/write rights on the requested object
+         """
+         ira = self.pool.get('ir.model.access')
+         write_access = ira.check(cr, user, self._name, 'write', raise_exception=False, context=context) or \
+                        ira.check(cr, user, self._name, 'create', raise_exception=False, context=context)
+         return super(orm, self).fields_get(cr, user, fields, context, write_access)
+     def read(self, cr, user, ids, fields=None, context=None, load='_classic_read'):
+         if not context:
+             context = {}
+         self.pool.get('ir.model.access').check(cr, user, self._name, 'read', context=context)
+         if not fields:
+             fields = list(set(self._columns.keys() + self._inherit_fields.keys()))
+         if isinstance(ids, (int, long)):
+             select = [ids]
+         else:
+             select = ids
+         select = map(lambda x: isinstance(x, dict) and x['id'] or x, select)
+         result = self._read_flat(cr, user, select, fields, context, load)
+         for r in result:
+             for key, v in r.items():
+                 if v is None:
+                     r[key] = False
+         if isinstance(ids, (int, long, dict)):
+             return result and result[0] or False
+         return result
+     def _read_flat(self, cr, user, ids, fields_to_read, context=None, load='_classic_read'):
+         if not context:
+             context = {}
+         if not ids:
+             return []
+         if fields_to_read == None:
+             fields_to_read = self._columns.keys()
+         # Construct a clause for the security rules.
+         # 'tables' hold the list of tables necessary for the SELECT including the ir.rule clauses,
+         # or will at least contain self._table.
+         rule_clause, rule_params, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, 'read', context=context)
+         # all inherited fields + all non inherited fields for which the attribute whose name is in load is True
+         fields_pre = [f for f in fields_to_read if
+                            f == self.CONCURRENCY_CHECK_FIELD
+                         or (f in self._columns and getattr(self._columns[f], '_classic_write'))
+                      ] + self._inherits.values()
+         res = []
+         if len(fields_pre):
+             def convert_field(f):
+                 f_qual = "%s.%s" % (self._table, f) # need fully-qualified references in case len(tables) > 1
+                 if f in ('create_date', 'write_date'):
+                     return "date_trunc('second', %s) as %s" % (f_qual, f)
+                 if f == self.CONCURRENCY_CHECK_FIELD:
+                     if self._log_access:
+                         return "COALESCE(%s.write_date, %s.create_date, now())::timestamp AS %s" % (self._table, self._table, f,)
+                     return "now()::timestamp AS %s" % (f,)
+                 if isinstance(self._columns[f], fields.binary) and context.get('bin_size', False):
+                     return 'length(%s) as "%s"' % (f_qual, f)
+                 return f_qual
+             fields_pre2 = map(convert_field, fields_pre)
+             order_by = self._parent_order or self._order
+             select_fields = ','.join(fields_pre2 + [self._table + '.id'])
+             query = 'SELECT %s FROM %s WHERE %s.id IN %%s' % (select_fields, ','.join(tables), self._table)
+             if rule_clause:
+                 query += " AND " + (' OR '.join(rule_clause))
+             query += " ORDER BY " + order_by
+             for sub_ids in cr.split_for_in_conditions(ids):
+                 if rule_clause:
+                     cr.execute(query, [tuple(sub_ids)] + rule_params)
+                     if cr.rowcount != len(sub_ids):
+                         raise except_orm(_('AccessError'),
+                                          _('Operation prohibited by access rules, or performed on an already deleted document (Operation: read, Document type: %s).')
+                                          % (self._description,))
+                 else:
+                     cr.execute(query, (tuple(sub_ids),))
+                 res.extend(cr.dictfetchall())
+         else:
+             res = map(lambda x: {'id': x}, ids)
+         for f in fields_pre:
+             if f == self.CONCURRENCY_CHECK_FIELD:
+                 continue
+             if self._columns[f].translate:
+                 ids = [x['id'] for x in res]
+                 #TODO: optimize out of this loop
+                 res_trans = self.pool.get('ir.translation')._get_ids(cr, user, self._name+','+f, 'model', context.get('lang', False) or 'en_US', ids)
+                 for r in res:
+                     r[f] = res_trans.get(r['id'], False) or r[f]
+         for table in self._inherits:
+             col = self._inherits[table]
+             cols = [x for x in intersect(self._inherit_fields.keys(), fields_to_read) if x not in self._columns.keys()]
+             if not cols:
+                 continue
+             res2 = self.pool.get(table).read(cr, user, [x[col] for x in res], cols, context, load)
+             res3 = {}
+             for r in res2:
+                 res3[r['id']] = r
+                 del r['id']
+             for record in res:
+                 if not record[col]: # if the record is deleted from _inherits table?
+                     continue
+                 record.update(res3[record[col]])
+                 if col not in fields_to_read:
+                     del record[col]
+         # all fields which need to be post-processed by a simple function (symbol_get)
+         fields_post = filter(lambda x: x in self._columns and self._columns[x]._symbol_get, fields_to_read)
+         if fields_post:
+             for r in res:
+                 for f in fields_post:
+                     r[f] = self._columns[f]._symbol_get(r[f])
+         ids = [x['id'] for x in res]
+         # all non inherited fields for which the attribute whose name is in load is False
+         fields_post = filter(lambda x: x in self._columns and not getattr(self._columns[x], load), fields_to_read)
+         # Compute POST fields
+         todo = {}
+         for f in fields_post:
+             todo.setdefault(self._columns[f]._multi, [])
+             todo[self._columns[f]._multi].append(f)
+         for key, val in todo.items():
+             if key:
+                 res2 = self._columns[val[0]].get(cr, self, ids, val, user, context=context, values=res)
+                 for pos in val:
+                     for record in res:
+                         if isinstance(res2[record['id']], str): res2[record['id']] = eval(res2[record['id']]) #TOCHECK : why got string instend of dict in python2.6
+                         multi_fields = res2.get(record['id'],{})
+                         if multi_fields:
+                             record[pos] = multi_fields.get(pos,[])
+             else:
+                 for f in val:
+                     res2 = self._columns[f].get(cr, self, ids, f, user, context=context, values=res)
+                     for record in res:
+                         if res2:
+                             record[f] = res2[record['id']]
+                         else:
+                             record[f] = []
+         readonly = None
+         for vals in res:
+             for field in vals.copy():
+                 fobj = None
+                 if field in self._columns:
+                     fobj = self._columns[field]
+                 if not fobj:
+                     continue
+                 groups = fobj.read
+                 if groups:
+                     edit = False
+                     for group in groups:
+                         module = group.split(".")[0]
+                         grp = group.split(".")[1]
+                         cr.execute("select count(*) from res_groups_users_rel where gid IN (select res_id from ir_model_data where name=%s and module=%s and model=%s) and uid=%s"  \
+                                    (grp, module, 'res.groups', user))
+                         readonly = cr.fetchall()
+                         if readonly[0][0] >= 1:
+                             edit = True
+                             break
+                         elif readonly[0][0] == 0:
+                             edit = False
+                         else:
+                             edit = False
+                     if not edit:
+                         if type(vals[field]) == type([]):
+                             vals[field] = []
+                         elif type(vals[field]) == type(0.0):
+                             vals[field] = 0
+                         elif type(vals[field]) == type(''):
+                             vals[field] = '=No Permission='
+                         else:
+                             vals[field] = False
+         return res
+     def perm_read(self, cr, user, ids, context=None, details=True):
+         """
+         Returns some metadata about the given records.
+         :param details: if True, \*_uid fields are replaced with the name of the user
+         :return: list of ownership dictionaries for each requested record
+         :rtype: list of dictionaries with the following keys:
+                     * id: object id
+                     * create_uid: user who created the record
+                     * create_date: date when the record was created
+                     * write_uid: last user who changed the record
+                     * write_date: date of the last change to the record
+                     * xmlid: XML ID to use to refer to this record (if there is one), in format ``module.name``
+         """
+         if not context:
+             context = {}
+         if not ids:
+             return []
+         fields = ''
+         uniq = isinstance(ids, (int, long))
+         if uniq:
+             ids = [ids]
+         fields = ['id']
+         if self._log_access:
+             fields += ['create_uid', 'create_date', 'write_uid', 'write_date']
+         quoted_table = '"%s"' % self._table
+         fields_str = ",".join('%s.%s'%(quoted_table, field) for field in fields)
+         query = '''SELECT %s, __imd.module, __imd.name
+                    FROM %s LEFT JOIN ir_model_data __imd
+                        ON (__imd.model = %%s and __imd.res_id = %s.id)
+                    WHERE %s.id IN %%s''' % (fields_str, quoted_table, quoted_table, quoted_table)
+         cr.execute(query, (self._name, tuple(ids)))
+         res = cr.dictfetchall()
+         for r in res:
+             for key in r:
+                 r[key] = r[key] or False
+                 if details and key in ('write_uid', 'create_uid') and r[key]:
+                     try:
+                         r[key] = self.pool.get('res.users').name_get(cr, user, [r[key]])[0]
+                     except Exception:
+                         pass # Leave the numeric uid there
+             r['xmlid'] = ("%(module)s.%(name)s" % r) if r['name'] else False
+             del r['name'], r['module']
+         if uniq:
+             return res[ids[0]]
+         return res
+     def _check_concurrency(self, cr, ids, context):
+         if not context:
+             return
+         if not (context.get(self.CONCURRENCY_CHECK_FIELD) and self._log_access):
+             return
+         check_clause = "(id = %s AND %s < COALESCE(write_date, create_date, now())::timestamp)"
+         for sub_ids in cr.split_for_in_conditions(ids):
+             ids_to_check = []
+             for id in sub_ids:
+                 id_ref = "%s,%s" % (self._name, id)
+                 update_date = context[self.CONCURRENCY_CHECK_FIELD].pop(id_ref, None)
+                 if update_date:
+                     ids_to_check.extend([id, update_date])
+             if not ids_to_check:
+                 continue
+             cr.execute("SELECT id FROM %s WHERE %s" % (self._table, " OR ".join([check_clause]*(len(ids_to_check)/2))), tuple(ids_to_check))
+             res = cr.fetchone()
+             if res:
+                 # mention the first one only to keep the error message readable
+                 raise except_orm('ConcurrencyException', _('A document was modified since you last viewed it (%s:%d)') % (self._description, res[0]))
+     def check_access_rule(self, cr, uid, ids, operation, context=None):
+         """Verifies that the operation given by ``operation`` is allowed for the user
+            according to ir.rules.
+            :param operation: one of ``write``, ``unlink``
+            :raise except_orm: * if current ir.rules do not permit this operation.
+            :return: None if the operation is allowed
+         """
+         where_clause, where_params, tables = self.pool.get('ir.rule').domain_get(cr, uid, self._name, operation, context=context)
+         if where_clause:
+             where_clause = ' and ' + ' and '.join(where_clause)
+             for sub_ids in cr.split_for_in_conditions(ids):
+                 cr.execute('SELECT ' + self._table + '.id FROM ' + ','.join(tables) +
+                            ' WHERE ' + self._table + '.id IN %s' + where_clause,
+                            [sub_ids] + where_params)
+                 if cr.rowcount != len(sub_ids):
+                     raise except_orm(_('AccessError'),
+                                      _('Operation prohibited by access rules, or performed on an already deleted document (Operation: %s, Document type: %s).')
+                                      % (operation, self._description))
+     def unlink(self, cr, uid, ids, context=None):
+         """
+         Delete records with given ids
+         :param cr: database cursor
+         :param uid: current user id
+         :param ids: id or list of ids
+         :param context: (optional) context arguments, like lang, time zone
+         :return: True
+         :raise AccessError: * if user has no unlink rights on the requested object
+                             * if user tries to bypass access rules for unlink on the requested object
+         :raise UserError: if the record is default property for other records
+         """
+         if not ids:
+             return True
+         if isinstance(ids, (int, long)):
+             ids = [ids]
+         result_store = self._store_get_values(cr, uid, ids, None, context)
+         self._check_concurrency(cr, ids, context)
+         self.pool.get('ir.model.access').check(cr, uid, self._name, 'unlink', context=context)
+         properties = self.pool.get('ir.property')
+         domain = [('res_id', '=', False),
+                   ('value_reference', 'in', ['%s,%s' % (self._name, i) for i in ids]),
+                  ]
+         if properties.search(cr, uid, domain, context=context):
+             raise except_orm(_('Error'), _('Unable to delete this document because it is used as a default property'))
+         wf_service = netsvc.LocalService("workflow")
+         for oid in ids:
+             wf_service.trg_delete(uid, self._name, oid, cr)
+         self.check_access_rule(cr, uid, ids, 'unlink', context=context)
+         for sub_ids in cr.split_for_in_conditions(ids):
+             cr.execute('delete from ' + self._table + ' ' \
+                        'where id IN %s', (sub_ids,))
+         for order, object, store_ids, fields in result_store:
+             if object != self._name:
+                 obj = self.pool.get(object)
+                 cr.execute('select id from '+obj._table+' where id IN %s', (tuple(store_ids),))
+                 rids = map(lambda x: x[0], cr.fetchall())
+                 if rids:
+                     obj._store_set_values(cr, uid, rids, fields, context)
+         return True
+     #
+     # TODO: Validate
+     #
+     def write(self, cr, user, ids, vals, context=None):
+         """
+         Update records with given ids with the given field values
+         :param cr: database cursor
+         :param user: current user id
+         :type user: integer
+         :param ids: object id or list of object ids to update according to **vals**
+         :param vals: field values to update, e.g {'field_name': new_field_value, ...}
+         :type vals: dictionary
+         :param context: (optional) context arguments, e.g. {'lang': 'en_us', 'tz': 'UTC', ...}
+         :type context: dictionary
+         :return: True
+         :raise AccessError: * if user has no write rights on the requested object
+                             * if user tries to bypass access rules for write on the requested object
+         :raise ValidateError: if user tries to enter invalid value for a field that is not in selection
+         :raise UserError: if a loop would be created in a hierarchy of objects a result of the operation (such as setting an object as its own parent)
+         **Note**: The type of field values to pass in ``vals`` for relationship fields is specific:
+             + For a many2many field, a list of tuples is expected.
+               Here is the list of tuple that are accepted, with the corresponding semantics ::
+                  (0, 0,  { values })    link to a new record that needs to be created with the given values dictionary
+                  (1, ID, { values })    update the linked record with id = ID (write *values* on it)
+                  (2, ID)                remove and delete the linked record with id = ID (calls unlink on ID, that will delete the object completely, and the link to it as well)
+                  (3, ID)                cut the link to the linked record with id = ID (delete the relationship between the two objects but does not delete the target object itself)
+                  (4, ID)                link to existing record with id = ID (adds a relationship)
+                  (5)                    unlink all (like using (3,ID) for all linked records)
+                  (6, 0, [IDs])          replace the list of linked IDs (like using (5) then (4,ID) for each ID in the list of IDs)
+                  Example:
+                     [(6, 0, [8, 5, 6, 4])] sets the many2many to ids [8, 5, 6, 4]
+             + For a one2many field, a lits of tuples is expected.
+               Here is the list of tuple that are accepted, with the corresponding semantics ::
+                  (0, 0,  { values })    link to a new record that needs to be created with the given values dictionary
+                  (1, ID, { values })    update the linked record with id = ID (write *values* on it)
+                  (2, ID)                remove and delete the linked record with id = ID (calls unlink on ID, that will delete the object completely, and the link to it as well)
+                  Example:
+                     [(0, 0, {'field_name':field_value_record1, ...}), (0, 0, {'field_name':field_value_record2, ...})]
+             + For a many2one field, simply use the ID of target record, which must already exist, or ``False`` to remove the link.
+             + For a reference field, use a string with the model name, a comma, and the target object id (example: ``'product.product, 5'``)
+         """
+         readonly = None
+         for field in vals.copy():
+             fobj = None
+             if field in self._columns:
+                 fobj = self._columns[field]
+             elif field in self._inherit_fields:
+                 fobj = self._inherit_fields[field][2]
+             if not fobj:
+                 continue
+             groups = fobj.write
+             if groups:
+                 edit = False
+                 for group in groups:
+                     module = group.split(".")[0]
+                     grp = group.split(".")[1]
+                     cr.execute("select count(*) from res_groups_users_rel where gid IN (select res_id from ir_model_data where name=%s and module=%s and model=%s) and uid=%s", \
+                                (grp, module, 'res.groups', user))
+                     readonly = cr.fetchall()
+                     if readonly[0][0] >= 1:
+                         edit = True
+                         break
+                     elif readonly[0][0] == 0:
+                         edit = False
+                     else:
+                         edit = False
+                 if not edit:
+                     vals.pop(field)
+         if not context:
+             context = {}
+         if not ids:
+             return True
+         if isinstance(ids, (int, long)):
+             ids = [ids]
+         self._check_concurrency(cr, ids, context)
+         self.pool.get('ir.model.access').check(cr, user, self._name, 'write', context=context)
+         result = self._store_get_values(cr, user, ids, vals.keys(), context) or []
+         # No direct update of parent_left/right
+         vals.pop('parent_left', None)
+         vals.pop('parent_right', None)
+         parents_changed = []
++        parent_order = self._parent_order or self._order
+         if self._parent_store and (self._parent_name in vals):
+             # The parent_left/right computation may take up to
+             # 5 seconds. No need to recompute the values if the
 -            # parent is the same. Get the current value of the parent
++            # parent is the same.
++            # Note: to respect parent_order, nodes must be processed in
++            # order, so ``parents_changed`` must be ordered properly.
+             parent_val = vals[self._parent_name]
+             if parent_val:
 -                query = "SELECT id FROM %s WHERE id IN %%s AND (%s != %%s OR %s IS NULL)" % \
 -                                (self._table, self._parent_name, self._parent_name)
++                query = "SELECT id FROM %s WHERE id IN %%s AND (%s != %%s OR %s IS NULL) ORDER BY %s" % \
++                                (self._table, self._parent_name, self._parent_name, parent_order)
+                 cr.execute(query, (tuple(ids), parent_val))
+             else:
 -                query = "SELECT id FROM %s WHERE id IN %%s AND (%s IS NOT NULL)" % \
 -                                (self._table, self._parent_name)
++                query = "SELECT id FROM %s WHERE id IN %%s AND (%s IS NOT NULL) ORDER BY %s" % \
++                                (self._table, self._parent_name, parent_order)
+                 cr.execute(query, (tuple(ids),))
+             parents_changed = map(operator.itemgetter(0), cr.fetchall())
+         upd0 = []
+         upd1 = []
+         upd_todo = []
+         updend = []
+         direct = []
+         totranslate = context.get('lang', False) and (context['lang'] != 'en_US')
+         for field in vals:
+             if field in self._columns:
+                 if self._columns[field]._classic_write and not (hasattr(self._columns[field], '_fnct_inv')):
+                     if (not totranslate) or not self._columns[field].translate:
+                         upd0.append('"'+field+'"='+self._columns[field]._symbol_set[0])
+                         upd1.append(self._columns[field]._symbol_set[1](vals[field]))
+                     direct.append(field)
+                 else:
+                     upd_todo.append(field)
+             else:
+                 updend.append(field)
+             if field in self._columns \
+                     and hasattr(self._columns[field], 'selection') \
+                     and vals[field]:
+                 self._check_selection_field_value(cr, user, field, vals[field], context=context)
+         if self._log_access:
+             upd0.append('write_uid=%s')
+             upd0.append('write_date=now()')
+             upd1.append(user)
+         if len(upd0):
+             self.check_access_rule(cr, user, ids, 'write', context=context)
+             for sub_ids in cr.split_for_in_conditions(ids):
+                 cr.execute('update ' + self._table + ' set ' + ','.join(upd0) + ' ' \
+                            'where id IN %s', upd1 + [sub_ids])
+                 if cr.rowcount != len(sub_ids):
+                     raise except_orm(_('AccessError'),
+                                      _('One of the records you are trying to modify has already been deleted (Document type: %s).') % self._description)
+             if totranslate:
+                 # TODO: optimize
+                 for f in direct:
+                     if self._columns[f].translate:
+                         src_trans = self.pool.get(self._name).read(cr, user, ids, [f])[0][f]
+                         if not src_trans:
+                             src_trans = vals[f]
+                             # Inserting value to DB
+                             self.write(cr, user, ids, {f: vals[f]})
+                         self.pool.get('ir.translation')._set_ids(cr, user, self._name+','+f, 'model', context['lang'], ids, vals[f], src_trans)
+         # call the 'set' method of fields which are not classic_write
+         upd_todo.sort(lambda x, y: self._columns[x].priority-self._columns[y].priority)
+         # default element in context must be removed when call a one2many or many2many
+         rel_context = context.copy()
+         for c in context.items():
+             if c[0].startswith('default_'):
+                 del rel_context[c[0]]
+         for field in upd_todo:
+             for id in ids:
+                 result += self._columns[field].set(cr, self, id, field, vals[field], user, context=rel_context) or []
+         for table in self._inherits:
+             col = self._inherits[table]
+             nids = []
+             for sub_ids in cr.split_for_in_conditions(ids):
+                 cr.execute('select distinct "'+col+'" from "'+self._table+'" ' \
+                            'where id IN %s', (sub_ids,))
+                 nids.extend([x[0] for x in cr.fetchall()])
+             v = {}
+             for val in updend:
+                 if self._inherit_fields[val][0] == table:
+                     v[val] = vals[val]
+             if v:
+                 self.pool.get(table).write(cr, user, nids, v, context)
+         self._validate(cr, user, ids, context)
+         # TODO: use _order to set dest at the right position and not first node of parent
+         # We can't defer parent_store computation because the stored function
+         # fields that are computer may refer (directly or indirectly) to
+         # parent_left/right (via a child_of domain)
+         if parents_changed:
+             if self.pool._init:
+                 self.pool._init_parent[self._name] = True
+             else:
+                 order = self._parent_order or self._order
+                 parent_val = vals[self._parent_name]
+                 if parent_val:
+                     clause, params = '%s=%%s' % (self._parent_name,), (parent_val,)
+                 else:
+                     clause, params = '%s IS NULL' % (self._parent_name,), ()
+                 for id in parents_changed:
+                     cr.execute('SELECT parent_left, parent_right FROM %s WHERE id=%%s' % (self._table,), (id,))
+                     pleft, pright = cr.fetchone()
+                     distance = pright - pleft + 1
+                     # Positions of current siblings, to locate proper insertion point;
+                     # this can _not_ be fetched outside the loop, as it needs to be refreshed
+                     # after each update, in case several nodes are sequentially inserted one
+                     # next to the other (i.e computed incrementally)
 -                    cr.execute('SELECT parent_right, id FROM %s WHERE %s ORDER BY %s' % (self._table, clause, order), params)
++                    cr.execute('SELECT parent_right, id FROM %s WHERE %s ORDER BY %s' % (self._table, clause, parent_order), params)
+                     parents = cr.fetchall()
+                     # Find Position of the element
+                     position = None
+                     for (parent_pright, parent_id) in parents:
+                         if parent_id == id:
+                             break
+                         position = parent_pright + 1
+                     # It's the first node of the parent
+                     if not position:
+                         if not parent_val:
+                             position = 1
+                         else:
+                             cr.execute('select parent_left from '+self._table+' where id=%s', (parent_val,))
+                             position = cr.fetchone()[0] + 1
+                     if pleft < position <= pright:
+                         raise except_orm(_('UserError'), _('Recursivity Detected.'))
+                     if pleft < position:
+                         cr.execute('update '+self._table+' set parent_left=parent_left+%s where parent_left>=%s', (distance, position))
+                         cr.execute('update '+self._table+' set parent_right=parent_right+%s where parent_right>=%s', (distance, position))
+                         cr.execute('update '+self._table+' set parent_left=parent_left+%s, parent_right=parent_right+%s where parent_left>=%s and parent_left<%s', (position-pleft, position-pleft, pleft, pright))
+                     else:
+                         cr.execute('update '+self._table+' set parent_left=parent_left+%s where parent_left>=%s', (distance, position))
+                         cr.execute('update '+self._table+' set parent_right=parent_right+%s where parent_right>=%s', (distance, position))
+                         cr.execute('update '+self._table+' set parent_left=parent_left-%s, parent_right=parent_right-%s where parent_left>=%s and parent_left<%s', (pleft-position+distance, pleft-position+distance, pleft+distance, pright+distance))
+         result += self._store_get_values(cr, user, ids, vals.keys(), context)
+         result.sort()
+         done = {}
+         for order, object, ids_to_update, fields_to_recompute in result:
+             key = (object, tuple(fields_to_recompute))
+             done.setdefault(key, {})
+             # avoid to do several times the same computation
+             todo = []
+             for id in ids_to_update:
+                 if id not in done[key]:
+                     done[key][id] = True
+                     todo.append(id)
+             self.pool.get(object)._store_set_values(cr, user, todo, fields_to_recompute, context)
+         wf_service = netsvc.LocalService("workflow")
+         for id in ids:
+             wf_service.trg_write(user, self._name, id, cr)
+         return True
+     #
+     # TODO: Should set perm to user.xxx
+     #
+     def create(self, cr, user, vals, context=None):
+         """
+         Create new record with specified value
+         :param cr: database cursor
+         :param user: current user id
+         :type user: integer
+         :param vals: field values for new record, e.g {'field_name': field_value, ...}
+         :type vals: dictionary
+         :param context: optional context arguments, e.g. {'lang': 'en_us', 'tz': 'UTC', ...}
+         :type context: dictionary
+         :return: id of new record created
+         :raise AccessError: * if user has no create rights on the requested object
+                             * if user tries to bypass access rules for create on the requested object
+         :raise ValidateError: if user tries to enter invalid value for a field that is not in selection
+         :raise UserError: if a loop would be created in a hierarchy of objects a result of the operation (such as setting an object as its own parent)
+         **Note**: The type of field values to pass in ``vals`` for relationship fields is specific.
+         Please see the description of the :py:meth:`~osv.osv.osv.write` method for details about the possible values and how
+         to specify them.
+         """
+         if not context:
+             context = {}
+         self.pool.get('ir.model.access').check(cr, user, self._name, 'create', context=context)
+         vals = self._add_missing_default_values(cr, user, vals, context)
+         tocreate = {}
+         for v in self._inherits:
+             if self._inherits[v] not in vals:
+                 tocreate[v] = {}
+             else:
+                 tocreate[v] = {'id': vals[self._inherits[v]]}
+         (upd0, upd1, upd2) = ('', '', [])
+         upd_todo = []
+         for v in vals.keys():
+             if v in self._inherit_fields:
+                 (table, col, col_detail) = self._inherit_fields[v]
+                 tocreate[table][v] = vals[v]
+                 del vals[v]
+             else:
+                 if (v not in self._inherit_fields) and (v not in self._columns):
+                     del vals[v]
+         # Try-except added to filter the creation of those records whose filds are readonly.
+         # Example : any dashboard which has all the fields readonly.(due to Views(database views))
+         try:
+             cr.execute("SELECT nextval('"+self._sequence+"')")
+         except:
+             raise except_orm(_('UserError'),
+                         _('You cannot perform this operation. New Record Creation is not allowed for this object as this object is for reporting purpose.'))
+         id_new = cr.fetchone()[0]
+         for table in tocreate:
+             if self._inherits[table] in vals:
+                 del vals[self._inherits[table]]
+             record_id = tocreate[table].pop('id', None)
+             if record_id is None or not record_id:
+                 record_id = self.pool.get(table).create(cr, user, tocreate[table], context=context)
+             else:
+                 self.pool.get(table).write(cr, user, [record_id], tocreate[table], context=context)
+             upd0 += ',' + self._inherits[table]
+             upd1 += ',%s'
+             upd2.append(record_id)
+         #Start : Set bool fields to be False if they are not touched(to make search more powerful)
+         bool_fields = [x for x in self._columns.keys() if self._columns[x]._type=='boolean']
+         for bool_field in bool_fields:
+             if bool_field not in vals:
+                 vals[bool_field] = False
+         #End
+         for field in vals.copy():
+             fobj = None
+             if field in self._columns:
+                 fobj = self._columns[field]
+             else:
+                 fobj = self._inherit_fields[field][2]
+             if not fobj:
+                 continue
+             groups = fobj.write
+             if groups:
+                 edit = False
+                 for group in groups:
+                     module = group.split(".")[0]
+                     grp = group.split(".")[1]
+                     cr.execute("select count(*) from res_groups_users_rel where gid IN (select res_id from ir_model_data where name='%s' and module='%s' and model='%s') and uid=%s" % \
+                                (grp, module, 'res.groups', user))
+                     readonly = cr.fetchall()
+                     if readonly[0][0] >= 1:
+                         edit = True
+                         break
+                     elif readonly[0][0] == 0:
+                         edit = False
+                     else:
+                         edit = False
+                 if not edit:
+                     vals.pop(field)
+         for field in vals:
+             if self._columns[field]._classic_write:
+                 upd0 = upd0 + ',"' + field + '"'
+                 upd1 = upd1 + ',' + self._columns[field]._symbol_set[0]
+                 upd2.append(self._columns[field]._symbol_set[1](vals[field]))
+             else:
+                 if not isinstance(self._columns[field], fields.related):
+                     upd_todo.append(field)
+             if field in self._columns \
+                     and hasattr(self._columns[field], 'selection') \
+                     and vals[field]:
+                 self._check_selection_field_value(cr, user, field, vals[field], context=context)
+         if self._log_access:
+             upd0 += ',create_uid,create_date'
+             upd1 += ',%s,now()'
+             upd2.append(user)
+         cr.execute('insert into "'+self._table+'" (id'+upd0+") values ("+str(id_new)+upd1+')', tuple(upd2))
+         self.check_access_rule(cr, user, [id_new], 'create', context=context)
+         upd_todo.sort(lambda x, y: self._columns[x].priority-self._columns[y].priority)
+         if self._parent_store and not context.get('defer_parent_store_computation'):
+             if self.pool._init:
+                 self.pool._init_parent[self._name] = True
+             else:
+                 parent = vals.get(self._parent_name, False)
+                 if parent:
+                     cr.execute('select parent_right from '+self._table+' where '+self._parent_name+'=%s order by '+(self._parent_order or self._order), (parent,))
+                     pleft_old = None
+                     result_p = cr.fetchall()
+                     for (pleft,) in result_p:
+                         if not pleft:
+                             break
+                         pleft_old = pleft
+                     if not pleft_old:
+                         cr.execute('select parent_left from '+self._table+' where id=%s', (parent,))
+                         pleft_old = cr.fetchone()[0]
+                     pleft = pleft_old
+                 else:
+                     cr.execute('select max(parent_right) from '+self._table)
+                     pleft = cr.fetchone()[0] or 0
+                 cr.execute('update '+self._table+' set parent_left=parent_left+2 where parent_left>%s', (pleft,))
+                 cr.execute('update '+self._table+' set parent_right=parent_right+2 where parent_right>%s', (pleft,))
+                 cr.execute('update '+self._table+' set parent_left=%s,parent_right=%s where id=%s', (pleft+1, pleft+2, id_new))
+         # default element in context must be remove when call a one2many or many2many
+         rel_context = context.copy()
+         for c in context.items():
+             if c[0].startswith('default_'):
+                 del rel_context[c[0]]
+         result = []
+         for field in upd_todo:
+             result += self._columns[field].set(cr, self, id_new, field, vals[field], user, rel_context) or []
+         self._validate(cr, user, [id_new], context)
+         if not context.get('no_store_function', False):
+             result += self._store_get_values(cr, user, [id_new], vals.keys(), context)
+             result.sort()
+             done = []
+             for order, object, ids, fields2 in result:
+                 if not (object, ids, fields2) in done:
+                     self.pool.get(object)._store_set_values(cr, user, ids, fields2, context)
+                     done.append((object, ids, fields2))
+         if self._log_create and not (context and context.get('no_store_function', False)):
+             message = self._description + \
+                 " '" + \
+                 self.name_get(cr, user, [id_new], context=context)[0][1] + \
+                 "' " + _("created.")
+             self.log(cr, user, id_new, message, True, context=context)
+         wf_service = netsvc.LocalService("workflow")
+         wf_service.trg_create(user, self._name, id_new, cr)
+         return id_new
+     def _store_get_values(self, cr, uid, ids, fields, context):
+         """Returns an ordered list of fields.functions to call due to
+            an update operation on ``fields`` of records with ``ids``,
+            obtained by calling the 'store' functions of these fields,
+            as setup by their 'store' attribute.
+            :return: [(priority, model_name, [record_ids,], [function_fields,])]
+         """
+         # FIXME: rewrite, cleanup, use real variable names
+         # e.g.: http://pastie.org/1222060
+         result = {}
+         fncts = self.pool._store_function.get(self._name, [])
+         for fnct in range(len(fncts)):
+             if fncts[fnct][3]:
+                 ok = False
+                 if not fields:
+                     ok = True
+                 for f in (fields or []):
+                     if f in fncts[fnct][3]:
+                         ok = True
+                         break
+                 if not ok:
+                     continue
+             result.setdefault(fncts[fnct][0], {})
+             # uid == 1 for accessing objects having rules defined on store fields
+             ids2 = fncts[fnct][2](self, cr, 1, ids, context)
+             for id in filter(None, ids2):
+                 result[fncts[fnct][0]].setdefault(id, [])
+                 result[fncts[fnct][0]][id].append(fnct)
+         dict = {}
+         for object in result:
+             k2 = {}
+             for id, fnct in result[object].items():
+                 k2.setdefault(tuple(fnct), [])
+                 k2[tuple(fnct)].append(id)
+             for fnct, id in k2.items():
+                 dict.setdefault(fncts[fnct[0]][4], [])
+                 dict[fncts[fnct[0]][4]].append((fncts[fnct[0]][4], object, id, map(lambda x: fncts[x][1], fnct)))
+         result2 = []
+         tmp = dict.keys()
+         tmp.sort()
+         for k in tmp:
+             result2 += dict[k]
+         return result2
+     def _store_set_values(self, cr, uid, ids, fields, context):
+         """Calls the fields.function's "implementation function" for all ``fields``, on records with ``ids`` (taking care of
+            respecting ``multi`` attributes), and stores the resulting values in the database directly."""
+         if not ids:
+             return True
+         field_flag = False
+         field_dict = {}
+         if self._log_access:
+             cr.execute('select id,write_date from '+self._table+' where id IN %s', (tuple(ids),))
+             res = cr.fetchall()
+             for r in res:
+                 if r[1]:
+                     field_dict.setdefault(r[0], [])
+                     res_date = time.strptime((r[1])[:19], '%Y-%m-%d %H:%M:%S')
+                     write_date = datetime.datetime.fromtimestamp(time.mktime(res_date))
+                     for i in self.pool._store_function.get(self._name, []):
+                         if i[5]:
+                             up_write_date = write_date + datetime.timedelta(hours=i[5])
+                             if datetime.datetime.now() < up_write_date:
+                                 if i[1] in fields:
+                                     field_dict[r[0]].append(i[1])
+                                     if not field_flag:
+                                         field_flag = True
+         todo = {}
+         keys = []
+         for f in fields:
+             if self._columns[f]._multi not in keys:
+                 keys.append(self._columns[f]._multi)
+             todo.setdefault(self._columns[f]._multi, [])
+             todo[self._columns[f]._multi].append(f)
+         for key in keys:
+             val = todo[key]
+             if key:
+                 # uid == 1 for accessing objects having rules defined on store fields
+                 result = self._columns[val[0]].get(cr, self, ids, val, 1, context=context)
+                 for id, value in result.items():
+                     if field_flag:
+                         for f in value.keys():
+                             if f in field_dict[id]:
+                                 value.pop(f)
+                     upd0 = []
+                     upd1 = []
+                     for v in value:
+                         if v not in val:
+                             continue
+                         if self._columns[v]._type in ('many2one', 'one2one'):
+                             try:
+                                 value[v] = value[v][0]
+                             except:
+                                 pass
+                         upd0.append('"'+v+'"='+self._columns[v]._symbol_set[0])
+                         upd1.append(self._columns[v]._symbol_set[1](value[v]))
+                     upd1.append(id)
+                     if upd0 and upd1:
+                         cr.execute('update "' + self._table + '" set ' + \
+                             ','.join(upd0) + ' where id = %s', upd1)
+             else:
+                 for f in val:
+                     # uid == 1 for accessing objects having rules defined on store fields
+                     result = self._columns[f].get(cr, self, ids, f, 1, context=context)
+                     for r in result.keys():
+                         if field_flag:
+                             if r in field_dict.keys():
+                                 if f in field_dict[r]:
+                                     result.pop(r)
+                     for id, value in result.items():
+                         if self._columns[f]._type in ('many2one', 'one2one'):
+                             try:
+                                 value = value[0]
+                             except:
+                                 pass
+                         cr.execute('update "' + self._table + '" set ' + \
+                             '"'+f+'"='+self._columns[f]._symbol_set[0] + ' where id = %s', (self._columns[f]._symbol_set[1](value), id))
+         return True
+     #
+     # TODO: Validate
+     #
+     def perm_write(self, cr, user, ids, fields, context=None):
+         raise NotImplementedError(_('This method does not exist anymore'))
+     # TODO: ameliorer avec NULL
+     def _where_calc(self, cr, user, domain, active_test=True, context=None):
+         """Computes the WHERE clause needed to implement an OpenERP domain.
+         :param domain: the domain to compute
+         :type domain: list
+         :param active_test: whether the default filtering of records with ``active``
+                             field set to ``False`` should be applied.
+         :return: the query expressing the given domain as provided in domain
+         :rtype: osv.query.Query
+         """
+         if not context:
+             context = {}
+         domain = domain[:]
+         # if the object has a field named 'active', filter out all inactive
+         # records unless they were explicitely asked for
+         if 'active' in self._columns and (active_test and context.get('active_test', True)):
+             if domain:
+                 active_in_args = False
+                 for a in domain:
+                     if a[0] == 'active':
+                         active_in_args = True
+                 if not active_in_args:
+                     domain.insert(0, ('active', '=', 1))
+             else:
+                 domain = [('active', '=', 1)]
+         if domain:
+             import expression
+             e = expression.expression(domain)
+             e.parse(cr, user, self, context)
+             tables = e.get_tables()
+             where_clause, where_params = e.to_sql()
+             where_clause = where_clause and [where_clause] or []
+         else:
+             where_clause, where_params, tables = [], [], ['"%s"' % self._table]
+         return Query(tables, where_clause, where_params)
+     def _check_qorder(self, word):
+         if not regex_order.match(word):
+             raise except_orm(_('AccessError'), _('Invalid "order" specified. A valid "order" specification is a comma-separated list of valid field names (optionally followed by asc/desc for the direction)'))
+         return True
+     def _apply_ir_rules(self, cr, uid, query, mode='read', context=None):
+         """Add what's missing in ``query`` to implement all appropriate ir.rules
+           (using the ``model_name``'s rules or the current model's rules if ``model_name`` is None)
+            :param query: the current query object
+         """
+         def apply_rule(added_clause, added_params, added_tables, parent_model=None, child_object=None):
+             if added_clause:
+                 if parent_model and child_object:
+                     # as inherited rules are being applied, we need to add the missing JOIN
+                     # to reach the parent table (if it was not JOINed yet in the query)
+                     child_object._inherits_join_add(parent_model, query)
+                 query.where_clause += added_clause
+                 query.where_clause_params += added_params
+                 for table in added_tables:
+                     if table not in query.tables:
+                         query.tables.append(table)
+                 return True
+             return False
+         # apply main rules on the object
+         rule_obj = self.pool.get('ir.rule')
+         apply_rule(*rule_obj.domain_get(cr, uid, self._name, mode, context=context))
+         # apply ir.rules from the parents (through _inherits)
+         for inherited_model in self._inherits:
+             kwargs = dict(parent_model=inherited_model, child_object=self) #workaround for python2.5
+             apply_rule(*rule_obj.domain_get(cr, uid, inherited_model, mode, context=context), **kwargs)
+     def _generate_m2o_order_by(self, order_field, query):
+         """
+         Add possibly missing JOIN to ``query`` and generate the ORDER BY clause for m2o fields,
+         either native m2o fields or function/related fields that are stored, including
+         intermediate JOINs for inheritance if required.
+         :return: the qualified field name to use in an ORDER BY clause to sort by ``order_field``
+         """
+         if order_field not in self._columns and order_field in self._inherit_fields:
+             # also add missing joins for reaching the table containing the m2o field
+             qualified_field = self._inherits_join_calc(order_field, query)
+             order_field_column = self._inherit_fields[order_field][2]
+         else:
+             qualified_field = '"%s"."%s"' % (self._table, order_field)
+             order_field_column = self._columns[order_field]
+         assert order_field_column._type == 'many2one', 'Invalid field passed to _generate_m2o_order_by()'
+         if not order_field_column._classic_write and not getattr(order_field_column, 'store', False):
+             logging.getLogger('orm.search').debug("Many2one function/related fields must be stored " \
+                                                   "to be used as ordering fields! Ignoring sorting for %s.%s",
+                                                   self._name, order_field)
+             return
+         # figure out the applicable order_by for the m2o
+         dest_model = self.pool.get(order_field_column._obj)
+         m2o_order = dest_model._order
+         if not regex_order.match(m2o_order):
+             # _order is complex, can't use it here, so we default to _rec_name
+             m2o_order = dest_model._rec_name
+         else:
+             # extract the field names, to be able to qualify them and add desc/asc
+             m2o_order_list = []
+             for order_part in m2o_order.split(","):
+                 m2o_order_list.append(order_part.strip().split(" ",1)[0].strip())
+             m2o_order = m2o_order_list
+         # Join the dest m2o table if it's not joined yet. We use [LEFT] OUTER join here
+         # as we don't want to exclude results that have NULL values for the m2o
+         src_table, src_field = qualified_field.replace('"','').split('.', 1)
+         query.join((src_table, dest_model._table, src_field, 'id'), outer=True)
+         qualify = lambda field: '"%s"."%s"' % (dest_model._table, field)
+         return map(qualify, m2o_order) if isinstance(m2o_order, list) else qualify(m2o_order)
+     def _generate_order_by(self, order_spec, query):
+         """
+         Attempt to consruct an appropriate ORDER BY clause based on order_spec, which must be
+         a comma-separated list of valid field names, optionally followed by an ASC or DESC direction.
+         :raise" except_orm in case order_spec is malformed
+         """
+         order_by_clause = self._order
+         if order_spec:
+             order_by_elements = []
+             self._check_qorder(order_spec)
+             for order_part in order_spec.split(','):
+                 order_split = order_part.strip().split(' ')
+                 order_field = order_split[0].strip()
+                 order_direction = order_split[1].strip() if len(order_split) == 2 else ''
+                 inner_clause = None
+                 if order_field == 'id':
+                     order_by_clause = '"%s"."%s"' % (self._table, order_field)
+                 elif order_field in self._columns:
+                     order_column = self._columns[order_field]
+                     if order_column._classic_read:
+                         inner_clause = '"%s"."%s"' % (self._table, order_field)
+                     elif order_column._type == 'many2one':
+                         inner_clause = self._generate_m2o_order_by(order_field, query)
+                     else:
+                         continue # ignore non-readable or "non-joinable" fields
+                 elif order_field in self._inherit_fields:
+                     parent_obj = self.pool.get(self._inherit_fields[order_field][0])
+                     order_column = parent_obj._columns[order_field]
+                     if order_column._classic_read:
+                         inner_clause = self._inherits_join_calc(order_field, query)
+                     elif order_column._type == 'many2one':
+                         inner_clause = self._generate_m2o_order_by(order_field, query)
+                     else:
+                         continue # ignore non-readable or "non-joinable" fields
+                 if inner_clause:
+                     if isinstance(inner_clause, list):
+                         for clause in inner_clause:
+                             order_by_elements.append("%s %s" % (clause, order_direction))
+                     else:
+                         order_by_elements.append("%s %s" % (inner_clause, order_direction))
+             if order_by_elements:
+                 order_by_clause = ",".join(order_by_elements)
+         return order_by_clause and (' ORDER BY %s ' % order_by_clause) or ''
+     def _search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False, access_rights_uid=None):
+         """
+         Private implementation of search() method, allowing specifying the uid to use for the access right check.
+         This is useful for example when filling in the selection list for a drop-down and avoiding access rights errors,
+         by specifying ``access_rights_uid=1`` to bypass access rights check, but not ir.rules!
+         This is ok at the security level because this method is private and not callable through XML-RPC.
+         :param access_rights_uid: optional user ID to use when checking access rights
+                                   (not for ir.rules, this is only for ir.model.access)
+         """
+         if context is None:
+             context = {}
+         self.pool.get('ir.model.access').check(cr, access_rights_uid or user, self._name, 'read', context=context)
+         query = self._where_calc(cr, user, args, context=context)
+         self._apply_ir_rules(cr, user, query, 'read', context=context)
+         order_by = self._generate_order_by(order, query)
+         from_clause, where_clause, where_clause_params = query.get_sql()
+         limit_str = limit and ' limit %d' % limit or ''
+         offset_str = offset and ' offset %d' % offset or ''
+         where_str = where_clause and (" WHERE %s" % where_clause) or ''
+         if count:
+             cr.execute('SELECT count("%s".id) FROM ' % self._table + from_clause + where_str + limit_str + offset_str, where_clause_params)
+             res = cr.fetchall()
+             return res[0][0]
+         cr.execute('SELECT "%s".id FROM ' % self._table + from_clause + where_str + order_by + limit_str + offset_str, where_clause_params)
+         res = cr.fetchall()
+         return [x[0] for x in res]
+     # returns the different values ever entered for one field
+     # this is used, for example, in the client when the user hits enter on
+     # a char field
+     def distinct_field_get(self, cr, uid, field, value, args=None, offset=0, limit=None):
+         if not args:
+             args = []
+         if field in self._inherit_fields:
+             return self.pool.get(self._inherit_fields[field][0]).distinct_field_get(cr, uid, field, value, args, offset, limit)
+         else:
+             return self._columns[field].search(cr, self, args, field, value, offset, limit, uid)
+     def copy_data(self, cr, uid, id, default=None, context=None):
+         """
+         Copy given record's data with all its fields values
+         :param cr: database cursor
+         :param user: current user id
+         :param id: id of the record to copy
+         :param default: field values to override in the original values of the copied record
+         :type default: dictionary
+         :param context: context arguments, like lang, time zone
+         :type context: dictionary
+         :return: dictionary containing all the field values
+         """
+         if context is None:
+             context = {}
+         # avoid recursion through already copied records in case of circular relationship
+         seen_map = context.setdefault('__copy_data_seen',{})
+         if id in seen_map.setdefault(self._name,[]):
+             return
+         seen_map[self._name].append(id)
+         if default is None:
+             default = {}
+         if 'state' not in default:
+             if 'state' in self._defaults:
+                 if callable(self._defaults['state']):
+                     default['state'] = self._defaults['state'](self, cr, uid, context)
+                 else:
+                     default['state'] = self._defaults['state']
+         context_wo_lang = context.copy()
+         if 'lang' in context:
+             del context_wo_lang['lang']
+         data = self.read(cr, uid, [id,], context=context_wo_lang)
+         if data:
+             data = data[0]
+         else:
+             raise IndexError( _("Record #%d of %s not found, cannot copy!") %( id, self._name))
+         fields = self.fields_get(cr, uid, context=context)
+         for f in fields:
+             ftype = fields[f]['type']
+             if self._log_access and f in ('create_date', 'create_uid', 'write_date', 'write_uid'):
+                 del data[f]
+             if f in default:
+                 data[f] = default[f]
+             elif 'function' in fields[f]:
+                 del data[f]
+             elif ftype == 'many2one':
+                 try:
+                     data[f] = data[f] and data[f][0]
+                 except:
+                     pass
+             elif ftype in ('one2many', 'one2one'):
+                 res = []
+                 rel = self.pool.get(fields[f]['relation'])
+                 if data[f]:
+                     # duplicate following the order of the ids
+                     # because we'll rely on it later for copying
+                     # translations in copy_translation()!
+                     data[f].sort()
+                     for rel_id in data[f]:
+                         # the lines are first duplicated using the wrong (old)
+                         # parent but then are reassigned to the correct one thanks
+                         # to the (0, 0, ...)
+                         d = rel.copy_data(cr, uid, rel_id, context=context)
+                         if d:
+                             res.append((0, 0, d))
+                 data[f] = res
+             elif ftype == 'many2many':
+                 data[f] = [(6, 0, data[f])]
+         del data['id']
+         # make sure we don't break the current parent_store structure and
+         # force a clean recompute!
+         for parent_column in ['parent_left', 'parent_right']:
+             data.pop(parent_column, None)
+         for v in self._inherits:
+             del data[self._inherits[v]]
+         return data
+     def copy_translations(self, cr, uid, old_id, new_id, context=None):
+         if context is None:
+             context = {}
+         # avoid recursion through already copied records in case of circular relationship
+         seen_map = context.setdefault('__copy_translations_seen',{})
+         if old_id in seen_map.setdefault(self._name,[]):
+             return
+         seen_map[self._name].append(old_id)
+         trans_obj = self.pool.get('ir.translation')
+         fields = self.fields_get(cr, uid, context=context)
+         translation_records = []
+         for field_name, field_def in fields.items():
+             # we must recursively copy the translations for o2o and o2m
+             if field_def['type'] in ('one2one', 'one2many'):
+                 target_obj = self.pool.get(field_def['relation'])
+                 old_record, new_record = self.read(cr, uid, [old_id, new_id], [field_name], context=context)
+                 # here we rely on the order of the ids to match the translations
+                 # as foreseen in copy_data()
+                 old_children = sorted(old_record[field_name])
+                 new_children = sorted(new_record[field_name])
+                 for (old_child, new_child) in zip(old_children, new_children):
+                     target_obj.copy_translations(cr, uid, old_child, new_child, context=context)
+             # and for translatable fields we keep them for copy
+             elif field_def.get('translate'):
+                 trans_name = ''
+                 if field_name in self._columns:
+                     trans_name = self._name + "," + field_name
+                 elif field_name in self._inherit_fields:
+                     trans_name = self._inherit_fields[field_name][0] + "," + field_name
+                 if trans_name:
+                     trans_ids = trans_obj.search(cr, uid, [
+                             ('name', '=', trans_name),
+                             ('res_id', '=', old_id)
+                     ])
+                     translation_records.extend(trans_obj.read(cr, uid, trans_ids, context=context))
+         for record in translation_records:
+             del record['id']
+             record['res_id'] = new_id
+             trans_obj.create(cr, uid, record, context=context)
+     def copy(self, cr, uid, id, default=None, context=None):
+         """
+         Duplicate record with given id updating it with default values
+         :param cr: database cursor
+         :param uid: current user id
+         :param id: id of the record to copy
+         :param default: dictionary of field values to override in the original values of the copied record, e.g: ``{'field_name': overriden_value, ...}``
+         :type default: dictionary
+         :param context: context arguments, like lang, time zone
+         :type context: dictionary
+         :return: True
+         """
+         if context is None:
+             context = {}
+         context = context.copy()
+         data = self.copy_data(cr, uid, id, default, context)
+         new_id = self.create(cr, uid, data, context)
+         self.copy_translations(cr, uid, id, new_id, context)
+         return new_id
+     def exists(self, cr, uid, ids, context=None):
+         if type(ids) in (int, long):
+             ids = [ids]
+         query = 'SELECT count(1) FROM "%s"' % (self._table)
+         cr.execute(query + "WHERE ID IN %s", (tuple(ids),))
+         return cr.fetchone()[0] == len(ids)
+     def check_recursion(self, cr, uid, ids, context=None, parent=None):
+         warnings.warn("You are using deprecated %s.check_recursion(). Please use the '_check_recursion()' instead!" % \
+                         self._name, DeprecationWarning, stacklevel=3)
+         assert parent is None or parent in self._columns or parent in self._inherit_fields,\
+                     "The 'parent' parameter passed to check_recursion() must be None or a valid field name"
+         return self._check_recursion(cr, uid, ids, context, parent)
+     def _check_recursion(self, cr, uid, ids, context=None, parent=None):
+         """
+         Verifies that there is no loop in a hierarchical structure of records,
+         by following the parent relationship using the **parent** field until a loop
+         is detected or until a top-level record is found.
+         :param cr: database cursor
+         :param uid: current user id
+         :param ids: list of ids of records to check
+         :param parent: optional parent field name (default: ``self._parent_name = parent_id``)
+         :return: **True** if the operation can proceed safely, or **False** if an infinite loop is detected.
+         """
+         if not parent:
+             parent = self._parent_name
+         ids_parent = ids[:]
+         query = 'SELECT distinct "%s" FROM "%s" WHERE id IN %%s' % (parent, self._table)
+         while ids_parent:
+             ids_parent2 = []
+             for i in range(0, len(ids), cr.IN_MAX):
+                 sub_ids_parent = ids_parent[i:i+cr.IN_MAX]
+                 cr.execute(query, (tuple(sub_ids_parent),))
+                 ids_parent2.extend(filter(None, map(lambda x: x[0], cr.fetchall())))
+             ids_parent = ids_parent2
+             for i in ids_parent:
+                 if i in ids:
+                     return False
+         return True
+     def _get_xml_ids(self, cr, uid, ids, *args, **kwargs):
+         """Find out the XML ID(s) of any database record.
+         **Synopsis**: ``_get_xml_ids(cr, uid, ids) -> { 'id': ['module.xml_id'] }``
+         :return: map of ids to the list of their fully qualified XML IDs
+                  (empty list when there's none).
+         """
+         model_data_obj = self.pool.get('ir.model.data')
+         data_ids = model_data_obj.search(cr, uid, [('model', '=', self._name), ('res_id', 'in', ids)])
+         data_results = model_data_obj.read(cr, uid, data_ids, ['module', 'name', 'res_id'])
+         result = {}
+         for id in ids:
+             # can't use dict.fromkeys() as the list would be shared!
+             result[id] = []
+         for record in data_results:
+             result[record['res_id']].append('%(module)s.%(name)s' % record)
+         return result
+     def get_xml_id(self, cr, uid, ids, *args, **kwargs):
+         """Find out the XML ID of any database record, if there
+         is one. This method works as a possible implementation
+         for a function field, to be able to add it to any
+         model object easily, referencing it as ``osv.osv.get_xml_id``.
+         When multiple XML IDs exist for a record, only one
+         of them is returned (randomly).
+         **Synopsis**: ``get_xml_id(cr, uid, ids) -> { 'id': 'module.xml_id' }``
+         :return: map of ids to their fully qualified XML ID,
+                  defaulting to an empty string when there's none
+                  (to be usable as a function field).
+         """
+         results = self._get_xml_ids(cr, uid, ids)
+         for k, v in results.items():
+             if results[k]:
+                 results[k] = v[0]
+             else:
+                 results[k] = ''
+         return results
+ # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
index 0000000,5ae15a0..2252d6c
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,44 +1,43 @@@
+ #!/usr/bin/env python
+ # -*- encoding: utf-8 -*-
+ ##############################################################################
+ #
+ #    OpenERP, Open Source Management Solution
+ #    Copyright (C) 2004-TODAY OpenERP S.A. <http://www.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
+ #    published by the Free Software Foundation, either version 3 of the
+ #    License, or (at your option) any later version.
+ #
+ #    This program is distributed in the hope that it will be useful,
+ #    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ #    GNU Affero General Public License for more details.
+ #
+ #    You should have received a copy of the GNU Affero General Public License
+ #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #
+ ##############################################################################
+ name = 'openerp-server'
 -version = '6.0.1'
 -major_version = '6.0'
++version = '6.1-dev'
++major_version = '6.1'
+ description = 'OpenERP Server'
+ long_desc = '''OpenERP is a complete ERP and CRM. The main features are accounting (analytic
+ and financial), stock management, sales and purchases management, tasks
+ automation, marketing campaigns, help desk, POS, etc. Technical features include
+ a distributed server, flexible workflows, an object database, a dynamic GUI,
+ customizable reports, and XML-RPC interfaces.
+ '''
+ classifiers = """Development Status :: 5 - Production/Stable
+ License :: OSI Approved :: GNU Affero General Public License v3
+ Programming Language :: Python
+ """
+ url = 'http://www.openerp.com'
+ author = 'OpenERP S.A.'
+ author_email = 'info@openerp.com'
+ support_email = 'support@openerp.com'
+ license = 'AGPL-3'
+ # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 -
index 0000000,c7e99e2..e92fe98
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,501 +1,505 @@@
+ # -*- coding: utf-8 -*-
+ ##############################################################################
+ #
+ #    OpenERP, Open Source Management Solution
+ #    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+ #
+ #    This program is free software: you can redistribute it and/or modify
+ #    it under the terms of the GNU Affero General Public License as
+ #    published by the Free Software Foundation, either version 3 of the
+ #    License, or (at your option) any later version.
+ #
+ #    This program is distributed in the hope that it will be useful,
+ #    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ #    GNU Affero General Public License for more details.
+ #
+ #    You should have received a copy of the GNU Affero General Public License
+ #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ #
+ ##############################################################################
+ import ConfigParser
+ import optparse
+ import os
+ import sys
+ import openerp
+ import openerp.loglevels as loglevels
+ import logging
+ import openerp.release as release
+ def check_ssl():
+     try:
+         from OpenSSL import SSL
+         import socket
+         
+         return hasattr(socket, 'ssl') and hasattr(SSL, "Connection")
+     except:
+         return False
+ class configmanager(object):
+     def __init__(self, fname=None):
+         self.options = {
+             'email_from':False,
+             'xmlrpc_interface': '',    # this will bind the server to all interfaces
+             'xmlrpc_port': 8069,
+             'netrpc_interface': '',
+             'netrpc_port': 8070,
+             'xmlrpcs_interface': '',    # this will bind the server to all interfaces
+             'xmlrpcs_port': 8071,
+             'db_host': False,
+             'db_port': False,
+             'db_name': False,
+             'db_user': False,
+             'db_password': False,
+             'db_maxconn': 64,
+             'reportgz': False,
+             'netrpc': True,
+             'xmlrpc': True,
+             'xmlrpcs': True,
+             'translate_in': None,
+             'translate_out': None,
+             'overwrite_existing_translations': False,
+             'load_language': None,
+             'language': None,
+             'pg_path': None,
+             'admin_passwd': 'admin',
+             'csv_internal_sep': ',',
+             'addons_path': None,
+             'root_path': None,
+             'debug_mode': False,
+             'import_partial': "",
+             'pidfile': None,
+             'logfile': None,
+             'logrotate': True,
+             'smtp_server': 'localhost',
+             'smtp_user': False,
+             'smtp_port':25,
+             'smtp_ssl':False,
+             'smtp_password': False,
+             'stop_after_init': False,   # this will stop the server after initialization
+             'syslog' : False,
+             'log_level': logging.INFO,
+             'assert_exit_level': logging.ERROR, # level above which a failed assert will be raised
+             'cache_timeout': 100000,
+             'login_message': False,
+             'list_db' : True,
+             'timezone' : False, # to override the default TZ
+             'test_file' : False,
+             'test_report_directory' : False,
+             'test_disable' : False,
+             'test_commit' : False,
+             'static_http_enable': False,
+             'static_http_document_root': None,
+             'static_http_url_prefix': None,
+             'secure_cert_file': 'server.cert',
+             'secure_pkey_file': 'server.pkey',
+             'publisher_warranty_url': 'http://services.openerp.com/publisher-warranty/',
+         }
 -        
++
+         self.blacklist_for_save = set(["publisher_warranty_url", "load_language"])
+         self.misc = {}
+         self.config_file = fname
+         self.has_ssl = check_ssl()
+         self._LOGLEVELS = dict([(getattr(loglevels, 'LOG_%s' % x), getattr(logging, x))
+                           for x in ('CRITICAL', 'ERROR', 'WARNING', 'INFO', 'TEST', 'DEBUG', 'DEBUG_RPC', 'DEBUG_SQL', 'DEBUG_RPC_ANSWER','NOTSET')])
+         version = "%s %s" % (release.description, release.version)
+         self.parser = parser = optparse.OptionParser(version=version)
 -        parser.add_option("-c", "--config", dest="config", help="specify alternate config file")
 -        parser.add_option("-s", "--save", action="store_true", dest="save", default=False,
++        # Server startup config
++        group = optparse.OptionGroup(parser, "Common options")
++        group.add_option("-c", "--config", dest="config", help="specify alternate config file")
++        group.add_option("-s", "--save", action="store_true", dest="save", default=False,
+                           help="save configuration to ~/.openerp_serverrc")
 -        parser.add_option("--pidfile", dest="pidfile", help="file where the server pid will be stored")
++        group.add_option("-i", "--init", dest="init", help="install one or more modules (comma-separated list, use \"all\" for all modules), requires -d")
++        group.add_option("-u", "--update", dest="update",
++                          help="update one or more modules (comma-separated list, use \"all\" for all modules). Requires -d.")
++        group.add_option("--without-demo", dest="without_demo",
++                          help="disable loading demo data for modules to be installed (comma-separated, use \"all\" for all modules). Requires -d and -i. Default is %default",
++                          default=False)
++        group.add_option("-P", "--import-partial", dest="import_partial",
++                        help="Use this for big data importation, if it crashes you will be able to continue at the current state. Provide a filename to store intermediate importation states.", default=False)
++        group.add_option("--pidfile", dest="pidfile", help="file where the server pid will be stored")
++        parser.add_option_group(group)
+         group = optparse.OptionGroup(parser, "XML-RPC Configuration")
+         group.add_option("--xmlrpc-interface", dest="xmlrpc_interface", help="specify the TCP IP address for the XML-RPC protocol")
+         group.add_option("--xmlrpc-port", dest="xmlrpc_port", help="specify the TCP port for the XML-RPC protocol", type="int")
+         group.add_option("--no-xmlrpc", dest="xmlrpc", action="store_false", help="disable the XML-RPC protocol")
+         parser.add_option_group(group)
+         title = "XML-RPC Secure Configuration"
+         if not self.has_ssl:
+             title += " (disabled as ssl is unavailable)"
+         group = optparse.OptionGroup(parser, title)
+         group.add_option("--xmlrpcs-interface", dest="xmlrpcs_interface", help="specify the TCP IP address for the XML-RPC Secure protocol")
+         group.add_option("--xmlrpcs-port", dest="xmlrpcs_port", help="specify the TCP port for the XML-RPC Secure protocol", type="int")
+         group.add_option("--no-xmlrpcs", dest="xmlrpcs", action="store_false", help="disable the XML-RPC Secure protocol")
+         group.add_option("--cert-file", dest="secure_cert_file", help="specify the certificate file for the SSL connection")
+         group.add_option("--pkey-file", dest="secure_pkey_file", help="specify the private key file for the SSL connection")
+         parser.add_option_group(group)
+         # NET-RPC
+         group = optparse.OptionGroup(parser, "NET-RPC Configuration")
+         group.add_option("--netrpc-interface", dest="netrpc_interface", help="specify the TCP IP address for the NETRPC protocol")
+         group.add_option("--netrpc-port", dest="netrpc_port", help="specify the TCP port for the NETRPC protocol", type="int")
+         group.add_option("--no-netrpc", dest="netrpc", action="store_false", help="disable the NETRPC protocol")
+         parser.add_option_group(group)
+         # Static HTTP
+         group = optparse.OptionGroup(parser, "Static HTTP service")
+         group.add_option("--static-http-enable", dest="static_http_enable", action="store_true", default=False, help="enable static HTTP service for serving plain HTML files")
+         group.add_option("--static-http-document-root", dest="static_http_document_root", help="specify the directory containing your static HTML files (e.g '/var/www/')")
+         group.add_option("--static-http-url-prefix", dest="static_http_url_prefix", help="specify the URL root prefix where you want web browsers to access your static HTML files (e.g '/')")
+         parser.add_option_group(group)
 -        parser.add_option("-i", "--init", dest="init", help="init a module (use \"all\" for all modules)")
 -        parser.add_option("--without-demo", dest="without_demo",
 -                          help="load demo data for a module (use \"all\" for all modules)", default=False)
 -        parser.add_option("-u", "--update", dest="update",
 -                          help="update a module (use \"all\" for all modules)")
 -        parser.add_option("--cache-timeout", dest="cache_timeout",
 -                          help="set the timeout for the cache system", type="int")
 -        parser.add_option("-t", "--timezone", dest="timezone", help="specify reference timezone for the server (e.g. Europe/Brussels")
 -
 -        # stops the server from launching after initialization
 -        parser.add_option("--stop-after-init", action="store_true", dest="stop_after_init", default=False,
 -                          help="stop the server after it initializes")
 -        parser.add_option('--debug', dest='debug_mode', action='store_true', default=False, help='enable debug mode')
 -        parser.add_option("--assert-exit-level", dest='assert_exit_level', type="choice", choices=self._LOGLEVELS.keys(),
 -                          help="specify the level at which a failed assertion will stop the server. Accepted values: %s" % (self._LOGLEVELS.keys(),))
 -
+         # Testing Group
+         group = optparse.OptionGroup(parser, "Testing Configuration")
+         group.add_option("--test-file", dest="test_file", help="Launch a YML test file.")
+         group.add_option("--test-report-directory", dest="test_report_directory", help="If set, will save sample of all reports in this directory.")
+         group.add_option("--test-disable", action="store_true", dest="test_disable",
+                          default=False, help="Disable loading test files.")
+         group.add_option("--test-commit", action="store_true", dest="test_commit",
+                          default=False, help="Commit database changes performed by tests.")
++        group.add_option("--assert-exit-level", dest='assert_exit_level', type="choice", choices=self._LOGLEVELS.keys(),
++                          help="specify the level at which a failed assertion will stop the server. Accepted values: %s" % (self._LOGLEVELS.keys(),))
+         parser.add_option_group(group)
+         # Logging Group
+         group = optparse.OptionGroup(parser, "Logging Configuration")
+         group.add_option("--logfile", dest="logfile", help="file where the server log will be stored")
+         group.add_option("--no-logrotate", dest="logrotate", action="store_false",
+                          help="do not rotate the logfile")
+         group.add_option("--syslog", action="store_true", dest="syslog",
+                          default=False, help="Send the log to the syslog server")
+         group.add_option('--log-level', dest='log_level', type='choice', choices=self._LOGLEVELS.keys(),
+                          help='specify the level of the logging. Accepted values: ' + str(self._LOGLEVELS.keys()))
+         parser.add_option_group(group)
+         # SMTP Group
+         group = optparse.OptionGroup(parser, "SMTP Configuration")
+         group.add_option('--email-from', dest='email_from', help='specify the SMTP email address for sending email')
+         group.add_option('--smtp', dest='smtp_server', help='specify the SMTP server for sending email')
+         group.add_option('--smtp-port', dest='smtp_port', help='specify the SMTP port', type="int")
+         group.add_option('--smtp-ssl', dest='smtp_ssl', action='store_true', help='specify the SMTP server support SSL or not')
+         group.add_option('--smtp-user', dest='smtp_user', help='specify the SMTP username for sending email')
+         group.add_option('--smtp-password', dest='smtp_password', help='specify the SMTP password for sending email')
+         parser.add_option_group(group)
+         group = optparse.OptionGroup(parser, "Database related options")
+         group.add_option("-d", "--database", dest="db_name", help="specify the database name")
+         group.add_option("-r", "--db_user", dest="db_user", help="specify the database user name")
+         group.add_option("-w", "--db_password", dest="db_password", help="specify the database password")
+         group.add_option("--pg_path", dest="pg_path", help="specify the pg executable path")
+         group.add_option("--db_host", dest="db_host", help="specify the database host")
+         group.add_option("--db_port", dest="db_port", help="specify the database port", type="int")
+         group.add_option("--db_maxconn", dest="db_maxconn", type='int',
+                          help="specify the the maximum number of physical connections to posgresql")
 -        group.add_option("-P", "--import-partial", dest="import_partial",
 -                         help="Use this for big data importation, if it crashes you will be able to continue at the current state. Provide a filename to store intermediate importation states.", default=False)
+         parser.add_option_group(group)
+         group = optparse.OptionGroup(parser, "Internationalisation options",
+             "Use these options to translate OpenERP to another language."
+             "See i18n section of the user manual. Option '-d' is mandatory."
+             "Option '-l' is mandatory in case of importation"
+             )
 -
+         group.add_option('--load-language', dest="load_language",
+                          help="specifies the languages for the translations you want to be loaded")
+         group.add_option('-l', "--language", dest="language",
+                          help="specify the language of the translation file. Use it with --i18n-export or --i18n-import")
+         group.add_option("--i18n-export", dest="translate_out",
+                          help="export all sentences to be translated to a CSV file, a PO file or a TGZ archive and exit")
+         group.add_option("--i18n-import", dest="translate_in",
+                          help="import a CSV or a PO file with translations and exit. The '-l' option is required.")
+         group.add_option("--i18n-overwrite", dest="overwrite_existing_translations", action="store_true", default=False,
+                          help="overwrites existing translation terms on importing a CSV or a PO file.")
+         group.add_option("--modules", dest="translate_modules",
+                          help="specify modules to export. Use in combination with --i18n-export")
+         group.add_option("--addons-path", dest="addons_path",
+                          help="specify an alternative addons path.",
+                          action="callback", callback=self._check_addons_path, nargs=1, type="string")
+         parser.add_option_group(group)
+         security = optparse.OptionGroup(parser, 'Security-related options')
+         security.add_option('--no-database-list', action="store_false", dest='list_db', help="disable the ability to return the list of databases")
+         parser.add_option_group(security)
++        # Advanced options
++        group = optparse.OptionGroup(parser, "Advanced options")
++        group.add_option("--cache-timeout", dest="cache_timeout",
++                          help="set the timeout for the cache system", type="int")
++        group.add_option('--debug', dest='debug_mode', action='store_true', default=False, help='enable debug mode')
++        group.add_option("--stop-after-init", action="store_true", dest="stop_after_init", default=False,
++                          help="stop the server after it initializes")
++        group.add_option("-t", "--timezone", dest="timezone", help="specify reference timezone for the server (e.g. Europe/Brussels")
++        parser.add_option_group(group)
++
+         self.parse_config()
+     def parse_config(self, args=[]):
+         opt = self.parser.parse_args(args)[0]
+         def die(cond, msg):
+             if cond:
+                 print msg
+                 sys.exit(1)
+         die(bool(opt.syslog) and bool(opt.logfile),
+             "the syslog and logfile options are exclusive")
+         die(opt.translate_in and (not opt.language or not opt.db_name),
+             "the i18n-import option cannot be used without the language (-l) and the database (-d) options")
+         die(opt.overwrite_existing_translations and (not opt.translate_in),
+             "the i18n-overwrite option cannot be used without the i18n-import option")
+         die(opt.translate_out and (not opt.db_name),
+             "the i18n-export option cannot be used without the database (-d) option")
+         # Check if the config file exists (-c used, but not -s)
+         die(not opt.save and opt.config and not os.path.exists(opt.config),
+             "The config file '%s' selected with -c/--config doesn't exist, "\
+             "use -s/--save if you want to generate it"%(opt.config))
+         # place/search the config file on Win32 near the server installation
+         # (../etc from the server)
+         # if the server is run by an unprivileged user, he has to specify location of a config file where he has the rights to write,
+         # else he won't be able to save the configurations, or even to start the server...
+         if os.name == 'nt':
+             rcfilepath = os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), 'openerp-server.conf')
+         else:
+             rcfilepath = os.path.expanduser('~/.openerp_serverrc')
+         self.rcfile = os.path.abspath(
+             self.config_file or opt.config \
+                 or os.environ.get('OPENERP_SERVER') or rcfilepath)
+         self.load()
+         # Verify that we want to log or not, if not the output will go to stdout
+         if self.options['logfile'] in ('None', 'False'):
+             self.options['logfile'] = False
+         # the same for the pidfile
+         if self.options['pidfile'] in ('None', 'False'):
+             self.options['pidfile'] = False
+         keys = ['xmlrpc_interface', 'xmlrpc_port', 'db_name', 'db_user', 'db_password', 'db_host',
+                 'db_port', 'logfile', 'pidfile', 'smtp_port', 'cache_timeout',
+                 'email_from', 'smtp_server', 'smtp_user', 'smtp_password',
+                 'netrpc_interface', 'netrpc_port', 'db_maxconn', 'import_partial', 'addons_path',
+                 'netrpc', 'xmlrpc', 'syslog', 'without_demo', 'timezone',
+                 'xmlrpcs_interface', 'xmlrpcs_port', 'xmlrpcs',
+                 'secure_cert_file', 'secure_pkey_file',
+                 'static_http_enable', 'static_http_document_root', 'static_http_url_prefix'
+                 ]
+         for arg in keys:
+             if getattr(opt, arg):
+                 self.options[arg] = getattr(opt, arg)
+         keys = [
+             'language', 'translate_out', 'translate_in', 'overwrite_existing_translations',
+             'debug_mode', 'smtp_ssl', 'load_language',
+             'stop_after_init', 'logrotate', 'without_demo', 'netrpc', 'xmlrpc', 'syslog',
+             'list_db', 'xmlrpcs',
+             'test_file', 'test_disable', 'test_commit', 'test_report_directory'
+         ]
+         for arg in keys:
+             if getattr(opt, arg) is not None:
+                 self.options[arg] = getattr(opt, arg)
+         if opt.assert_exit_level:
+             self.options['assert_exit_level'] = self._LOGLEVELS[opt.assert_exit_level]
+         else:
+             self.options['assert_exit_level'] = self._LOGLEVELS.get(self.options['assert_exit_level']) or int(self.options['assert_exit_level'])
+         if opt.log_level:
+             self.options['log_level'] = self._LOGLEVELS[opt.log_level]
+         else:
+             self.options['log_level'] = self._LOGLEVELS.get(self.options['log_level']) or int(self.options['log_level'])
+         if not self.options['root_path'] or self.options['root_path']=='None':
+             self.options['root_path'] = os.path.dirname(openerp.__file__)
+         if not self.options['addons_path'] or self.options['addons_path']=='None':
+             self.options['addons_path'] = os.path.join(self.options['root_path'], 'addons')
+         self.options['init'] = opt.init and dict.fromkeys(opt.init.split(','), 1) or {}
+         self.options["demo"] = not opt.without_demo and self.options['init'] or {}
+         self.options['update'] = opt.update and dict.fromkeys(opt.update.split(','), 1) or {}
+         self.options['translate_modules'] = opt.translate_modules and map(lambda m: m.strip(), opt.translate_modules.split(',')) or ['all']
+         self.options['translate_modules'].sort()
+         if self.options['timezone']:
+             # If an explicit TZ was provided in the config, make sure it is known
+             try:
+                 import pytz
+                 pytz.timezone(self.options['timezone'])
+             except pytz.UnknownTimeZoneError:
+                 die(True, "The specified timezone (%s) is invalid" % self.options['timezone'])
+             except:
+                 # If pytz is missing, don't check the provided TZ, it will be ignored anyway.
+                 pass
+         if opt.pg_path:
+             self.options['pg_path'] = opt.pg_path
+         if self.options.get('language', False):
+             if len(self.options['language']) > 5:
+                 raise Exception('ERROR: The Lang name must take max 5 chars, Eg: -lfr_BE')
+         if not self.options['db_user']:
+             try:
+                 import getpass
+                 self.options['db_user'] = getpass.getuser()
+             except:
+                 self.options['db_user'] = None
+         die(not self.options['db_user'], 'ERROR: No user specified for the connection to the database')
+         if self.options['db_password']:
+             if sys.platform == 'win32' and not self.options['db_host']:
+                 self.options['db_host'] = 'localhost'
+             #if self.options['db_host']:
+             #    self._generate_pgpassfile()
+         if opt.save:
+             self.save()
+     def _generate_pgpassfile(self):
+         """
+         Generate the pgpass file with the parameters from the command line (db_host, db_user,
+         db_password)
+         Used because pg_dump and pg_restore can not accept the password on the command line.
+         """
+         is_win32 = sys.platform == 'win32'
+         if is_win32:
+             filename = os.path.join(os.environ['APPDATA'], 'pgpass.conf')
+         else:
+             filename = os.path.join(os.environ['HOME'], '.pgpass')
+         text_to_add = "%(db_host)s:*:*:%(db_user)s:%(db_password)s" % self.options
+         if os.path.exists(filename):
+             content = [x.strip() for x in file(filename, 'r').readlines()]
+             if text_to_add in content:
+                 return
+         fp = file(filename, 'a+')
+         fp.write(text_to_add + "\n")
+         fp.close()
+         if is_win32:
+             try:
+                 import _winreg
+             except ImportError:
+                 _winreg = None
+             x=_winreg.ConnectRegistry(None,_winreg.HKEY_LOCAL_MACHINE)
+             y = _winreg.OpenKey(x, r"SYSTEM\CurrentControlSet\Control\Session Manager\Environment", 0,_winreg.KEY_ALL_ACCESS)
+             _winreg.SetValueEx(y,"PGPASSFILE", 0, _winreg.REG_EXPAND_SZ, filename )
+             _winreg.CloseKey(y)
+             _winreg.CloseKey(x)
+         else:
+             import stat
+             os.chmod(filename, stat.S_IRUSR + stat.S_IWUSR)
+     def _check_addons_path(self, option, opt, value, parser):
+         res = os.path.abspath(os.path.expanduser(value))
+         if not os.path.exists(res):
+             raise optparse.OptionValueError("option %s: no such directory: %r" % (opt, value))
+         contains_addons = False
+         for f in os.listdir(res):
+             modpath = os.path.join(res, f)
+             if os.path.isdir(modpath) and \
+                os.path.exists(os.path.join(modpath, '__init__.py')) and \
+                (os.path.exists(os.path.join(modpath, '__openerp__.py')) or \
+                 os.path.exists(os.path.join(modpath, '__terp__.py'))):
+                 contains_addons = True
+                 break
+         if not contains_addons:
+             raise optparse.OptionValueError("option %s: The addons-path %r does not seem to a be a valid Addons Directory!" % (opt, value))
+         setattr(parser.values, option.dest, res)
+     def load(self):
+         p = ConfigParser.ConfigParser()
+         try:
+             p.read([self.rcfile])
+             for (name,value) in p.items('options'):
+                 if value=='True' or value=='true':
+                     value = True
+                 if value=='False' or value=='false':
+                     value = False
+                 self.options[name] = value
+             #parse the other sections, as well
+             for sec in p.sections():
+                 if sec == 'options':
+                     continue
+                 if not self.misc.has_key(sec):
+                     self.misc[sec]= {}
+                 for (name, value) in p.items(sec):
+                     if value=='True' or value=='true':
+                         value = True
+                     if value=='False' or value=='false':
+                         value = False
+                     self.misc[sec][name] = value
+         except IOError:
+             pass
+         except ConfigParser.NoSectionError:
+             pass
+     def save(self):
+         p = ConfigParser.ConfigParser()
+         loglevelnames = dict(zip(self._LOGLEVELS.values(), self._LOGLEVELS.keys()))
+         p.add_section('options')
+         for opt in sorted(self.options.keys()):
+             if opt in ('version', 'language', 'translate_out', 'translate_in', 'overwrite_existing_translations', 'init', 'update'):
+                 continue
+             if opt in self.blacklist_for_save:
+                 continue
+             if opt in ('log_level', 'assert_exit_level'):
+                 p.set('options', opt, loglevelnames.get(self.options[opt], self.options[opt]))
+             else:
+                 p.set('options', opt, self.options[opt])
+         for sec in sorted(self.misc.keys()):
+             for opt in sorted(self.misc[sec].keys()):
+                 p.set(sec,opt,self.misc[sec][opt])
+         # try to create the directories and write the file
+         try:
+             rc_exists = os.path.exists(self.rcfile)
+             if not rc_exists and not os.path.exists(os.path.dirname(self.rcfile)):
+                 os.makedirs(os.path.dirname(self.rcfile))
+             try:
+                 p.write(file(self.rcfile, 'w'))
+                 if not rc_exists:
+                     os.chmod(self.rcfile, 0600)
+             except IOError:
+                 sys.stderr.write("ERROR: couldn't write the config file\n")
+         except OSError:
+             # what to do if impossible?
+             sys.stderr.write("ERROR: couldn't create the config directory\n")
+     def get(self, key, default=None):
+         return self.options.get(key, default)
+     def get_misc(self, sect, key, default=None):
+         return self.misc.get(sect,{}).get(key, default)
+     def __setitem__(self, key, value):
+         self.options[key] = value
+     def __getitem__(self, key):
+         return self.options[key]
+ config = configmanager()