From 6fb43c4b04b5073c6dd7b3ef88f4cee61709ce7e Mon Sep 17 00:00:00 2001 From: Damien Picard Date: Thu, 30 Jun 2022 19:06:54 +0200 Subject: Animall: add French translations --- animation_animall/__init__.py | 38 +++--- animation_animall/translations.py | 250 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 264 insertions(+), 24 deletions(-) create mode 100644 animation_animall/translations.py diff --git a/animation_animall/__init__.py b/animation_animall/__init__.py index 944f4a2f..1ff7bc69 100644 --- a/animation_animall/__init__.py +++ b/animation_animall/__init__.py @@ -13,16 +13,11 @@ bl_info = { } import bpy -from bpy.types import ( - Operator, - Panel, - AddonPreferences, - ) -from bpy.props import ( - BoolProperty, - StringProperty, - ) +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 . import translations # Property Definitions @@ -210,7 +205,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='Maybe set "%s" to 1.0?' % shape_key.name, icon="INFO") + col.label(text=pgettext_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") @@ -658,28 +653,23 @@ class AnimallAddonPreferences(AddonPreferences): col.label(text="Tab Category:") col.prop(self, "category", text="") +register_classes, unregister_classes = bpy.utils.register_classes_factory( + (AnimallProperties, VIEW3D_PT_animall, ANIM_OT_insert_keyframe_animall, + ANIM_OT_delete_keyframe_animall, ANIM_OT_clear_animation_animall, + ANIM_OT_update_vertex_color_animation_animall, AnimallAddonPreferences)) def register(): - bpy.utils.register_class(AnimallProperties) + register_classes() bpy.types.Scene.animall_properties = bpy.props.PointerProperty(type=AnimallProperties) - bpy.utils.register_class(VIEW3D_PT_animall) - bpy.utils.register_class(ANIM_OT_insert_keyframe_animall) - bpy.utils.register_class(ANIM_OT_delete_keyframe_animall) - bpy.utils.register_class(ANIM_OT_clear_animation_animall) - bpy.utils.register_class(ANIM_OT_update_vertex_color_animation_animall) - bpy.utils.register_class(AnimallAddonPreferences) update_panel(None, bpy.context) + bpy.app.translations.register(__name__, translations.translations_dict) def unregister(): del bpy.types.Scene.animall_properties - bpy.utils.unregister_class(AnimallProperties) - bpy.utils.unregister_class(VIEW3D_PT_animall) - bpy.utils.unregister_class(ANIM_OT_insert_keyframe_animall) - bpy.utils.unregister_class(ANIM_OT_delete_keyframe_animall) - bpy.utils.unregister_class(ANIM_OT_clear_animation_animall) - bpy.utils.unregister_class(ANIM_OT_update_vertex_color_animation_animall) - bpy.utils.unregister_class(AnimallAddonPreferences) + unregister_classes() + + bpy.app.translations.unregister(__name__) if __name__ == "__main__": register() diff --git a/animation_animall/translations.py b/animation_animall/translations.py new file mode 100644 index 00000000..9ced1807 --- /dev/null +++ b/animation_animall/translations.py @@ -0,0 +1,250 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + +# Tuple of tuples: +# ((msgctxt, msgid), (sources, gen_comments), (lang, translation, (is_fuzzy, comments)), ...) +translations_tuple = ( + (("*", ""), + ((), ()), + ("fr_FR", "Project-Id-Version: AnimAll 0.9.6 (0)\nReport-Msgid-Bugs-To: \nPOT-Creation-Date: 2022-06-24 00:41:10.347798\nPO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\nLast-Translator: FULL NAME \nLanguage-Team: LANGUAGE \nLanguage: __POT__\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit", + (False, + ("Blender's translation file (po format).", + "Copyright (C) 2022 The Blender Foundation.", + "This file is distributed under the same license as the Blender package.", + "Damien Picard , 2022."))), + ), + (("*", "Tab Category"), + (("bpy.types.AnimallAddonPreferences.category",), + ()), + ("fr_FR", "Catégorie d’onglet", + (False, ())), + ), + (("*", "Choose a name for the category of the panel"), + (("bpy.types.AnimallAddonPreferences.category",), + ()), + ("fr_FR", "Choisir un nom pour la catégorie du panneau", + (False, ())), + ), + (("Operator", "Clear Animation"), + (("bpy.types.ANIM_OT_clear_animation_animall",), + ()), + ("fr_FR", "Effacer l’animation", + (False, ())), + ), + (("*", "Delete all keyframes for this object\nIf in a specific case it doesn't work\ntry to delete the keys manually"), + (("bpy.types.ANIM_OT_clear_animation_animall",), + ()), + ("fr_FR", "Supprimer toutes les images clés pour cet objet.\n" + "En cas d’échec, essayez de les supprimer manuellement", + (False, ())), + ), + (("*", "Insert a Keyframe"), + (("bpy.types.ANIM_OT_insert_keyframe_animall",), + ()), + ("fr_FR", "Insérer une image clé", + (False, ())), + ), + (("Operator", "Delete Key"), + (("bpy.types.ANIM_OT_delete_keyframe_animall",), + ()), + ("fr_FR", "Supprimer image clé", + (False, ())), + ), + (("*", "Delete a Keyframe"), + (("bpy.types.ANIM_OT_delete_keyframe_animall",), + ()), + ("fr_FR", "Supprimer une image clé", + (False, ())), + ), + (("*", "Animate"), + (("bpy.types.VIEW3D_PT_animall",), + ()), + ("fr_FR", "Animer", + (False, ())), + ), + (("*", "Insert keyframes on active attribute values"), + (("bpy.types.AnimallProperties.key_attribute",), + ()), + ("fr_FR", "Insérer des clés sur l’attribut actif", + (False, ())), + ), + (("*", "Insert keyframes on edge bevel weight"), + (("bpy.types.AnimallProperties.key_edge_bevel",), + ()), + ("fr_FR", "Insérer des clés sur les poids de biseau d’arête", + (False, ())), + ), + (("*", "Insert keyframes on edge creases"), + (("bpy.types.AnimallProperties.key_edge_crease",), + ()), + ("fr_FR", "Insérer des clés sur les plis d’arête", + (False, ())), + ), + (("*", "Insert keyframes on face material indices"), + (("bpy.types.AnimallProperties.key_material_index",), + ()), + ("fr_FR", "Insérer des clés sur les indices de matériaux", + (False, ())), + ), + (("*", "Insert keyframes on point locations"), + (("bpy.types.AnimallProperties.key_point_location",), + ()), + ("fr_FR", "Insérer des clés sur les positions des points", + (False, ())), + ), + (("*", "Insert keyframes on point radius (Shrink/Fatten)"), + (("bpy.types.AnimallProperties.key_radius",), + ()), + ("fr_FR", "Insérer des clés sur le rayon de rayon de point (épaisseur de la courbe)", + (False, ())), + ), + (("*", "Key Selected Only"), + (("bpy.types.AnimallProperties.key_selected",), + ()), + ("fr_FR", "Sélection uniquement", + (False, ())), + ), + (("*", "Insert keyframes only on selected elements"), + (("bpy.types.AnimallProperties.key_selected",), + ()), + ("fr_FR", "Insérer des images clés seulement sur les éléments sélectionnés", + (False, ())), + ), + (("*", "Insert keyframes on active Shape Key layer"), + (("bpy.types.AnimallProperties.key_shape_key",), + ()), + ("fr_FR", "Insérer des clés sur le calque de clé de forme actif", + (False, ())), + ), + (("*", "Insert keyframes on point tilt"), + (("bpy.types.AnimallProperties.key_tilt",), + ()), + ("fr_FR", "Insérer des clés sur l’inclinaison des points", + (False, ())), + ), + (("*", "Insert keyframes on active UV coordinates"), + (("bpy.types.AnimallProperties.key_uvs",), + ()), + ("fr_FR", "Insérer des clés sur les coordonnées UV actives", + (False, ())), + ), + (("*", "Insert keyframes on vertex bevel weight"), + (("bpy.types.AnimallProperties.key_vertex_bevel",), + ()), + ("fr_FR", "Insérer des clés sur les poids de biseau des sommets", + (False, ())), + ), + (("*", "Insert keyframes on active vertex group values"), + (("bpy.types.AnimallProperties.key_vertex_group",), + ()), + ("fr_FR", "Insérer des clés sur les valeurs des groupes de sommets", + (False, ())), + ), + (("*", "AnimAll"), + (("scripts/addons/animation_animall.py:142",), + ()), + ("fr_FR", "", + (False, ())), + ), + (("*", "Key:"), + (("scripts/addons/animation_animall.py:150",), + ()), + ("fr_FR", "Insérer :", + (False, ())), + ), + (("*", "Tab Category:"), + (("scripts/addons/animation_animall.py:658",), + ()), + ("fr_FR", "Catégorie d’onglet", + (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"), + ()), + ("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, ())), + # ), + (("*", "\"Location\" and \"Shape Key\" are redundant?"), + (("scripts/addons/animation_animall.py:222",), + ()), + ("fr_FR", "\"Position\" et \"Clé de forme\" sont redondants ?", + (False, ())), + ), + (("*", "Splines"), + (("scripts/addons/animation_animall.py:197",), + ()), + ("fr_FR", "", + (False, ())), + ), + (("*", "Maybe set \"%s\" to 1.0?"), + (("scripts/addons/animation_animall.py:213",), + ()), + ("fr_FR", "Essayez de mettre « %s » à 1.0 ?", + (False, ())), + ), + (("*", "Cannot key on Basis Shape"), + (("scripts/addons/animation_animall.py:216",), + ()), + ("fr_FR", "Impossible d’ajouter une clé sur la forme de base", + (False, ())), + ), + (("*", "No active Shape Key"), + (("scripts/addons/animation_animall.py:219",), + ()), + ("fr_FR", "Pas de clé de forme active", + (False, ())), + ), + (("*", "Clear Animation could not be performed"), + (("scripts/addons/animation_animall.py:586",), + ()), + ("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",), + ()), + ("fr_FR", "L’objet contient des couleurs de sommets à l’ancien format. Veuillez les mettre à jour", + (False, ())), + ), +) + +translations_dict = {} +for msg in translations_tuple: + key = msg[0] + for lang, trans, (is_fuzzy, comments) in msg[2:]: + if trans and not is_fuzzy: + translations_dict.setdefault(lang, {})[key] = trans -- cgit v1.2.3