diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index a162b321853..05f84346d6d 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -3,6 +3,7 @@ from __future__ import annotations import bpy +from bpy.app.translations import contexts as i18n_contexts from bpy_extras.node_utils import find_node_input from bl_ui.utils import PresetPanel @@ -318,7 +319,7 @@ class CYCLES_RENDER_PT_sampling_path_guiding(CyclesButtonsPanel, Panel): col = layout.column(align=True) col.prop(cscene, "use_surface_guiding", text="Surface") - col.prop(cscene, "use_volume_guiding", text="Volume") + col.prop(cscene, "use_volume_guiding", text="Volume", text_ctxt=i18n_contexts.id_id) class CYCLES_RENDER_PT_sampling_path_guiding_debug(CyclesDebugButtonsPanel, Panel): @@ -530,7 +531,7 @@ class CYCLES_RENDER_PT_light_paths_max_bounces(CyclesButtonsPanel, Panel): col.prop(cscene, "diffuse_bounces", text="Diffuse") col.prop(cscene, "glossy_bounces", text="Glossy") col.prop(cscene, "transmission_bounces", text="Transmission") - col.prop(cscene, "volume_bounces", text="Volume") + col.prop(cscene, "volume_bounces", text="Volume", text_ctxt=i18n_contexts.id_id) col = layout.column(align=True) col.prop(cscene, "transparent_max_bounces", text="Transparent") @@ -980,7 +981,7 @@ class CYCLES_RENDER_PT_passes_light(CyclesButtonsPanel, Panel): col.prop(view_layer, "use_pass_transmission_indirect", text="Indirect") col.prop(view_layer, "use_pass_transmission_color", text="Color") - col = layout.column(heading="Volume", align=True) + col = layout.column(heading="Volume", heading_ctxt=i18n_contexts.id_id, align=True) col.prop(cycles_view_layer, "use_pass_volume_direct", text="Direct") col.prop(cycles_view_layer, "use_pass_volume_indirect", text="Indirect") @@ -1577,6 +1578,7 @@ class CYCLES_WORLD_PT_surface(CyclesButtonsPanel, Panel): class CYCLES_WORLD_PT_volume(CyclesButtonsPanel, Panel): bl_label = "Volume" + bl_translation_context = i18n_contexts.id_id bl_context = "world" bl_options = {'DEFAULT_CLOSED'} @@ -1696,6 +1698,7 @@ class CYCLES_WORLD_PT_settings_surface(CyclesButtonsPanel, Panel): class CYCLES_WORLD_PT_settings_volume(CyclesButtonsPanel, Panel): bl_label = "Volume" + bl_translation_context = i18n_contexts.id_id bl_parent_id = "CYCLES_WORLD_PT_settings" bl_context = "world" @@ -1791,6 +1794,7 @@ class CYCLES_MATERIAL_PT_surface(CyclesButtonsPanel, Panel): class CYCLES_MATERIAL_PT_volume(CyclesButtonsPanel, Panel): bl_label = "Volume" + bl_translation_context = i18n_contexts.id_id bl_context = "material" bl_options = {'DEFAULT_CLOSED'} @@ -1874,6 +1878,7 @@ class CYCLES_MATERIAL_PT_settings_surface(CyclesButtonsPanel, Panel): class CYCLES_MATERIAL_PT_settings_volume(CyclesButtonsPanel, Panel): bl_label = "Volume" + bl_translation_context = i18n_contexts.id_id bl_parent_id = "CYCLES_MATERIAL_PT_settings" bl_context = "material" diff --git a/scripts/startup/bl_ui/node_add_menu_geometry.py b/scripts/startup/bl_ui/node_add_menu_geometry.py index f5407790067..bfe184cc5b0 100644 --- a/scripts/startup/bl_ui/node_add_menu_geometry.py +++ b/scripts/startup/bl_ui/node_add_menu_geometry.py @@ -592,6 +592,7 @@ class NODE_MT_category_GEO_VECTOR(Menu): class NODE_MT_category_GEO_VOLUME(Menu): bl_idname = "NODE_MT_category_GEO_VOLUME" bl_label = "Volume" + bl_translation_context = i18n_contexts.id_id def draw(self, context): layout = self.layout diff --git a/scripts/startup/bl_ui/properties_data_camera.py b/scripts/startup/bl_ui/properties_data_camera.py index 7043c24ace1..cf7c17cf12d 100644 --- a/scripts/startup/bl_ui/properties_data_camera.py +++ b/scripts/startup/bl_ui/properties_data_camera.py @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later import bpy from bpy.types import Panel +from bpy.app.translations import contexts as i18n_contexts from rna_prop_ui import PropertyPanel from bl_ui.utils import PresetPanel @@ -67,6 +68,7 @@ class DATA_PT_context_camera(CameraButtonsPanel, Panel): class DATA_PT_lens(CameraButtonsPanel, Panel): bl_label = "Lens" + bl_translation_context = i18n_contexts.id_camera COMPAT_ENGINES = { 'BLENDER_RENDER', 'BLENDER_EEVEE', diff --git a/scripts/startup/bl_ui/properties_data_empty.py b/scripts/startup/bl_ui/properties_data_empty.py index 8dd7f8312ae..b39ec38d301 100644 --- a/scripts/startup/bl_ui/properties_data_empty.py +++ b/scripts/startup/bl_ui/properties_data_empty.py @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later from bpy.types import Panel +from bpy.app.translations import contexts as i18n_contexts class DataButtonsPanel: @@ -15,6 +16,7 @@ class DataButtonsPanel: class DATA_PT_empty(DataButtonsPanel, Panel): bl_label = "Empty" + bl_translation_context = i18n_contexts.id_id def draw(self, context): layout = self.layout diff --git a/scripts/startup/bl_ui/properties_data_light.py b/scripts/startup/bl_ui/properties_data_light.py index 02e066161b6..c0874bc9662 100644 --- a/scripts/startup/bl_ui/properties_data_light.py +++ b/scripts/startup/bl_ui/properties_data_light.py @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later import bpy +from bpy.app.translations import contexts as i18n_contexts from bpy.types import Panel from rna_prop_ui import PropertyPanel @@ -89,7 +90,7 @@ class DATA_PT_EEVEE_light(DataButtonsPanel, Panel): col.prop(light, "diffuse_factor", text="Diffuse") col.prop(light, "specular_factor", text="Specular") - col.prop(light, "volume_factor", text="Volume") + col.prop(light, "volume_factor", text="Volume", text_ctxt=i18n_contexts.id_id) col.separator() diff --git a/scripts/startup/bl_ui/properties_material.py b/scripts/startup/bl_ui/properties_material.py index efe67a0c294..e9795ee8808 100644 --- a/scripts/startup/bl_ui/properties_material.py +++ b/scripts/startup/bl_ui/properties_material.py @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later import bpy from bpy.types import Menu, Panel, UIList +from bpy.app.translations import contexts as i18n_contexts from rna_prop_ui import PropertyPanel from bpy_extras.node_utils import find_node_input @@ -176,6 +177,7 @@ class EEVEE_MATERIAL_PT_surface(MaterialButtonsPanel, Panel): class EEVEE_MATERIAL_PT_volume(MaterialButtonsPanel, Panel): bl_label = "Volume" + bl_translation_context = i18n_contexts.id_id bl_context = "material" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_EEVEE'} diff --git a/scripts/startup/bl_ui/properties_output.py b/scripts/startup/bl_ui/properties_output.py index 9d6e527dbd8..519b685d6d9 100644 --- a/scripts/startup/bl_ui/properties_output.py +++ b/scripts/startup/bl_ui/properties_output.py @@ -164,8 +164,8 @@ class RENDER_PT_time_stretching(RenderOutputButtonsPanel, Panel): rd = context.scene.render col = layout.column(align=True) - col.prop(rd, "frame_map_old", text="Old") - col.prop(rd, "frame_map_new", text="New") + col.prop(rd, "frame_map_old", text="Old", text_ctxt=i18n_contexts.time) + col.prop(rd, "frame_map_new", text="New", text_ctxt=i18n_contexts.time) class RENDER_PT_post_processing(RenderOutputButtonsPanel, Panel): diff --git a/scripts/startup/bl_ui/properties_view_layer.py b/scripts/startup/bl_ui/properties_view_layer.py index 50579fe2da2..f519f6f20d2 100644 --- a/scripts/startup/bl_ui/properties_view_layer.py +++ b/scripts/startup/bl_ui/properties_view_layer.py @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later from bpy.types import Menu, Panel, UIList, ViewLayer +from bpy.app.translations import contexts as i18n_contexts from rna_prop_ui import PropertyPanel @@ -140,7 +141,7 @@ class VIEWLAYER_PT_eevee_layer_passes_light(ViewLayerButtonsPanel, Panel): col.prop(view_layer, "use_pass_glossy_direct", text="Light") col.prop(view_layer, "use_pass_glossy_color", text="Color") - col = layout.column(heading="Volume", align=True) + col = layout.column(heading="Volume", heading_ctxt=i18n_contexts.id_id, align=True) col.prop(view_layer_eevee, "use_pass_volume_direct", text="Light") col = layout.column(heading="Other", align=True) diff --git a/scripts/startup/bl_ui/properties_world.py b/scripts/startup/bl_ui/properties_world.py index 691666f346a..1fc25ec6101 100644 --- a/scripts/startup/bl_ui/properties_world.py +++ b/scripts/startup/bl_ui/properties_world.py @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later import bpy from bpy.types import Panel +from bpy.app.translations import contexts as i18n_contexts from rna_prop_ui import PropertyPanel from bpy_extras.node_utils import find_node_input @@ -115,6 +116,7 @@ class EEVEE_WORLD_PT_surface(WorldButtonsPanel, Panel): class EEVEE_WORLD_PT_volume(WorldButtonsPanel, Panel): bl_label = "Volume" + bl_translation_context = i18n_contexts.id_id bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_EEVEE'} diff --git a/scripts/startup/bl_ui/space_clip.py b/scripts/startup/bl_ui/space_clip.py index b137358d1de..c185802f8ae 100644 --- a/scripts/startup/bl_ui/space_clip.py +++ b/scripts/startup/bl_ui/space_clip.py @@ -890,6 +890,7 @@ class CLIP_PT_tracking_lens(Panel): bl_region_type = 'UI' bl_category = "Track" bl_label = "Lens" + bl_translation_context = i18n_contexts.id_camera bl_parent_id = 'CLIP_PT_tracking_camera' bl_options = {'DEFAULT_CLOSED'} diff --git a/scripts/startup/bl_ui/space_sequencer.py b/scripts/startup/bl_ui/space_sequencer.py index 303030050db..0f5696ed0d3 100644 --- a/scripts/startup/bl_ui/space_sequencer.py +++ b/scripts/startup/bl_ui/space_sequencer.py @@ -1762,7 +1762,7 @@ class SEQUENCER_PT_scene(SequencerButtonsPanel, Panel): sub.use_property_decorate = True split = sub.split(factor=0.4, align=True) split.alignment = 'RIGHT' - split.label(text="Volume") + split.label(text="Volume", text_ctxt=i18n_contexts.id_sound) split.prop(scene, "audio_volume", text="") sub.use_property_decorate = False @@ -1993,7 +1993,7 @@ class SEQUENCER_PT_adjust_sound(SequencerButtonsPanel, Panel): split = col.split(factor=0.4) split.alignment = 'RIGHT' - split.label(text="Volume") + split.label(text="Volume", text_ctxt=i18n_contexts.id_sound) split.prop(strip, "volume", text="") audio_channels = context.scene.render.ffmpeg.audio_channels diff --git a/scripts/startup/bl_ui/space_userpref.py b/scripts/startup/bl_ui/space_userpref.py index 8d1fa237754..f13f8f1637f 100644 --- a/scripts/startup/bl_ui/space_userpref.py +++ b/scripts/startup/bl_ui/space_userpref.py @@ -418,7 +418,7 @@ class USERPREF_PT_edit_objects_duplicate_data(EditingPanel, CenterAlignMixIn, Pa col.prop(edit, "use_duplicate_surface", text="Surface") col.prop(edit, "use_duplicate_text", text="Text") # col.prop(edit, "use_duplicate_texture", text="Texture") # Not implemented. - col.prop(edit, "use_duplicate_volume", text="Volume") + col.prop(edit, "use_duplicate_volume", text="Volume", text_ctxt=i18n_contexts.id_id) class USERPREF_PT_edit_cursor(EditingPanel, CenterAlignMixIn, Panel): diff --git a/scripts/startup/bl_ui/space_view3d.py b/scripts/startup/bl_ui/space_view3d.py index e55490282e0..2d911dc1432 100644 --- a/scripts/startup/bl_ui/space_view3d.py +++ b/scripts/startup/bl_ui/space_view3d.py @@ -2310,7 +2310,7 @@ class VIEW3D_MT_add(Menu): layout.operator("object.text_add", text="Text", icon='OUTLINER_OB_FONT') if context.preferences.experimental.use_new_point_cloud_type: layout.operator("object.pointcloud_add", text="Point Cloud", icon='OUTLINER_OB_POINTCLOUD') - layout.menu("VIEW3D_MT_volume_add", text="Volume", icon='OUTLINER_OB_VOLUME') + layout.menu("VIEW3D_MT_volume_add", text="Volume", text_ctxt=i18n_contexts.id_id, icon='OUTLINER_OB_VOLUME') layout.operator_menu_enum("object.gpencil_add", "type", text="Grease Pencil", icon='OUTLINER_OB_GREASEPENCIL') layout.separator() diff --git a/source/blender/blenkernel/intern/object.cc b/source/blender/blenkernel/intern/object.cc index 7eca790e36f..ace45ee4e95 100644 --- a/source/blender/blenkernel/intern/object.cc +++ b/source/blender/blenkernel/intern/object.cc @@ -2131,16 +2131,16 @@ static const char *get_obdata_defname(int type) case OB_POINTCLOUD: return DATA_("PointCloud"); case OB_VOLUME: - return DATA_("Volume"); + return CTX_DATA_(BLT_I18NCONTEXT_ID_ID, "Volume"); case OB_EMPTY: - return DATA_("Empty"); + return CTX_DATA_(BLT_I18NCONTEXT_ID_ID, "Empty"); case OB_GPENCIL_LEGACY: return DATA_("GPencil"); case OB_LIGHTPROBE: return DATA_("LightProbe"); default: CLOG_ERROR(&LOG, "Internal error, bad type: %d", type); - return DATA_("Empty"); + return CTX_DATA_(BLT_I18NCONTEXT_ID_ID, "Empty"); } } diff --git a/source/blender/blentranslation/BLT_translation.h b/source/blender/blentranslation/BLT_translation.h index 16c7bb23981..fe4b3ab09a0 100644 --- a/source/blender/blentranslation/BLT_translation.h +++ b/source/blender/blentranslation/BLT_translation.h @@ -82,55 +82,55 @@ const char *BLT_translate_do_new_dataname(const char *msgctxt, const char *msgid #define BLT_I18NCONTEXT_ID_ACTION "Action" #define BLT_I18NCONTEXT_ID_ARMATURE "Armature" #define BLT_I18NCONTEXT_ID_BRUSH "Brush" -#define BLT_I18NCONTEXT_ID_CAMERA "Camera" #define BLT_I18NCONTEXT_ID_CACHEFILE "CacheFile" +#define BLT_I18NCONTEXT_ID_CAMERA "Camera" #define BLT_I18NCONTEXT_ID_COLLECTION "Collection" +#define BLT_I18NCONTEXT_ID_CURVES "Curves" #define BLT_I18NCONTEXT_ID_CURVE_LEGACY "Curve" #define BLT_I18NCONTEXT_ID_FREESTYLELINESTYLE "FreestyleLineStyle" #define BLT_I18NCONTEXT_ID_GPENCIL "GPencil" -#define BLT_I18NCONTEXT_ID_CURVES "Curves" #define BLT_I18NCONTEXT_ID_ID "ID" #define BLT_I18NCONTEXT_ID_IMAGE "Image" // #define BLT_I18NCONTEXT_ID_IPO "Ipo" /* DEPRECATED */ -#define BLT_I18NCONTEXT_ID_SHAPEKEY "Key" -#define BLT_I18NCONTEXT_ID_SIMULATION "Simulation" -#define BLT_I18NCONTEXT_ID_LIGHT "Light" -#define BLT_I18NCONTEXT_ID_LIBRARY "Library" #define BLT_I18NCONTEXT_ID_LATTICE "Lattice" +#define BLT_I18NCONTEXT_ID_LIBRARY "Library" +#define BLT_I18NCONTEXT_ID_LIGHT "Light" +#define BLT_I18NCONTEXT_ID_LIGHTPROBE "LightProbe" +#define BLT_I18NCONTEXT_ID_MASK "Mask" #define BLT_I18NCONTEXT_ID_MATERIAL "Material" -#define BLT_I18NCONTEXT_ID_METABALL "Metaball" #define BLT_I18NCONTEXT_ID_MESH "Mesh" +#define BLT_I18NCONTEXT_ID_METABALL "Metaball" +#define BLT_I18NCONTEXT_ID_MOVIECLIP "MovieClip" #define BLT_I18NCONTEXT_ID_NODETREE "NodeTree" #define BLT_I18NCONTEXT_ID_OBJECT "Object" #define BLT_I18NCONTEXT_ID_PAINTCURVE "PaintCurve" #define BLT_I18NCONTEXT_ID_PALETTE "Palette" #define BLT_I18NCONTEXT_ID_PARTICLESETTINGS "ParticleSettings" #define BLT_I18NCONTEXT_ID_POINTCLOUD "PointCloud" -#define BLT_I18NCONTEXT_ID_LIGHTPROBE "LightProbe" #define BLT_I18NCONTEXT_ID_SCENE "Scene" #define BLT_I18NCONTEXT_ID_SCREEN "Screen" #define BLT_I18NCONTEXT_ID_SEQUENCE "Sequence" -#define BLT_I18NCONTEXT_ID_SPEAKER "Speaker" +#define BLT_I18NCONTEXT_ID_SHAPEKEY "Key" +#define BLT_I18NCONTEXT_ID_SIMULATION "Simulation" #define BLT_I18NCONTEXT_ID_SOUND "Sound" -#define BLT_I18NCONTEXT_ID_TEXTURE "Texture" +#define BLT_I18NCONTEXT_ID_SPEAKER "Speaker" #define BLT_I18NCONTEXT_ID_TEXT "Text" +#define BLT_I18NCONTEXT_ID_TEXTURE "Texture" #define BLT_I18NCONTEXT_ID_VFONT "VFont" #define BLT_I18NCONTEXT_ID_VOLUME "Volume" -#define BLT_I18NCONTEXT_ID_WORLD "World" -#define BLT_I18NCONTEXT_ID_WORKSPACE "WorkSpace" #define BLT_I18NCONTEXT_ID_WINDOWMANAGER "WindowManager" -#define BLT_I18NCONTEXT_ID_MOVIECLIP "MovieClip" -#define BLT_I18NCONTEXT_ID_MASK "Mask" +#define BLT_I18NCONTEXT_ID_WORKSPACE "WorkSpace" +#define BLT_I18NCONTEXT_ID_WORLD "World" /* Editors-types contexts. */ -#define BLT_I18NCONTEXT_EDITOR_VIEW3D "View3D" #define BLT_I18NCONTEXT_EDITOR_FILEBROWSER "File browser" +#define BLT_I18NCONTEXT_EDITOR_VIEW3D "View3D" /* Generic contexts. */ -#define BLT_I18NCONTEXT_VIRTUAL_REALITY "Virtual reality" -#define BLT_I18NCONTEXT_CONSTRAINT "Constraint" -#define BLT_I18NCONTEXT_COLOR "Color" #define BLT_I18NCONTEXT_AMOUNT "Amount" +#define BLT_I18NCONTEXT_COLOR "Color" +#define BLT_I18NCONTEXT_CONSTRAINT "Constraint" +#define BLT_I18NCONTEXT_TIME "Time" #define BLT_I18NCONTEXT_UNIT "Unit" /* Helper for bpy.app.i18n object... */ @@ -155,25 +155,25 @@ typedef struct { BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_ACTION, "id_action"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_ARMATURE, "id_armature"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_BRUSH, "id_brush"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_CAMERA, "id_camera"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_CACHEFILE, "id_cachefile"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_CAMERA, "id_camera"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_COLLECTION, "id_collection"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_CURVES, "id_curves"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_CURVE_LEGACY, "id_curve"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_FREESTYLELINESTYLE, "id_fs_linestyle"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_GPENCIL, "id_gpencil"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_CURVES, "id_curves"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_ID, "id_id"), \ BLT_I18NCONTEXTS_ITEM( \ BLT_I18NCONTEXT_ID_IMAGE, \ "id_image"), /* BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_IPO, "id_ipo"), */ \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SHAPEKEY, "id_shapekey"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LIGHT, "id_light"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LIBRARY, "id_library"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LATTICE, "id_lattice"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LIBRARY, "id_library"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LIGHT, "id_light"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LIGHTPROBE, "id_lightprobe"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_MASK, "id_mask"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_MATERIAL, "id_material"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_METABALL, "id_metaball"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_MESH, "id_mesh"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_METABALL, "id_metaball"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_MOVIECLIP, "id_movieclip"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_NODETREE, "id_nodetree"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_OBJECT, "id_object"), \ @@ -181,26 +181,26 @@ typedef struct { BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_PALETTE, "id_palette"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_PARTICLESETTINGS, "id_particlesettings"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_POINTCLOUD, "id_pointcloud"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_LIGHTPROBE, "id_lightprobe"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SCENE, "id_scene"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SCREEN, "id_screen"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SEQUENCE, "id_sequence"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SHAPEKEY, "id_shapekey"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SIMULATION, "id_simulation"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SPEAKER, "id_speaker"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SOUND, "id_sound"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_TEXTURE, "id_texture"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_SPEAKER, "id_speaker"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_TEXT, "id_text"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_TEXTURE, "id_texture"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_VFONT, "id_vfont"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_VOLUME, "id_volume"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_WORLD, "id_world"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_WORKSPACE, "id_workspace"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_WINDOWMANAGER, "id_windowmanager"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_EDITOR_VIEW3D, "editor_view3d"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_WORKSPACE, "id_workspace"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_ID_WORLD, "id_world"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_EDITOR_FILEBROWSER, "editor_filebrowser"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_VIRTUAL_REALITY, "virtual_reality"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_CONSTRAINT, "constraint"), \ - BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_COLOR, "color"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_EDITOR_VIEW3D, "editor_view3d"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_AMOUNT, "amount"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_COLOR, "color"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_CONSTRAINT, "constraint"), \ + BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_TIME, "time"), \ BLT_I18NCONTEXTS_ITEM(BLT_I18NCONTEXT_UNIT, "unit"), \ { \ NULL, NULL, NULL \ diff --git a/source/blender/editors/space_node/node_draw.cc b/source/blender/editors/space_node/node_draw.cc index d4989f42d93..3192db22e07 100644 --- a/source/blender/editors/space_node/node_draw.cc +++ b/source/blender/editors/space_node/node_draw.cc @@ -1052,7 +1052,7 @@ static void create_inspection_string_for_geometry_socket(std::stringstream &ss, break; } case GEO_COMPONENT_TYPE_VOLUME: { - ss << TIP_("Volume"); + ss << CTX_TIP_(BLT_I18NCONTEXT_ID_ID, "Volume"); break; } case GEO_COMPONENT_TYPE_EDIT: { diff --git a/source/blender/makesrna/intern/rna_text.c b/source/blender/makesrna/intern/rna_text.c index 0aea8b63432..3db5d949279 100644 --- a/source/blender/makesrna/intern/rna_text.c +++ b/source/blender/makesrna/intern/rna_text.c @@ -215,6 +215,7 @@ static void rna_def_text(BlenderRNA *brna) prop = RNA_def_property(srna, "is_modified", PROP_BOOLEAN, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_boolean_funcs(prop, "rna_Text_modified_get", NULL); + RNA_def_property_translation_context(prop, BLT_I18NCONTEXT_ID_TEXT); RNA_def_property_ui_text( prop, "Modified", "Text file on disk is different than the one in memory"); diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index e24c975bfa3..e8b5697ba25 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2265,6 +2265,7 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna) prop = RNA_def_property(srna, "empty", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_array(prop, 3); RNA_def_property_ui_text(prop, "Empty", ""); + RNA_def_property_translation_context(prop, BLT_I18NCONTEXT_ID_ID); RNA_def_property_update(prop, 0, "rna_userdef_theme_update"); prop = RNA_def_property(srna, "light", PROP_FLOAT, PROP_COLOR_GAMMA); diff --git a/source/blender/modifiers/intern/MOD_mirror.cc b/source/blender/modifiers/intern/MOD_mirror.cc index 9f7e30f9be5..63a293e4e59 100644 --- a/source/blender/modifiers/intern/MOD_mirror.cc +++ b/source/blender/modifiers/intern/MOD_mirror.cc @@ -169,7 +169,7 @@ static void panel_draw(const bContext * /*C*/, Panel *panel) uiItemR(col, ptr, "mirror_object", 0, nullptr, ICON_NONE); - uiItemR(col, ptr, "use_clip", 0, IFACE_("Clipping"), ICON_NONE); + uiItemR(col, ptr, "use_clip", 0, CTX_IFACE_(BLT_I18NCONTEXT_ID_MESH, "Clipping"), ICON_NONE); row = uiLayoutRowWithHeading(col, true, IFACE_("Merge")); uiItemR(row, ptr, "use_mirror_merge", 0, "", ICON_NONE); diff --git a/source/blender/nodes/composite/nodes/node_composite_hue_sat_val.cc b/source/blender/nodes/composite/nodes/node_composite_hue_sat_val.cc index 10c69fa5ccc..16b43354e2e 100644 --- a/source/blender/nodes/composite/nodes/node_composite_hue_sat_val.cc +++ b/source/blender/nodes/composite/nodes/node_composite_hue_sat_val.cc @@ -32,7 +32,8 @@ static void cmp_node_huesatval_declare(NodeDeclarationBuilder &b) .max(2.0f) .subtype(PROP_FACTOR) .compositor_domain_priority(2); - b.add_input(N_("Value")) + b.add_input(CTX_N_(BLT_I18NCONTEXT_COLOR, "Value")) + .translation_context(BLT_I18NCONTEXT_COLOR) .default_value(1.0f) .min(0.0f) .max(2.0f) diff --git a/source/blender/nodes/function/nodes/node_fn_input_special_characters.cc b/source/blender/nodes/function/nodes/node_fn_input_special_characters.cc index 7bcd2975351..1a498fd043c 100644 --- a/source/blender/nodes/function/nodes/node_fn_input_special_characters.cc +++ b/source/blender/nodes/function/nodes/node_fn_input_special_characters.cc @@ -7,7 +7,8 @@ namespace blender::nodes::node_fn_input_special_characters_cc { static void node_declare(NodeDeclarationBuilder &b) { b.add_output(N_("Line Break")); - b.add_output(N_("Tab")); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_TEXT, "Tab")) + .translation_context(BLT_I18NCONTEXT_ID_TEXT); } class MF_SpecialCharacters : public mf::MultiFunction { diff --git a/source/blender/nodes/geometry/nodes/node_geo_distribute_points_in_volume.cc b/source/blender/nodes/geometry/nodes/node_geo_distribute_points_in_volume.cc index 972be612339..6bec2e783e1 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_distribute_points_in_volume.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_distribute_points_in_volume.cc @@ -25,7 +25,9 @@ NODE_STORAGE_FUNCS(NodeGeometryDistributePointsInVolume) static void node_declare(NodeDeclarationBuilder &b) { - b.add_input(N_("Volume")).supported_type(GEO_COMPONENT_TYPE_VOLUME); + b.add_input(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .supported_type(GEO_COMPONENT_TYPE_VOLUME) + .translation_context(BLT_I18NCONTEXT_ID_ID); b.add_input(N_("Density")) .default_value(1.0f) .min(0.0f) diff --git a/source/blender/nodes/geometry/nodes/node_geo_input_mesh_face_area.cc b/source/blender/nodes/geometry/nodes/node_geo_input_mesh_face_area.cc index 8c2357b847b..c48162b5b61 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_input_mesh_face_area.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_input_mesh_face_area.cc @@ -5,13 +5,16 @@ #include "BKE_mesh.hh" +#include "BLT_translation.h" + #include "node_geometry_util.hh" namespace blender::nodes::node_geo_input_mesh_face_area_cc { static void node_declare(NodeDeclarationBuilder &b) { - b.add_output(N_("Area")) + b.add_output(CTX_N_(BLT_I18NCONTEXT_AMOUNT, "Area")) + .translation_context(BLT_I18NCONTEXT_AMOUNT) .field_source() .description(N_("The surface area of each of the mesh's faces")); } diff --git a/source/blender/nodes/geometry/nodes/node_geo_material_replace.cc b/source/blender/nodes/geometry/nodes/node_geo_material_replace.cc index 3b2cd8d7744..ed029948101 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_material_replace.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_material_replace.cc @@ -16,7 +16,7 @@ static void node_declare(NodeDeclarationBuilder &b) { b.add_input(N_("Geometry")).supported_type(GEO_COMPONENT_TYPE_MESH); b.add_input(N_("Old")); - b.add_input(N_("New")); + b.add_input(N_("New")).translation_context(BLT_I18NCONTEXT_ID_MATERIAL); b.add_output(N_("Geometry")).propagate_all(); } diff --git a/source/blender/nodes/geometry/nodes/node_geo_mean_filter_sdf_volume.cc b/source/blender/nodes/geometry/nodes/node_geo_mean_filter_sdf_volume.cc index 442db31cb0e..f1fb4527a1d 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_mean_filter_sdf_volume.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_mean_filter_sdf_volume.cc @@ -22,10 +22,13 @@ namespace blender::nodes::node_geo_mean_filter_sdf_volume_cc { static void node_declare(NodeDeclarationBuilder &b) { - b.add_input(N_("Volume")).supported_type(GEO_COMPONENT_TYPE_VOLUME); + b.add_input(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .supported_type(GEO_COMPONENT_TYPE_VOLUME) + .translation_context(BLT_I18NCONTEXT_ID_ID); b.add_input(N_("Iterations")).min(1).max(256).default_value(1); b.add_input(N_("Width")).min(0).default_value(1); - b.add_output(N_("Volume")); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); } static void search_node_add_ops(GatherAddNodeSearchParams ¶ms) diff --git a/source/blender/nodes/geometry/nodes/node_geo_mesh_to_sdf_volume.cc b/source/blender/nodes/geometry/nodes/node_geo_mesh_to_sdf_volume.cc index 58fcfda2865..05f096c1119 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_mesh_to_sdf_volume.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_mesh_to_sdf_volume.cc @@ -39,7 +39,8 @@ static void node_declare(NodeDeclarationBuilder &b) .default_value(3.0f) .min(1.01f) .max(10.0f); - b.add_output(N_("Volume")); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); } static void search_node_add_ops(GatherAddNodeSearchParams ¶ms) diff --git a/source/blender/nodes/geometry/nodes/node_geo_mesh_to_volume.cc b/source/blender/nodes/geometry/nodes/node_geo_mesh_to_volume.cc index 67e2b83e3c2..e3f391563f9 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_mesh_to_volume.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_mesh_to_volume.cc @@ -47,7 +47,8 @@ static void node_declare(NodeDeclarationBuilder &b) b.add_input(N_("Fill Volume")) .default_value(true) .description(N_("Initialize the density grid in every cell inside the enclosed volume")); - b.add_output(N_("Volume")); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); } static void node_layout(uiLayout *layout, bContext * /*C*/, PointerRNA *ptr) diff --git a/source/blender/nodes/geometry/nodes/node_geo_offset_sdf_volume.cc b/source/blender/nodes/geometry/nodes/node_geo_offset_sdf_volume.cc index 093e1164357..2c73889ef12 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_offset_sdf_volume.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_offset_sdf_volume.cc @@ -22,9 +22,12 @@ namespace blender::nodes::node_geo_offset_sdf_volume_cc { static void node_declare(NodeDeclarationBuilder &b) { - b.add_input(N_("Volume")).supported_type(GEO_COMPONENT_TYPE_VOLUME); + b.add_input(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .supported_type(GEO_COMPONENT_TYPE_VOLUME) + .translation_context(BLT_I18NCONTEXT_ID_ID); b.add_input(N_("Distance")).default_value(0.1f).subtype(PROP_DISTANCE); - b.add_output(N_("Volume")); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); } static void search_node_add_ops(GatherAddNodeSearchParams ¶ms) diff --git a/source/blender/nodes/geometry/nodes/node_geo_points_to_sdf_volume.cc b/source/blender/nodes/geometry/nodes/node_geo_points_to_sdf_volume.cc index ea3e8a3b675..bdb297c11fc 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_points_to_sdf_volume.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_points_to_sdf_volume.cc @@ -39,7 +39,8 @@ static void node_declare(NodeDeclarationBuilder &b) .min(0.0f) .subtype(PROP_DISTANCE) .field_on_all(); - b.add_output(N_("Volume")); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); } static void search_node_add_ops(GatherAddNodeSearchParams ¶ms) diff --git a/source/blender/nodes/geometry/nodes/node_geo_points_to_volume.cc b/source/blender/nodes/geometry/nodes/node_geo_points_to_volume.cc index 5c04c3a48e6..3bb0d74695d 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_points_to_volume.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_points_to_volume.cc @@ -161,7 +161,8 @@ static void node_declare(NodeDeclarationBuilder &b) .min(0.0f) .subtype(PROP_DISTANCE) .field_on_all(); - b.add_output(N_("Volume")); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); } static void node_layout(uiLayout *layout, bContext * /*C*/, PointerRNA *ptr) diff --git a/source/blender/nodes/geometry/nodes/node_geo_sdf_volume_sphere.cc b/source/blender/nodes/geometry/nodes/node_geo_sdf_volume_sphere.cc index 4364dc8dda4..13bd5bc58c3 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_sdf_volume_sphere.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_sdf_volume_sphere.cc @@ -25,7 +25,8 @@ static void node_declare(NodeDeclarationBuilder &b) .default_value(3.0f) .min(1.01f) .max(10.0f); - b.add_output(N_("Volume")); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); } static void search_node_add_ops(GatherAddNodeSearchParams ¶ms) diff --git a/source/blender/nodes/geometry/nodes/node_geo_separate_components.cc b/source/blender/nodes/geometry/nodes/node_geo_separate_components.cc index 5740bd68539..42f1fe83ac8 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_separate_components.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_separate_components.cc @@ -10,7 +10,9 @@ static void node_declare(NodeDeclarationBuilder &b) b.add_output(N_("Mesh")).propagate_all(); b.add_output(N_("Point Cloud")).propagate_all(); b.add_output(N_("Curve")).propagate_all(); - b.add_output(N_("Volume")).propagate_all(); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID) + .propagate_all(); b.add_output(N_("Instances")).propagate_all(); } diff --git a/source/blender/nodes/geometry/nodes/node_geo_volume_cube.cc b/source/blender/nodes/geometry/nodes/node_geo_volume_cube.cc index c7a3e7d9651..38817f3fefb 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_volume_cube.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_volume_cube.cc @@ -49,7 +49,8 @@ static void node_declare(NodeDeclarationBuilder &b) .default_value(32) .min(2); - b.add_output(N_("Volume")); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); } static float map(const float x, diff --git a/source/blender/nodes/geometry/nodes/node_geo_volume_to_mesh.cc b/source/blender/nodes/geometry/nodes/node_geo_volume_to_mesh.cc index 10c7670140f..8686832e38b 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_volume_to_mesh.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_volume_to_mesh.cc @@ -27,7 +27,9 @@ NODE_STORAGE_FUNCS(NodeGeometryVolumeToMesh) static void node_declare(NodeDeclarationBuilder &b) { - b.add_input(N_("Volume")).supported_type(GEO_COMPONENT_TYPE_VOLUME); + b.add_input(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID) + .supported_type(GEO_COMPONENT_TYPE_VOLUME); b.add_input(N_("Voxel Size")) .default_value(0.3f) .min(0.01f) diff --git a/source/blender/nodes/intern/node_geometry_exec.cc b/source/blender/nodes/intern/node_geometry_exec.cc index 1824ff965ea..66c2dbf8547 100644 --- a/source/blender/nodes/intern/node_geometry_exec.cc +++ b/source/blender/nodes/intern/node_geometry_exec.cc @@ -114,7 +114,7 @@ void GeoNodeExecParams::check_input_geometry_set(StringRef identifier, break; } case GEO_COMPONENT_TYPE_VOLUME: { - message += TIP_("Volume"); + message += CTX_TIP_(BLT_I18NCONTEXT_ID_ID, "Volume"); break; } case GEO_COMPONENT_TYPE_CURVE: { diff --git a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc index 2b1fe785e80..16ff0f09b7d 100644 --- a/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc +++ b/source/blender/nodes/shader/nodes/node_shader_hueSatVal.cc @@ -13,7 +13,11 @@ static void node_declare(NodeDeclarationBuilder &b) { b.add_input(N_("Hue")).default_value(0.5f).min(0.0f).max(1.0f); b.add_input(N_("Saturation")).default_value(1.0f).min(0.0f).max(2.0f); - b.add_input(N_("Value")).default_value(1.0f).min(0.0f).max(2.0f); + b.add_input(CTX_N_(BLT_I18NCONTEXT_COLOR, "Value")) + .default_value(1.0f) + .min(0.0f) + .max(2.0f) + .translation_context(BLT_I18NCONTEXT_COLOR); b.add_input(N_("Fac")).default_value(1.0f).min(0.0f).max(1.0f).subtype(PROP_FACTOR); b.add_input(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); b.add_output(N_("Color")); diff --git a/source/blender/nodes/shader/nodes/node_shader_output_material.cc b/source/blender/nodes/shader/nodes/node_shader_output_material.cc index f8fa02b23fc..6fb5e30d834 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_material.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_material.cc @@ -10,7 +10,8 @@ namespace blender::nodes::node_shader_output_material_cc { static void node_declare(NodeDeclarationBuilder &b) { b.add_input(N_("Surface")); - b.add_input(N_("Volume")); + b.add_input(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); b.add_input(N_("Displacement")).hide_value(); b.add_input(N_("Thickness")).hide_value().unavailable(); /* Not used for now. */ } diff --git a/source/blender/nodes/shader/nodes/node_shader_output_world.cc b/source/blender/nodes/shader/nodes/node_shader_output_world.cc index 52737b2fc6b..0d2cca1927d 100644 --- a/source/blender/nodes/shader/nodes/node_shader_output_world.cc +++ b/source/blender/nodes/shader/nodes/node_shader_output_world.cc @@ -8,7 +8,8 @@ namespace blender::nodes::node_shader_output_world_cc { static void node_declare(NodeDeclarationBuilder &b) { b.add_input(N_("Surface")); - b.add_input(N_("Volume")); + b.add_input(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); } static int node_shader_gpu_output_world(GPUMaterial *mat, diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_absorption.cc b/source/blender/nodes/shader/nodes/node_shader_volume_absorption.cc index 2b76f0bbfb5..7cd61498c6c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_volume_absorption.cc +++ b/source/blender/nodes/shader/nodes/node_shader_volume_absorption.cc @@ -10,7 +10,8 @@ static void node_declare(NodeDeclarationBuilder &b) b.add_input(N_("Color")).default_value({0.8f, 0.8f, 0.8f, 1.0f}); b.add_input(N_("Density")).default_value(1.0f).min(0.0f).max(1000.0f); b.add_input(N_("Weight")).unavailable(); - b.add_output(N_("Volume")); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); } static int node_shader_gpu_volume_absorption(GPUMaterial *mat, diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_principled.cc b/source/blender/nodes/shader/nodes/node_shader_volume_principled.cc index 5cddf64f9a8..9f9a65ce9a9 100644 --- a/source/blender/nodes/shader/nodes/node_shader_volume_principled.cc +++ b/source/blender/nodes/shader/nodes/node_shader_volume_principled.cc @@ -30,7 +30,8 @@ static void node_declare(NodeDeclarationBuilder &b) b.add_input(N_("Temperature")).default_value(1000.0f).min(0.0f).max(6500.0f); b.add_input(N_("Temperature Attribute")); b.add_input(N_("Weight")).unavailable(); - b.add_output(N_("Volume")); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); } static void node_shader_init_volume_principled(bNodeTree * /*ntree*/, bNode *node) diff --git a/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc b/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc index 24eb7dfd75a..3447bebc787 100644 --- a/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc +++ b/source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc @@ -15,7 +15,8 @@ static void node_declare(NodeDeclarationBuilder &b) .max(1.0f) .subtype(PROP_FACTOR); b.add_input(N_("Weight")).unavailable(); - b.add_output(N_("Volume")); + b.add_output(CTX_N_(BLT_I18NCONTEXT_ID_ID, "Volume")) + .translation_context(BLT_I18NCONTEXT_ID_ID); } static int node_shader_gpu_volume_scatter(GPUMaterial *mat, diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index 2089d89e500..16a93dd4ead 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -1099,7 +1099,8 @@ const char *WM_key_event_string(const short type, const bool compact) return IFACE_("OS"); } break; case EVT_TABKEY: - return key_event_glyph_or_text(font_id, IFACE_("Tab"), "\xe2\xad\xbe"); + return key_event_glyph_or_text( + font_id, CTX_N_(BLT_I18NCONTEXT_UI_EVENTS, "Tab"), "\xe2\xad\xbe"); case EVT_BACKSPACEKEY: return key_event_glyph_or_text(font_id, IFACE_("Bksp"), "\xe2\x8c\xab"); case EVT_ESCKEY: