diff --git a/MetaAnalytic.py b/MetaAnalytic.py
index cdfabc97751e7d383e577c6abc4230dd832dfa83_TWV0YUFuYWx5dGljLnB5..e39d5c4925ff17c1e558e01dacad218d02755cc3_TWV0YUFuYWx5dGljLnB5 100644
--- a/MetaAnalytic.py
+++ b/MetaAnalytic.py
@@ -38,8 +38,11 @@
                 domain_field = 'nd_id.ns{n}_id.model_name'.format(n=n)
                 columns[col_name] = fields.many2one(
                     'analytic.code',
-                    u"Analysis Code 1",
-                    domain=[(domain_field, '=', model_name)],
+                    "Generated Analytic Field",
+                    domain=[
+                        (domain_field, '=', model_name),
+                        ('child_ids', '=', False)
+                    ],
                     track_visibility='onchange',
                 )
 
diff --git a/README b/README
index cdfabc97751e7d383e577c6abc4230dd832dfa83_UkVBRE1F..e39d5c4925ff17c1e558e01dacad218d02755cc3_UkVBRE1F 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
 == Configure your OpenERP server for analytic fields ==
 
 
-By default, up to 5 analytic dimensions can be associated with an object.
-You can increase this number by setting an option in the configuration file:
+In your OpenERP server's configuration file, you can set several optional
+parameters related to the analytic module.
 
 [analytic]
@@ -6,6 +6,18 @@
 
 [analytic]
-analytic_size = 10
+key = value ...
+
+
+Those options must be grouped under the [analytic] category. If the category
+doesn't exist, add it to your configuration file.
+
+key (default value): description
+
+analytic_size (5): define the maximum number of analytic dimensions
+that can be associated with a model.
+
+translate (False): enable or disable the translation of field values on
+analytic dimensions (name) and codes (name and description).
 
 
 
diff --git a/__init__.py b/__init__.py
index cdfabc97751e7d383e577c6abc4230dd832dfa83_X19pbml0X18ucHk=..e39d5c4925ff17c1e558e01dacad218d02755cc3_X19pbml0X18ucHk= 100644
--- a/__init__.py
+++ b/__init__.py
@@ -23,4 +23,5 @@
 # Before loading the module, if the analytic_size option is given, check it.
 # Its value must be an integer greater or equal to the default value.
 from openerp.tools import config
+errors = ["[analytic]"]
 try:
@@ -26,4 +27,3 @@
 try:
-    analytic_size = int(config.get_misc('analytic', 'analytic_size', 5))
-    assert analytic_size >= 5
+    assert int(config.get_misc('analytic', 'analytic_size', 5)) >= 5
 except (ValueError, AssertionError):
@@ -29,5 +29,11 @@
 except (ValueError, AssertionError):
-    config.parser.error("analytic_size must be an integer greater/equal to 5")
+    errors.append("analytic_size must be an integer greater/equal to 5.")
+try:
+    assert config.get_misc('analytic', 'translate', False) in [True, False]
+except (AssertionError):
+    errors.append("translate must be a boolean value.")
+if len(errors) > 1:
+    config.parser.error("\n * ".join(errors))
 
 
 import MetaAnalytic
diff --git a/analytic_code.py b/analytic_code.py
index cdfabc97751e7d383e577c6abc4230dd832dfa83_YW5hbHl0aWNfY29kZS5weQ==..e39d5c4925ff17c1e558e01dacad218d02755cc3_YW5hbHl0aWNfY29kZS5weQ== 100644
--- a/analytic_code.py
+++ b/analytic_code.py
@@ -19,7 +19,8 @@
 ##############################################################################
 
 from openerp.osv import fields, osv
+from openerp.tools import config
 
 
 class analytic_code(osv.Model):
     _name = "analytic.code"
@@ -22,7 +23,8 @@
 
 
 class analytic_code(osv.Model):
     _name = "analytic.code"
+    _description = u"Analytic Code"
 
     _parent_name = 'code_parent_id'
     _parent_store = True
@@ -30,8 +32,13 @@
     _order = 'parent_left'
 
     _columns = dict(
-        name=fields.char("Name", size=128, translate=True, required=True),
+        name=fields.char(
+            "Name",
+            size=128,
+            translate=config.get_misc('analytic', 'translate', False),
+            required=True,
+        ),
         nd_id=fields.many2one(
             "analytic.dimension",
             string="Dimension",
             ondelete="cascade",
@@ -34,8 +41,9 @@
         nd_id=fields.many2one(
             "analytic.dimension",
             string="Dimension",
             ondelete="cascade",
+            required=True,
         ),
         active=fields.boolean('Active'),
         nd_name=fields.related('nd_id', 'name', type="char",
                                string="Dimension Name", store=False),
@@ -38,8 +46,12 @@
         ),
         active=fields.boolean('Active'),
         nd_name=fields.related('nd_id', 'name', type="char",
                                string="Dimension Name", store=False),
-        description=fields.char('Description', size=512),
+        description=fields.char(
+            'Description',
+            size=512,
+            translate=config.get_misc('analytic', 'translate', False),
+        ),
         code_parent_id=fields.many2one(
             'analytic.code',
             u"Parent Code",
diff --git a/analytic_dimension.py b/analytic_dimension.py
index cdfabc97751e7d383e577c6abc4230dd832dfa83_YW5hbHl0aWNfZGltZW5zaW9uLnB5..e39d5c4925ff17c1e558e01dacad218d02755cc3_YW5hbHl0aWNfZGltZW5zaW9uLnB5 100644
--- a/analytic_dimension.py
+++ b/analytic_dimension.py
@@ -19,7 +19,6 @@
 ##############################################################################
 
 from openerp.osv import fields, osv
-from openerp.tools.translate import _
 from openerp.addons.oemetasl import OEMetaSL
 from openerp.tools import config
 
@@ -34,5 +33,5 @@
             columns['ns{}_id'.format(n)] = fields.one2many(
                 'analytic.structure',
                 'nd_id',
-                u"Structures {}".format(n),
+                "Generated Subset of Structures",
                 domain=[('ordering', '=', n)],
@@ -38,5 +37,5 @@
                 domain=[('ordering', '=', n)],
-                auto_join=True
+                auto_join=True,
             )
         return super(MetaDimension, cls).__new__(cls, name, bases, nmspc)
 
@@ -45,5 +44,6 @@
 
     __metaclass__ = MetaDimension
     _name = "analytic.dimension"
+    _description = u"Analytic Dimension"
 
     _columns = dict(
@@ -48,6 +48,11 @@
 
     _columns = dict(
-        name=fields.char("Name", size=128, translate=True, required=True),
+        name=fields.char(
+            "Name",
+            size=128,
+            translate=config.get_misc('analytic', 'translate', False),
+            required=True,
+        ),
         validated=fields.boolean("Validated"),
         nc_ids=fields.one2many("analytic.code", "nd_id", "Codes"),
         ns_id=fields.one2many("analytic.structure", "nd_id", "Structures"),
diff --git a/analytic_dimension.xml b/analytic_dimension.xml
index cdfabc97751e7d383e577c6abc4230dd832dfa83_YW5hbHl0aWNfZGltZW5zaW9uLnhtbA==..e39d5c4925ff17c1e558e01dacad218d02755cc3_YW5hbHl0aWNfZGltZW5zaW9uLnhtbA== 100644
--- a/analytic_dimension.xml
+++ b/analytic_dimension.xml
@@ -21,6 +21,7 @@
             <field name="model">analytic.code</field>
             <field name="arch" type="xml">
                 <form string="Analytic Code">
+                    <field name="id" invisible="1"/>
                     <field name="active"/>
                     <field name="name"/>
                     <field name="description"/>
@@ -24,8 +25,14 @@
                     <field name="active"/>
                     <field name="name"/>
                     <field name="description"/>
-                    <field name="code_parent_id" domain="[('id', '!=', id), ('nd_id', '=', nd_id)]" />
-                    <field name="nd_id" required="1"/>
+                    <field name="nd_id"
+                        invisible="context.get('default_nd_id', None) is not None"
+                        required="context.get('default_nd_id', None) is not False"
+                    />
+                    <field name="code_parent_id"
+                        attrs="{'readonly': [('nd_id', '=', False)]}"
+                        domain="[('id', '!=', id), ('nd_id', '=', nd_id)]"
+                    />
                 </form>
             </field>
         </record>
@@ -36,6 +43,7 @@
 
             <field name="arch" type="xml">
                 <tree string="Analytic Codes" version="7.0" editable="bottom">
+                    <field name="id" invisible="1"/>
                     <field name="active"/>
                     <field name="name"/>
                     <field name="description"/>
@@ -39,8 +47,14 @@
                     <field name="active"/>
                     <field name="name"/>
                     <field name="description"/>
-                    <field name="code_parent_id" domain="[('id', '!=', id), ('nd_id', '=', nd_id)]" />
-                    <field name="nd_id"/>
+                    <field name="nd_id"
+                        invisible="context.get('default_nd_id', None) is not None"
+                        required="context.get('default_nd_id', None) is not False"
+                    />
+                    <field name="code_parent_id"
+                        attrs="{'readonly': [('nd_id', '=', False)]}"
+                        domain="[('id', '!=', id), ('nd_id', '=', nd_id)]"
+                    />
                 </tree>
             </field>
         </record>
@@ -59,6 +73,7 @@
             <field name="model">analytic.dimension</field>
             <field name="arch" type="xml">
                 <form string="Analytic Dimension" version="7.0">
+                    <field name="id" invisible="1" />
                     <label for="name" class="oe_edit_only" string="Dimension Name"/>
                     <h1>
                         <field name="name" class="oe_inline" placeholder="Dimension Name" style="width: 6em"/>
@@ -66,22 +81,7 @@
                     <group colspan="4" col="4">
                         <field name="validated"/>
                         <newline />
-                        <field name="nc_ids" string="ANCs">
-                            <tree string="Analysis Codes" editable="bottom">
-                                <field name="active"/>
-                                <field name="name"/>
-                                <field name="description"/>
-                                <field name="code_parent_id" domain="[('id', '!=', id), ('nd_id', '=', nd_id)]" />
-                                <field name="nd_id" readonly="1" invisible="1" />
-                            </tree>
-                            <form string="Analysis Codes" version="7.0">
-                                <field name="active"/>
-                                <field name="name"/>
-                                <field name="description"/>
-                                <field name="code_parent_id" domain="[('id', '!=', id), ('nd_id', '=', nd_id)]" />
-                                <field name="nd_id" readonly="1" invisible="1" />
-                            </form>
-                        </field>
+                        <field name="nc_ids" string="ANCs" context="{'default_nd_id': id}" />
                     </group>
                 </form>
             </field>
diff --git a/analytic_structure.py b/analytic_structure.py
index cdfabc97751e7d383e577c6abc4230dd832dfa83_YW5hbHl0aWNfc3RydWN0dXJlLnB5..e39d5c4925ff17c1e558e01dacad218d02755cc3_YW5hbHl0aWNfc3RydWN0dXJlLnB5 100644
--- a/analytic_structure.py
+++ b/analytic_structure.py
@@ -29,6 +29,7 @@
 class analytic_structure(osv.Model):
 
     _name = "analytic.structure"
+    _description = u"Analytic Structure"
 
     def order_selection(self, cr, uid, context=None):
         order_selection = getattr(self, '_order_selection', None)
@@ -52,7 +53,8 @@
         ordering=fields.selection(
             order_selection,
             'Analysis slot',
-            required=True),
+            required=True
+        ),
     )
 
     _sql_constraints = [
diff --git a/i18n/fr.po b/i18n/fr.po
index cdfabc97751e7d383e577c6abc4230dd832dfa83_aTE4bi9mci5wbw==..e39d5c4925ff17c1e558e01dacad218d02755cc3_aTE4bi9mci5wbw== 100644
--- a/i18n/fr.po
+++ b/i18n/fr.po
@@ -6,8 +6,8 @@
 msgstr ""
 "Project-Id-Version: OpenERP Server 7.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-05-14 15:35+0000\n"
-"PO-Revision-Date: 2014-05-14 17:42+0200\n"
+"POT-Creation-Date: 2014-05-28 13:23+0000\n"
+"PO-Revision-Date: 2014-05-28 15:24+0200\n"
 "Last-Translator: Jérémie Gavrel <jeremie.gavrel@xcg-consulting.fr>\n"
 "Language-Team: \n"
 "Language: fr\n"
@@ -46,11 +46,6 @@
 "            "
 
 #. module: analytic_structure
-#: model:ir.model,name:analytic_structure.model_analytic_structure
-msgid "analytic.structure"
-msgstr "analytic.structure"
-
-#. module: analytic_structure
 #: sql_constraint:analytic.dimension:0
 msgid "Name must be unique"
 msgstr "Le nom doit être unique"
@@ -66,13 +61,6 @@
 msgstr "Codes Analytiques"
 
 #. module: analytic_structure
-#: view:analytic.code:0
-#: view:analytic.dimension:0
-#: model:ir.actions.act_window,name:analytic_structure.action_analytic_dimension
-msgid "Analytic Dimension"
-msgstr "Dimension Analytique"
-
-#. module: analytic_structure
 #: field:analytic.dimension,ns_id:0
 msgid "Structures"
 msgstr "Structures"
@@ -108,9 +96,10 @@
 msgstr "Dimension du code"
 
 #. module: analytic_structure
-#: model:ir.model,name:analytic_structure.model_analytic_code
-msgid "analytic.code"
-msgstr "analytic.code"
+#: code:addons/analytic_structure/analytic_structure.py:40
+#, python-format
+msgid "Analysis {}"
+msgstr "Analytique {}"
 
 #. module: analytic_structure
 #: field:analytic.code,active:0
@@ -170,10 +159,5 @@
 msgstr "Dimension"
 
 #. module: analytic_structure
-#: model:ir.model,name:analytic_structure.model_analytic_dimension
-msgid "analytic.dimension"
-msgstr "analytic.dimension"
-
-#. module: analytic_structure
 #: view:analytic.structure:0
 #: model:ir.actions.act_window,name:analytic_structure.action_analytic_structure
@@ -178,5 +162,6 @@
 #: view:analytic.structure:0
 #: model:ir.actions.act_window,name:analytic_structure.action_analytic_structure
+#: model:ir.model,name:analytic_structure.model_analytic_structure
 msgid "Analytic Structure"
 msgstr "Structure Analytique"
 
@@ -186,29 +171,11 @@
 msgstr "Regrouper par…"
 
 #. module: analytic_structure
-#: selection:analytic.structure,ordering:0
-msgid "Analysis 4"
-msgstr "Analytique 4"
-
-#. module: analytic_structure
-#: selection:analytic.structure,ordering:0
-msgid "Analysis 5"
-msgstr "Analytique 5"
-
-#. module: analytic_structure
-#: selection:analytic.structure,ordering:0
-msgid "Analysis 1"
-msgstr "Analytique 1"
-
-#. module: analytic_structure
-#: selection:analytic.structure,ordering:0
-msgid "Analysis 2"
-msgstr "Analytique 2"
-
-#. module: analytic_structure
-#: selection:analytic.structure,ordering:0
-msgid "Analysis 3"
-msgstr "Analytique 3"
+#: view:analytic.dimension:0
+#: model:ir.actions.act_window,name:analytic_structure.action_analytic_dimension
+#: model:ir.model,name:analytic_structure.model_analytic_dimension
+msgid "Analytic Dimension"
+msgstr "Dimension Analytique"
 
 #. module: analytic_structure
 #: model:ir.actions.act_window,help:analytic_structure.action_analytic_structure
@@ -224,4 +191,5 @@
 "            "
 
 #. module: analytic_structure
+#: view:analytic.code:0
 #: model:ir.actions.act_window,name:analytic_structure.action_analytic_code
@@ -227,5 +195,6 @@
 #: model:ir.actions.act_window,name:analytic_structure.action_analytic_code
+#: model:ir.model,name:analytic_structure.model_analytic_code
 msgid "Analytic Code"
 msgstr "Code Analytique"
 
 #. module: analytic_structure
@@ -228,10 +197,19 @@
 msgid "Analytic Code"
 msgstr "Code Analytique"
 
 #. module: analytic_structure
-#: view:analytic.dimension:0
-msgid "Analysis Codes"
-msgstr "Codes Analytiques"
+#: field:analytic.dimension,ns10_id:0
+#: field:analytic.dimension,ns1_id:0
+#: field:analytic.dimension,ns2_id:0
+#: field:analytic.dimension,ns3_id:0
+#: field:analytic.dimension,ns4_id:0
+#: field:analytic.dimension,ns5_id:0
+#: field:analytic.dimension,ns6_id:0
+#: field:analytic.dimension,ns7_id:0
+#: field:analytic.dimension,ns8_id:0
+#: field:analytic.dimension,ns9_id:0
+msgid "Generated Subset of Structures"
+msgstr "Sous-ensemble de structures autogénéré"
 
 #. module: analytic_structure
 #: field:analytic.dimension,validated:0
@@ -248,6 +226,15 @@
 msgid "Right parent"
 msgstr "Parent droit"
 
-#~ msgid "unknown"
-#~ msgstr "inconnu"
+#~ msgid "analytic.structure"
+#~ msgstr "analytic.structure"
+
+#~ msgid "analytic.code"
+#~ msgstr "analytic.code"
+
+#~ msgid "analytic.dimension"
+#~ msgstr "analytic.dimension"
+
+#~ msgid "Analysis 4"
+#~ msgstr "Analytique 4"
 
@@ -253,3 +240,15 @@
 
-#~ msgid "name must be unique"
-#~ msgstr "le nom doit être unique"
+#~ msgid "Analysis 5"
+#~ msgstr "Analytique 5"
+
+#~ msgid "Analysis 1"
+#~ msgstr "Analytique 1"
+
+#~ msgid "Analysis 2"
+#~ msgstr "Analytique 2"
+
+#~ msgid "Analysis 3"
+#~ msgstr "Analytique 3"
+
+#~ msgid "Analysis Codes"
+#~ msgstr "Codes Analytiques"