diff --git a/animation_animall/__init__.py b/animation_animall/__init__.py
index 3088a1a6d1a5087d544a286128bf47067a3cf117..d679c97011613ad79de771030557faebca5c4b90 100644
--- a/animation_animall/__init__.py
+++ b/animation_animall/__init__.py
@@ -16,7 +16,8 @@ import bpy
 from bpy.types import (Operator, Panel, AddonPreferences)
 from bpy.props import (BoolProperty, StringProperty)
 from bpy.app.handlers import persistent
-from bpy.app.translations import pgettext_iface
+from bpy.app.translations import (pgettext_iface as iface_,
+                                  pgettext_data as data_)
 from . import translations
 
 
@@ -205,7 +206,7 @@ class VIEW3D_PT_animall(Panel):
                 row.prop(shape_key, "value", text=shape_key.name, icon="SHAPEKEY_DATA")
                 row.prop(obj, "show_only_shape_key", text="")
                 if shape_key.value < 1:
-                    col.label(text=pgettext_iface('Maybe set "%s" to 1.0?') % shape_key.name, icon="INFO")
+                    col.label(text=iface_('Maybe set "%s" to 1.0?') % shape_key.name, icon="INFO")
             elif shape_key is not None:
                 col = layout.column(align=True)
                 col.label(text="Cannot key on Basis Shape", icon="ERROR")
@@ -234,7 +235,7 @@ class ANIM_OT_insert_keyframe_animall(Operator):
     bl_description = "Insert a Keyframe"
     bl_options = {'REGISTER', 'UNDO'}
 
-    def execute(op, context):
+    def execute(self, context):
         animall_properties = context.scene.animall_properties
 
         if context.mode == 'OBJECT':
@@ -256,12 +257,12 @@ class ANIM_OT_insert_keyframe_animall(Operator):
                         sk_name = obj.active_shape_key.name
                         for p_i, point in enumerate(obj.active_shape_key.data):
                             if not animall_properties.key_selected or data.points[p_i].select:
-                                insert_key(point, 'co', group="%s Point %s" % (sk_name, p_i))
+                                insert_key(point, 'co', group=data_("%s Point %s") % (sk_name, p_i))
 
                 if animall_properties.key_point_location:
                     for p_i, point in enumerate(data.points):
                         if not animall_properties.key_selected or point.select:
-                            insert_key(point, 'co_deform', group="Point %s" % p_i)
+                            insert_key(point, 'co_deform', group=data_("Point %s") % p_i)
 
             else:
                 if animall_properties.key_material_index:
@@ -269,7 +270,7 @@ class ANIM_OT_insert_keyframe_animall(Operator):
                         if (not animall_properties.key_selected
                                 or any(point.select for point in spline.points)
                                 or any(point.select_control_point for point in spline.bezier_points)):
-                            insert_key(spline, 'material_index', group="Spline %s" % s_i)
+                            insert_key(spline, 'material_index', group=data_("Spline %s") % s_i)
 
                 for s_i, spline in enumerate(data.splines):
                     if spline.type == 'BEZIER':
@@ -279,27 +280,27 @@ class ANIM_OT_insert_keyframe_animall(Operator):
                                     or CV.select_left_handle
                                     or CV.select_right_handle):
                                 if animall_properties.key_point_location:
-                                    insert_key(CV, 'co', group="Spline %s CV %s" % (s_i, v_i))
-                                    insert_key(CV, 'handle_left', group="Spline %s CV %s" % (s_i, v_i))
-                                    insert_key(CV, 'handle_right', group="Spline %s CV %s" % (s_i, v_i))
+                                    insert_key(CV, 'co', group=data_("Spline %s CV %s") % (s_i, v_i))
+                                    insert_key(CV, 'handle_left', group=data_("Spline %s CV %s") % (s_i, v_i))
+                                    insert_key(CV, 'handle_right', group=data_("Spline %s CV %s") % (s_i, v_i))
 
                                 if animall_properties.key_radius:
-                                    insert_key(CV, 'radius', group="Spline %s CV %s" % (s_i, v_i))
+                                    insert_key(CV, 'radius', group=data_("Spline %s CV %s") % (s_i, v_i))
 
                                 if animall_properties.key_tilt:
-                                    insert_key(CV, 'tilt', group="Spline %s CV %s" % (s_i, v_i))
+                                    insert_key(CV, 'tilt', group=data_("Spline %s CV %s") % (s_i, v_i))
 
                     elif spline.type in ('POLY', 'NURBS'):
                         for v_i, CV in enumerate(spline.points):
                             if not animall_properties.key_selected or CV.select:
                                 if animall_properties.key_point_location:
-                                    insert_key(CV, 'co', group="Spline %s CV %s" % (s_i, v_i))
+                                    insert_key(CV, 'co', group=data_("Spline %s CV %s") % (s_i, v_i))
 
                                 if animall_properties.key_radius:
-                                    insert_key(CV, 'radius', group="Spline %s CV %s" % (s_i, v_i))
+                                    insert_key(CV, 'radius', group=data_("Spline %s CV %s") % (s_i, v_i))
 
                                 if animall_properties.key_tilt:
-                                    insert_key(CV, 'tilt', group="Spline %s CV %s" % (s_i, v_i))
+                                    insert_key(CV, 'tilt', group=data_("Spline %s CV %s") % (s_i, v_i))
 
         bpy.ops.object.mode_set(mode='OBJECT')
 
@@ -309,37 +310,37 @@ class ANIM_OT_insert_keyframe_animall(Operator):
                 if animall_properties.key_point_location:
                     for v_i, vert in enumerate(data.vertices):
                         if not animall_properties.key_selected or vert.select:
-                            insert_key(vert, 'co', group="Vertex %s" % v_i)
+                            insert_key(vert, 'co', group=data_("Vertex %s") % v_i)
 
                 if animall_properties.key_vertex_bevel:
                     for v_i, vert in enumerate(data.vertices):
                         if not animall_properties.key_selected or vert.select:
-                            insert_key(vert, 'bevel_weight', group="Vertex %s" % v_i)
+                            insert_key(vert, 'bevel_weight', group=data_("Vertex %s") % v_i)
                 # if animall_properties.key_vertex_crease:
                 #     for v_i, vert in enumerate(data.vertices):
                 #         if not animall_properties.key_selected or vert.select:
-                #             insert_key(vert, 'crease', group="Vertex %s" % v_i)
+                #             insert_key(vert, 'crease', group=data_("Vertex %s") % v_i)
 
                 if animall_properties.key_vertex_group:
                     for v_i, vert in enumerate(data.vertices):
                         if not animall_properties.key_selected or vert.select:
                             for group in vert.groups:
-                                insert_key(group, 'weight', group="Vertex %s" % v_i)
+                                insert_key(group, 'weight', group=data_("Vertex %s") % v_i)
 
                 if animall_properties.key_edge_bevel:
                     for e_i, edge in enumerate(data.edges):
                         if not animall_properties.key_selected or edge.select:
-                            insert_key(edge, 'bevel_weight', group="Edge %s" % e_i)
+                            insert_key(edge, 'bevel_weight', group=data_("Edge %s") % e_i)
 
                 if animall_properties.key_edge_crease:
                     for e_i, edge in enumerate(data.edges):
                         if not animall_properties.key_selected or edge.select:
-                            insert_key(edge, 'crease', group="Edge %s" % e_i)
+                            insert_key(edge, 'crease', group=data_("Edge %s") % e_i)
 
                 if animall_properties.key_material_index:
                     for p_i, polygon in enumerate(data.polygons):
                         if not animall_properties.key_selected or polygon.select:
-                            insert_key(polygon, 'material_index', group="Face %s" % p_i)
+                            insert_key(polygon, 'material_index', group=data_("Face %s") % p_i)
 
                 if animall_properties.key_attribute:
                     if data.attributes.active is not None:
@@ -354,13 +355,13 @@ class ANIM_OT_insert_keyframe_animall(Operator):
                                 attribute_key = "vector"
 
                             if attribute.domain == 'POINT':
-                                group = "Vertex %s"
+                                group = data_("Vertex %s")
                             elif attribute.domain == 'EDGE':
-                                group = "Edge %s"
+                                group = data_("Edge %s")
                             elif attribute.domain == 'FACE':
-                                group = "Face %s"
+                                group = data_("Face %s")
                             elif attribute.domain == 'CORNER':
-                                group = "Loop %s"
+                                group = data_("Loop %s")
 
                             for e_i, _attribute_data in enumerate(attribute.data):
                                 if (not animall_properties.key_selected
@@ -375,14 +376,14 @@ class ANIM_OT_insert_keyframe_animall(Operator):
                     if data.uv_layers.active is not None:
                         for uv_i, uv in enumerate(data.uv_layers.active.data):
                             if not animall_properties.key_selected or uv.select:
-                                insert_key(uv, 'uv', group="UV layer %s" % uv_i)
+                                insert_key(uv, 'uv', group=data_("UV layer %s") % uv_i)
 
                 if animall_properties.key_shape_key:
                     if obj.active_shape_key_index > 0:
                         sk_name = obj.active_shape_key.name
                         for v_i, vert in enumerate(obj.active_shape_key.data):
                             if not animall_properties.key_selected or data.vertices[v_i].select:
-                                insert_key(vert, 'co', group="%s Vertex %s" % (sk_name, v_i))
+                                insert_key(vert, 'co', group=data_("%s Vertex %s") % (sk_name, v_i))
 
             elif obj.type in {'CURVE', 'SURFACE'}:
                 # Shape key keys have to be inserted in object mode for curves...
@@ -398,11 +399,11 @@ class ANIM_OT_insert_keyframe_animall(Operator):
                                         or CV.select_right_handle):
                                     if obj.active_shape_key_index > 0:
                                         CV = obj.active_shape_key.data[global_spline_index]
-                                        insert_key(CV, 'co', group="%s Spline %s CV %s" % (sk_name, s_i, v_i))
-                                        insert_key(CV, 'handle_left', group="%s Spline %s CV %s" % (sk_name, s_i, v_i))
-                                        insert_key(CV, 'handle_right', group="%s Spline %s CV %s" % (sk_name, s_i, v_i))
-                                        insert_key(CV, 'radius', group="%s Spline %s CV %s" % (sk_name, s_i, v_i))
-                                        insert_key(CV, 'tilt', group="%s Spline %s CV %s" % (sk_name, s_i, v_i))
+                                        insert_key(CV, 'co', group=data_("%s Spline %s CV %s") % (sk_name, s_i, v_i))
+                                        insert_key(CV, 'handle_left', group=data_("%s Spline %s CV %s") % (sk_name, s_i, v_i))
+                                        insert_key(CV, 'handle_right', group=data_("%s Spline %s CV %s") % (sk_name, s_i, v_i))
+                                        insert_key(CV, 'radius', group=data_("%s Spline %s CV %s") % (sk_name, s_i, v_i))
+                                        insert_key(CV, 'tilt', group=data_("%s Spline %s CV %s") % (sk_name, s_i, v_i))
                                 global_spline_index += 1
 
                         elif spline.type in ('POLY', 'NURBS'):
@@ -410,9 +411,9 @@ class ANIM_OT_insert_keyframe_animall(Operator):
                                 if not animall_properties.key_selected or CV.select:
                                     if obj.active_shape_key_index > 0:
                                         CV = obj.active_shape_key.data[global_spline_index]
-                                        insert_key(CV, 'co', group="%s Spline %s CV %s" % (sk_name, s_i, v_i))
-                                        insert_key(CV, 'radius', group="%s Spline %s CV %s" % (sk_name, s_i, v_i))
-                                        insert_key(CV, 'tilt', group="%s Spline %s CV %s" % (sk_name, s_i, v_i))
+                                        insert_key(CV, 'co', group=data_("%s Spline %s CV %s") % (sk_name, s_i, v_i))
+                                        insert_key(CV, 'radius', group=data_("%s Spline %s CV %s") % (sk_name, s_i, v_i))
+                                        insert_key(CV, 'tilt', group=data_("%s Spline %s CV %s") % (sk_name, s_i, v_i))
                                 global_spline_index += 1
 
         bpy.ops.object.mode_set(mode=mode)
@@ -427,8 +428,7 @@ class ANIM_OT_delete_keyframe_animall(Operator):
     bl_description = "Delete a Keyframe"
     bl_options = {'REGISTER', 'UNDO'}
 
-
-    def execute(op, context):
+    def execute(self, context):
         animall_properties = context.scene.animall_properties
 
         if context.mode == 'OBJECT':
diff --git a/animation_animall/translations.py b/animation_animall/translations.py
index f81dd7c228066c198ba20f2d11bdef25117f99fc..03b77e0b03790e44635f5629ccd9e4322c169b82 100644
--- a/animation_animall/translations.py
+++ b/animation_animall/translations.py
@@ -29,6 +29,13 @@ translations_tuple = (
      ("fr_FR", "Choisir un nom pour la catégorie du panneau",
                (False, ())),
     ),
+    (("Operator", "Insert Key"),
+     (("bpy.types.ANIM_OT_insert_keyframe_animall",
+       "bpy.types.ANIM_OT_insert_keyframe_animall"),
+      ()),
+     ("fr_FR", "Insérer une clé",
+               (False, ())),
+    ),
     (("Operator", "Clear Animation"),
      (("bpy.types.ANIM_OT_clear_animation_animall",),
       ()),
@@ -145,106 +152,206 @@ translations_tuple = (
                (False, ())),
     ),
     (("*", "AnimAll"),
-     (("scripts/addons/animation_animall.py:142",),
+     (("scripts/addons/animation_animall/__init__.py:138",
+       "Add-on AnimAll info: name"),
       ()),
-     ("fr_FR", "",
+     ("fr_FR", "AnimAll",
                (False, ())),
     ),
     (("*", "Key:"),
-     (("scripts/addons/animation_animall.py:150",),
+     (("scripts/addons/animation_animall/__init__.py:146",),
       ()),
      ("fr_FR", "Insérer :",
                (False, ())),
     ),
     (("*", "Tab Category:"),
-     (("scripts/addons/animation_animall.py:658",),
+     (("scripts/addons/animation_animall/__init__.py:653",),
       ()),
-     ("fr_FR", "Catégorie d’onglet",
+     ("fr_FR", "Catégorie d’onglet :",
+               (False, ())),
+    ),
+    (("*", "Points"),
+     (("scripts/addons/animation_animall/__init__.py:152",
+       "scripts/addons/animation_animall/__init__.py:159",
+       "scripts/addons/animation_animall/__init__.py:188"),
+      ()),
+     ("fr_FR", "Points",
                (False, ())),
     ),
-    # (("*", "Points"),
-    #  (("scripts/addons/animation_animall.py:156",
-    #    "scripts/addons/animation_animall.py:163",
-    #    "scripts/addons/animation_animall.py:192"),
-    #   ()),
-    #  ("fr_FR", "",
-    #            (False, ())),
-    # ),
     (("*", "Others"),
-     (("scripts/addons/animation_animall.py:159",
-       "scripts/addons/animation_animall.py:175",
-       "scripts/addons/animation_animall.py:200"),
+     (("scripts/addons/animation_animall/__init__.py:155",
+       "scripts/addons/animation_animall/__init__.py:171",
+       "scripts/addons/animation_animall/__init__.py:196"),
       ()),
      ("fr_FR", "Autres",
                (False, ())),
     ),
-    # (("*", "Bevel"),
-    #  (("scripts/addons/animation_animall.py:165",
-    #    "scripts/addons/animation_animall.py:169"),
-    #   ()),
-    #  ("fr_FR", "",
-    #            (False, ())),
-    # ),
-    # (("*", "Edges"),
-    #  (("scripts/addons/animation_animall.py:168",),
-    #   ()),
-    #  ("fr_FR", "",
-    #            (False, ())),
-    # ),
-    # (("*", "Crease"),
-    #  (("scripts/addons/animation_animall.py:170",),
-    #   ()),
-    #  ("fr_FR", "",
-    #            (False, ())),
-    # ),
-    # (("*", "Faces"),
-    #  (("scripts/addons/animation_animall.py:172",),
-    #   ()),
-    #  ("fr_FR", "",
-    #            (False, ())),
-    # ),
+    (("*", "Bevel"),
+     (("scripts/addons/animation_animall/__init__.py:161",
+       "scripts/addons/animation_animall/__init__.py:165"),
+      ()),
+     ("fr_FR", "Biseau",
+               (False, ())),
+    ),
+    (("*", "Edges"),
+     (("scripts/addons/animation_animall/__init__.py:164",),
+      ()),
+     ("fr_FR", "Arêtes",
+               (False, ())),
+    ),
+    (("*", "Crease"),
+     (("scripts/addons/animation_animall/__init__.py:166",),
+      ()),
+     ("fr_FR", "Plis",
+               (False, ())),
+    ),
+    (("*", "Faces"),
+     (("scripts/addons/animation_animall/__init__.py:168",),
+      ()),
+     ("fr_FR", "Faces",
+               (False, ())),
+    ),
     (("*", "\"Location\" and \"Shape Key\" are redundant?"),
-     (("scripts/addons/animation_animall.py:222",),
+     (("scripts/addons/animation_animall/__init__.py:218",),
       ()),
      ("fr_FR", "\"Position\" et \"Clé de forme\" sont redondants ?",
                (False, ())),
     ),
     (("*", "Splines"),
-     (("scripts/addons/animation_animall.py:197",),
+     (("scripts/addons/animation_animall/__init__.py:193",),
       ()),
-     ("fr_FR", "",
+     ("fr_FR", "Splines",
                (False, ())),
     ),
     (("*", "Maybe set \"%s\" to 1.0?"),
-     (("scripts/addons/animation_animall.py:213",),
+     (("scripts/addons/animation_animall/__init__.py:209",
+       "scripts/addons/animation_animall/__init__.py:209"),
       ()),
      ("fr_FR", "Essayez de mettre « %s » à 1.0 ?",
                (False, ())),
     ),
     (("*", "Cannot key on Basis Shape"),
-     (("scripts/addons/animation_animall.py:216",),
+     (("scripts/addons/animation_animall/__init__.py:212",),
       ()),
      ("fr_FR", "Impossible d’ajouter une clé sur la forme de base",
                (False, ())),
     ),
     (("*", "No active Shape Key"),
-     (("scripts/addons/animation_animall.py:219",),
+     (("scripts/addons/animation_animall/__init__.py:215",),
       ()),
      ("fr_FR", "Pas de clé de forme active",
                (False, ())),
     ),
     (("*", "Clear Animation could not be performed"),
-     (("scripts/addons/animation_animall.py:586",),
+     (("scripts/addons/animation_animall/__init__.py:581",),
       ()),
      ("fr_FR", "La suppression de l’animation n’a pas pu aboutir",
                (False, ())),
     ),
     (("*", "Object includes old-style vertex colors. Consider updating them."),
-     (("scripts/addons/animation_animall.py:186",),
+     (("scripts/addons/animation_animall/__init__.py:182",),
       ()),
      ("fr_FR", "L’objet contient des couleurs de sommets à l’ancien format. Veuillez les mettre à jour",
                (False, ())),
     ),
+    (("*", "Vertex %s"),
+     (("scripts/addons/animation_animall/__init__.py:358",
+       "scripts/addons/animation_animall/__init__.py:313",
+       "scripts/addons/animation_animall/__init__.py:318",
+       "scripts/addons/animation_animall/__init__.py:328"),
+      ()),
+     ("fr_FR", "Sommet %s",
+               (False, ())),
+    ),
+    (("*", "Edge %s"),
+     (("scripts/addons/animation_animall/__init__.py:360",
+       "scripts/addons/animation_animall/__init__.py:333",
+       "scripts/addons/animation_animall/__init__.py:338"),
+      ()),
+     ("fr_FR", "Arête %s",
+               (False, ())),
+    ),
+    (("*", "Point %s"),
+     (("scripts/addons/animation_animall/__init__.py:265",),
+      ()),
+     ("fr_FR", "Point %s",
+               (False, ())),
+    ),
+    (("*", "Spline %s"),
+     (("scripts/addons/animation_animall/__init__.py:273",),
+      ()),
+     ("fr_FR", "Spline %s",
+               (False, ())),
+    ),
+    (("*", "Face %s"),
+     (("scripts/addons/animation_animall/__init__.py:343",
+       "scripts/addons/animation_animall/__init__.py:362"),
+      ()),
+     ("fr_FR", "Face %s",
+               (False, ())),
+    ),
+    (("*", "%s Point %s"),
+     (("scripts/addons/animation_animall/__init__.py:260",),
+      ()),
+     ("fr_FR", "%s Point %s",
+               (False, ())),
+    ),
+    (("*", "Loop %s"),
+     (("scripts/addons/animation_animall/__init__.py:364",),
+      ()),
+     ("fr_FR", "Boucle %s",
+               (False, ())),
+    ),
+    (("*", "UV layer %s"),
+     (("scripts/addons/animation_animall/__init__.py:379",),
+      ()),
+     ("fr_FR", "Calque UV %s",
+               (False, ())),
+    ),
+    (("*", "%s Vertex %s"),
+     (("scripts/addons/animation_animall/__init__.py:386",),
+      ()),
+     ("fr_FR", "%s Sommet %s",
+               (False, ())),
+    ),
+    (("*", "Spline %s CV %s"),
+     (("scripts/addons/animation_animall/__init__.py:283",
+       "scripts/addons/animation_animall/__init__.py:284",
+       "scripts/addons/animation_animall/__init__.py:285",
+       "scripts/addons/animation_animall/__init__.py:288",
+       "scripts/addons/animation_animall/__init__.py:291",
+       "scripts/addons/animation_animall/__init__.py:297",
+       "scripts/addons/animation_animall/__init__.py:300",
+       "scripts/addons/animation_animall/__init__.py:303"),
+      ()),
+     ("fr_FR", "Spline %s Point %s",
+               (False, ())),
+    ),
+    (("*", "%s Spline %s CV %s"),
+     (("scripts/addons/animation_animall/__init__.py:402",
+       "scripts/addons/animation_animall/__init__.py:403",
+       "scripts/addons/animation_animall/__init__.py:404",
+       "scripts/addons/animation_animall/__init__.py:405",
+       "scripts/addons/animation_animall/__init__.py:406",
+       "scripts/addons/animation_animall/__init__.py:414",
+       "scripts/addons/animation_animall/__init__.py:415",
+       "scripts/addons/animation_animall/__init__.py:416"),
+      ()),
+     ("fr_FR", "%s Spline %s Point %s",
+               (False, ())),
+    ),
+    (("*", "3D View > Toolbox > Animation tab > AnimAll"),
+     (("Add-on AnimAll info: location",),
+      ()),
+     ("fr_FR", "Vue 3D > Panneau N > Onglet Animer > AnimAll",
+               (False, ())),
+    ),
+    (("*", "Allows animation of mesh, lattice, curve and surface data"),
+     (("Add-on AnimAll info: description",),
+      ()),
+     ("fr_FR", "Permet d’animer les données de maillages, de lattices, de courbes et de surfaces",
+               (False, ())),
+    ),
 )
 
 translations_dict = {}