[Bf-blender-cvs] [aa53eca6b59] blender-v3.3-release: I18n: make several parts of the UI translatable

Damien Picard noreply at git.blender.org
Thu Aug 4 17:05:49 CEST 2022


Commit: aa53eca6b5984f94b8ab151492355d448abf7d86
Author: Damien Picard
Date:   Thu Aug 4 16:13:18 2022 +0200
Branches: blender-v3.3-release
https://developer.blender.org/rBaa53eca6b5984f94b8ab151492355d448abf7d86

I18n: make several parts of the UI translatable

- batch rename
- keyframe settings
- tool name in Tool properties header
- tool name in Tool properties Drag (fake) enum

- new file templates
- new preset
- new text datablock
- new collection datablock
- new geometry nodes (modifier and node group)
- new grease pencil data (layers and materials)

Ref. T43295

Reviewed By: mont29

Differential Revision: https://developer.blender.org/D15533

===================================================================

M	release/scripts/startup/bl_operators/geometry_nodes.py
M	release/scripts/startup/bl_operators/presets.py
M	release/scripts/startup/bl_operators/wm.py
M	release/scripts/startup/bl_ui/properties_scene.py
M	release/scripts/startup/bl_ui/space_toolsystem_common.py
M	release/scripts/startup/bl_ui/space_topbar.py
M	source/blender/blenkernel/intern/collection.c
M	source/blender/blenkernel/intern/gpencil.c
M	source/blender/blenloader/intern/versioning_defaults.c
M	source/blender/editors/gpencil/gpencil_add_blank.c
M	source/blender/editors/gpencil/gpencil_add_lineart.c
M	source/blender/editors/gpencil/gpencil_add_monkey.c
M	source/blender/editors/gpencil/gpencil_add_stroke.c
M	source/blender/editors/space_text/text_ops.c

===================================================================

diff --git a/release/scripts/startup/bl_operators/geometry_nodes.py b/release/scripts/startup/bl_operators/geometry_nodes.py
index ea4d40bb778..1f573543e7b 100644
--- a/release/scripts/startup/bl_operators/geometry_nodes.py
+++ b/release/scripts/startup/bl_operators/geometry_nodes.py
@@ -3,9 +3,11 @@
 import bpy
 from bpy.types import Operator
 
+from bpy.app.translations import pgettext_data as data_
+
 
 def geometry_node_group_empty_new():
-    group = bpy.data.node_groups.new("Geometry Nodes", 'GeometryNodeTree')
+    group = bpy.data.node_groups.new(data_("Geometry Nodes"), 'GeometryNodeTree')
     group.inputs.new('NodeSocketGeometry', "Geometry")
     group.outputs.new('NodeSocketGeometry', "Geometry")
     input_node = group.nodes.new('NodeGroupInput')
@@ -45,7 +47,7 @@ class NewGeometryNodesModifier(Operator):
         return geometry_modifier_poll(context)
 
     def execute(self, context):
-        modifier = context.object.modifiers.new("GeometryNodes", "NODES")
+        modifier = context.object.modifiers.new(data_("GeometryNodes"), "NODES")
 
         if not modifier:
             return {'CANCELLED'}
diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py
index cde4348977f..6bfce948412 100644
--- a/release/scripts/startup/bl_operators/presets.py
+++ b/release/scripts/startup/bl_operators/presets.py
@@ -11,11 +11,13 @@ from bpy.props import (
     StringProperty,
 )
 
+from bpy.app.translations import pgettext_data as data_
+
 # For preset popover menu
 WindowManager.preset_name = StringProperty(
     name="Preset Name",
     description="Name for new preset",
-    default="New Preset"
+    default=data_("New Preset")
 )
 
 
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index 3ab124bf4cf..7e7dbbc387e 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -2483,8 +2483,8 @@ class BatchRenameAction(bpy.types.PropertyGroup):
     )
 
     # Weak, add/remove as properties.
-    op_add: BoolProperty()
-    op_remove: BoolProperty()
+    op_add: BoolProperty(name="Add")
+    op_remove: BoolProperty(name="Remove")
 
 
 class WM_OT_batch_rename(Operator):
@@ -2570,7 +2570,7 @@ class WM_OT_batch_rename(Operator):
                     if only_selected else
                     scene.sequence_editor.sequences_all,
                     "name",
-                    "Strip(s)",
+                    iface_("Strip(s)"),
                 )
         elif space_type == 'NODE_EDITOR':
             data_type_test = 'NODE'
@@ -2582,7 +2582,7 @@ class WM_OT_batch_rename(Operator):
                     if only_selected else
                     list(space.node_tree.nodes),
                     "name",
-                    "Node(s)",
+                    iface_("Node(s)"),
                 )
         elif space_type == 'OUTLINER':
             data_type_test = 'COLLECTION'
@@ -2594,7 +2594,7 @@ class WM_OT_batch_rename(Operator):
                     if only_selected else
                     scene.collection.children_recursive,
                     "name",
-                    "Collection(s)",
+                    iface_("Collection(s)"),
                 )
         else:
             if mode == 'POSE' or (mode == 'WEIGHT_PAINT' and context.pose_object):
@@ -2607,7 +2607,7 @@ class WM_OT_batch_rename(Operator):
                         if only_selected else
                         [pbone.bone for ob in context.objects_in_mode_unique_data for pbone in ob.pose.bones],
                         "name",
-                        "Bone(s)",
+                        iface_("Bone(s)"),
                     )
             elif mode == 'EDIT_ARMATURE':
                 data_type_test = 'BONE'
@@ -2619,24 +2619,24 @@ class WM_OT_batch_rename(Operator):
                         if only_selected else
                         [ebone for ob in context.objects_in_mode_unique_data for ebone in ob.data.edit_bones],
                         "name",
-                        "Edit Bone(s)",
+                        iface_("Edit Bone(s)"),
                     )
 
         if check_context:
             return 'OBJECT'
 
         object_data_type_attrs_map = {
-            'MESH': ("meshes", "Mesh(es)", bpy.types.Mesh),
-            'CURVE': ("curves", "Curve(s)", bpy.types.Curve),
-            'META': ("metaballs", "Metaball(s)", bpy.types.MetaBall),
-            'VOLUME': ("volumes", "Volume(s)", bpy.types.Volume),
-            'GPENCIL': ("grease_pencils", "Grease Pencil(s)", bpy.types.GreasePencil),
-            'ARMATURE': ("armatures", "Armature(s)", bpy.types.Armature),
-            'LATTICE': ("lattices", "Lattice(s)", bpy.types.Lattice),
-            'LIGHT': ("lights", "Light(s)", bpy.types.Light),
-            'LIGHT_PROBE': ("light_probes", "Light Probe(s)", bpy.types.LightProbe),
-            'CAMERA': ("cameras", "Camera(s)", bpy.types.Camera),
-            'SPEAKER': ("speakers", "Speaker(s)", bpy.types.Speaker),
+            'MESH': ("meshes", iface_("Mesh(es)"), bpy.types.Mesh),
+            'CURVE': ("curves", iface_("Curve(s)"), bpy.types.Curve),
+            'META': ("metaballs", iface_("Metaball(s)"), bpy.types.MetaBall),
+            'VOLUME': ("volumes", iface_("Volume(s)"), bpy.types.Volume),
+            'GPENCIL': ("grease_pencils", iface_("Grease Pencil(s)"), bpy.types.GreasePencil),
+            'ARMATURE': ("armatures", iface_("Armature(s)"), bpy.types.Armature),
+            'LATTICE': ("lattices", iface_("Lattice(s)"), bpy.types.Lattice),
+            'LIGHT': ("lights", iface_("Light(s)"), bpy.types.Light),
+            'LIGHT_PROBE': ("light_probes", iface_("Light Probe(s)"), bpy.types.LightProbe),
+            'CAMERA': ("cameras", iface_("Camera(s)"), bpy.types.Camera),
+            'SPEAKER': ("speakers", iface_("Speaker(s)"), bpy.types.Speaker),
         }
 
         # Finish with space types.
@@ -2654,7 +2654,7 @@ class WM_OT_batch_rename(Operator):
                     if only_selected else
                     [id for id in bpy.data.objects if id.library is None],
                     "name",
-                    "Object(s)",
+                    iface_("Object(s)"),
                 )
             elif data_type == 'COLLECTION':
                 data = (
@@ -2669,7 +2669,7 @@ class WM_OT_batch_rename(Operator):
                     if only_selected else
                     [id for id in bpy.data.collections if id.library is None],
                     "name",
-                    "Collection(s)",
+                    iface_("Collection(s)"),
                 )
             elif data_type == 'MATERIAL':
                 data = (
@@ -2688,7 +2688,7 @@ class WM_OT_batch_rename(Operator):
                     if only_selected else
                     [id for id in bpy.data.materials if id.library is None],
                     "name",
-                    "Material(s)",
+                    iface_("Material(s)"),
                 )
             elif data_type in object_data_type_attrs_map.keys():
                 attr, descr, ty = object_data_type_attrs_map[data_type]
@@ -2913,7 +2913,7 @@ class WM_OT_batch_rename(Operator):
             row.prop(action, "op_remove", text="", icon='REMOVE')
             row.prop(action, "op_add", text="", icon='ADD')
 
-        layout.label(text="Rename %d %s" % (len(self._data[0]), self._data[2]))
+        layout.label(text=iface_("Rename %d %s") % (len(self._data[0]), self._data[2]))
 
     def check(self, context):
         changed = False
@@ -2974,7 +2974,7 @@ class WM_OT_batch_rename(Operator):
                 change_len += 1
             total_len += 1
 
-        self.report({'INFO'}, "Renamed %d of %d %s" % (change_len, total_len, descr))
+        self.report({'INFO'}, tip_("Renamed %d of %d %s") % (change_len, total_len, descr))
 
         return {'FINISHED'}
 
diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py
index 2e2d7fbe261..33aea4f4d77 100644
--- a/release/scripts/startup/bl_ui/properties_scene.py
+++ b/release/scripts/startup/bl_ui/properties_scene.py
@@ -13,6 +13,8 @@ from bl_ui.properties_physics_common import (
     effector_weights_ui,
 )
 
+from bpy.app.translations import pgettext_iface as iface_
+
 
 class SCENE_UL_keying_set_paths(UIList):
     def draw_item(self, _context, layout, _data, item, icon, _active_data, _active_propname, _index):
@@ -82,17 +84,17 @@ class SceneKeyingSetsPanel:
     @staticmethod
     def draw_keyframing_settings(context, layout, ks, ksp):
         SceneKeyingSetsPanel._draw_keyframing_setting(
-            context, layout, ks, ksp, "Needed",
+            context, layout, ks, ksp, iface_("Needed"),
             "use_insertkey_override_needed", "use_insertkey_needed",
             userpref_fallback="use_keyframe_insert_needed",
         )
         SceneKeyingSetsPanel._draw_keyframing_setting(
-            context, layout, ks, ksp, "Visual",
+            context, layout, ks, ksp, iface_("Visual"),
             "use_insertkey_override_visual", "use_insertkey_visual",
             userpref_fallback="use_visual_keying",
         )
         SceneKeyingSetsPanel._draw_keyframing_setting(
-            context, layout, ks, ksp, "XYZ to RGB",
+            context, layout, ks, ksp, iface_("XYZ to RGB"),
             "use_insertkey_override_xyz_to_rgb", "use_insertkey_xyz_to_rgb",
         )
 
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_common.py b/release/scripts/startup/bl_ui/space_toolsystem_common.py
index 0c796b899af..39dfdd0eecb 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_common.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_common.py
@@ -5,6 +5,7 @@ from bpy.types import (
 )
 
 from bpy.app.translations import pgettext_tip as tip_
+from bpy.app.translations import pgettext_iface as iface_
 
 __all__ = (
     "ToolDef",
@@ -794,7 +795,7 @@ class ToolSelectPanelHelper:
         # Note: we could show 'item.text' here but it makes the layout jitter when switching tools.
         # Add some spacing since the icon is currently assuming regular small icon size.
         if show_tool_icon_always:
-    

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list