complete space outliner, space node, space nla, etc.
authorXiao Xiangquan <xiaoxiangquan@gmail.com>
Wed, 13 Jul 2011 14:41:12 +0000 (14:41 +0000)
committerXiao Xiangquan <xiaoxiangquan@gmail.com>
Wed, 13 Jul 2011 14:41:12 +0000 (14:41 +0000)
27 files changed:
po/POTFILES.in
release/scripts/startup/bl_operators/sequencer.py
release/scripts/startup/bl_ui/space_dopesheet.py
release/scripts/startup/bl_ui/space_graph.py
release/scripts/startup/bl_ui/space_image.py
release/scripts/startup/bl_ui/space_logic.py
release/scripts/startup/bl_ui/space_nla.py
release/scripts/startup/bl_ui/space_node.py
release/scripts/startup/bl_ui/space_sequencer.py
source/blender/editors/animation/anim_channels_edit.c
source/blender/editors/datafiles/bunifont.ttf.c
source/blender/editors/interface/interface_templates.c
source/blender/editors/render/render_shading.c
source/blender/editors/space_action/action_edit.c
source/blender/editors/space_image/image_ops.c
source/blender/editors/space_nla/nla_edit.c
source/blender/editors/space_node/node_header.c
source/blender/editors/space_sequencer/sequencer_add.c
source/blender/editors/space_sequencer/sequencer_edit.c
source/blender/makesrna/RNA_access.h
source/blender/makesrna/intern/rna_ID.c
source/blender/makesrna/intern/rna_access.c
source/blender/makesrna/intern/rna_action.c
source/blender/makesrna/intern/rna_fcurve.c
source/blender/makesrna/intern/rna_object.c
source/blender/makesrna/intern/rna_scene.c
source/blender/makesrna/intern/rna_space.c

index b32756db7fe4e29ab745c6c372666fdf1132913e..0c654339bffcc9e5fe31bbfe3519556ca9c25538 100755 (executable)
@@ -11,8 +11,15 @@ release/scripts/startup/bl_ui/properties_render.py
 release/scripts/startup/bl_ui/properties_texture.py
 
 release/scripts/startup/bl_ui/space_console.py
+release/scripts/startup/bl_ui/space_dopesheet.py
+release/scripts/startup/bl_ui/space_graph.py
+release/scripts/startup/bl_ui/space_image.py
 release/scripts/startup/bl_ui/space_info.py
+release/scripts/startup/bl_ui/space_logic.py
+release/scripts/startup/bl_ui/space_nla.py
+release/scripts/startup/bl_ui/space_node.py
 release/scripts/startup/bl_ui/space_outliner.py
+release/scripts/startup/bl_ui/space_sequencer.py 
 release/scripts/startup/bl_ui/space_text.py
 release/scripts/startup/bl_ui/space_time.py
 release/scripts/startup/bl_ui/space_userpref.py
@@ -73,6 +80,7 @@ source/blender/editors/physics/physics_pointcache.c
 
 source/blender/editors/render/render_internal.c
 source/blender/editors/render/render_opengl.c
+source/blender/editors/render/render_shading.c
 source/blender/editors/render/render_view.c
 
 source/blender/editors/screen/area.c
@@ -119,6 +127,7 @@ source/blender/editors/space_nla/nla_select.c
 
 source/blender/editors/space_node/node_buttons.c
 source/blender/editors/space_node/node_edit.c
+source/blender/editors/space_node/node_header.c
 source/blender/editors/space_node/node_ops.c
 source/blender/editors/space_node/node_select.c
 source/blender/editors/space_node/node_state.c
@@ -153,9 +162,12 @@ source/blender/editors/util/undo.c
 source/blender/editors/uvedit/uvedit_ops.c
 source/blender/editors/uvedit/uvedit_unwrap_ops.c
 
+source/blender/makesrna/intern/rna_ID.c
+source/blender/makesrna/intern/rna_action.c
 source/blender/makesrna/intern/rna_color.c
 source/blender/makesrna/intern/rna_curve.c
-source/blender/makesrna/intern/rna_ID.c
+source/blender/makesrna/intern/rna_fcurve.c
+source/blender/makesrna/intern/rna_material.c
 source/blender/makesrna/intern/rna_object.c
 source/blender/makesrna/intern/rna_object_force.c
 source/blender/makesrna/intern/rna_render.c
index 5ea06169caef72cc0aa510537ffcc73f156b6760..1feec100295ccf920ff62bbeca1b730f85c78f49 100644 (file)
@@ -119,6 +119,7 @@ class SequencerDeinterlaceSelectedMovies(bpy.types.Operator):
     bl_idname = "sequencer.deinterlace_selected_movies"
     bl_label = _("Deinterlace Movies")
     bl_options = {'REGISTER', 'UNDO'}
+    __doc__ = _("Deinterlace all selected movie sources.")
 
     @classmethod
     def poll(cls, context):
index 930a2029d3213d521b895d1fbfa4a3987a5058c0..659a39ebd2d7d31c5b8cbe345a8ed61760bd3c22 100644 (file)
@@ -19,6 +19,7 @@
 # <pep8 compliant>
 
 import bpy
+from blf import gettext as _
 
 
 #######################################
@@ -113,7 +114,7 @@ class DOPESHEET_HT_header(bpy.types.Header):
                 sub.menu("DOPESHEET_MT_gpencil_frame")
 
         layout.prop(st, "mode", text="")
-        layout.prop(st.dopesheet, "show_summary", text="Summary")
+        layout.prop(st.dopesheet, "show_summary", text=_("Summary"))
 
         if st.mode == 'DOPESHEET':
             dopesheet_filter(layout, context)
@@ -135,7 +136,7 @@ class DOPESHEET_HT_header(bpy.types.Header):
 
 
 class DOPESHEET_MT_view(bpy.types.Menu):
-    bl_label = "View"
+    bl_label = _("View")
 
     def draw(self, context):
         layout = self.layout
@@ -151,9 +152,9 @@ class DOPESHEET_MT_view(bpy.types.Menu):
         layout.prop(st, "use_marker_sync")
 
         if st.show_seconds:
-            layout.operator("anim.time_toggle", text="Show Frames")
+            layout.operator("anim.time_toggle", text=_("Show Frames"))
         else:
-            layout.operator("anim.time_toggle", text="Show Seconds")
+            layout.operator("anim.time_toggle", text=_("Show Seconds"))
 
         layout.separator()
         layout.operator("anim.previewrange_set")
@@ -171,7 +172,7 @@ class DOPESHEET_MT_view(bpy.types.Menu):
 
 
 class DOPESHEET_MT_select(bpy.types.Menu):
-    bl_label = "Select"
+    bl_label = _("Select")
 
     def draw(self, context):
         layout = self.layout
@@ -179,22 +180,22 @@ class DOPESHEET_MT_select(bpy.types.Menu):
         layout.column()
         # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None
         layout.operator("action.select_all_toggle")
-        layout.operator("action.select_all_toggle", text="Invert Selection").invert = True
+        layout.operator("action.select_all_toggle", text=_("Invert Selection")).invert = True
 
         layout.separator()
         layout.operator("action.select_border")
-        layout.operator("action.select_border", text="Border Axis Range").axis_range = True
+        layout.operator("action.select_border", text=_("Border Axis Range")).axis_range = True
 
         layout.separator()
-        layout.operator("action.select_column", text="Columns on Selected Keys").mode = 'KEYS'
-        layout.operator("action.select_column", text="Column on Current Frame").mode = 'CFRA'
+        layout.operator("action.select_column", text=_("Columns on Selected Keys")).mode = 'KEYS'
+        layout.operator("action.select_column", text=_("Column on Current Frame")).mode = 'CFRA'
 
-        layout.operator("action.select_column", text="Columns on Selected Markers").mode = 'MARKERS_COLUMN'
-        layout.operator("action.select_column", text="Between Selected Markers").mode = 'MARKERS_BETWEEN'
+        layout.operator("action.select_column", text=_("Columns on Selected Markers")).mode = 'MARKERS_COLUMN'
+        layout.operator("action.select_column", text=_("Between Selected Markers")).mode = 'MARKERS_BETWEEN'
 
         layout.separator()
-        layout.operator("action.select_leftright", text="Before Current Frame").mode = 'LEFT'
-        layout.operator("action.select_leftright", text="After Current Frame").mode = 'RIGHT'
+        layout.operator("action.select_leftright", text=_("Before Current Frame")).mode = 'LEFT'
+        layout.operator("action.select_leftright", text=_("After Current Frame")).mode = 'RIGHT'
 
         # FIXME: grease pencil mode isn't supported for these yet, so skip for that mode only
         if context.space_data.mode != 'GPENCIL':
@@ -207,7 +208,7 @@ class DOPESHEET_MT_select(bpy.types.Menu):
 
 
 class DOPESHEET_MT_marker(bpy.types.Menu):
-    bl_label = "Marker"
+    bl_label = _("Marker")
 
     def draw(self, context):
         layout = self.layout
@@ -217,14 +218,14 @@ class DOPESHEET_MT_marker(bpy.types.Menu):
         #layout.operator_context = 'EXEC_REGION_WIN'
 
         layout.column()
-        layout.operator("marker.add", "Add Marker")
-        layout.operator("marker.duplicate", text="Duplicate Marker")
-        layout.operator("marker.delete", text="Delete Marker")
+        layout.operator("marker.add", _("Add Marker"))
+        layout.operator("marker.duplicate", text=_("Duplicate Marker"))
+        layout.operator("marker.delete", text=_("Delete Marker"))
 
         layout.separator()
 
-        layout.operator("marker.rename", text="Rename Marker")
-        layout.operator("marker.move", text="Grab/Move Marker")
+        layout.operator("marker.rename", text=_("Rename Marker"))
+        layout.operator("marker.move", text=_("Grab/Move Marker"))
 
         if st.mode in {'ACTION', 'SHAPEKEY'} and st.action:
             layout.separator()
@@ -238,7 +239,7 @@ class DOPESHEET_MT_marker(bpy.types.Menu):
 # Keyframe Editing
 
 class DOPESHEET_MT_channel(bpy.types.Menu):
-    bl_label = "Channel"
+    bl_label = _("Channel")
 
     def draw(self, context):
         layout = self.layout
@@ -255,30 +256,30 @@ class DOPESHEET_MT_channel(bpy.types.Menu):
 
         layout.separator()
         layout.operator("anim.channels_editable_toggle")
-        layout.operator_menu_enum("action.extrapolation_type", "type", text="Extrapolation Mode")
+        layout.operator_menu_enum("action.extrapolation_type", "type", text=_("Extrapolation Mode"))
 
         layout.separator()
         layout.operator("anim.channels_expand")
         layout.operator("anim.channels_collapse")
 
         layout.separator()
-        layout.operator_menu_enum("anim.channels_move", "direction", text="Move...")
+        layout.operator_menu_enum("anim.channels_move", "direction", text=_("Move..."))
 
         layout.separator()
         layout.operator("anim.channels_fcurves_enable")
 
 
 class DOPESHEET_MT_key(bpy.types.Menu):
-    bl_label = "Key"
+    bl_label = _("Key")
 
     def draw(self, context):
         layout = self.layout
 
         layout.column()
-        layout.menu("DOPESHEET_MT_key_transform", text="Transform")
+        layout.menu("DOPESHEET_MT_key_transform", text=_("Transform"))
 
-        layout.operator_menu_enum("action.snap", "type", text="Snap")
-        layout.operator_menu_enum("action.mirror", "type", text="Mirror")
+        layout.operator_menu_enum("action.snap", "type", text=_("Snap"))
+        layout.operator_menu_enum("action.mirror", "type", text=_("Mirror"))
 
         layout.separator()
         layout.operator("action.keyframe_insert")
@@ -288,9 +289,9 @@ class DOPESHEET_MT_key(bpy.types.Menu):
         layout.operator("action.delete")
 
         layout.separator()
-        layout.operator_menu_enum("action.keyframe_type", "type", text="Keyframe Type")
-        layout.operator_menu_enum("action.handle_type", "type", text="Handle Type")
-        layout.operator_menu_enum("action.interpolation_type", "type", text="Interpolation Mode")
+        layout.operator_menu_enum("action.keyframe_type", "type", text=_("Keyframe Type"))
+        layout.operator_menu_enum("action.handle_type", "type", text=_("Handle Type"))
+        layout.operator_menu_enum("action.interpolation_type", "type", text=_("Interpolation Mode"))
 
         layout.separator()
         layout.operator("action.clean")
@@ -302,23 +303,23 @@ class DOPESHEET_MT_key(bpy.types.Menu):
 
 
 class DOPESHEET_MT_key_transform(bpy.types.Menu):
-    bl_label = "Transform"
+    bl_label = _("Transform")
 
     def draw(self, context):
         layout = self.layout
 
         layout.column()
-        layout.operator("transform.transform", text="Grab/Move").mode = 'TIME_TRANSLATE'
-        layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND'
-        layout.operator("transform.transform", text="Slide").mode = 'TIME_SLIDE'
-        layout.operator("transform.transform", text="Scale").mode = 'TIME_SCALE'
+        layout.operator("transform.transform", text=_("Grab/Move")).mode = 'TIME_TRANSLATE'
+        layout.operator("transform.transform", text=_("Extend")).mode = 'TIME_EXTEND'
+        layout.operator("transform.transform", text=_("Slide")).mode = 'TIME_SLIDE'
+        layout.operator("transform.transform", text=_("Scale")).mode = 'TIME_SCALE'
 
 
 #######################################
 # Grease Pencil Editing
 
 class DOPESHEET_MT_gpencil_channel(bpy.types.Menu):
-    bl_label = "Channel"
+    bl_label = _("Channel")
 
     def draw(self, context):
         layout = self.layout
@@ -346,13 +347,13 @@ class DOPESHEET_MT_gpencil_channel(bpy.types.Menu):
 
 
 class DOPESHEET_MT_gpencil_frame(bpy.types.Menu):
-    bl_label = "Frame"
+    bl_label = _("Frame")
 
     def draw(self, context):
         layout = self.layout
 
         layout.column()
-        layout.menu("DOPESHEET_MT_key_transform", text="Transform")
+        layout.menu("DOPESHEET_MT_key_transform", text=_("Transform"))
 
         #layout.operator_menu_enum("action.snap", "type", text="Snap")
         #layout.operator_menu_enum("action.mirror", "type", text="Mirror")
index bfc1a0e3a23bb8942f6da6a46b5697f2dffc0956..c74ffee9bc157f0190228daa128616db75187f96 100644 (file)
@@ -19,6 +19,7 @@
 # <pep8 compliant>
 
 import bpy
+from blf import gettext as _
 
 
 class GRAPH_HT_header(bpy.types.Header):
@@ -62,7 +63,7 @@ class GRAPH_HT_header(bpy.types.Header):
 
 
 class GRAPH_MT_view(bpy.types.Menu):
-    bl_label = "View"
+    bl_label = _("View")
 
     def draw(self, context):
         layout = self.layout
@@ -85,9 +86,9 @@ class GRAPH_MT_view(bpy.types.Menu):
 
         layout.separator()
         if st.show_handles:
-            layout.operator("graph.handles_view_toggle", icon='CHECKBOX_HLT', text="Show All Handles")
+            layout.operator("graph.handles_view_toggle", icon='CHECKBOX_HLT', text=_("Show All Handles"))
         else:
-            layout.operator("graph.handles_view_toggle", icon='CHECKBOX_DEHLT', text="Show All Handles")
+            layout.operator("graph.handles_view_toggle", icon='CHECKBOX_DEHLT', text=_("Show All Handles"))
         layout.prop(st, "use_only_selected_curves_handles")
         layout.prop(st, "use_only_selected_keyframe_handles")
         layout.operator("anim.time_toggle")
@@ -108,7 +109,7 @@ class GRAPH_MT_view(bpy.types.Menu):
 
 
 class GRAPH_MT_select(bpy.types.Menu):
-    bl_label = "Select"
+    bl_label = _("Select")
 
     def draw(self, context):
         layout = self.layout
@@ -116,23 +117,23 @@ class GRAPH_MT_select(bpy.types.Menu):
         layout.column()
         # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None
         layout.operator("graph.select_all_toggle")
-        layout.operator("graph.select_all_toggle", text="Invert Selection").invert = True
+        layout.operator("graph.select_all_toggle", text=_("Invert Selection")).invert = True
 
         layout.separator()
         layout.operator("graph.select_border")
-        layout.operator("graph.select_border", text="Border Axis Range").axis_range = True
-        layout.operator("graph.select_border", text="Border (Include Handles)").include_handles = True
+        layout.operator("graph.select_border", text=_("Border Axis Range")).axis_range = True
+        layout.operator("graph.select_border", text=_("Border (Include Handles)")).include_handles = True
 
         layout.separator()
-        layout.operator("graph.select_column", text="Columns on Selected Keys").mode = 'KEYS'
-        layout.operator("graph.select_column", text="Column on Current Frame").mode = 'CFRA'
+        layout.operator("graph.select_column", text=_("Columns on Selected Keys")).mode = 'KEYS'
+        layout.operator("graph.select_column", text=_("Column on Current Frame")).mode = 'CFRA'
 
-        layout.operator("graph.select_column", text="Columns on Selected Markers").mode = 'MARKERS_COLUMN'
-        layout.operator("graph.select_column", text="Between Selected Markers").mode = 'MARKERS_BETWEEN'
+        layout.operator("graph.select_column", text=_("Columns on Selected Markers")).mode = 'MARKERS_COLUMN'
+        layout.operator("graph.select_column", text=_("Between Selected Markers")).mode = 'MARKERS_BETWEEN'
 
         layout.separator()
-        layout.operator("graph.select_leftright", text="Before Current Frame").mode = 'LEFT'
-        layout.operator("graph.select_leftright", text="After Current Frame").mode = 'RIGHT'
+        layout.operator("graph.select_leftright", text=_("Before Current Frame")).mode = 'LEFT'
+        layout.operator("graph.select_leftright", text=_("After Current Frame")).mode = 'RIGHT'
 
         layout.separator()
         layout.operator("graph.select_more")
@@ -143,7 +144,7 @@ class GRAPH_MT_select(bpy.types.Menu):
 
 
 class GRAPH_MT_marker(bpy.types.Menu):
-    bl_label = "Marker"
+    bl_label = _("Marker")
 
     def draw(self, context):
         layout = self.layout
@@ -151,20 +152,20 @@ class GRAPH_MT_marker(bpy.types.Menu):
         #layout.operator_context = 'EXEC_REGION_WIN'
 
         layout.column()
-        layout.operator("marker.add", "Add Marker")
-        layout.operator("marker.duplicate", text="Duplicate Marker")
-        layout.operator("marker.delete", text="Delete Marker")
+        layout.operator("marker.add", _("Add Marker"))
+        layout.operator("marker.duplicate", text=_("Duplicate Marker"))
+        layout.operator("marker.delete", text=_("Delete Marker"))
 
         layout.separator()
 
-        layout.operator("marker.rename", text="Rename Marker")
-        layout.operator("marker.move", text="Grab/Move Marker")
+        layout.operator("marker.rename", text=_("Rename Marker"))
+        layout.operator("marker.move", text=_("Grab/Move Marker"))
 
         # TODO: pose markers for action edit mode only?
 
 
 class GRAPH_MT_channel(bpy.types.Menu):
-    bl_label = "Channel"
+    bl_label = _("Channel")
 
     def draw(self, context):
         layout = self.layout
@@ -182,30 +183,30 @@ class GRAPH_MT_channel(bpy.types.Menu):
         layout.separator()
         layout.operator("anim.channels_editable_toggle")
         layout.operator("anim.channels_visibility_set")
-        layout.operator_menu_enum("graph.extrapolation_type", "type", text="Extrapolation Mode")
+        layout.operator_menu_enum("graph.extrapolation_type", "type", text=_("Extrapolation Mode"))
 
         layout.separator()
         layout.operator("anim.channels_expand")
         layout.operator("anim.channels_collapse")
 
         layout.separator()
-        layout.operator_menu_enum("anim.channels_move", "direction", text="Move...")
+        layout.operator_menu_enum("anim.channels_move", "direction", text=_("Move..."))
 
         layout.separator()
         layout.operator("anim.channels_fcurves_enable")
 
 
 class GRAPH_MT_key(bpy.types.Menu):
-    bl_label = "Key"
+    bl_label = _("Key")
 
     def draw(self, context):
         layout = self.layout
 
         layout.column()
-        layout.menu("GRAPH_MT_key_transform", text="Transform")
+        layout.menu("GRAPH_MT_key_transform", text=_("Transform"))
 
-        layout.operator_menu_enum("graph.snap", "type", text="Snap")
-        layout.operator_menu_enum("graph.mirror", "type", text="Mirror")
+        layout.operator_menu_enum("graph.snap", "type", text=_("Snap"))
+        layout.operator_menu_enum("graph.mirror", "type", text=_("Mirror"))
 
         layout.separator()
         layout.operator("graph.keyframe_insert")
@@ -217,8 +218,8 @@ class GRAPH_MT_key(bpy.types.Menu):
         layout.operator("graph.delete")
 
         layout.separator()
-        layout.operator_menu_enum("graph.handle_type", "type", text="Handle Type")
-        layout.operator_menu_enum("graph.interpolation_type", "type", text="Interpolation Mode")
+        layout.operator_menu_enum("graph.handle_type", "type", text=_("Handle Type"))
+        layout.operator_menu_enum("graph.interpolation_type", "type", text=_("Interpolation Mode"))
 
         layout.separator()
         layout.operator("graph.clean")
@@ -231,20 +232,20 @@ class GRAPH_MT_key(bpy.types.Menu):
         layout.operator("graph.paste")
 
         layout.separator()
-        layout.operator("graph.euler_filter", text="Discontinuity (Euler) Filter")
+        layout.operator("graph.euler_filter", text=_("Discontinuity (Euler) Filter"))
 
 
 class GRAPH_MT_key_transform(bpy.types.Menu):
-    bl_label = "Transform"
+    bl_label = _("Transform")
 
     def draw(self, context):
         layout = self.layout
 
         layout.column()
-        layout.operator("transform.translate", text="Grab/Move")
-        layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND'
-        layout.operator("transform.rotate", text="Rotate")
-        layout.operator("transform.resize", text="Scale")
+        layout.operator("transform.translate", text=_("Grab/Move"))
+        layout.operator("transform.transform", text=_("Extend")).mode = 'TIME_EXTEND'
+        layout.operator("transform.rotate", text=_("Rotate"))
+        layout.operator("transform.resize", text=_("Scale"))
 
 if __name__ == "__main__":  # only for live edit.
     bpy.utils.register_module(__name__)
index 9f69ca170764e90bf4a0f429879e5721d1c79d58..7f2d88a6e4e00280c7f52ce648f289cfba52cdfa 100644 (file)
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from blf import gettext as _
 
 
 class BrushButtonsPanel():
@@ -32,7 +33,7 @@ class BrushButtonsPanel():
 
 
 class IMAGE_MT_view(bpy.types.Menu):
-    bl_label = "View"
+    bl_label = _("View")
 
     def draw(self, context):
         layout = self.layout
@@ -63,7 +64,7 @@ class IMAGE_MT_view(bpy.types.Menu):
         ratios = [[1, 8], [1, 4], [1, 2], [1, 1], [2, 1], [4, 1], [8, 1]]
 
         for a, b in ratios:
-            text = "Zoom %d:%d" % (a, b)
+            text = _("Zoom %d:%d") % (a, b)
             layout.operator("image.view_zoom_ratio", text=text).ratio = a / b
 
         layout.separator()
@@ -80,7 +81,7 @@ class IMAGE_MT_view(bpy.types.Menu):
 
 
 class IMAGE_MT_select(bpy.types.Menu):
-    bl_label = "Select"
+    bl_label = _("Select")
 
     def draw(self, context):
         layout = self.layout
@@ -91,7 +92,7 @@ class IMAGE_MT_select(bpy.types.Menu):
         layout.separator()
 
         layout.operator("uv.select_all")
-        layout.operator("uv.select_all", text="Inverse").action = 'INVERT'
+        layout.operator("uv.select_all", text=_("Inverse")).action = 'INVERT'
         layout.operator("uv.unlink_selected")
 
         layout.separator()
@@ -101,7 +102,7 @@ class IMAGE_MT_select(bpy.types.Menu):
 
 
 class IMAGE_MT_image(bpy.types.Menu):
-    bl_label = "Image"
+    bl_label = _("Image")
 
     def draw(self, context):
         layout = self.layout
@@ -121,12 +122,12 @@ class IMAGE_MT_image(bpy.types.Menu):
 
             layout.operator("image.save")
             layout.operator("image.save_as")
-            layout.operator("image.save_as", text="Save a Copy").copy = True
+            layout.operator("image.save_as", text=_("Save a Copy")).copy = True
 
             if ima.source == 'SEQUENCE':
                 layout.operator("image.save_sequence")
 
-            layout.operator("image.external_edit", "Edit Externally")
+            layout.operator("image.external_edit", _("Edit Externally"))
 
             layout.separator()
 
@@ -144,7 +145,7 @@ class IMAGE_MT_image(bpy.types.Menu):
                 # this could be done in operator poll too
                 if ima.is_dirty:
                     if ima.source in {'FILE', 'GENERATED'} and ima.type != 'MULTILAYER':
-                        layout.operator("image.pack", text="Pack As PNG").as_png = True
+                        layout.operator("image.pack", text=_("Pack As PNG")).as_png = True
 
             layout.separator()
 
@@ -152,44 +153,44 @@ class IMAGE_MT_image(bpy.types.Menu):
 
 
 class IMAGE_MT_image_invert(bpy.types.Menu):
-    bl_label = "Invert"
+    bl_label = _("Invert")
 
     def draw(self, context):
         layout = self.layout
 
-        op = layout.operator("image.invert", text="Invert Image Colors")
+        op = layout.operator("image.invert", text=_("Invert Image Colors"))
         op.invert_r = True
         op.invert_g = True
         op.invert_b = True
 
         layout.separator()
 
-        op = layout.operator("image.invert", text="Invert Red Channel")
+        op = layout.operator("image.invert", text=_("Invert Red Channel"))
         op.invert_r = True
 
-        op = layout.operator("image.invert", text="Invert Green Channel")
+        op = layout.operator("image.invert", text=_("Invert Green Channel"))
         op.invert_g = True
 
-        op = layout.operator("image.invert", text="Invert Blue Channel")
+        op = layout.operator("image.invert", text=_("Invert Blue Channel"))
         op.invert_b = True
 
-        op = layout.operator("image.invert", text="Invert Alpha Channel")
+        op = layout.operator("image.invert", text=_("Invert Alpha Channel"))
         op.invert_a = True
 
 
 class IMAGE_MT_uvs_showhide(bpy.types.Menu):
-    bl_label = "Show/Hide Faces"
+    bl_label = _("Show/Hide Faces")
 
     def draw(self, context):
         layout = self.layout
 
         layout.operator("uv.reveal")
-        layout.operator("uv.hide", text="Hide Selected")
-        layout.operator("uv.hide", text="Hide Unselected").unselected = True
+        layout.operator("uv.hide", text=_("Hide Selected"))
+        layout.operator("uv.hide", text=_("Hide Unselected")).unselected = True
 
 
 class IMAGE_MT_uvs_transform(bpy.types.Menu):
-    bl_label = "Transform"
+    bl_label = _("Transform")
 
     def draw(self, context):
         layout = self.layout
@@ -200,35 +201,35 @@ class IMAGE_MT_uvs_transform(bpy.types.Menu):
 
 
 class IMAGE_MT_uvs_snap(bpy.types.Menu):
-    bl_label = "Snap"
+    bl_label = _("Snap")
 
     def draw(self, context):
         layout = self.layout
         layout.operator_context = 'EXEC_REGION_WIN'
 
-        layout.operator("uv.snap_selected", text="Selected to Pixels").target = 'PIXELS'
-        layout.operator("uv.snap_selected", text="Selected to Cursor").target = 'CURSOR'
-        layout.operator("uv.snap_selected", text="Selected to Adjacent Unselected").target = 'ADJACENT_UNSELECTED'
+        layout.operator("uv.snap_selected", text=_("Selected to Pixels")).target = 'PIXELS'
+        layout.operator("uv.snap_selected", text=_("Selected to Cursor")).target = 'CURSOR'
+        layout.operator("uv.snap_selected", text=_("Selected to Adjacent Unselected")).target = 'ADJACENT_UNSELECTED'
 
         layout.separator()
 
-        layout.operator("uv.snap_cursor", text="Cursor to Pixels").target = 'PIXELS'
-        layout.operator("uv.snap_cursor", text="Cursor to Selected").target = 'SELECTED'
+        layout.operator("uv.snap_cursor", text=_("Cursor to Pixels")).target = 'PIXELS'
+        layout.operator("uv.snap_cursor", text=_("Cursor to Selected")).target = 'SELECTED'
 
 
 class IMAGE_MT_uvs_mirror(bpy.types.Menu):
-    bl_label = "Mirror"
+    bl_label = _("Mirror")
 
     def draw(self, context):
         layout = self.layout
         layout.operator_context = 'EXEC_REGION_WIN'
 
-        layout.operator("transform.mirror", text="X Axis").constraint_axis[0] = True
-        layout.operator("transform.mirror", text="Y Axis").constraint_axis[1] = True
+        layout.operator("transform.mirror", text=_("X Axis")).constraint_axis[0] = True
+        layout.operator("transform.mirror", text=_("Y Axis")).constraint_axis[1] = True
 
 
 class IMAGE_MT_uvs_weldalign(bpy.types.Menu):
-    bl_label = "Weld/Align"
+    bl_label = _("Weld/Align")
 
     def draw(self, context):
         layout = self.layout
@@ -254,7 +255,7 @@ class IMAGE_MT_uvs(bpy.types.Menu):
 
         layout.prop(uv, "use_live_unwrap")
         layout.operator("uv.unwrap")
-        layout.operator("uv.pin", text="Unpin").clear = True
+        layout.operator("uv.pin", text=_("Unpin")).clear = True
         layout.operator("uv.pin")
 
         layout.separator()
@@ -283,7 +284,7 @@ class IMAGE_MT_uvs(bpy.types.Menu):
 
 
 class IMAGE_MT_uvs_select_mode(bpy.types.Menu):
-    bl_label = "UV Select Mode"
+    bl_label = _("UV Select Mode")
 
     def draw(self, context):
         layout = self.layout
@@ -294,32 +295,32 @@ class IMAGE_MT_uvs_select_mode(bpy.types.Menu):
         # do smart things depending on whether uv_select_sync is on
 
         if toolsettings.use_uv_select_sync:
-            prop = layout.operator("wm.context_set_value", text="Vertex", icon='VERTEXSEL')
+            prop = layout.operator("wm.context_set_value", text=_("Vertex"), icon='VERTEXSEL')
             prop.value = "(True, False, False)"
             prop.data_path = "tool_settings.mesh_select_mode"
 
-            prop = layout.operator("wm.context_set_value", text="Edge", icon='EDGESEL')
+            prop = layout.operator("wm.context_set_value", text=_("Edge"), icon='EDGESEL')
             prop.value = "(False, True, False)"
             prop.data_path = "tool_settings.mesh_select_mode"
 
-            prop = layout.operator("wm.context_set_value", text="Face", icon='FACESEL')
+            prop = layout.operator("wm.context_set_value", text=_("Face"), icon='FACESEL')
             prop.value = "(False, False, True)"
             prop.data_path = "tool_settings.mesh_select_mode"
 
         else:
-            prop = layout.operator("wm.context_set_string", text="Vertex", icon='UV_VERTEXSEL')
+            prop = layout.operator("wm.context_set_string", text=_("Vertex"), icon='UV_VERTEXSEL')
             prop.value = "VERTEX"
             prop.data_path = "tool_settings.uv_select_mode"
 
-            prop = layout.operator("wm.context_set_string", text="Edge", icon='UV_EDGESEL')
+            prop = layout.operator("wm.context_set_string", text=_("Edge"), icon='UV_EDGESEL')
             prop.value = "EDGE"
             prop.data_path = "tool_settings.uv_select_mode"
 
-            prop = layout.operator("wm.context_set_string", text="Face", icon='UV_FACESEL')
+            prop = layout.operator("wm.context_set_string", text=_("Face"), icon='UV_FACESEL')
             prop.value = "FACE"
             prop.data_path = "tool_settings.uv_select_mode"
 
-            prop = layout.operator("wm.context_set_string", text="Island", icon='UV_ISLANDSEL')
+            prop = layout.operator("wm.context_set_string", text=_("Island"), icon='UV_ISLANDSEL')
             prop.value = "ISLAND"
             prop.data_path = "tool_settings.uv_select_mode"
 
@@ -351,9 +352,9 @@ class IMAGE_HT_header(bpy.types.Header):
                 sub.menu("IMAGE_MT_select")
 
             if ima and ima.is_dirty:
-                sub.menu("IMAGE_MT_image", text="Image*")
+                sub.menu("IMAGE_MT_image", text=_("Image*"))
             else:
-                sub.menu("IMAGE_MT_image", text="Image")
+                sub.menu("IMAGE_MT_image", text=_("Image"))
 
             if show_uvedit:
                 sub.menu("IMAGE_MT_uvs")
@@ -411,7 +412,7 @@ class IMAGE_HT_header(bpy.types.Header):
 class IMAGE_PT_image_properties(bpy.types.Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'UI'
-    bl_label = "Image"
+    bl_label = _("Image")
 
     @classmethod
     def poll(cls, context):
@@ -430,7 +431,7 @@ class IMAGE_PT_image_properties(bpy.types.Panel):
 class IMAGE_PT_game_properties(bpy.types.Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'UI'
-    bl_label = "Game Properties"
+    bl_label = _("Game Properties")
 
     @classmethod
     def poll(cls, context):
@@ -454,9 +455,9 @@ class IMAGE_PT_game_properties(bpy.types.Panel):
 
         subsub = sub.column()
         subsub.active = ima.use_animation
-        subsub.prop(ima, "frame_start", text="Start")
-        subsub.prop(ima, "frame_end", text="End")
-        subsub.prop(ima, "fps", text="Speed")
+        subsub.prop(ima, "frame_start", text=_("Start"))
+        subsub.prop(ima, "frame_end", text=_("End"))
+        subsub.prop(ima, "fps", text=_("Speed"))
 
         col.prop(ima, "use_tiles")
         sub = col.column(align=True)
@@ -475,7 +476,7 @@ class IMAGE_PT_game_properties(bpy.types.Panel):
 class IMAGE_PT_view_histogram(bpy.types.Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'PREVIEW'
-    bl_label = "Histogram"
+    bl_label = _("Histogram")
 
     @classmethod
     def poll(cls, context):
@@ -494,7 +495,7 @@ class IMAGE_PT_view_histogram(bpy.types.Panel):
 class IMAGE_PT_view_waveform(bpy.types.Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'PREVIEW'
-    bl_label = "Waveform"
+    bl_label = _("Waveform")
 
     @classmethod
     def poll(cls, context):
@@ -514,7 +515,7 @@ class IMAGE_PT_view_waveform(bpy.types.Panel):
 class IMAGE_PT_view_vectorscope(bpy.types.Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'PREVIEW'
-    bl_label = "Vectorscope"
+    bl_label = _("Vectorscope")
 
     @classmethod
     def poll(cls, context):
@@ -532,7 +533,7 @@ class IMAGE_PT_view_vectorscope(bpy.types.Panel):
 class IMAGE_PT_sample_line(bpy.types.Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'PREVIEW'
-    bl_label = "Sample Line"
+    bl_label = _("Sample Line")
 
     @classmethod
     def poll(cls, context):
@@ -550,7 +551,7 @@ class IMAGE_PT_sample_line(bpy.types.Panel):
 class IMAGE_PT_scope_sample(bpy.types.Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'PREVIEW'
-    bl_label = "Scope Samples"
+    bl_label = _("Scope Samples")
 
     @classmethod
     def poll(cls, context):
@@ -571,7 +572,7 @@ class IMAGE_PT_scope_sample(bpy.types.Panel):
 class IMAGE_PT_view_properties(bpy.types.Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'UI'
-    bl_label = "Display"
+    bl_label = _("Display")
 
     @classmethod
     def poll(cls, context):
@@ -590,22 +591,22 @@ class IMAGE_PT_view_properties(bpy.types.Panel):
 
         col = split.column()
         if ima:
-            col.prop(ima, "display_aspect", text="Aspect Ratio")
+            col.prop(ima, "display_aspect", text=_("Aspect Ratio"))
 
             col = split.column()
-            col.label(text="Coordinates:")
-            col.prop(sima, "show_repeat", text="Repeat")
+            col.label(text=_("Coordinates:"))
+            col.prop(sima, "show_repeat", text=_("Repeat"))
             if show_uvedit:
-                col.prop(uvedit, "show_normalized_coords", text="Normalized")
+                col.prop(uvedit, "show_normalized_coords", text=_("Normalized"))
 
         elif show_uvedit:
-            col.label(text="Coordinates:")
-            col.prop(uvedit, "show_normalized_coords", text="Normalized")
+            col.label(text=_("Coordinates:"))
+            col.prop(uvedit, "show_normalized_coords", text=_("Normalized"))
 
         if show_uvedit:
 
             col = layout.column()
-            col.label("Cursor Location")
+            col.label(_("Cursor Location"))
             row = col.row()
             row.prop(uvedit, "cursor_location", text="")
 
@@ -616,13 +617,13 @@ class IMAGE_PT_view_properties(bpy.types.Panel):
 
             split = layout.split()
             col = split.column()
-            col.prop(uvedit, "show_smooth_edges", text="Smooth")
-            col.prop(uvedit, "show_modified_edges", text="Modified")
+            col.prop(uvedit, "show_smooth_edges", text=_("Smooth"))
+            col.prop(uvedit, "show_modified_edges", text=_("Modified"))
             #col.prop(uvedit, "show_edges")
             #col.prop(uvedit, "show_faces")
 
             col = split.column()
-            col.prop(uvedit, "show_stretch", text="Stretch")
+            col.prop(uvedit, "show_stretch", text=_("Stretch"))
             sub = col.column()
             sub.active = uvedit.show_stretch
             sub.row().prop(uvedit, "draw_stretch_type", expand=True)
@@ -631,7 +632,7 @@ class IMAGE_PT_view_properties(bpy.types.Panel):
 class IMAGE_PT_paint(bpy.types.Panel):
     bl_space_type = 'IMAGE_EDITOR'
     bl_region_type = 'UI'
-    bl_label = "Paint"
+    bl_label = _("Paint")
 
     @classmethod
     def poll(cls, context):
@@ -665,16 +666,16 @@ class IMAGE_PT_paint(bpy.types.Panel):
             row.prop(brush, "jitter", slider=True)
             row.prop(brush, "use_pressure_jitter", toggle=True, text="")
 
-            col.prop(brush, "blend", text="Blend")
+            col.prop(brush, "blend", text=_("Blend"))
 
             if brush.image_tool == 'CLONE':
                 col.separator()
-                col.prop(brush, "clone_image", text="Image")
-                col.prop(brush, "clone_alpha", text="Alpha")
+                col.prop(brush, "clone_image", text=_("Image"))
+                col.prop(brush, "clone_alpha", text=_("Alpha"))
 
 
 class IMAGE_PT_tools_brush_texture(BrushButtonsPanel, bpy.types.Panel):
-    bl_label = "Texture"
+    bl_label = _("Texture")
     bl_options = {'DEFAULT_CLOSED'}
 
     def draw(self, context):
@@ -689,7 +690,7 @@ class IMAGE_PT_tools_brush_texture(BrushButtonsPanel, bpy.types.Panel):
 
 
 class IMAGE_PT_tools_brush_tool(BrushButtonsPanel, bpy.types.Panel):
-    bl_label = "Tool"
+    bl_label = _("Tool")
     bl_options = {'DEFAULT_CLOSED'}
 
     def draw(self, context):
@@ -709,7 +710,7 @@ class IMAGE_PT_tools_brush_tool(BrushButtonsPanel, bpy.types.Panel):
 
 
 class IMAGE_PT_paint_stroke(BrushButtonsPanel, bpy.types.Panel):
-    bl_label = "Paint Stroke"
+    bl_label = _("Paint Stroke")
     bl_options = {'DEFAULT_CLOSED'}
 
     def draw(self, context):
@@ -726,14 +727,14 @@ class IMAGE_PT_paint_stroke(BrushButtonsPanel, bpy.types.Panel):
         layout.prop(brush, "use_space")
         row = layout.row(align=True)
         row.active = brush.use_space
-        row.prop(brush, "spacing", text="Distance", slider=True)
+        row.prop(brush, "spacing", text=_("Distance"), slider=True)
         row.prop(brush, "use_pressure_spacing", toggle=True, text="")
 
         layout.prop(brush, "use_wrap")
 
 
 class IMAGE_PT_paint_curve(BrushButtonsPanel, bpy.types.Panel):
-    bl_label = "Paint Curve"
+    bl_label = _("Paint Curve")
     bl_options = {'DEFAULT_CLOSED'}
 
     def draw(self, context):
index 7f7aba71a467e12b9aa935ed359301eee6c47625..da4161cd88c2573f9f4083aad43c20604c42e9cd 100644 (file)
 
 # <pep8 compliant>
 import bpy
+from blf import gettext as _
 
 
 class LOGIC_PT_properties(bpy.types.Panel):
     bl_space_type = 'LOGIC_EDITOR'
     bl_region_type = 'UI'
-    bl_label = "Properties"
+    bl_label = _("Properties")
 
     @classmethod
     def poll(cls, context):
@@ -36,7 +37,7 @@ class LOGIC_PT_properties(bpy.types.Panel):
         ob = context.active_object
         game = ob.game
 
-        layout.operator("object.game_property_new", text="Add Game Property", icon='ZOOMIN')
+        layout.operator("object.game_property_new", text=_("Add Game Property"), icon='ZOOMIN')
 
         for i, prop in enumerate(game.properties):
 
@@ -50,14 +51,14 @@ class LOGIC_PT_properties(bpy.types.Panel):
 
 
 class LOGIC_MT_logicbricks_add(bpy.types.Menu):
-    bl_label = "Add"
+    bl_label = _("Add")
 
     def draw(self, context):
         layout = self.layout
 
-        layout.operator_menu_enum("logic.sensor_add", "type", text="Sensor")
-        layout.operator_menu_enum("logic.controller_add", "type", text="Controller")
-        layout.operator_menu_enum("logic.actuator_add", "type", text="Actuator")
+        layout.operator_menu_enum("logic.sensor_add", "type", text=_("Sensor"))
+        layout.operator_menu_enum("logic.controller_add", "type", text=_("Controller"))
+        layout.operator_menu_enum("logic.actuator_add", "type", text=_("Actuator"))
 
 
 class LOGIC_HT_header(bpy.types.Header):
@@ -77,7 +78,7 @@ class LOGIC_HT_header(bpy.types.Header):
 
 
 class LOGIC_MT_view(bpy.types.Menu):
-    bl_label = "View"
+    bl_label = _("View")
 
     def draw(self, context):
         layout = self.layout
index 717adb3baa8a0c5efdbd77309972a760e2c8d8f9..f6fa84c3c6ab00fc45a1ce26a33f55b454e3d44a 100644 (file)
@@ -19,6 +19,7 @@
 # <pep8 compliant>
 
 import bpy
+from blf import gettext as _
 
 
 class NLA_HT_header(bpy.types.Header):
@@ -49,7 +50,7 @@ class NLA_HT_header(bpy.types.Header):
 
 
 class NLA_MT_view(bpy.types.Menu):
-    bl_label = "View"
+    bl_label = _("View")
 
     def draw(self, context):
         layout = self.layout
@@ -65,7 +66,7 @@ class NLA_MT_view(bpy.types.Menu):
         layout.prop(st, "use_realtime_update")
         layout.prop(st, "show_frame_indicator")
 
-        layout.operator("anim.time_toggle", text="Show Frames" if st.show_seconds else "Show Seconds")
+        layout.operator("anim.time_toggle", text=_("Show Frames") if st.show_seconds else _("Show Seconds"))
 
         layout.prop(st, "show_strip_curves")
 
@@ -79,7 +80,7 @@ class NLA_MT_view(bpy.types.Menu):
 
 
 class NLA_MT_select(bpy.types.Menu):
-    bl_label = "Select"
+    bl_label = _("Select")
 
     def draw(self, context):
         layout = self.layout
@@ -87,19 +88,19 @@ class NLA_MT_select(bpy.types.Menu):
         layout.column()
         # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None
         layout.operator("nla.select_all_toggle")
-        layout.operator("nla.select_all_toggle", text="Invert Selection").invert = True
+        layout.operator("nla.select_all_toggle", text=_("Invert Selection")).invert = True
 
         layout.separator()
         layout.operator("nla.select_border")
-        layout.operator("nla.select_border", text="Border Axis Range").axis_range = True
+        layout.operator("nla.select_border", text=_("Border Axis Range")).axis_range = True
 
         layout.separator()
-        layout.operator("nla.select_leftright", text="Before Current Frame").mode = 'LEFT'
-        layout.operator("nla.select_leftright", text="After Current Frame").mode = 'RIGHT'
+        layout.operator("nla.select_leftright", text=_("Before Current Frame")).mode = 'LEFT'
+        layout.operator("nla.select_leftright", text=_("After Current Frame")).mode = 'RIGHT'
 
 
 class NLA_MT_marker(bpy.types.Menu):
-    bl_label = "Marker"
+    bl_label = _("Marker")
 
     def draw(self, context):
         layout = self.layout
@@ -107,18 +108,18 @@ class NLA_MT_marker(bpy.types.Menu):
         #layout.operator_context = 'EXEC_REGION_WIN'
 
         layout.column()
-        layout.operator("marker.add", "Add Marker")
-        layout.operator("marker.duplicate", text="Duplicate Marker")
-        layout.operator("marker.delete", text="Delete Marker")
+        layout.operator("marker.add", _("Add Marker"))
+        layout.operator("marker.duplicate", text=_("Duplicate Marker"))
+        layout.operator("marker.delete", text=_("Delete Marker"))
 
         layout.separator()
 
-        layout.operator("marker.rename", text="Rename Marker")
-        layout.operator("marker.move", text="Grab/Move Marker")
+        layout.operator("marker.rename", text=_("Rename Marker"))
+        layout.operator("marker.move", text=_("Grab/Move Marker"))
 
 
 class NLA_MT_edit(bpy.types.Menu):
-    bl_label = "Edit"
+    bl_label = _("Edit")
 
     def draw(self, context):
         layout = self.layout
@@ -126,9 +127,9 @@ class NLA_MT_edit(bpy.types.Menu):
         scene = context.scene
 
         layout.column()
-        layout.menu("NLA_MT_edit_transform", text="Transform")
+        layout.menu("NLA_MT_edit_transform", text=_("Transform"))
 
-        layout.operator_menu_enum("nla.snap", "type", text="Snap")
+        layout.operator_menu_enum("nla.snap", "type", text=_("Snap"))
 
         layout.separator()
         layout.operator("nla.duplicate")
@@ -150,18 +151,18 @@ class NLA_MT_edit(bpy.types.Menu):
 
         # TODO: this really belongs more in a "channel" (or better, "track") menu
         layout.separator()
-        layout.operator_menu_enum("anim.channels_move", "direction", text="Track Ordering...")
+        layout.operator_menu_enum("anim.channels_move", "direction", text=_("Track Ordering..."))
 
         layout.separator()
         # TODO: names of these tools for 'tweakmode' need changing?
         if scene.is_nla_tweakmode:
-            layout.operator("nla.tweakmode_exit", text="Stop Tweaking Strip Actions")
+            layout.operator("nla.tweakmode_exit", text=_("Stop Tweaking Strip Actions"))
         else:
-            layout.operator("nla.tweakmode_enter", text="Start Tweaking Strip Actions")
+            layout.operator("nla.tweakmode_enter", text=_("Start Tweaking Strip Actions"))
 
 
 class NLA_MT_add(bpy.types.Menu):
-    bl_label = "Add"
+    bl_label = _("Add")
 
     def draw(self, context):
         layout = self.layout
@@ -176,19 +177,19 @@ class NLA_MT_add(bpy.types.Menu):
 
         layout.separator()
         layout.operator("nla.tracks_add")
-        layout.operator("nla.tracks_add", text="Add Tracks Above Selected").above_selected = True
+        layout.operator("nla.tracks_add", text=_("Add Tracks Above Selected")).above_selected = True
 
 
 class NLA_MT_edit_transform(bpy.types.Menu):
-    bl_label = "Transform"
+    bl_label = _("Transform")
 
     def draw(self, context):
         layout = self.layout
 
         layout.column()
-        layout.operator("transform.translate", text="Grab/Move")
-        layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND'
-        layout.operator("transform.transform", text="Scale").mode = 'TIME_SCALE'
+        layout.operator("transform.translate", text=_("Grab/Move"))
+        layout.operator("transform.transform", text=_("Extend")).mode = 'TIME_EXTEND'
+        layout.operator("transform.transform", text=_("Scale")).mode = 'TIME_SCALE'
 
 if __name__ == "__main__":  # only for live edit.
     bpy.utils.register_module(__name__)
index fed1cc49c4cd13680880e86aa34df292a2664076..a4e5c48cd80941689b7da39b7e149c959daf3f5c 100644 (file)
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from blf import gettext as _
 
 
 class NODE_HT_header(bpy.types.Header):
@@ -66,7 +67,7 @@ class NODE_HT_header(bpy.types.Header):
             scene = snode.id
 
             layout.prop(scene, "use_nodes")
-            layout.prop(scene.render, "use_free_unused_nodes", text="Free Unused")
+            layout.prop(scene.render, "use_free_unused_nodes", text=_("Free Unused"))
             layout.prop(snode, "show_backdrop")
             if snode.show_backdrop:
                 row = layout.row(align=True)
@@ -79,7 +80,7 @@ class NODE_HT_header(bpy.types.Header):
 
 
 class NODE_MT_view(bpy.types.Menu):
-    bl_label = "View"
+    bl_label = _("View")
 
     def draw(self, context):
         layout = self.layout
@@ -97,9 +98,9 @@ class NODE_MT_view(bpy.types.Menu):
         if context.space_data.show_backdrop:
             layout.separator()
 
-            layout.operator("node.backimage_move", text="Backdrop move")
-            layout.operator("node.backimage_zoom", text="Backdrop zoom in").factor = 1.2
-            layout.operator("node.backimage_zoom", text="Backdrop zoom out").factor = 0.833
+            layout.operator("node.backimage_move", text=_("Backdrop move"))
+            layout.operator("node.backimage_zoom", text=_("Backdrop zoom in")).factor = 1.2
+            layout.operator("node.backimage_zoom", text=_("Backdrop zoom out")).factor = 0.833
 
         layout.separator()
 
@@ -108,7 +109,7 @@ class NODE_MT_view(bpy.types.Menu):
 
 
 class NODE_MT_select(bpy.types.Menu):
-    bl_label = "Select"
+    bl_label = _("Select")
 
     def draw(self, context):
         layout = self.layout
@@ -125,7 +126,7 @@ class NODE_MT_select(bpy.types.Menu):
 
 
 class NODE_MT_node(bpy.types.Menu):
-    bl_label = "Node"
+    bl_label = _("Node")
 
     def draw(self, context):
         layout = self.layout
@@ -141,7 +142,7 @@ class NODE_MT_node(bpy.types.Menu):
 
         layout.separator()
         layout.operator("node.link_make")
-        layout.operator("node.link_make", text="Make and Replace Links").replace = True
+        layout.operator("node.link_make", text=_("Make and Replace Links")).replace = True
         layout.operator("node.links_cut")
 
         layout.separator()
@@ -167,7 +168,7 @@ class NODE_MT_node(bpy.types.Menu):
 class NODE_PT_properties(bpy.types.Panel):
     bl_space_type = 'NODE_EDITOR'
     bl_region_type = 'UI'
-    bl_label = "Backdrop"
+    bl_label = _("Backdrop")
 
     @classmethod
     def poll(cls, context):
@@ -184,13 +185,13 @@ class NODE_PT_properties(bpy.types.Panel):
         snode = context.space_data
         layout.active = snode.show_backdrop
         layout.prop(snode, "backdrop_channels", text="")
-        layout.prop(snode, "backdrop_zoom", text="Zoom")
+        layout.prop(snode, "backdrop_zoom", text=_("Zoom"))
 
         col = layout.column(align=True)
-        col.label(text="Offset:")
+        col.label(text=_("Offset:"))
         col.prop(snode, "backdrop_x", text="X")
         col.prop(snode, "backdrop_y", text="Y")
-        col.operator("node.backimage_move", text="Move")
+        col.operator("node.backimage_move", text=_("Move")
 
 if __name__ == "__main__":  # only for live edit.
     bpy.utils.register_module(__name__)
index c477a2ff62baf15470c88e529d57644b8eb872dc..e7276b82aba3da2f02fc202b94668542292b1100 100644 (file)
@@ -18,6 +18,7 @@
 
 # <pep8 compliant>
 import bpy
+from blf import gettext as _
 
 
 def act_strip(context):
@@ -63,9 +64,9 @@ class SEQUENCER_HT_header(bpy.types.Header):
         elif st.view_type == 'SEQUENCER_PREVIEW':
             layout.separator()
             layout.operator("sequencer.refresh_all")
-            layout.prop(st, "display_channel", text="Channel")
+            layout.prop(st, "display_channel", text=_("Channel"))
         else:
-            layout.prop(st, "display_channel", text="Channel")
+            layout.prop(st, "display_channel", text=_("Channel"))
 
             ed = context.scene.sequence_editor
             if ed:
@@ -77,7 +78,7 @@ class SEQUENCER_HT_header(bpy.types.Header):
 
 
 class SEQUENCER_MT_view_toggle(bpy.types.Menu):
-    bl_label = "View Type"
+    bl_label = _("View Type")
 
     def draw(self, context):
         layout = self.layout
@@ -88,7 +89,7 @@ class SEQUENCER_MT_view_toggle(bpy.types.Menu):
 
 
 class SEQUENCER_MT_view(bpy.types.Menu):
-    bl_label = "View"
+    bl_label = _("View")
 
     def draw(self, context):
         layout = self.layout
@@ -102,11 +103,11 @@ class SEQUENCER_MT_view(bpy.types.Menu):
         layout.separator()
 
         if st.view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'}:
-            layout.operator("sequencer.view_all", text='View all Sequences')
+            layout.operator("sequencer.view_all", text=_('View all Sequences'))
         if st.view_type in {'PREVIEW', 'SEQUENCER_PREVIEW'}:
             layout.operator_context = 'INVOKE_REGION_PREVIEW'
-            layout.operator("sequencer.view_all_preview", text='Fit preview in window')
-            layout.operator("sequencer.view_zoom_ratio", text='Show preview 1:1').ratio = 1.0
+            layout.operator("sequencer.view_all_preview", text=_('Fit preview in window'))
+            layout.operator("sequencer.view_zoom_ratio", text=_('Show preview 1:1')).ratio = 1.0
             layout.operator_context = 'INVOKE_DEFAULT'
 
             # # XXX, invokes in the header view
@@ -130,18 +131,18 @@ class SEQUENCER_MT_view(bpy.types.Menu):
 
 
 class SEQUENCER_MT_select(bpy.types.Menu):
-    bl_label = "Select"
+    bl_label = _("Select")
 
     def draw(self, context):
         layout = self.layout
 
         layout.column()
-        layout.operator("sequencer.select_active_side", text="Strips to the Left").side = 'LEFT'
-        layout.operator("sequencer.select_active_side", text="Strips to the Right").side = 'RIGHT'
+        layout.operator("sequencer.select_active_side", text=_("Strips to the Left")).side = 'LEFT'
+        layout.operator("sequencer.select_active_side", text=_("Strips to the Right")).side = 'RIGHT'
         layout.separator()
-        layout.operator("sequencer.select_handles", text="Surrounding Handles").side = 'BOTH'
-        layout.operator("sequencer.select_handles", text="Left Handle").side = 'LEFT'
-        layout.operator("sequencer.select_handles", text="Right Handle").side = 'RIGHT'
+        layout.operator("sequencer.select_handles", text=_("Surrounding Handles")).side = 'BOTH'
+        layout.operator("sequencer.select_handles", text=_("Left Handle")).side = 'LEFT'
+        layout.operator("sequencer.select_handles", text=_("Right Handle")).side = 'RIGHT'
         layout.separator()
         layout.operator("sequencer.select_linked")
         layout.operator("sequencer.select_all_toggle")
@@ -149,7 +150,7 @@ class SEQUENCER_MT_select(bpy.types.Menu):
 
 
 class SEQUENCER_MT_marker(bpy.types.Menu):
-    bl_label = "Marker"
+    bl_label = _("Marker")
 
     def draw(self, context):
         layout = self.layout
@@ -157,20 +158,20 @@ class SEQUENCER_MT_marker(bpy.types.Menu):
         #layout.operator_context = 'EXEC_REGION_WIN'
 
         layout.column()
-        layout.operator("marker.add", "Add Marker")
-        layout.operator("marker.duplicate", text="Duplicate Marker")
-        layout.operator("marker.delete", text="Delete Marker")
+        layout.operator("marker.add", _("Add Marker"))
+        layout.operator("marker.duplicate", text=_("Duplicate Marker"))
+        layout.operator("marker.delete", text=_("Delete Marker"))
 
         layout.separator()
 
-        layout.operator("marker.rename", text="Rename Marker")
-        layout.operator("marker.move", text="Grab/Move Marker")
+        layout.operator("marker.rename", text=_("Rename Marker"))
+        layout.operator("marker.move", text=_("Grab/Move Marker"))
 
         #layout.operator("sequencer.sound_strip_add", text="Transform Markers") # toggle, will be rna - (sseq->flag & SEQ_MARKER_TRANS)
 
 
 class SEQUENCER_MT_add(bpy.types.Menu):
-    bl_label = "Add"
+    bl_label = _("Add")
 
     def draw(self, context):
         layout = self.layout
@@ -179,45 +180,45 @@ class SEQUENCER_MT_add(bpy.types.Menu):
         layout.column()
         if len(bpy.data.scenes) > 10:
             layout.operator_context = 'INVOKE_DEFAULT'
-            layout.operator("sequencer.scene_strip_add", text="Scene...")
+            layout.operator("sequencer.scene_strip_add", text=_("Scene..."))
         else:
-            layout.operator_menu_enum("sequencer.scene_strip_add", "scene", text="Scene...")
+            layout.operator_menu_enum("sequencer.scene_strip_add", "scene", text=_("Scene..."))
 
-        layout.operator("sequencer.movie_strip_add", text="Movie")
-        layout.operator("sequencer.image_strip_add", text="Image")
-        layout.operator("sequencer.sound_strip_add", text="Sound")
+        layout.operator("sequencer.movie_strip_add", text=_("Movie"))
+        layout.operator("sequencer.image_strip_add", text=_("Image"))
+        layout.operator("sequencer.sound_strip_add", text=_("Sound"))
 
         layout.menu("SEQUENCER_MT_add_effect")
 
 
 class SEQUENCER_MT_add_effect(bpy.types.Menu):
-    bl_label = "Effect Strip..."
+    bl_label = _("Effect Strip...")
 
     def draw(self, context):
         layout = self.layout
         layout.operator_context = 'INVOKE_REGION_WIN'
 
         layout.column()
-        layout.operator("sequencer.effect_strip_add", text="Add").type = 'ADD'
-        layout.operator("sequencer.effect_strip_add", text="Subtract").type = 'SUBTRACT'
-        layout.operator("sequencer.effect_strip_add", text="Alpha Over").type = 'ALPHA_OVER'
-        layout.operator("sequencer.effect_strip_add", text="Alpha Under").type = 'ALPHA_UNDER'
-        layout.operator("sequencer.effect_strip_add", text="Cross").type = 'CROSS'
-        layout.operator("sequencer.effect_strip_add", text="Gamma Cross").type = 'GAMMA_CROSS'
-        layout.operator("sequencer.effect_strip_add", text="Multiply").type = 'MULTIPLY'
-        layout.operator("sequencer.effect_strip_add", text="Over Drop").type = 'OVER_DROP'
-        layout.operator("sequencer.effect_strip_add", text="Plugin").type = 'PLUGIN'
-        layout.operator("sequencer.effect_strip_add", text="Wipe").type = 'WIPE'
-        layout.operator("sequencer.effect_strip_add", text="Glow").type = 'GLOW'
-        layout.operator("sequencer.effect_strip_add", text="Transform").type = 'TRANSFORM'
-        layout.operator("sequencer.effect_strip_add", text="Color").type = 'COLOR'
-        layout.operator("sequencer.effect_strip_add", text="Speed Control").type = 'SPEED'
-        layout.operator("sequencer.effect_strip_add", text="Multicam Selector").type = 'MULTICAM'
-        layout.operator("sequencer.effect_strip_add", text="Adjustment Layer").type = 'ADJUSTMENT'
+        layout.operator("sequencer.effect_strip_add", text=_("Add")).type = 'ADD'
+        layout.operator("sequencer.effect_strip_add", text=_("Subtract")).type = 'SUBTRACT'
+        layout.operator("sequencer.effect_strip_add", text=_("Alpha Over")).type = 'ALPHA_OVER'
+        layout.operator("sequencer.effect_strip_add", text=_("Alpha Under")).type = 'ALPHA_UNDER'
+        layout.operator("sequencer.effect_strip_add", text=_("Cross")).type = 'CROSS'
+        layout.operator("sequencer.effect_strip_add", text=_("Gamma Cross")).type = 'GAMMA_CROSS'
+        layout.operator("sequencer.effect_strip_add", text=_("Multiply")).type = 'MULTIPLY'
+        layout.operator("sequencer.effect_strip_add", text=_("Over Drop")).type = 'OVER_DROP'
+        layout.operator("sequencer.effect_strip_add", text=_("Plugin")).type = 'PLUGIN'
+        layout.operator("sequencer.effect_strip_add", text=_("Wipe")).type = 'WIPE'
+        layout.operator("sequencer.effect_strip_add", text=_("Glow")).type = 'GLOW'
+        layout.operator("sequencer.effect_strip_add", text=_("Transform")).type = 'TRANSFORM'
+        layout.operator("sequencer.effect_strip_add", text=_("Color")).type = 'COLOR'
+        layout.operator("sequencer.effect_strip_add", text=_("Speed Control")).type = 'SPEED'
+        layout.operator("sequencer.effect_strip_add", text=_("Multicam Selector")).type = 'MULTICAM'
+        layout.operator("sequencer.effect_strip_add", text=_("Adjustment Layer")).type = 'ADJUSTMENT'
 
 
 class SEQUENCER_MT_strip(bpy.types.Menu):
-    bl_label = "Strip"
+    bl_label = _("Strip")
 
     def draw(self, context):
         layout = self.layout
@@ -225,13 +226,13 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
         layout.operator_context = 'INVOKE_REGION_WIN'
 
         layout.column()
-        layout.operator("transform.transform", text="Grab/Move").mode = 'TRANSLATION'
-        layout.operator("transform.transform", text="Grab/Extend from frame").mode = 'TIME_EXTEND'
+        layout.operator("transform.transform", text=_("Grab/Move")).mode = 'TRANSLATION'
+        layout.operator("transform.transform", text=_("Grab/Extend from frame")).mode = 'TIME_EXTEND'
         #  uiItemO(layout, NULL, 0, "sequencer.strip_snap"); // TODO - add this operator
         layout.separator()
 
-        layout.operator("sequencer.cut", text="Cut (hard) at frame").type = 'HARD'
-        layout.operator("sequencer.cut", text="Cut (soft) at frame").type = 'SOFT'
+        layout.operator("sequencer.cut", text=_("Cut (hard) at frame")).type = 'HARD'
+        layout.operator("sequencer.cut", text=_("Cut (soft) at frame")).type = 'SOFT'
         layout.operator("sequencer.images_separate")
         layout.operator("sequencer.deinterlace_selected_movies")
         layout.separator()
@@ -283,7 +284,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
         layout.operator("sequencer.mute")
         layout.operator("sequencer.unmute")
 
-        layout.operator("sequencer.mute", text="Mute Deselected Strips").unselected = True
+        layout.operator("sequencer.mute", text=_("Mute Deselected Strips")).unselected = True
 
         layout.operator("sequencer.snap")
 
@@ -321,7 +322,7 @@ class SequencerButtonsPanel_Output():
 
 
 class SEQUENCER_PT_edit(SequencerButtonsPanel, bpy.types.Panel):
-    bl_label = "Edit Strip"
+    bl_label = _("Edit Strip")
 
     def draw(self, context):
         layout = self.layout
@@ -330,21 +331,21 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, bpy.types.Panel):
         strip = act_strip(context)
 
         split = layout.split(percentage=0.3)
-        split.label(text="Name:")
+        split.label(text=_("Name:"))
         split.prop(strip, "name", text="")
 
         split = layout.split(percentage=0.3)
-        split.label(text="Type:")
+        split.label(text=_("Type:"))
         split.prop(strip, "type", text="")
 
         split = layout.split(percentage=0.3)
-        split.label(text="Blend:")
+        split.label(text=_("Blend:"))
         split.prop(strip, "blend_type", text="")
 
         row = layout.row(align=True)
         sub = row.row()
         sub.active = (not strip.mute)
-        sub.prop(strip, "blend_alpha", text="Opacity", slider=True)
+        sub.prop(strip, "blend_alpha", text=_("Opacity"), slider=True)
         row.prop(strip, "mute", toggle=True, icon='RESTRICT_VIEW_ON' if strip.mute else 'RESTRICT_VIEW_OFF', text="")
         row.prop(strip, "lock", toggle=True, icon='LOCKED' if strip.lock else 'UNLOCKED', text="")
 
@@ -357,13 +358,13 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, bpy.types.Panel):
 
         col = layout.column(align=True)
         row = col.row()
-        row.label(text="Final Length: %s" % bpy.utils.smpte_from_frame(strip.frame_final_duration))
+        row.label(text=_("Final Length: %s") % bpy.utils.smpte_from_frame(strip.frame_final_duration))
         row = col.row()
         row.active = (frame_current >= strip.frame_start and frame_current <= strip.frame_start + strip.frame_duration)
-        row.label(text="Playhead: %d" % (frame_current - strip.frame_start))
+        row.label(text=_("Playhead: %d") % (frame_current - strip.frame_start))
 
-        col.label(text="Frame Offset %d:%d" % (strip.frame_offset_start, strip.frame_offset_end))
-        col.label(text="Frame Still %d:%d" % (strip.frame_still_start, strip.frame_still_end))
+        col.label(text=_("Frame Offset %d:%d") % (strip.frame_offset_start, strip.frame_offset_end))
+        col.label(text=_("Frame Still %d:%d") % (strip.frame_still_start, strip.frame_still_end))
 
         elem = False
 
@@ -373,11 +374,11 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, bpy.types.Panel):
             elem = strip.elements[0]
 
         if elem and elem.orig_width > 0 and elem.orig_height > 0:
-            col.label(text="Orig Dim: %dx%d" % (elem.orig_width, elem.orig_height))
+            col.label(text=_("Orig Dim: %dx%d") % (elem.orig_width, elem.orig_height))
 
 
 class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel):
-    bl_label = "Effect Strip"
+    bl_label = _("Effect Strip")
 
     @classmethod
     def poll(cls, context):
@@ -413,7 +414,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel):
 
             col = layout.column()
             col.prop(strip, "transition_type")
-            col.label(text="Direction:")
+            col.label(text=_("Direction:"))
             col.row().prop(strip, "direction", expand=True)
 
             col = layout.column()
@@ -433,13 +434,13 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel):
             row.prop(strip, "use_only_boost")
 
         elif strip.type == 'SPEED':
-            layout.prop(strip, "use_default_fade", "Stretch to input strip length")
+            layout.prop(strip, "use_default_fade", _("Stretch to input strip length"))
             if not strip.use_default_fade:
                 layout.prop(strip, "use_as_speed")
                 if strip.use_as_speed:
                     layout.prop(strip, "speed_factor")
                 else:
-                    layout.prop(strip, "speed_factor", text="Frame number")
+                    layout.prop(strip, "speed_factor", text=_("Frame number"))
                     layout.prop(strip, "scale_to_length")
 
             #doesn't work currently
@@ -457,7 +458,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel):
 
             sub.operator("screen.animation_play", text="", icon='PAUSE' if context.screen.is_animation_playing else 'PLAY')
 
-            row.label("Cut To")
+            row.label(_("Cut To"))
             for i in range(1, strip.channel):
                 row.operator("sequencer.cut_multicam", text=str(i)).camera = i
 
@@ -465,17 +466,17 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel):
         if strip.type == 'SPEED':
             col.prop(strip, "multiply_speed")
         elif strip.type in {'CROSS', 'GAMMA_CROSS', 'PLUGIN', 'WIPE'}:
-                col.prop(strip, "use_default_fade", "Default fade")
+                col.prop(strip, "use_default_fade", _("Default fade"))
                 if not strip.use_default_fade:
-                    col.prop(strip, "effect_fader", text="Effect fader")
+                    col.prop(strip, "effect_fader", text=_("Effect fader"))
 
-        layout.prop(strip, "use_translation", text="Image Offset:")
+        layout.prop(strip, "use_translation", text=_("Image Offset:"))
         if strip.use_translation:
             col = layout.column(align=True)
             col.prop(strip.transform, "offset_x", text="X")
             col.prop(strip.transform, "offset_y", text="Y")
 
-        layout.prop(strip, "use_crop", text="Image Crop:")
+        layout.prop(strip, "use_crop", text=_("Image Crop:"))
         if strip.use_crop:
             col = layout.column(align=True)
             col.prop(strip.crop, "max_y")
@@ -490,7 +491,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel):
         col.prop(strip, "interpolation")
         col.prop(strip, "translation_unit")
         col = layout.column(align=True)
-        col.label(text="Position:")
+        col.label(text=_("Position:"))
         col.prop(strip, "translate_start_x", text="X")
         col.prop(strip, "translate_start_y", text="Y")
 
@@ -500,22 +501,22 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel):
         col.prop(strip, "use_uniform_scale")
         if (strip.use_uniform_scale):
             col = layout.column(align=True)
-            col.prop(strip, "scale_start_x", text="Scale")
+            col.prop(strip, "scale_start_x", text=_("Scale"))
         else:
             col = layout.column(align=True)
-            col.label(text="Scale:")
+            col.label(text=_("Scale:"))
             col.prop(strip, "scale_start_x", text="X")
             col.prop(strip, "scale_start_y", text="Y")
 
         layout.separator()
 
         col = layout.column(align=True)
-        col.label(text="Rotation:")
-        col.prop(strip, "rotation_start", text="Rotation")
+        col.label(text=_("Rotation:"))
+        col.prop(strip, "rotation_start", text=_("Rotation"))
 
 
 class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel):
-    bl_label = "Strip Input"
+    bl_label = _("Strip Input")
 
     @classmethod
     def poll(cls, context):
@@ -544,7 +545,7 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel):
         if seq_type == 'IMAGE':
             split = layout.split(percentage=0.2)
             col = split.column()
-            col.label(text="Path:")
+            col.label(text=_("Path:"))
             col = split.column()
             col.prop(strip, "directory", text="")
 
@@ -554,28 +555,28 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel):
             if elem:
                 split = layout.split(percentage=0.2)
                 col = split.column()
-                col.label(text="File:")
+                col.label(text=_("File:"))
                 col = split.column()
                 col.prop(elem, "filename", text="")  # strip.elements[0] could be a fallback
 
         elif seq_type == 'MOVIE':
             split = layout.split(percentage=0.2)
             col = split.column()
-            col.label(text="Path:")
+            col.label(text=_("Path:"))
             col = split.column()
             col.prop(strip, "filepath", text="")
-            col.prop(strip, "mpeg_preseek", text="MPEG Preseek")
+            col.prop(strip, "mpeg_preseek", text=_("MPEG Preseek"))
 
         # TODO, sound???
         # end drawing filename
 
-        layout.prop(strip, "use_translation", text="Image Offset:")
+        layout.prop(strip, "use_translation", text=_("Image Offset:"))
         if strip.use_translation:
             col = layout.column(align=True)
             col.prop(strip.transform, "offset_x", text="X")
             col.prop(strip.transform, "offset_y", text="Y")
 
-        layout.prop(strip, "use_crop", text="Image Crop:")
+        layout.prop(strip, "use_crop", text=_("Image Crop:"))
         if strip.use_crop:
             col = layout.column(align=True)
             col.prop(strip.crop, "max_y")
@@ -585,18 +586,18 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel):
 
         if not isinstance(strip, bpy.types.EffectSequence):
             col = layout.column(align=True)
-            col.label(text="Trim Duration (hard):")
-            col.prop(strip, "animation_offset_start", text="Start")
-            col.prop(strip, "animation_offset_end", text="End")
+            col.label(text=_("Trim Duration (hard):"))
+            col.prop(strip, "animation_offset_start", text=_("Start"))
+            col.prop(strip, "animation_offset_end", text=_("End"))
 
         col = layout.column(align=True)
-        col.label(text="Trim Duration (soft):")
-        col.prop(strip, "frame_offset_start", text="Start")
-        col.prop(strip, "frame_offset_end", text="End")
+        col.label(text=_("Trim Duration (soft):"))
+        col.prop(strip, "frame_offset_start", text=_("Start"))
+        col.prop(strip, "frame_offset_end", text=_("End"))
 
 
 class SEQUENCER_PT_sound(SequencerButtonsPanel, bpy.types.Panel):
-    bl_label = "Sound"
+    bl_label = _("Sound")
 
     @classmethod
     def poll(cls, context):
@@ -621,9 +622,9 @@ class SEQUENCER_PT_sound(SequencerButtonsPanel, bpy.types.Panel):
 
         row = layout.row()
         if strip.sound.packed_file:
-            row.operator("sound.unpack", icon='PACKAGE', text="Unpack")
+            row.operator("sound.unpack", icon='PACKAGE', text=_("Unpack"))
         else:
-            row.operator("sound.pack", icon='UGLYPACKAGE', text="Pack")
+            row.operator("sound.pack", icon='UGLYPACKAGE', text=_("Pack"))
 
         row.prop(strip.sound, "use_memory_cache")
 
@@ -632,12 +633,12 @@ class SEQUENCER_PT_sound(SequencerButtonsPanel, bpy.types.Panel):
 
         col = layout.column(align=True)
         col.label(text="Trim Duration:")
-        col.prop(strip, "animation_offset_start", text="Start")
-        col.prop(strip, "animation_offset_end", text="End")
+        col.prop(strip, "animation_offset_start", text=_("Start"))
+        col.prop(strip, "animation_offset_end", text=_("End"))
 
 
 class SEQUENCER_PT_scene(SequencerButtonsPanel, bpy.types.Panel):
-    bl_label = "Scene"
+    bl_label = _("Scene")
 
     @classmethod
     def poll(cls, context):
@@ -661,17 +662,17 @@ class SEQUENCER_PT_scene(SequencerButtonsPanel, bpy.types.Panel):
         if scene:
             layout.prop(scene.render, "use_sequencer")
 
-        layout.label(text="Camera Override")
+        layout.label(text=_("Camera Override"))
         layout.template_ID(strip, "scene_camera")
 
         if scene:
             sta = scene.frame_start
             end = scene.frame_end
-            layout.label(text="Original frame range: %d-%d (%d)" % (sta, end, end - sta + 1))
+            layout.label(text=_("Original frame range: %d-%d (%d)") % (sta, end, end - sta + 1))
 
 
 class SEQUENCER_PT_filter(SequencerButtonsPanel, bpy.types.Panel):
-    bl_label = "Filter"
+    bl_label = _("Filter")
 
     @classmethod
     def poll(cls, context):
@@ -695,22 +696,22 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel, bpy.types.Panel):
         strip = act_strip(context)
 
         col = layout.column()
-        col.label(text="Video:")
+        col.label(text=_("Video:"))
         col.prop(strip, "strobe")
 
         row = layout.row()
-        row.label(text="Flip:")
+        row.label(text=_("Flip:"))
         row.prop(strip, "use_flip_x", text="X")
         row.prop(strip, "use_flip_y", text="Y")
 
         col = layout.column()
-        col.prop(strip, "use_reverse_frames", text="Backwards")
+        col.prop(strip, "use_reverse_frames", text=_("Backwards"))
         col.prop(strip, "use_deinterlace")
 
         col = layout.column()
-        col.label(text="Colors:")
-        col.prop(strip, "color_saturation", text="Saturation")
-        col.prop(strip, "color_multiply", text="Multiply")
+        col.label(text=_("Colors:"))
+        col.prop(strip, "color_saturation", text=_("Saturation"))
+        col.prop(strip, "color_multiply", text=_("Multiply"))
         col.prop(strip, "use_premultiply")
         col.prop(strip, "use_float")
 
@@ -721,19 +722,19 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel, bpy.types.Panel):
             col = row.column()
             col.template_color_wheel(strip.color_balance, "lift", value_slider=False, cubic=True)
             col.row().prop(strip.color_balance, "lift")
-            col.prop(strip.color_balance, "invert_lift", text="Inverse")
+            col.prop(strip.color_balance, "invert_lift", text=_("Inverse"))
             col = row.column()
             col.template_color_wheel(strip.color_balance, "gamma", value_slider=False, lock_luminosity=True, cubic=True)
             col.row().prop(strip.color_balance, "gamma")
-            col.prop(strip.color_balance, "invert_gamma", text="Inverse")
+            col.prop(strip.color_balance, "invert_gamma", text=_("Inverse"))
             col = row.column()
             col.template_color_wheel(strip.color_balance, "gain", value_slider=False, lock_luminosity=True, cubic=True)
             col.row().prop(strip.color_balance, "gain")
-            col.prop(strip.color_balance, "invert_gain", text="Inverse")
+            col.prop(strip.color_balance, "invert_gain", text=_("Inverse"))
 
 
 class SEQUENCER_PT_proxy(SequencerButtonsPanel, bpy.types.Panel):
-    bl_label = "Proxy"
+    bl_label = _("Proxy")
 
     @classmethod
     def poll(cls, context):
@@ -767,7 +768,7 @@ class SEQUENCER_PT_proxy(SequencerButtonsPanel, bpy.types.Panel):
 
 
 class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, bpy.types.Panel):
-    bl_label = "Scene Preview/Render"
+    bl_label = _("Scene Preview/Render")
     bl_space_type = 'SEQUENCE_EDITOR'
     bl_region_type = 'UI'
 
@@ -777,7 +778,7 @@ class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, bpy.types.Panel):
 
         col = layout.column()
         col.active = False  # Currently only opengl preview works!
-        col.prop(render, "use_sequencer_gl_preview", text="Open GL Preview")
+        col.prop(render, "use_sequencer_gl_preview", text=_("Open GL Preview"))
         col = layout.column()
         #col.active = render.use_sequencer_gl_preview
         col.prop(render, "sequencer_gl_preview", text="")
@@ -792,7 +793,7 @@ class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, bpy.types.Panel):
 
 
 class SEQUENCER_PT_view(SequencerButtonsPanel_Output, bpy.types.Panel):
-    bl_label = "View Settings"
+    bl_label = _("View Settings")
 
     def draw(self, context):
         layout = self.layout
index 67f2bdf452acad27cd94a52b5c01e00586eb4241..ee3fe741b863ccf99096f89d9a76b917e29b51d6 100644 (file)
@@ -584,10 +584,10 @@ enum {
 
 /* defines for rearranging channels */
 static EnumPropertyItem prop_animchannel_rearrange_types[] = {
-       {REARRANGE_ANIMCHAN_TOP, "TOP", 0, "To Top", ""},
-       {REARRANGE_ANIMCHAN_UP, "UP", 0, "Up", ""},
-       {REARRANGE_ANIMCHAN_DOWN, "DOWN", 0, "Down", ""},
-       {REARRANGE_ANIMCHAN_BOTTOM, "BOTTOM", 0, "To Bottom", ""},
+       {REARRANGE_ANIMCHAN_TOP, "TOP", 0, N_("To Top"), ""},
+       {REARRANGE_ANIMCHAN_UP, "UP", 0, N_("Up"), ""},
+       {REARRANGE_ANIMCHAN_DOWN, "DOWN", 0, N_("Down"), ""},
+       {REARRANGE_ANIMCHAN_BOTTOM, "BOTTOM", 0, N_("To Bottom"), ""},
        {0, NULL, 0, NULL, NULL}
 };
 
@@ -1088,7 +1088,7 @@ static void ANIM_OT_channels_move (wmOperatorType *ot)
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
        
        /* props */
-       ot->prop= RNA_def_enum(ot->srna, "direction", prop_animchannel_rearrange_types, REARRANGE_ANIMCHAN_DOWN, _("Direction"), "");
+       ot->prop= RNA_def_enum(ot->srna, "direction", RNA_enum_items_gettexted(prop_animchannel_rearrange_types), REARRANGE_ANIMCHAN_DOWN, _("Direction"), "");
 }
 
 /* ******************** Delete Channel Operator *********************** */
index d07a2ec7f98f5d47cb5df82e45c3c9453c71d89e..7af80842e504463d5769ea353369359c7917c7aa 100755 (executable)
@@ -3,7 +3,6 @@
  */
 /* DataToC output of file <bfont_ttf> */
 
-#include <zlib.h>
 #include <stdio.h>
 #include "BLI_path_util.h"
 #include "BLI_string.h"
index c1f34f15aeeeeab372e4fe0d1c330959348be0a7..7fb0200ae1e5d1dc1118ecb124fae3c73f927898 100644 (file)
@@ -39,6 +39,8 @@
 #include "BLI_string.h"
 #include "BLI_utildefines.h"
 
+#include "BLF_api.h"
+
 #include "BKE_animsys.h"
 #include "BKE_colortools.h"
 #include "BKE_context.h"
@@ -62,8 +64,6 @@
 #include "UI_interface.h"
 #include "interface_intern.h"
 
-#include "BLF_api.h"
-
 void UI_template_fix_linking(void)
 {
 }
@@ -385,12 +385,12 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
                if(id->lib) {
                        if(id->flag & LIB_INDIRECT) {
                                but= uiDefIconBut(block, BUT, 0, ICON_LIBRARY_DATA_INDIRECT, 0,0,UI_UNIT_X,UI_UNIT_Y, NULL, 0, 0, 0, 0,
-                                       "Indirect library datablock, cannot change.");
+                                       _("Indirect library datablock, cannot change."));
                                uiButSetFlag(but, UI_BUT_DISABLED);
                        }
                        else {
                                but= uiDefIconBut(block, BUT, 0, ICON_LIBRARY_DATA_DIRECT, 0,0,UI_UNIT_X,UI_UNIT_Y, NULL, 0, 0, 0, 0,
-                                       "Direct linked library datablock, click to make local.");
+                                       _("Direct linked library datablock, click to make local."));
                                if(!id_make_local(id, 1 /* test */) || (idfrom && idfrom->lib))
                                        uiButSetFlag(but, UI_BUT_DISABLED);
                        }
@@ -404,9 +404,9 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
                        sprintf(str, "%d", id->us);
 
                        if(id->us<10)
-                               but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X,UI_UNIT_Y, NULL, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy.");
+                               but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X,UI_UNIT_Y, NULL, 0, 0, 0, 0, _("Displays number of users of this data. Click to make a single-user copy."));
                        else
-                               but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X+10,UI_UNIT_Y, NULL, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy.");
+                               but= uiDefBut(block, BUT, 0, str, 0,0,UI_UNIT_X+10,UI_UNIT_Y, NULL, 0, 0, 0, 0, _("Displays number of users of this data. Click to make a single-user copy."));
 
                        uiButSetNFunc(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_ALONE));
                        if(!id_copy(id, NULL, 1 /* test only */) || (idfrom && idfrom->lib) || !editable)
@@ -424,11 +424,11 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
                int w= id?UI_UNIT_X: (flag & UI_ID_OPEN)? UI_UNIT_X*3: UI_UNIT_X*6;
                
                if(newop) {
-                       but= uiDefIconTextButO(block, BUT, newop, WM_OP_INVOKE_DEFAULT, ICON_ZOOMIN, (id)? "": "New", 0, 0, w, UI_UNIT_Y, NULL);
+                       but= uiDefIconTextButO(block, BUT, newop, WM_OP_INVOKE_DEFAULT, ICON_ZOOMIN, (id)? "": _("New"), 0, 0, w, UI_UNIT_Y, NULL);
                        uiButSetNFunc(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_ADD_NEW));
                }
                else {
-                       but= uiDefIconTextBut(block, BUT, 0, ICON_ZOOMIN, (id)? "": "New", 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, NULL);
+                       but= uiDefIconTextBut(block, BUT, 0, ICON_ZOOMIN, (id)? "": _("New"), 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, NULL);
                        uiButSetNFunc(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_ADD_NEW));
                }
 
@@ -440,11 +440,11 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
                int w= id?UI_UNIT_X: (flag & UI_ID_ADD_NEW)? UI_UNIT_X*3: UI_UNIT_X*6;
                
                if(openop) {
-                       but= uiDefIconTextButO(block, BUT, openop, WM_OP_INVOKE_DEFAULT, ICON_FILESEL, (id)? "": "Open", 0, 0, w, UI_UNIT_Y, NULL);
+                       but= uiDefIconTextButO(block, BUT, openop, WM_OP_INVOKE_DEFAULT, ICON_FILESEL, (id)? "": _("Open"), 0, 0, w, UI_UNIT_Y, NULL);
                        uiButSetNFunc(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_OPEN));
                }
                else {
-                       but= uiDefIconTextBut(block, BUT, 0, ICON_FILESEL, (id)? "": "Open", 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, NULL);
+                       but= uiDefIconTextBut(block, BUT, 0, ICON_FILESEL, (id)? "": _("Open"), 0, 0, w, UI_UNIT_Y, NULL, 0, 0, 0, 0, NULL);
                        uiButSetNFunc(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_OPEN));
                }
 
@@ -460,7 +460,7 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
                        uiButSetNFunc(but, NULL, MEM_dupallocN(template), NULL);
                }
                else {
-                       but= uiDefIconBut(block, BUT, 0, ICON_X, 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Unlink datablock. Shift + Click to set users to zero, data will then not be saved");
+                       but= uiDefIconBut(block, BUT, 0, ICON_X, 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, _("Unlink datablock. Shift + Click to set users to zero, data will then not be saved"));
                        uiButSetNFunc(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_DELETE));
 
                        if(RNA_property_flag(template->prop) & PROP_NEVER_NULL)
@@ -717,7 +717,7 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
                sprintf(str, "%s parent deform", md->name);
                uiDefBut(block, LABEL, 0, str, 0, 0, 185, UI_UNIT_Y, NULL, 0.0, 0.0, 0.0, 0.0, "Modifier name"); 
                
-               but = uiDefBut(block, BUT, 0, "Make Real", 0, 0, 80, 16, NULL, 0.0, 0.0, 0.0, 0.0, "Convert virtual modifier to a real modifier");
+               but = uiDefBut(block, BUT, 0, _("Make Real"), 0, 0, 80, 16, NULL, 0.0, 0.0, 0.0, 0.0, _("Convert virtual modifier to a real modifier"));
                uiButSetFunc(but, modifiers_convertToReal, ob, md);
        }
        else {
@@ -751,7 +751,7 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
                if ((ob->type==OB_MESH) && modifier_couldBeCage(scene, md) && (index <= lastCageIndex)) 
                {
                        /* -- convert to rna ? */
-                       but = uiDefIconButBitI(block, TOG, eModifierMode_OnCage, 0, ICON_MESH_DATA, 0, 0, UI_UNIT_X-2, UI_UNIT_Y, &md->mode, 0.0, 0.0, 0.0, 0.0, "Apply modifier to editing cage during Editmode");
+                       but = uiDefIconButBitI(block, TOG, eModifierMode_OnCage, 0, ICON_MESH_DATA, 0, 0, UI_UNIT_X-2, UI_UNIT_Y, &md->mode, 0.0, 0.0, 0.0, 0.0, _("Apply modifier to editing cage during Editmode"));
                        if (index < cageIndex)
                                uiButSetFlag(but, UI_BUT_DISABLED);
                        uiButSetFunc(but, modifiers_setOnCage, ob, md);
@@ -763,7 +763,7 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
                        if (ELEM3(md->type, eModifierType_Hook, eModifierType_Softbody, eModifierType_MeshDeform)) {
                                /* add disabled pre-tesselated button, so users could have
                                   message for this modifiers */
-                               but = uiDefIconButBitI(block, TOG, eModifierMode_ApplyOnSpline, 0, ICON_SURFACE_DATA, 0, 0, UI_UNIT_X-2, UI_UNIT_Y, &md->mode, 0.0, 0.0, 0.0, 0.0, "This modifier could be applied on splines' points only");
+                               but = uiDefIconButBitI(block, TOG, eModifierMode_ApplyOnSpline, 0, ICON_SURFACE_DATA, 0, 0, UI_UNIT_X-2, UI_UNIT_Y, &md->mode, 0.0, 0.0, 0.0, 0.0, _("This modifier could be applied on splines' points only"));
                                uiButSetFlag(but, UI_BUT_DISABLED);
                        } else if (mti->type != eModifierTypeType_Constructive) {
                                /* constructive modifiers tesselates curve before applying */
@@ -813,17 +813,17 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
                        }
                        else {
                                uiLayoutSetOperatorContext(row, WM_OP_INVOKE_DEFAULT);
-                               uiItemEnumO(row, "OBJECT_OT_modifier_apply", "Apply", 0, "apply_as", MODIFIER_APPLY_DATA);
+                               uiItemEnumO(row, "OBJECT_OT_modifier_apply", _("Apply"), 0, "apply_as", MODIFIER_APPLY_DATA);
                                
                                if (modifier_sameTopology(md))
-                                       uiItemEnumO(row, "OBJECT_OT_modifier_apply", "Apply as Shape", 0, "apply_as", MODIFIER_APPLY_SHAPE);
+                                       uiItemEnumO(row, "OBJECT_OT_modifier_apply", _("Apply as Shape"), 0, "apply_as", MODIFIER_APPLY_SHAPE);
                        }
                        
                        uiBlockClearButLock(block);
                        uiBlockSetButLock(block, ob && ob->id.lib, ERROR_LIBDATA_MESSAGE);
                        
                        if (!ELEM5(md->type, eModifierType_Fluidsim, eModifierType_Softbody, eModifierType_ParticleSystem, eModifierType_Cloth, eModifierType_Smoke))
-                               uiItemO(row, "Copy", ICON_NONE, "OBJECT_OT_modifier_copy");
+                               uiItemO(row, _("Copy"), ICON_NONE, "OBJECT_OT_modifier_copy");
                }
                
                /* result is the layout block inside the box, that we return so that modifier settings can be drawn */
@@ -1003,8 +1003,8 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
                uiBlockSetEmboss(block, UI_EMBOSSN);
                
                /* draw a ghost icon (for proxy) and also a lock beside it, to show that constraint is "proxy locked" */
-               uiDefIconBut(block, BUT, B_CONSTRAINT_TEST, ICON_GHOST, xco+244, yco, 19, 19, NULL, 0.0, 0.0, 0.0, 0.0, "Proxy Protected");
-               uiDefIconBut(block, BUT, B_CONSTRAINT_TEST, ICON_LOCKED, xco+262, yco, 19, 19, NULL, 0.0, 0.0, 0.0, 0.0, "Proxy Protected");
+               uiDefIconBut(block, BUT, B_CONSTRAINT_TEST, ICON_GHOST, xco+244, yco, 19, 19, NULL, 0.0, 0.0, 0.0, 0.0, _("Proxy Protected"));
+               uiDefIconBut(block, BUT, B_CONSTRAINT_TEST, ICON_LOCKED, xco+262, yco, 19, 19, NULL, 0.0, 0.0, 0.0, 0.0, _("Proxy Protected"));
                
                uiBlockSetEmboss(block, UI_EMBOSS);
        }
@@ -1190,14 +1190,14 @@ void uiTemplatePreview(uiLayout *layout, ID *id, int show_buttons, ID *parent, M
                        RNA_pointer_create(id, &RNA_Texture, tex, &texture_ptr);
                        
                        uiLayoutRow(layout, 1);
-                       uiDefButS(block, ROW, B_MATPRV, "Texture",  0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_TEXTURE, 0, 0, "");
+                       uiDefButS(block, ROW, B_MATPRV, _("Texture"),  0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_TEXTURE, 0, 0, "");
                        if(GS(parent->name) == ID_MA)
-                               uiDefButS(block, ROW, B_MATPRV, "Material",  0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_OTHER, 0, 0, "");
+                               uiDefButS(block, ROW, B_MATPRV, _("Material"),  0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_OTHER, 0, 0, "");
                        else if(GS(parent->name) == ID_LA)
-                               uiDefButS(block, ROW, B_MATPRV, "Lamp",  0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_OTHER, 0, 0, "");
+                               uiDefButS(block, ROW, B_MATPRV, _("Lamp"),  0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_OTHER, 0, 0, "");
                        else if(GS(parent->name) == ID_WO)
-                               uiDefButS(block, ROW, B_MATPRV, "World",  0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_OTHER, 0, 0, "");
-                       uiDefButS(block, ROW, B_MATPRV, "Both",  0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_BOTH, 0, 0, "");
+                               uiDefButS(block, ROW, B_MATPRV, _("World"),  0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_OTHER, 0, 0, "");
+                       uiDefButS(block, ROW, B_MATPRV, _("Both"),  0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_BOTH, 0, 0, "");
                        
                        /* Alpha buton for texture preview */
                        if(*pr_texture!=TEX_PR_OTHER) {
@@ -1288,15 +1288,15 @@ static void colorband_buttons_large(uiLayout *layout, uiBlock *block, ColorBand
 
        if(coba==NULL) return;
 
-       bt= uiDefBut(block, BUT, 0,     _("Add"),                       0+xoffs,line1_y,40,UI_UNIT_Y, NULL, 0, 0, 0, 0, "Add a new color stop to the colorband");
+       bt= uiDefBut(block, BUT, 0,     _("Add"),                       0+xoffs,line1_y,40,UI_UNIT_Y, NULL, 0, 0, 0, 0, _("Add a new color stop to the colorband"));
        uiButSetNFunc(bt, colorband_add_cb, MEM_dupallocN(cb), coba);
 
-       bt= uiDefBut(block, BUT, 0,     _("Delete"),            45+xoffs,line1_y,45,UI_UNIT_Y, NULL, 0, 0, 0, 0, "Delete the active position");
+       bt= uiDefBut(block, BUT, 0,     _("Delete"),            45+xoffs,line1_y,45,UI_UNIT_Y, NULL, 0, 0, 0, 0, _("Delete the active position"));
        uiButSetNFunc(bt, colorband_del_cb, MEM_dupallocN(cb), coba);
 
 
        /* XXX, todo for later - convert to operator - campbell */
-       bt= uiDefBut(block, BUT, 0,     "F",            95+xoffs,line1_y,20,UI_UNIT_Y, NULL, 0, 0, 0, 0, "Flip colorband");
+       bt= uiDefBut(block, BUT, 0,     "F",            95+xoffs,line1_y,20,UI_UNIT_Y, NULL, 0, 0, 0, 0, _("Flip colorband"));
        uiButSetNFunc(bt, colorband_flip_cb, MEM_dupallocN(cb), coba);
 
        uiDefButS(block, NUM, 0,                "",                             120+xoffs,line1_y,80, UI_UNIT_Y, &coba->cur, 0.0, (float)(MAX2(0, coba->tot-1)), 0, 0, "Choose active color stop");
@@ -1331,9 +1331,9 @@ static void colorband_buttons_small(uiLayout *layout, uiBlock *block, ColorBand
        float xs= butr->xmin;
 
        uiBlockBeginAlign(block);
-       bt= uiDefBut(block, BUT, 0,     "Add",                  xs,butr->ymin+UI_UNIT_Y,2.0f*unit,UI_UNIT_Y,    NULL, 0, 0, 0, 0, "Add a new color stop to the colorband");
+       bt= uiDefBut(block, BUT, 0,     _("Add"),                       xs,butr->ymin+UI_UNIT_Y,2.0f*unit,UI_UNIT_Y,    NULL, 0, 0, 0, 0, _("Add a new color stop to the colorband"));
        uiButSetNFunc(bt, colorband_add_cb, MEM_dupallocN(cb), coba);
-       bt= uiDefBut(block, BUT, 0,     "Delete",               xs+2.0f*unit,butr->ymin+UI_UNIT_Y,1.5f*unit,UI_UNIT_Y,  NULL, 0, 0, 0, 0, "Delete the active position");
+       bt= uiDefBut(block, BUT, 0,     _("Delete"),            xs+2.0f*unit,butr->ymin+UI_UNIT_Y,1.5f*unit,UI_UNIT_Y,  NULL, 0, 0, 0, 0, _("Delete the active position"));
        uiButSetNFunc(bt, colorband_del_cb, MEM_dupallocN(cb), coba);
        bt= uiDefBut(block, BUT, 0,     "F",            xs+3.5f*unit,butr->ymin+UI_UNIT_Y,0.5f*unit,UI_UNIT_Y,  NULL, 0, 0, 0, 0, "Flip the color ramp");
        uiButSetNFunc(bt, colorband_flip_cb, MEM_dupallocN(cb), coba);
@@ -1598,10 +1598,10 @@ static uiBlock *curvemap_clipping_func(bContext *C, struct ARegion *ar, void *cu
        uiButSetFunc(bt, curvemap_buttons_setclip, cumap, NULL);
 
        uiBlockBeginAlign(block);
-       uiDefButF(block, NUM, 0, "Min X ",       0,4*UI_UNIT_Y,width,UI_UNIT_Y, &cumap->clipr.xmin, -100.0, cumap->clipr.xmax, 10, 0, "");
-       uiDefButF(block, NUM, 0, "Min Y ",       0,3*UI_UNIT_Y,width,UI_UNIT_Y, &cumap->clipr.ymin, -100.0, cumap->clipr.ymax, 10, 0, "");
-       uiDefButF(block, NUM, 0, "Max X ",       0,2*UI_UNIT_Y,width,UI_UNIT_Y, &cumap->clipr.xmax, cumap->clipr.xmin, 100.0, 10, 0, "");
-       uiDefButF(block, NUM, 0, "Max Y ",       0,UI_UNIT_Y,width,UI_UNIT_Y, &cumap->clipr.ymax, cumap->clipr.ymin, 100.0, 10, 0, "");
+       uiDefButF(block, NUM, 0, _("Min X "),    0,4*UI_UNIT_Y,width,UI_UNIT_Y, &cumap->clipr.xmin, -100.0, cumap->clipr.xmax, 10, 0, "");
+       uiDefButF(block, NUM, 0, _("Min Y "),    0,3*UI_UNIT_Y,width,UI_UNIT_Y, &cumap->clipr.ymin, -100.0, cumap->clipr.ymax, 10, 0, "");
+       uiDefButF(block, NUM, 0, _("Max X "),    0,2*UI_UNIT_Y,width,UI_UNIT_Y, &cumap->clipr.xmax, cumap->clipr.xmin, 100.0, 10, 0, "");
+       uiDefButF(block, NUM, 0, _("Max Y "),    0,UI_UNIT_Y,width,UI_UNIT_Y, &cumap->clipr.ymax, cumap->clipr.ymin, 100.0, 10, 0, "");
 
        uiBlockSetDirection(block, UI_RIGHT);
 
@@ -1650,12 +1650,12 @@ static uiBlock *curvemap_tools_func(bContext *C, struct ARegion *ar, void *cumap
        block= uiBeginBlock(C, ar, "curvemap_tools_func", UI_EMBOSS);
        uiBlockSetButmFunc(block, curvemap_tools_dofunc, cumap_v);
 
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset View",                             0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 1, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Vector Handle",                  0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 2, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Auto Handle",                    0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 3, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extend Horizontal",              0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 4, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extend Extrapolated",    0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 5, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset Curve",                    0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
+       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, _("Reset View"),                          0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 1, "");
+       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, _("Vector Handle"),                       0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 2, "");
+       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, _("Auto Handle"),                 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 3, "");
+       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, _("Extend Horizontal"),           0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 4, "");
+       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, _("Extend Extrapolated"), 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 5, "");
+       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, _("Reset Curve"),                 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
 
        uiBlockSetDirection(block, UI_RIGHT);
        uiTextBoundsBlock(block, 50);
@@ -1672,10 +1672,10 @@ static uiBlock *curvemap_brush_tools_func(bContext *C, struct ARegion *ar, void
        block= uiBeginBlock(C, ar, "curvemap_tools_func", UI_EMBOSS);
        uiBlockSetButmFunc(block, curvemap_tools_dofunc, cumap_v);
 
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset View",                             0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 1, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Vector Handle",                  0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 2, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Auto Handle",                    0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 3, "");
-       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset Curve",                    0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
+       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, _("Reset View"),                          0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 1, "");
+       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, _("Vector Handle"),                       0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 2, "");
+       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, _("Auto Handle"),                 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 3, "");
+       uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, _("Reset Curve"),                 0, yco-=UI_UNIT_Y, menuwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
 
        uiBlockSetDirection(block, UI_RIGHT);
        uiTextBoundsBlock(block, 50);
@@ -1792,24 +1792,24 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe
 
        uiBlockSetEmboss(block, UI_EMBOSSN);
 
-       bt= uiDefIconBut(block, BUT, 0, ICON_ZOOMIN, 0, 0, dx, dx, NULL, 0.0, 0.0, 0.0, 0.0, "Zoom in");
+       bt= uiDefIconBut(block, BUT, 0, ICON_ZOOMIN, 0, 0, dx, dx, NULL, 0.0, 0.0, 0.0, 0.0, _("Zoom in"));
        uiButSetFunc(bt, curvemap_buttons_zoom_in, cumap, NULL);
 
-       bt= uiDefIconBut(block, BUT, 0, ICON_ZOOMOUT, 0, 0, dx, dx, NULL, 0.0, 0.0, 0.0, 0.0, "Zoom out");
+       bt= uiDefIconBut(block, BUT, 0, ICON_ZOOMOUT, 0, 0, dx, dx, NULL, 0.0, 0.0, 0.0, 0.0, _("Zoom out"));
        uiButSetFunc(bt, curvemap_buttons_zoom_out, cumap, NULL);
 
        if(brush)
-               bt= uiDefIconBlockBut(block, curvemap_brush_tools_func, cumap, 0, ICON_MODIFIER, 0, 0, dx, dx, "Tools");
+               bt= uiDefIconBlockBut(block, curvemap_brush_tools_func, cumap, 0, ICON_MODIFIER, 0, 0, dx, dx, _("Tools"));
        else
-               bt= uiDefIconBlockBut(block, curvemap_tools_func, cumap, 0, ICON_MODIFIER, 0, 0, dx, dx, "Tools");
+               bt= uiDefIconBlockBut(block, curvemap_tools_func, cumap, 0, ICON_MODIFIER, 0, 0, dx, dx, _("Tools"));
 
        uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
 
        if(cumap->flag & CUMA_DO_CLIP) icon= ICON_CLIPUV_HLT; else icon= ICON_CLIPUV_DEHLT;
-       bt= uiDefIconBlockBut(block, curvemap_clipping_func, cumap, 0, icon, 0, 0, dx, dx, "Clipping Options");
+       bt= uiDefIconBlockBut(block, curvemap_clipping_func, cumap, 0, icon, 0, 0, dx, dx, _("Clipping Options"));
        uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
 
-       bt= uiDefIconBut(block, BUT, 0, ICON_X, 0, 0, dx, dx, NULL, 0.0, 0.0, 0.0, 0.0, "Delete points");
+       bt= uiDefIconBut(block, BUT, 0, ICON_X, 0, 0, dx, dx, NULL, 0.0, 0.0, 0.0, 0.0, _("Delete points"));
        uiButSetNFunc(bt, curvemap_buttons_delete, MEM_dupallocN(cb), cumap);
 
        uiBlockSetEmboss(block, UI_EMBOSS);
@@ -1828,7 +1828,7 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe
                uiItemR(uiLayoutColumn(split, 0), ptr, "white_level", UI_ITEM_R_EXPAND, NULL, ICON_NONE);
 
                uiLayoutRow(layout, 0);
-               bt=uiDefBut(block, BUT, 0, "Reset",     0, 0, UI_UNIT_X*10, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "Reset Black/White point and curves");
+               bt=uiDefBut(block, BUT, 0, "Reset",     0, 0, UI_UNIT_X*10, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, _("Reset Black/White point and curves"));
                uiButSetNFunc(bt, curvemap_buttons_reset, MEM_dupallocN(cb), cumap);
        }
 
@@ -2415,16 +2415,16 @@ void uiTemplateRunningJobs(uiLayout *layout, bContext *C)
                (void)ui_abs; // UNUSED
                
                uiDefIconBut(block, BUT, handle_event, ICON_PANEL_CLOSE, 
-                               0, UI_UNIT_Y*0.1, UI_UNIT_X*0.8, UI_UNIT_Y*0.8, NULL, 0.0f, 0.0f, 0, 0, "Stop this job");
+                               0, UI_UNIT_Y*0.1, UI_UNIT_X*0.8, UI_UNIT_Y*0.8, NULL, 0.0f, 0.0f, 0, 0, _("Stop this job"));
                uiDefBut(block, PROGRESSBAR, 0, WM_jobs_name(wm, owner), 
-                               UI_UNIT_X, 0, 100, UI_UNIT_Y, NULL, 0.0f, 0.0f, WM_jobs_progress(wm, owner), 0, "Progress");
+                               UI_UNIT_X, 0, 100, UI_UNIT_Y, NULL, 0.0f, 0.0f, WM_jobs_progress(wm, owner), 0, _("Progress"));
                
                uiLayoutRow(layout, 0);
        }
        if(WM_jobs_test(wm, screen))
-               uiDefIconTextBut(block, BUT, B_STOPCAST, ICON_CANCEL, "Capture", 0,0,85,UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "Stop screencast");
+               uiDefIconTextBut(block, BUT, B_STOPCAST, ICON_CANCEL, _("Capture"), 0,0,85,UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, _("Stop screencast"));
        if(screen->animtimer)
-               uiDefIconTextBut(block, BUT, B_STOPANIM, ICON_CANCEL, "Anim Player", 0,0,100,UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "Stop animation playback");
+               uiDefIconTextBut(block, BUT, B_STOPANIM, ICON_CANCEL, _("Anim Player"), 0,0,100,UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, _("Stop animation playback"));
 }
 
 /************************* Reports for Last Operator Template **************************/
@@ -2486,7 +2486,7 @@ void uiTemplateReportsBanner(uiLayout *layout, bContext *C)
        uiBlockSetEmboss(block, UI_EMBOSSN);
 
        if (reports->list.first != reports->list.last)
-               uiDefIconButO(block, BUT, "UI_OT_reports_to_textblock", WM_OP_INVOKE_REGION_WIN, icon, 2, 0, UI_UNIT_X, UI_UNIT_Y, "Click to see rest of reports in textblock: 'Recent Reports'");
+               uiDefIconButO(block, BUT, "UI_OT_reports_to_textblock", WM_OP_INVOKE_REGION_WIN, icon, 2, 0, UI_UNIT_X, UI_UNIT_Y, _("Click to see rest of reports in textblock: 'Recent Reports'"));
        else
                uiDefIconBut(block, LABEL, 0, icon, 2, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
 
index fdd53d27b028bbea1f45e45222fbfac54c8000b4..91babb844775f278a50484e1003941ae38dffd23 100644 (file)
@@ -50,6 +50,8 @@
 #include "BLI_listbase.h"
 #include "BLI_utildefines.h"
 
+#include "BLF_api.h"
+
 #include "BKE_animsys.h"
 #include "BKE_context.h"
 #include "BKE_depsgraph.h"
@@ -106,9 +108,9 @@ static int material_slot_add_exec(bContext *C, wmOperator *UNUSED(op))
 void OBJECT_OT_material_slot_add(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Add Material Slot";
+       ot->name= _("Add Material Slot");
        ot->idname= "OBJECT_OT_material_slot_add";
-       ot->description="Add a new material slot or duplicate the selected one";
+       ot->description=_("Add a new material slot or duplicate the selected one");
        
        /* api callbacks */
        ot->exec= material_slot_add_exec;
@@ -142,9 +144,9 @@ static int material_slot_remove_exec(bContext *C, wmOperator *op)
 void OBJECT_OT_material_slot_remove(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Remove Material Slot";
+       ot->name= _("Remove Material Slot");
        ot->idname= "OBJECT_OT_material_slot_remove";
-       ot->description="Remove the selected material slot";
+       ot->description=_("Remove the selected material slot");
        
        /* api callbacks */
        ot->exec= material_slot_remove_exec;
@@ -202,9 +204,9 @@ static int material_slot_assign_exec(bContext *C, wmOperator *UNUSED(op))
 void OBJECT_OT_material_slot_assign(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Assign Material Slot";
+       ot->name= _("Assign Material Slot");
        ot->idname= "OBJECT_OT_material_slot_assign";
-       ot->description="Assign the material in the selected material slot to the selected vertices";
+       ot->description=_("Assign the material in the selected material slot to the selected vertices");
        
        /* api callbacks */
        ot->exec= material_slot_assign_exec;
@@ -289,9 +291,9 @@ static int material_slot_select_exec(bContext *C, wmOperator *UNUSED(op))
 void OBJECT_OT_material_slot_select(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Select Material Slot";
+       ot->name= _("Select Material Slot");
        ot->idname= "OBJECT_OT_material_slot_select";
-       ot->description="Select vertices assigned to the selected material slot";
+       ot->description=_("Select vertices assigned to the selected material slot");
        
        /* api callbacks */
        ot->exec= material_slot_select_exec;
@@ -308,9 +310,9 @@ static int material_slot_deselect_exec(bContext *C, wmOperator *UNUSED(op))
 void OBJECT_OT_material_slot_deselect(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Deselect Material Slot";
+       ot->name= _("Deselect Material Slot");
        ot->idname= "OBJECT_OT_material_slot_deselect";
-       ot->description="Deselect vertices assigned to the selected material slot";
+       ot->description=_("Deselect vertices assigned to the selected material slot");
        
        /* api callbacks */
        ot->exec= material_slot_deselect_exec;
@@ -348,9 +350,9 @@ static int material_slot_copy_exec(bContext *C, wmOperator *UNUSED(op))
 void OBJECT_OT_material_slot_copy(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Copy Material to Others";
+       ot->name= _("Copy Material to Others");
        ot->idname= "OBJECT_OT_material_slot_copy";
-       ot->description="Copies materials to other selected objects";
+       ot->description=_("Copies materials to other selected objects");
 
        /* api callbacks */
        ot->exec= material_slot_copy_exec;
@@ -394,9 +396,9 @@ static int new_material_exec(bContext *C, wmOperator *UNUSED(op))
 void MATERIAL_OT_new(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "New Material";
+       ot->name= _("New Material");
        ot->idname= "MATERIAL_OT_new";
-       ot->description="Add a new material";
+       ot->description=_("Add a new material");
        
        /* api callbacks */
        ot->exec= new_material_exec;
@@ -440,9 +442,9 @@ static int new_texture_exec(bContext *C, wmOperator *UNUSED(op))
 void TEXTURE_OT_new(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "New Texture";
+       ot->name= _("New Texture");
        ot->idname= "TEXTURE_OT_new";
-       ot->description="Add a new texture";
+       ot->description=_("Add a new texture");
        
        /* api callbacks */
        ot->exec= new_texture_exec;
@@ -486,9 +488,9 @@ static int new_world_exec(bContext *C, wmOperator *UNUSED(op))
 void WORLD_OT_new(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "New World";
+       ot->name= _("New World");
        ot->idname= "WORLD_OT_new";
-       ot->description= "Add a new world";
+       ot->description= _("Add a new world");
        
        /* api callbacks */
        ot->exec= new_world_exec;
@@ -514,9 +516,9 @@ static int render_layer_add_exec(bContext *C, wmOperator *UNUSED(op))
 void SCENE_OT_render_layer_add(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Add Render Layer";
+       ot->name= _("Add Render Layer");
        ot->idname= "SCENE_OT_render_layer_add";
-       ot->description="Add a render layer";
+       ot->description=_("Add a render layer");
        
        /* api callbacks */
        ot->exec= render_layer_add_exec;
@@ -560,9 +562,9 @@ static int render_layer_remove_exec(bContext *C, wmOperator *UNUSED(op))
 void SCENE_OT_render_layer_remove(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Remove Render Layer";
+       ot->name= _("Remove Render Layer");
        ot->idname= "SCENE_OT_render_layer_remove";
-       ot->description="Remove the selected render layer";
+       ot->description=_("Remove the selected render layer");
        
        /* api callbacks */
        ot->exec= render_layer_remove_exec;
@@ -638,15 +640,15 @@ static int texture_slot_move(bContext *C, wmOperator *op)
 void TEXTURE_OT_slot_move(wmOperatorType *ot)
 {
        static EnumPropertyItem slot_move[] = {
-               {-1, "UP", 0, "Up", ""},
-               {1, "DOWN", 0, "Down", ""},
+               {-1, "UP", 0, N_("Up"), ""},
+               {1, "DOWN", 0, N_("Down"), ""},
                {0, NULL, 0, NULL, NULL}
        };
 
        /* identifiers */
-       ot->name= "Move Texture Slot";
+       ot->name= _("Move Texture Slot");
        ot->idname= "TEXTURE_OT_slot_move";
-       ot->description="Move texture slots up and down";
+       ot->description=_("Move texture slots up and down");
 
        /* api callbacks */
        ot->exec= texture_slot_move;
@@ -654,7 +656,7 @@ void TEXTURE_OT_slot_move(wmOperatorType *ot)
        /* flags */
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 
-       RNA_def_enum(ot->srna, "type", slot_move, 0, "Type", "");
+       RNA_def_enum(ot->srna, "type", RNA_enum_items_gettexted(slot_move), 0, _("Type"), "");
 }
 
 
@@ -777,9 +779,9 @@ static int envmap_save_poll(bContext *C)
 void TEXTURE_OT_envmap_save(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Save Environment Map";
+       ot->name= _("Save Environment Map");
        ot->idname= "TEXTURE_OT_envmap_save";
-       ot->description="Save the current generated Environment map to an image file";
+       ot->description=_("Save the current generated Environment map to an image file");
        
        /* api callbacks */
        ot->exec= envmap_save_exec;
@@ -822,9 +824,9 @@ static int envmap_clear_poll(bContext *C)
 void TEXTURE_OT_envmap_clear(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Clear Environment Map";
+       ot->name= _("Clear Environment Map");
        ot->idname= "TEXTURE_OT_envmap_clear";
-       ot->description="Discard the environment map and free it from memory";
+       ot->description=_("Discard the environment map and free it from memory");
        
        /* api callbacks */
        ot->exec= envmap_clear_exec;
@@ -851,9 +853,9 @@ static int envmap_clear_all_exec(bContext *C, wmOperator *UNUSED(op))
 void TEXTURE_OT_envmap_clear_all(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Clear All Environment Maps";
+       ot->name= _("Clear All Environment Maps");
        ot->idname= "TEXTURE_OT_envmap_clear_all";
-       ot->description="Discard all environment maps in the .blend file and free them from memory";
+       ot->description=_("Discard all environment maps in the .blend file and free them from memory");
        
        /* api callbacks */
        ot->exec= envmap_clear_all_exec;
@@ -883,9 +885,9 @@ static int copy_material_exec(bContext *C, wmOperator *UNUSED(op))
 void MATERIAL_OT_copy(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Copy Material";
+       ot->name= _("Copy Material");
        ot->idname= "MATERIAL_OT_copy";
-       ot->description="Copy the material settings and nodes";
+       ot->description=_("Copy the material settings and nodes");
 
        /* api callbacks */
        ot->exec= copy_material_exec;
@@ -911,9 +913,9 @@ static int paste_material_exec(bContext *C, wmOperator *UNUSED(op))
 void MATERIAL_OT_paste(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Paste Material";
+       ot->name= _("Paste Material");
        ot->idname= "MATERIAL_OT_paste";
-       ot->description="Paste the material settings and nodes";
+       ot->description=_("Paste the material settings and nodes");
 
        /* api callbacks */
        ot->exec= paste_material_exec;
@@ -1030,9 +1032,9 @@ static int copy_mtex_poll(bContext *C)
 void TEXTURE_OT_slot_copy(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Copy Texture Slot Settings";
+       ot->name= _("Copy Texture Slot Settings");
        ot->idname= "TEXTURE_OT_slot_copy";
-       ot->description="Copy the material texture settings and nodes";
+       ot->description=_("Copy the material texture settings and nodes");
 
        /* api callbacks */
        ot->exec= copy_mtex_exec;
@@ -1075,9 +1077,9 @@ static int paste_mtex_exec(bContext *C, wmOperator *UNUSED(op))
 void TEXTURE_OT_slot_paste(wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Paste Texture Slot Settings";
+       ot->name= _("Paste Texture Slot Settings");
        ot->idname= "TEXTURE_OT_slot_paste";
-       ot->description="Copy the texture settings and nodes";
+       ot->description=_("Copy the texture settings and nodes");
 
        /* api callbacks */
        ot->exec= paste_mtex_exec;
index a34ee3f33d2b764582ee5933bab97c5789031788..1511fc26cdb7684ef2fd09489670a6f8f39748aa 100644 (file)
@@ -994,7 +994,7 @@ void ACTION_OT_extrapolation_type (wmOperatorType *ot)
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
        
        /* id-props */
-       ot->prop= RNA_def_enum(ot->srna, "type", prop_actkeys_expo_types, 0, _("Type"), "");
+       ot->prop= RNA_def_enum(ot->srna, "type", RNA_enum_items_gettexted(prop_actkeys_expo_types), 0, _("Type"), "");
 }
 
 /* ******************** Set Interpolation-Type Operator *********************** */
index be2f93f120a0713141f2dd1fb4f581a387dc5433..304a01db59bd8adf859bbb2d1441e6a95fe0010c 100644 (file)
@@ -644,11 +644,11 @@ void IMAGE_OT_view_zoom_ratio(wmOperatorType *ot)
 
 /* XXX make dynamic */
 static const EnumPropertyItem image_file_type_items[] = {
-               {R_TARGA, "TARGA", 0, "Targa", ""},
-               {R_RAWTGA, "TARGA RAW", 0, "Targa Raw", ""},
+               {R_TARGA, "TARGA", 0, N_("Targa"), ""},
+               {R_RAWTGA, "TARGA RAW", 0, N_("Targa Raw"), ""},
                {R_PNG, "PNG", 0, "PNG", ""},
 #ifdef WITH_DDS
-               {R_DDS, "DDS", 0, "DirectDraw Surface", ""},
+               {R_DDS, "DDS", 0, N_("DirectDraw Surface"), ""},
 #endif
                {R_BMP, "BMP", 0, "BMP", ""},
                {R_JPEG90, "JPEG", 0, "Jpeg", ""},
@@ -660,10 +660,10 @@ static const EnumPropertyItem image_file_type_items[] = {
                {R_TIFF, "TIFF", 0, "Tiff", ""},
 #endif
 #ifdef WITH_DDS
-               {R_RADHDR, "RADIANCE_HDR", 0, "Radiance HDR", ""},
+               {R_RADHDR, "RADIANCE_HDR", 0, N_("Radiance HDR"), ""},
 #endif
 #ifdef WITH_CINEON
-               {R_CINEON, "CINEON", 0, "Cineon", ""},
+               {R_CINEON, "CINEON", 0, N_("Cineon"), ""},
                {R_DPX, "DPX", 0, "DPX", ""},
 #endif
 #ifdef WITH_OPENEXR
@@ -1348,7 +1348,7 @@ void IMAGE_OT_new(wmOperatorType *ot)
        
        /* identifiers */
        ot->name= _("New Image");
-       ot->description= "Create a new image";
+       ot->description= _("Create a new image");
        ot->idname= "IMAGE_OT_new";
        
        /* api callbacks */
index 15ab0406b95c99aee2dacaafac768de3251999f2..32cac62c4cea3e82d3864472cf8312458c5bbc3b 100644 (file)
@@ -1717,7 +1717,7 @@ void NLA_OT_snap (wmOperatorType *ot)
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
        
        /* properties */
-       ot->prop= RNA_def_enum(ot->srna, "type", prop_nlaedit_snap_types, 0, _("Type"), "");
+       ot->prop= RNA_def_enum(ot->srna, "type", RNA_enum_items_gettexted(prop_nlaedit_snap_types), 0, _("Type"), "");
 }
 
 /* *********************************************** */
index a982f4b19940d1ac7891cf8698c4f3dc075a73f6..23682577b8a6f5ce30dc2b293fbcef490610d3a9 100644 (file)
@@ -44,6 +44,8 @@
 #include "BLI_blenlib.h"
 #include "BLI_utildefines.h"
 
+#include "BLF_api.h"
+
 #include "BKE_context.h"
 #include "BKE_screen.h"
 #include "BKE_node.h"
@@ -181,34 +183,34 @@ static void node_menu_add(const bContext *C, Menu *menu)
                uiLayoutSetActive(layout, 0);
 
        if(snode->treetype==NTREE_SHADER) {
-               uiItemMenuF(layout, "Input", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT));
-               uiItemMenuF(layout, "Output", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT));
-               uiItemMenuF(layout, "Color", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR));
-               uiItemMenuF(layout, "Vector", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR));
-               uiItemMenuF(layout, "Convertor", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR));
-               uiItemMenuF(layout, "Group", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP));
-               uiItemMenuF(layout, "Dynamic", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_DYNAMIC));
+               uiItemMenuF(layout, _("Input"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT));
+               uiItemMenuF(layout, _("Output"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT));
+               uiItemMenuF(layout, _("Color"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR));
+               uiItemMenuF(layout, _("Vector"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR));
+               uiItemMenuF(layout, _("Convertor"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR));
+               uiItemMenuF(layout, _("Group"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP));
+               uiItemMenuF(layout, _("Dynamic"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_DYNAMIC));
        }
        else if(snode->treetype==NTREE_COMPOSIT) {
-               uiItemMenuF(layout, "Input", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT));
-               uiItemMenuF(layout, "Output", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT));
-               uiItemMenuF(layout, "Color", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR));
-               uiItemMenuF(layout, "Vector", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR));
-               uiItemMenuF(layout, "Filter", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_FILTER));
-               uiItemMenuF(layout, "Convertor", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR));
-               uiItemMenuF(layout, "Matte", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_MATTE));
-               uiItemMenuF(layout, "Distort", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_DISTORT));
-               uiItemMenuF(layout, "Group", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP));
+               uiItemMenuF(layout, _("Input"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT));
+               uiItemMenuF(layout, _("Output"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT));
+               uiItemMenuF(layout, _("Color"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR));
+               uiItemMenuF(layout, _("Vector"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR));
+               uiItemMenuF(layout, _("Filter"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_FILTER));
+               uiItemMenuF(layout, _("Convertor"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR));
+               uiItemMenuF(layout, _("Matte"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_MATTE));
+               uiItemMenuF(layout, _("Distort"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_DISTORT));
+               uiItemMenuF(layout, _("Group"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP));
        }
        else if(snode->treetype==NTREE_TEXTURE) {
-               uiItemMenuF(layout, "Input", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT));
-               uiItemMenuF(layout, "Output", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT));
-               uiItemMenuF(layout, "Color", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR));
-               uiItemMenuF(layout, "Patterns", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_PATTERN));
-               uiItemMenuF(layout, "Textures", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_TEXTURE));
-               uiItemMenuF(layout, "Convertor", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR));
-               uiItemMenuF(layout, "Distort", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_DISTORT));
-               uiItemMenuF(layout, "Group", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP));
+               uiItemMenuF(layout, _("Input"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT));
+               uiItemMenuF(layout, _("Output"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT));
+               uiItemMenuF(layout, _("Color"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR));
+               uiItemMenuF(layout, _("Patterns"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_PATTERN));
+               uiItemMenuF(layout, _("Textures"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_TEXTURE));
+               uiItemMenuF(layout, _("Convertor"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR));
+               uiItemMenuF(layout, _("Distort"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_DISTORT));
+               uiItemMenuF(layout, _("Group"), 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP));
        }
 }
 
@@ -218,7 +220,7 @@ void node_menus_register(void)
 
        mt= MEM_callocN(sizeof(MenuType), "spacetype node menu add");
        strcpy(mt->idname, "NODE_MT_add");
-       strcpy(mt->label, "Add");
+       strcpy(mt->label, _("Add"));
        mt->draw= node_menu_add;
        WM_menutype_add(mt);
 }
index c10583d2d997d0085758dd88d80ed62d326abe93..4bb4eb5c7a13feddf785d40558dbb07e9aadb947 100644 (file)
@@ -278,9 +278,9 @@ void SEQUENCER_OT_scene_strip_add(struct wmOperatorType *ot)
        PropertyRNA *prop;
        
        /* identifiers */
-       ot->name= "Add Scene Strip";
+       ot->name= _("Add Scene Strip");
        ot->idname= "SEQUENCER_OT_scene_strip_add";
-       ot->description= "Add a strip to the sequencer using a blender scene as a source";
+       ot->description= _("Add a strip to the sequencer using a blender scene as a source");
 
        /* api callbacks */
        ot->invoke= sequencer_add_scene_strip_invoke;
@@ -292,7 +292,7 @@ void SEQUENCER_OT_scene_strip_add(struct wmOperatorType *ot)
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
        
        sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME);
-       prop= RNA_def_enum(ot->srna, "scene", DummyRNA_NULL_items, 0, "Scene", "");
+       prop= RNA_def_enum(ot->srna, "scene", DummyRNA_NULL_items, 0, _("Scene"), "");
        RNA_def_enum_funcs(prop, RNA_scene_itemf);
        ot->prop= prop;
 }
@@ -540,9 +540,9 @@ void SEQUENCER_OT_image_strip_add(struct wmOperatorType *ot)
 {
        
        /* identifiers */
-       ot->name= "Add Image Strip";
+       ot->name= _("Add Image Strip");
        ot->idname= "SEQUENCER_OT_image_strip_add";
-       ot->description= "Add an image or image sequence to the sequencer";
+       ot->description= _("Add an image or image sequence to the sequencer");
 
        /* api callbacks */
        ot->invoke= sequencer_add_image_strip_invoke;
@@ -718,9 +718,9 @@ static int sequencer_add_effect_strip_invoke(bContext *C, wmOperator *op, wmEven
 void SEQUENCER_OT_effect_strip_add(struct wmOperatorType *ot)
 {
        /* identifiers */
-       ot->name= "Add Effect Strip";
+       ot->name= _("Add Effect Strip");
        ot->idname= "SEQUENCER_OT_effect_strip_add";
-       ot->description= "Add an effect to the sequencer, most are applied on top of existing strips";
+       ot->description= _("Add an effect to the sequencer, most are applied on top of existing strips");
 
        /* api callbacks */
        ot->invoke= sequencer_add_effect_strip_invoke;
@@ -733,6 +733,6 @@ void SEQUENCER_OT_effect_strip_add(struct wmOperatorType *ot)
        
        WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
        sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME|SEQPROP_ENDFRAME);
-       RNA_def_enum(ot->srna, "type", sequencer_prop_effect_types, SEQ_CROSS, "Type", "Sequencer effect type");
-       RNA_def_float_vector(ot->srna, "color", 3, NULL, 0.0f, 1.0f, "Color", "Initialize the strip with this color (only used when type='COLOR')", 0.0f, 1.0f);
+       RNA_def_enum(ot->srna, "type", sequencer_prop_effect_types, SEQ_CROSS, _("Type"), _("Sequencer effect type"));
+       RNA_def_float_vector(ot->srna, "color", 3, NULL, 0.0f, 1.0f, _("Color"), _("Initialize the strip with this color (only used when type='COLOR')"), 0.0f, 1.0f);
 }
index 48ff48325932fd66d6d3bcde2237074894937707..f34caf42e330f1902d742175686e48c97b9b0cf5 100644 (file)
@@ -2525,7 +2525,7 @@ void SEQUENCER_OT_swap(wmOperatorType *ot)
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
        
        /* properties */
-       RNA_def_enum(ot->srna, "side", prop_side_lr_types, SEQ_SIDE_RIGHT, _("Side"), _("Side of the strip to swap"));
+       RNA_def_enum(ot->srna, "side", RNA_enum_items_gettexted(prop_side_lr_types), SEQ_SIDE_RIGHT, _("Side"), _("Side of the strip to swap"));
 }
 
 static int sequencer_rendersize_exec(bContext *C, wmOperator *UNUSED(op))
index f2690ac8d2acbc34e7a0481d26b0c3ffa70175d5..e5d5a7c5ea88af8881f411afff586b9bf6191ec3 100644 (file)
@@ -49,7 +49,10 @@ struct Scene;
 extern BlenderRNA BLENDER_RNA;
 extern StructRNA RNA_Action;
 extern StructRNA RNA_ActionConstraint;
+extern StructRNA RNA_ActionFCurves;
 extern StructRNA RNA_ActionGroup;
+extern StructRNA RNA_ActionGroups;
+extern StructRNA RNA_ActionPoseMarkers;
 extern StructRNA RNA_Actuator;
 extern StructRNA RNA_ActuatorSensor;
 extern StructRNA RNA_Addon;
@@ -190,6 +193,7 @@ extern StructRNA RNA_DelaySensor;
 extern StructRNA RNA_DisplaceModifier;
 extern StructRNA RNA_DistortedNoiseTexture;
 extern StructRNA RNA_DomainFluidSettings;
+extern StructRNA RNA_DopeSheet;
 extern StructRNA RNA_Driver;
 extern StructRNA RNA_DriverTarget;
 extern StructRNA RNA_DriverVariable;
@@ -266,6 +270,7 @@ extern StructRNA RNA_Keyframe;
 extern StructRNA RNA_KeyingSet;
 extern StructRNA RNA_KeyingSetInfo;
 extern StructRNA RNA_KeyingSetPath;
+extern StructRNA RNA_KeyingSetsAll;
 extern StructRNA RNA_KinematicConstraint;
 extern StructRNA RNA_Lamp;
 extern StructRNA RNA_LampSkySettings;
index c0ce687bf9e31e58f3a12b8ad68cb5b2c5db0704..e37bcd010fced715faf8bbdc55c998305532f52b 100644 (file)
@@ -431,19 +431,19 @@ static void rna_def_ID(BlenderRNA *brna)
        PropertyRNA *prop, *parm;
 
        static EnumPropertyItem update_flag_items[] = {
-               {OB_RECALC_OB, "OBJECT", 0, "Object", ""},
-               {OB_RECALC_DATA, "DATA", 0, "Data", ""},
-               {OB_RECALC_TIME, "TIME", 0, "Time", ""},
+               {OB_RECALC_OB, "OBJECT", 0, N_("Object"), ""},
+               {OB_RECALC_DATA, "DATA", 0, N_("Data"), ""},
+               {OB_RECALC_TIME, "TIME", 0, N_("Time"), ""},
                {0, NULL, 0, NULL, NULL}};
 
        srna= RNA_def_struct(brna, "ID", NULL);
-       RNA_def_struct_ui_text(srna, "ID", "Base type for datablocks, defining a unique name, linking from other libraries and garbage collection");
+       RNA_def_struct_ui_text(srna, "ID", N_("Base type for datablocks, defining a unique name, linking from other libraries and garbage collection"));
        RNA_def_struct_flag(srna, STRUCT_ID|STRUCT_ID_REFCOUNT);
        RNA_def_struct_refine_func(srna, "rna_ID_refine");
        RNA_def_struct_idprops_func(srna, "rna_ID_idprops");
 
        prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
-       RNA_def_property_ui_text(prop, "Name", N_("Unique datablock ID name"));
+       RNA_def_property_ui_text(prop, N_("Name"), N_("Unique datablock ID name"));
        RNA_def_property_string_funcs(prop, "rna_ID_name_get", "rna_ID_name_length", "rna_ID_name_set");
        RNA_def_property_string_maxlength(prop, MAX_ID_NAME-2);
        RNA_def_property_editable_func(prop, "rna_ID_name_editable");
@@ -453,44 +453,44 @@ static void rna_def_ID(BlenderRNA *brna)
        prop= RNA_def_property(srna, "users", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_int_sdna(prop, NULL, "us");
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Users", "Number of times this datablock is referenced");
+       RNA_def_property_ui_text(prop, N_("Users"), N_("Number of times this datablock is referenced"));
 
        prop= RNA_def_property(srna, "use_fake_user", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_FAKEUSER);
-       RNA_def_property_ui_text(prop, "Fake User", "Saves this datablock even if it has no users");
+       RNA_def_property_ui_text(prop, N_("Fake User"), N_("Saves this datablock even if it has no users"));
        RNA_def_property_boolean_funcs(prop, NULL, "rna_ID_fake_user_set");
 
        prop= RNA_def_property(srna, "tag", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_DOIT);
        RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
-       RNA_def_property_ui_text(prop, "Tag", "Tools can use this to tag data, (initial state is undefined)");
+       RNA_def_property_ui_text(prop, N_("Tag"), N_("Tools can use this to tag data, (initial state is undefined)"));
 
        prop= RNA_def_property(srna, "library", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "lib");
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Library", "Library file the datablock is linked from");
+       RNA_def_property_ui_text(prop, N_("Library"), N_("Library file the datablock is linked from"));
 
        /* functions */
        func= RNA_def_function(srna, "copy", "rna_ID_copy");
        RNA_def_function_ui_description(func, "Create a copy of this datablock (not supported for all datablocks).");
-       parm= RNA_def_pointer(func, "id", "ID", "", "New copy of the ID.");
+       parm= RNA_def_pointer(func, "id", "ID", "", N_("New copy of the ID."));
        RNA_def_function_return(func, parm);
 
        func= RNA_def_function(srna, "user_clear", "rna_ID_user_clear");
-       RNA_def_function_ui_description(func, "Clears the user count of a datablock so its not saved, on reload the data will be removed.");
+       RNA_def_function_ui_description(func, N_("Clears the user count of a datablock so its not saved, on reload the data will be removed."));
 
        func= RNA_def_function(srna, "animation_data_create", "BKE_id_add_animdata");
-       RNA_def_function_ui_description(func, "Create animation data to this ID, note that not all ID types support this.");
-       parm= RNA_def_pointer(func, "anim_data", "AnimData", "", "New animation data or NULL.");
+       RNA_def_function_ui_description(func, N_("Create animation data to this ID, note that not all ID types support this."));
+       parm= RNA_def_pointer(func, "anim_data", "AnimData", "", N_("New animation data or NULL."));
        RNA_def_function_return(func, parm);
 
        func= RNA_def_function(srna, "animation_data_clear", "BKE_free_animdata");
-       RNA_def_function_ui_description(func, "Clear animation on this this ID.");
+       RNA_def_function_ui_description(func, N_("Clear animation on this this ID."));
 
        func= RNA_def_function(srna, "update_tag", "rna_ID_update_tag");
        RNA_def_function_flag(func, FUNC_USE_REPORTS);
-       RNA_def_function_ui_description(func, "Tag the id to update its display data.");
-       RNA_def_enum_flag(func, "refresh", update_flag_items, 0, "", "Type of updates to perform.");
+       RNA_def_function_ui_description(func, N_("Tag the id to update its display data."));
+       RNA_def_enum_flag(func, "refresh", update_flag_items, 0, "", N_("Type of updates to perform."));
 }
 
 static void rna_def_library(BlenderRNA *brna)
index dd41d507ac1bf7fcd61ed73c4034a6f7cf11cdea..a885c6700bba76007b43c66d8385fde91d574541 100644 (file)
@@ -127,15 +127,41 @@ void RNA_struct_gettexted( StructRNA* ptr )
 void RNA_types_init_gettext(void)
 {
        StructRNA* target_struct[] = {
+                       &RNA_Action, &RNA_ActionFCurves, &RNA_ActionGroup, &RNA_ActionGroups, &RNA_ActionPoseMarkers,
+                       &RNA_BackgroundImage,
+                       &RNA_ConsoleLine,
+                       &RNA_DopeSheet,
                        &RNA_Event,
                        &RNA_FileSelectParams,
                        &RNA_ID,
                        &RNA_KeyMap, &RNA_KeyMapItem, &RNA_KeyMapItems, 
                        &RNA_KeyboardSensor,
+                       &RNA_KeyingSetsAll,
+                       &RNA_Object,
                        &RNA_RenderLayer, &RNA_RenderSettings,
                        &RNA_Macro,
+                       &RNA_Scene,
                        &RNA_Scopes,
-                       &RNA_SpaceOutliner, &RNA_SpaceView3D, &RNA_SpaceTimeline, &RNA_SpaceUserPreferences,
+
+                       &RNA_Space,
+                       &RNA_SpaceConsole,
+                       &RNA_SpaceDopeSheetEditor,
+                       &RNA_SpaceFileBrowser,
+                       &RNA_SpaceGraphEditor,
+                       &RNA_SpaceImageEditor,
+                       &RNA_SpaceInfo,
+                       &RNA_SpaceLogicEditor,
+                       &RNA_SpaceNLA,
+                       &RNA_SpaceNodeEditor,
+                       &RNA_SpaceOutliner,
+                       &RNA_SpaceProperties,
+                       &RNA_SpaceSequenceEditor,
+                       &RNA_SpaceTextEditor,
+                       &RNA_SpaceTimeline,
+                       &RNA_SpaceView3D,
+                       &RNA_SpaceUVEditor,
+                       &RNA_SpaceUserPreferences,
+
                        &RNA_Theme, &RNA_ThemeBoneColorSet, &RNA_ThemeWidgetColors,
                        &RNA_ToolSettings,                      
                        &RNA_UserPreferences, &RNA_UserPreferencesEdit, &RNA_UserPreferencesFilePaths,
index 7fdb96fda6e7f7eed05b58068af999158b9b49cd..10774a028e23e8ace0dac6d57f7e3487af728032 100644 (file)
@@ -32,6 +32,8 @@
 #include "RNA_define.h"
 #include "RNA_enum_types.h"
 
+#include "BLF_api.h"
+
 #include "rna_internal.h"
 
 #include "DNA_anim_types.h"
@@ -254,159 +256,159 @@ static void rna_def_dopesheet(BlenderRNA *brna)
 
        srna= RNA_def_struct(brna, "DopeSheet", NULL);
        RNA_def_struct_sdna(srna, "bDopeSheet");
-       RNA_def_struct_ui_text(srna, "DopeSheet", "Settings for filtering the channels shown in Animation Editors");
+       RNA_def_struct_ui_text(srna, N_("DopeSheet"), N_("Settings for filtering the channels shown in Animation Editors"));
        
        /* Source of DopeSheet data */
        prop= RNA_def_property(srna, "source", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "ID");
-       RNA_def_property_ui_text(prop, "Source", "ID-Block representing source data, currently ID_SCE (for Dopesheet), and ID_SC (for Grease Pencil)");
+       RNA_def_property_ui_text(prop, N_("Source"), N_("ID-Block representing source data, currently ID_SCE (for Dopesheet), and ID_SC (for Grease Pencil)"));
        
        /* General Filtering Settings */
        prop= RNA_def_property(srna, "show_only_selected", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYSEL);
-       RNA_def_property_ui_text(prop, "Only Selected", "Only include channels relating to selected objects and data");
+       RNA_def_property_ui_text(prop, N_("Only Selected"), N_("Only include channels relating to selected objects and data"));
        RNA_def_property_ui_icon(prop, ICON_RESTRICT_SELECT_OFF, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_hidden", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_INCL_HIDDEN);
-       RNA_def_property_ui_text(prop, "Display Hidden", "Include channels from objects/bone that aren't visible");
+       RNA_def_property_ui_text(prop, N_("Display Hidden"), N_("Include channels from objects/bone that aren't visible"));
        RNA_def_property_ui_icon(prop, ICON_GHOST_ENABLED, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        /* Object Group Filtering Settings */
        prop= RNA_def_property(srna, "show_only_group_objects", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_ONLYOBGROUP);
-       RNA_def_property_ui_text(prop, "Only Objects in Group", "Only include channels from Objects in the specified Group");
+       RNA_def_property_ui_text(prop, N_("Only Objects in Group"), N_("Only include channels from Objects in the specified Group"));
        RNA_def_property_ui_icon(prop, ICON_GROUP, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "filter_group", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "filter_grp");
        RNA_def_property_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Filtering Group", "Group that included Object should be a member of");
+       RNA_def_property_ui_text(prop, N_("Filtering Group"), N_("Group that included Object should be a member of"));
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        /* FCurve Display Name Search Settings */
        prop= RNA_def_property(srna, "show_only_matching_fcurves", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_BY_FCU_NAME);
-       RNA_def_property_ui_text(prop, "Only Matching F-Curves", "Only include F-Curves with names containing search text");
+       RNA_def_property_ui_text(prop, N_("Only Matching F-Curves"), N_("Only include F-Curves with names containing search text"));
        RNA_def_property_ui_icon(prop, ICON_VIEWZOOM, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "filter_fcurve_name", PROP_STRING, PROP_NONE);
        RNA_def_property_string_sdna(prop, NULL, "searchstr");
-       RNA_def_property_ui_text(prop, "F-Curve Name Filter", "F-Curve live filtering string");
+       RNA_def_property_ui_text(prop, N_("F-Curve Name Filter"), N_("F-Curve live filtering string"));
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        /* NLA Specific Settings */
        prop= RNA_def_property(srna, "show_missing_nla", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NLA_NOACT);
-       RNA_def_property_ui_text(prop, "Include Missing NLA", "Include Animation Data blocks with no NLA data. (NLA Editor only)");
+       RNA_def_property_ui_text(prop, N_("Include Missing NLA"), N_("Include Animation Data blocks with no NLA data. (NLA Editor only)"));
        RNA_def_property_ui_icon(prop, ICON_ACTION, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        /* Summary Settings (DopeSheet editors only) */
        prop= RNA_def_property(srna, "show_summary", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_SUMMARY);
-       RNA_def_property_ui_text(prop, "Display Summary", "Display an additional 'summary' line. (DopeSheet Editors only)");
+       RNA_def_property_ui_text(prop, N_("Display Summary"), N_("Display an additional 'summary' line. (DopeSheet Editors only)"));
        RNA_def_property_ui_icon(prop, ICON_BORDERMOVE, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_expanded_summary", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", ADS_FLAG_SUMMARY_COLLAPSED);
-       RNA_def_property_ui_text(prop, "Collapse Summary", "Collapse summary when shown, so all other channels get hidden. (DopeSheet Editors Only)");
+       RNA_def_property_ui_text(prop, N_("Collapse Summary"), N_("Collapse summary when shown, so all other channels get hidden. (DopeSheet Editors Only)"));
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        
        /* General DataType Filtering Settings */
        prop= RNA_def_property(srna, "show_transforms", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOOBJ);
-       RNA_def_property_ui_text(prop, "Display Transforms", "Include visualization of Object-level Animation data (mostly Transforms)");
+       RNA_def_property_ui_text(prop, N_("Display Transforms"), N_("Include visualization of Object-level Animation data (mostly Transforms)"));
        RNA_def_property_ui_icon(prop, ICON_MANIPUL, 0); // XXX?
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_shapekeys", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOSHAPEKEYS);
-       RNA_def_property_ui_text(prop, "Display Shapekeys", "Include visualization of ShapeKey related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Shapekeys"), N_("Include visualization of ShapeKey related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_SHAPEKEY_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_meshes", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMESH);
-       RNA_def_property_ui_text(prop, "Display Meshes", "Include visualization of Mesh related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Meshes"), N_("Include visualization of Mesh related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_MESH_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_lattices", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOLAT);
-       RNA_def_property_ui_text(prop, "Display Lattices", "Include visualization of Lattice related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Lattices"), N_("Include visualization of Lattice related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_LATTICE_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_cameras", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOCAM);
-       RNA_def_property_ui_text(prop, "Display Camera", "Include visualization of Camera related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Camera"), N_("Include visualization of Camera related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_CAMERA_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_materials", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMAT);
-       RNA_def_property_ui_text(prop, "Display Material", "Include visualization of Material related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Material"), N_("Include visualization of Material related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_MATERIAL_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_lamps", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOLAM);
-       RNA_def_property_ui_text(prop, "Display Lamp", "Include visualization of Lamp related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Lamp"), N_("Include visualization of Lamp related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_LAMP_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_textures", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOTEX);
-       RNA_def_property_ui_text(prop, "Display Texture", "Include visualization of Texture related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Texture"), N_("Include visualization of Texture related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_TEXTURE_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_curves", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOCUR);
-       RNA_def_property_ui_text(prop, "Display Curve", "Include visualization of Curve related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Curve"), N_("Include visualization of Curve related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_CURVE_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_worlds", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOWOR);
-       RNA_def_property_ui_text(prop, "Display World", "Include visualization of World related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display World"), N_("Include visualization of World related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_WORLD_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_scenes", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOSCE);
-       RNA_def_property_ui_text(prop, "Display Scene", "Include visualization of Scene related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Scene"), N_("Include visualization of Scene related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_SCENE_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_particles", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOPART);
-       RNA_def_property_ui_text(prop, "Display Particle", "Include visualization of Particle related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Particle"), N_("Include visualization of Particle related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_PARTICLE_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_metaballs", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOMBA);
-       RNA_def_property_ui_text(prop, "Display Metaball", "Include visualization of Metaball related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Metaball"), N_("Include visualization of Metaball related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_META_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_armatures", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NOARM);
-       RNA_def_property_ui_text(prop, "Display Armature", "Include visualization of Armature related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Armature"), N_("Include visualization of Armature related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_ARMATURE_DATA, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_nodes", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NONTREE);
-       RNA_def_property_ui_text(prop, "Display Node", "Include visualization of Node related Animation data");
+       RNA_def_property_ui_text(prop, N_("Display Node"), N_("Include visualization of Node related Animation data"));
        RNA_def_property_ui_icon(prop, ICON_NODETREE, 0);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
 }
@@ -418,10 +420,10 @@ static void rna_def_action_group(BlenderRNA *brna)
        
        srna= RNA_def_struct(brna, "ActionGroup", NULL);
        RNA_def_struct_sdna(srna, "bActionGroup");
-       RNA_def_struct_ui_text(srna, "Action Group", "Groups of F-Curves");
+       RNA_def_struct_ui_text(srna, N_("Action Group"), N_("Groups of F-Curves"));
        
        prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
-       RNA_def_property_ui_text(prop, "Name", "");
+       RNA_def_property_ui_text(prop, N_("Name"), "");
        RNA_def_struct_name_property(srna, prop);
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
@@ -439,26 +441,26 @@ static void rna_def_action_group(BlenderRNA *brna)
        RNA_def_property_collection_sdna(prop, NULL, "channels", NULL);
        RNA_def_property_struct_type(prop, "FCurve");
        RNA_def_property_collection_funcs(prop, 0, "rna_ActionGroup_channels_next", 0, 0, 0, 0, 0);
-       RNA_def_property_ui_text(prop, "Channels", "F-Curves in this group");
+       RNA_def_property_ui_text(prop, N_("Channels"), N_("F-Curves in this group"));
        
        prop= RNA_def_property(srna, "select", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", AGRP_SELECTED);
-       RNA_def_property_ui_text(prop, "Select", "Action Group is selected");
+       RNA_def_property_ui_text(prop, N_("Select"), N_("Action Group is selected"));
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_SELECTED, NULL);
        
        prop= RNA_def_property(srna, "lock", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", AGRP_PROTECTED);
-       RNA_def_property_ui_text(prop, "Lock", "Action Group is locked");
+       RNA_def_property_ui_text(prop, N_("Lock"), N_("Action Group is locked"));
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "show_expanded", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", AGRP_EXPANDED);
-       RNA_def_property_ui_text(prop, "Expanded", "Action Group is expanded");
+       RNA_def_property_ui_text(prop, N_("Expanded"), N_("Action Group is expanded"));
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
        
        prop= RNA_def_property(srna, "custom_color", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "customCol");
-       RNA_def_property_ui_text(prop, "Custom Color", "Index of custom color set");
+       RNA_def_property_ui_text(prop, N_("Custom Color"), N_("Index of custom color set"));
        RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
 }
 
@@ -473,21 +475,21 @@ static void rna_def_action_groups(BlenderRNA *brna, PropertyRNA *cprop)
        RNA_def_property_srna(cprop, "ActionGroups");
        srna= RNA_def_struct(brna, "ActionGroups", NULL);
        RNA_def_struct_sdna(srna, "bAction");
-       RNA_def_struct_ui_text(srna, "Action Groups", "Collection of action groups");
+       RNA_def_struct_ui_text(srna, N_("Action Groups"), N_("Collection of action groups"));
 
        func= RNA_def_function(srna, "new", "rna_Action_groups_new");
        RNA_def_function_ui_description(func, "Add a keyframe to the curve.");
-       parm= RNA_def_string(func, "name", "Group", 0, "", "New name for the action group.");
+       parm= RNA_def_string(func, "name", "Group", 0, "", N_("New name for the action group."));
        RNA_def_property_flag(parm, PROP_REQUIRED);
 
-       parm= RNA_def_pointer(func, "action_group", "ActionGroup", "", "Newly created action group");
+       parm= RNA_def_pointer(func, "action_group", "ActionGroup", "", N_("Newly created action group"));
        RNA_def_function_return(func, parm);
 
 
        func= RNA_def_function(srna, "remove", "rna_Action_groups_remove");
        RNA_def_function_ui_description(func, "Remove action group.");
        RNA_def_function_flag(func, FUNC_USE_REPORTS);
-       parm= RNA_def_pointer(func, "action_group", "ActionGroup", "", "Action group to remove.");
+       parm= RNA_def_pointer(func, "action_group", "ActionGroup", "", N_("Action group to remove."));
        RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
 }
 
@@ -501,24 +503,24 @@ static void rna_def_action_fcurves(BlenderRNA *brna, PropertyRNA *cprop)
        RNA_def_property_srna(cprop, "ActionFCurves");
        srna= RNA_def_struct(brna, "ActionFCurves", NULL);
        RNA_def_struct_sdna(srna, "bAction");
-       RNA_def_struct_ui_text(srna, "Action FCurves", "Collection of action fcurves");
+       RNA_def_struct_ui_text(srna, N_("Action FCurves"), N_("Collection of action fcurves"));
 
        func= RNA_def_function(srna, "new", "rna_Action_fcurve_new");
-       RNA_def_function_ui_description(func, "Add a keyframe to the curve.");
+       RNA_def_function_ui_description(func, N_("Add a keyframe to the curve."));
        RNA_def_function_flag(func, FUNC_USE_REPORTS);
-       parm= RNA_def_string(func, "data_path", "", 0, "Data Path", "FCurve data path to use.");
+       parm= RNA_def_string(func, "data_path", "", 0, N_("Data Path"), N_("FCurve data path to use."));
        RNA_def_property_flag(parm, PROP_REQUIRED);
        RNA_def_int(func, "index", 0, 0, INT_MAX, "Index", "Array index.", 0, INT_MAX);
-       RNA_def_string(func, "action_group", "", 0, "Action Group", "Acton group to add this fcurve into.");
+       RNA_def_string(func, "action_group", "", 0, N_("Action Group"), N_("Acton group to add this fcurve into."));
 
-       parm= RNA_def_pointer(func, "fcurve", "FCurve", "", "Newly created fcurve");
+       parm= RNA_def_pointer(func, "fcurve", "FCurve", "", N_("Newly created fcurve"));
        RNA_def_function_return(func, parm);
 
 
        func= RNA_def_function(srna, "remove", "rna_Action_fcurve_remove");
        RNA_def_function_ui_description(func, "Remove action group.");
        RNA_def_function_flag(func, FUNC_USE_REPORTS);
-       parm= RNA_def_pointer(func, "fcurve", "FCurve", "", "FCurve to remove.");
+       parm= RNA_def_pointer(func, "fcurve", "FCurve", "", N_("FCurve to remove."));
        RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
 }
 
@@ -533,33 +535,33 @@ static void rna_def_action_pose_markers(BlenderRNA *brna, PropertyRNA *cprop)
        RNA_def_property_srna(cprop, "ActionPoseMarkers");
        srna= RNA_def_struct(brna, "ActionPoseMarkers", NULL);
        RNA_def_struct_sdna(srna, "bAction");
-       RNA_def_struct_ui_text(srna, "Action Pose Markers", "Collection of timeline markers");
+       RNA_def_struct_ui_text(srna, N_("Action Pose Markers"), N_("Collection of timeline markers"));
 
        func= RNA_def_function(srna, "new", "rna_Action_pose_markers_new");
-       RNA_def_function_ui_description(func, "Add a pose marker to the action.");
+       RNA_def_function_ui_description(func, N_("Add a pose marker to the action."));
        RNA_def_function_flag(func, FUNC_USE_REPORTS);
-       parm= RNA_def_string(func, "name", "Marker", 0, "", "New name for the marker (not unique).");
+       parm= RNA_def_string(func, "name", "Marker", 0, "", N_("New name for the marker (not unique)."));
        RNA_def_property_flag(parm, PROP_REQUIRED);
 
-       parm= RNA_def_pointer(func, "marker", "TimelineMarker", "", "Newly created marker");
+       parm= RNA_def_pointer(func, "marker", "TimelineMarker", "", N_("Newly created marker"));
        RNA_def_function_return(func, parm);
 
        func= RNA_def_function(srna, "remove", "rna_Action_pose_markers_remove");
-       RNA_def_function_ui_description(func, "Remove a timeline marker.");
+       RNA_def_function_ui_description(func, N_("Remove a timeline marker."));
        RNA_def_function_flag(func, FUNC_USE_REPORTS);
-       parm= RNA_def_pointer(func, "marker", "TimelineMarker", "", "Timeline marker to remove.");
+       parm= RNA_def_pointer(func, "marker", "TimelineMarker", "", N_("Timeline marker to remove."));
        RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
        
        prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "TimelineMarker");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_pointer_funcs(prop, "rna_Action_active_pose_marker_get", "rna_Action_active_pose_marker_set", NULL, NULL);
-       RNA_def_property_ui_text(prop, "Active Pose Marker", "Active pose marker for this Action");
+       RNA_def_property_ui_text(prop, N_("Active Pose Marker"), N_("Active pose marker for this Action"));
        
        prop= RNA_def_property(srna, "active_index", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "active_marker");
        RNA_def_property_int_funcs(prop, "rna_Action_active_pose_marker_index_get", "rna_Action_active_pose_marker_index_set", "rna_Action_active_pose_marker_index_range");
-       RNA_def_property_ui_text(prop, "Active Pose Marker Index", "Index of active pose marker");
+       RNA_def_property_ui_text(prop, N_("Active Pose Marker Index"), N_("Index of active pose marker"));
 }
 
 static void rna_def_action(BlenderRNA *brna)
@@ -569,30 +571,30 @@ static void rna_def_action(BlenderRNA *brna)
        
        srna= RNA_def_struct(brna, "Action", "ID");
        RNA_def_struct_sdna(srna, "bAction");
-       RNA_def_struct_ui_text(srna, "Action", "A collection of F-Curves for animation");
+       RNA_def_struct_ui_text(srna, N_("Action"), N_("A collection of F-Curves for animation"));
        RNA_def_struct_ui_icon(srna, ICON_ACTION);
        
        /* collections */
        prop= RNA_def_property(srna, "fcurves", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "curves", NULL);
        RNA_def_property_struct_type(prop, "FCurve");
-       RNA_def_property_ui_text(prop, "F-Curves", "The individual F-Curves that make up the Action");
+       RNA_def_property_ui_text(prop, N_("F-Curves"), N_("The individual F-Curves that make up the Action"));
        rna_def_action_fcurves(brna, prop);
        
        prop= RNA_def_property(srna, "groups", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "groups", NULL);
        RNA_def_property_struct_type(prop, "ActionGroup");
-       RNA_def_property_ui_text(prop, "Groups", "Convenient groupings of F-Curves");
+       RNA_def_property_ui_text(prop, N_("Groups"), N_("Convenient groupings of F-Curves"));
        rna_def_action_groups(brna, prop);
        
        prop= RNA_def_property(srna, "pose_markers", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "markers", NULL);
        RNA_def_property_struct_type(prop, "TimelineMarker");
-       RNA_def_property_ui_text(prop, "Pose Markers", "Markers specific to this Action, for labeling poses");
+       RNA_def_property_ui_text(prop, N_("Pose Markers"), N_("Markers specific to this Action, for labeling poses"));
        rna_def_action_pose_markers(brna, prop);
        
        /* properties */
-       prop= RNA_def_float_vector(srna, "frame_range" , 2 , NULL , 0, 0, "Frame Range" , "The final frame range of all fcurves within this action" , 0 , 0);
+       prop= RNA_def_float_vector(srna, "frame_range" , 2 , NULL , 0, 0, N_("Frame Range") , N_("The final frame range of all fcurves within this action") , 0 , 0);
        RNA_def_property_float_funcs(prop, "rna_Action_frame_range_get" , NULL, NULL);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
        
@@ -600,7 +602,7 @@ static void rna_def_action(BlenderRNA *brna)
        prop= RNA_def_property(srna, "id_root", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "idroot");
        RNA_def_property_enum_items(prop, id_type_items);
-       RNA_def_property_ui_text(prop, "ID Root Type", "Type of ID-block that action can be used on. DO NOT CHANGE UNLESS YOU KNOW WHAT YOU'RE DOING");
+       RNA_def_property_ui_text(prop, N_("ID Root Type"), N_("Type of ID-block that action can be used on. DO NOT CHANGE UNLESS YOU KNOW WHAT YOU'RE DOING"));
        
        /* API calls */
        RNA_api_action(srna);
index a46f84a22d243dd383f8b5206c3a172499d27331..be7fe72e320ca72e812b2dfd4247e7bb956ce781 100644 (file)
@@ -43,6 +43,8 @@
 
 #include "BLI_math.h"
 
+#include "BLF_api.h"
+
 #include "BKE_action.h"
 
 #include "WM_types.h"
index ee43bfcca7d3227e7629f410fb62fc1b80734a9e..b2e537edd430aac1bb3e85e6c41863fc948e83c1 100644 (file)
 #include "WM_types.h"
 
 EnumPropertyItem object_mode_items[] = {
-       {OB_MODE_OBJECT, "OBJECT", ICON_OBJECT_DATAMODE, "Object", ""},
-       {OB_MODE_EDIT, "EDIT", ICON_EDITMODE_HLT, "Edit", ""},
-       {OB_MODE_SCULPT, "SCULPT", ICON_SCULPTMODE_HLT, "Sculpt", ""},
-       {OB_MODE_VERTEX_PAINT, "VERTEX_PAINT", ICON_VPAINT_HLT, "Vertex Paint", ""},
-       {OB_MODE_WEIGHT_PAINT, "WEIGHT_PAINT", ICON_WPAINT_HLT, "Weight Paint", ""},
-       {OB_MODE_TEXTURE_PAINT, "TEXTURE_PAINT", ICON_TPAINT_HLT, "Texture Paint", ""},
-       {OB_MODE_PARTICLE_EDIT, "PARTICLE_EDIT", ICON_PARTICLEMODE, "Particle Edit", ""},
-       {OB_MODE_POSE, "POSE", ICON_POSE_HLT, "Pose", ""},
+       {OB_MODE_OBJECT, "OBJECT", ICON_OBJECT_DATAMODE, N_("Object"), ""},
+       {OB_MODE_EDIT, "EDIT", ICON_EDITMODE_HLT, N_("Edit"), ""},
+       {OB_MODE_SCULPT, "SCULPT", ICON_SCULPTMODE_HLT, N_("Sculpt"), ""},
+       {OB_MODE_VERTEX_PAINT, "VERTEX_PAINT", ICON_VPAINT_HLT, N_("Vertex Paint"), ""},
+       {OB_MODE_WEIGHT_PAINT, "WEIGHT_PAINT", ICON_WPAINT_HLT, N_("Weight Paint"), ""},
+       {OB_MODE_TEXTURE_PAINT, "TEXTURE_PAINT", ICON_TPAINT_HLT, N_("Texture Paint"), ""},
+       {OB_MODE_PARTICLE_EDIT, "PARTICLE_EDIT", ICON_PARTICLEMODE, N_("Particle Edit"), ""},
+       {OB_MODE_POSE, "POSE", ICON_POSE_HLT, N_("Pose"), ""},
        {0, NULL, 0, NULL, NULL}};
 
 static EnumPropertyItem parent_type_items[] = {
-       {PAROBJECT, "OBJECT", 0, "Object", "The object is parented to an object"},
-       {PARCURVE, "CURVE", 0, "Curve", "The object is parented to a curve"},
-       {PARKEY, "KEY", 0, "Key", ""},
-       {PARSKEL, "ARMATURE", 0, "Armature", ""},
-       {PARSKEL, "LATTICE", 0, "Lattice", "The object is parented to a lattice"}, // PARSKEL reuse will give issues
-       {PARVERT1, "VERTEX", 0, "Vertex", "The object is parented to a vertex"},
-       {PARVERT3, "VERTEX_3", 0, "3 Vertices", ""},
-       {PARBONE, "BONE", 0, "Bone", "The object is parented to a bone"},
+       {PAROBJECT, "OBJECT", 0, N_("Object"), N_("The object is parented to an object")},
+       {PARCURVE, "CURVE", 0, N_("Curve"), N_("The object is parented to a curve")},
+       {PARKEY, "KEY", 0, N_("Key"), ""},
+       {PARSKEL, "ARMATURE", 0, N_("Armature"), ""},
+       {PARSKEL, "LATTICE", 0, N_("Lattice"), N_("The object is parented to a lattice")}, // PARSKEL reuse will give issues
+       {PARVERT1, "VERTEX", 0, N_("Vertex"), N_("The object is parented to a vertex")},
+       {PARVERT3, "VERTEX_3", 0, N_("3 Vertices"), ""},
+       {PARBONE, "BONE", 0, N_("Bone"), N_("The object is parented to a bone")},
        {0, NULL, 0, NULL, NULL}};
        
 static EnumPropertyItem collision_bounds_items[] = {
-       {OB_BOUND_BOX, "BOX", 0, "Box", ""},
-       {OB_BOUND_SPHERE, "SPHERE", 0, "Sphere", ""},
-       {OB_BOUND_CYLINDER, "CYLINDER", 0, "Cylinder", ""},
-       {OB_BOUND_CONE, "CONE", 0, "Cone", ""},
-       {OB_BOUND_POLYT, "CONVEX_HULL", 0, "Convex Hull", ""},
-       {OB_BOUND_POLYH, "TRIANGLE_MESH", 0, "Triangle Mesh", ""},
-       {OB_BOUND_CAPSULE, "CAPSULE", 0, "Capsule", ""},
+       {OB_BOUND_BOX, "BOX", 0, N_("Box"), ""},
+       {OB_BOUND_SPHERE, "SPHERE", 0, N_("Sphere"), ""},
+       {OB_BOUND_CYLINDER, "CYLINDER", 0, N_("Cylinder"), ""},
+       {OB_BOUND_CONE, "CONE", 0, N_("Cone"), ""},
+       {OB_BOUND_POLYT, "CONVEX_HULL", 0, N_("Convex Hull"), ""},
+       {OB_BOUND_POLYH, "TRIANGLE_MESH", 0, N_("Triangle Mesh"), ""},
+       {OB_BOUND_CAPSULE, "CAPSULE", 0, N_("Capsule"), ""},
        //{OB_DYN_MESH, "DYNAMIC_MESH", 0, "Dynamic Mesh", ""},
        {0, NULL, 0, NULL, NULL}};
 
@@ -1699,14 +1699,14 @@ static void rna_def_object(BlenderRNA *brna)
        PropertyRNA *prop;
 
        static EnumPropertyItem empty_drawtype_items[] = {
-               {OB_PLAINAXES, "PLAIN_AXES", 0, "Plain Axes", ""},
-               {OB_ARROWS, "ARROWS", 0, "Arrows", ""},
-               {OB_SINGLE_ARROW, "SINGLE_ARROW", 0, "Single Arrow", ""},
-               {OB_CIRCLE, "CIRCLE", 0, "Circle", ""},
-               {OB_CUBE, "CUBE", 0, "Cube", ""},
-               {OB_EMPTY_SPHERE, "SPHERE", 0, "Sphere", ""},
-               {OB_EMPTY_CONE, "CONE", 0, "Cone", ""},
-               {OB_EMPTY_IMAGE, "IMAGE", 0, "Image", ""},
+               {OB_PLAINAXES, "PLAIN_AXES", 0, N_("Plain Axes"), ""},
+               {OB_ARROWS, "ARROWS", 0, N_("Arrows"), ""},
+               {OB_SINGLE_ARROW, "SINGLE_ARROW", 0, N_("Single Arrow"), ""},
+               {OB_CIRCLE, "CIRCLE", 0, N_("Circle"), ""},
+               {OB_CUBE, "CUBE", 0, N_("Cube"), ""},
+               {OB_EMPTY_SPHERE, "SPHERE", 0, N_("Sphere"), ""},
+               {OB_EMPTY_CONE, "CONE", 0, N_("Cone"), ""},
+               {OB_EMPTY_IMAGE, "IMAGE", 0, N_("Image"), ""},
                {0, NULL, 0, NULL, NULL}};
        
        static EnumPropertyItem track_items[] = {
@@ -1725,40 +1725,40 @@ static void rna_def_object(BlenderRNA *brna)
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem drawtype_items[] = {
-               {OB_BOUNDBOX, "BOUNDS", 0, "Bounds", "Draw the bounding box of the object"},
-               {OB_WIRE, "WIRE", 0, "Wire", "Draw the object as a wireframe"},
-               {OB_SOLID, "SOLID", 0, "Solid", "Draw the object as a solid (If solid drawing is enabled in the viewport)"},
+               {OB_BOUNDBOX, "BOUNDS", 0, N_("Bounds"), N_("Draw the bounding box of the object")},
+               {OB_WIRE, "WIRE", 0, N_("Wire"), N_("Draw the object as a wireframe")},
+               {OB_SOLID, "SOLID", 0, N_("Solid"), N_("Draw the object as a solid (If solid drawing is enabled in the viewport)")},
                // disabled {OB_SHADED, "SHADED", 0, "Shaded", ""},
-               {OB_TEXTURE, "TEXTURED", 0, "Textured", "Draw the object with textures (If textures are enabled in the viewport)"},
+               {OB_TEXTURE, "TEXTURED", 0, N_("Textured"), N_("Draw the object with textures (If textures are enabled in the viewport)")},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem boundtype_items[] = {
-               {OB_BOUND_BOX, "BOX", 0, "Box", "Draw bounds as box"},
-               {OB_BOUND_SPHERE, "SPHERE", 0, "Sphere", "Draw bounds as sphere"},
-               {OB_BOUND_CYLINDER, "CYLINDER", 0, "Cylinder", "Draw bounds as cylinder"},
-               {OB_BOUND_CONE, "CONE", 0, "Cone", "Draw bounds as cone"},
-               {OB_BOUND_POLYH, "POLYHEDRON", 0, "Polyhedron", "Draw bounds as polyhedron"},
-               {OB_BOUND_CAPSULE, "CAPSULE", 0, "Capsule", "Draw bounds as capsule"},
+               {OB_BOUND_BOX, "BOX", 0, N_("Box"), N_("Draw bounds as box")},
+               {OB_BOUND_SPHERE, "SPHERE", 0, N_("Sphere"), N_("Draw bounds as sphere")},
+               {OB_BOUND_CYLINDER, "CYLINDER", 0, N_("Cylinder"), N_("Draw bounds as cylinder")},
+               {OB_BOUND_CONE, "CONE", 0, N_("Cone"), N_("Draw bounds as cone")},
+               {OB_BOUND_POLYH, "POLYHEDRON", 0, N_("Polyhedron"), N_("Draw bounds as polyhedron")},
+               {OB_BOUND_CAPSULE, "CAPSULE", 0, N_("Capsule"), N_("Draw bounds as capsule")},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem dupli_items[] = {
                {0, "NONE", 0, "None", ""},
-               {OB_DUPLIFRAMES, "FRAMES", 0, "Frames", "Make copy of object for every frame"},
-               {OB_DUPLIVERTS, "VERTS", 0, "Verts", "Duplicate child objects on all vertices"},
-               {OB_DUPLIFACES, "FACES", 0, "Faces", "Duplicate child objects on all faces"},
-               {OB_DUPLIGROUP, "GROUP", 0, "Group", "Enable group instancing"},
+               {OB_DUPLIFRAMES, "FRAMES", 0, N_("Frames"), N_("Make copy of object for every frame")},
+               {OB_DUPLIVERTS, "VERTS", 0, N_("Verts"), N_("Duplicate child objects on all vertices")},
+               {OB_DUPLIFACES, "FACES", 0, N_("Faces"), N_("Duplicate child objects on all faces")},
+               {OB_DUPLIGROUP, "GROUP", 0, N_("Group"), N_("Enable group instancing")},
                {0, NULL, 0, NULL, NULL}};
                
        // XXX: this RNA enum define is currently duplicated for objects, since there is some text here which is not applicable
        static EnumPropertyItem prop_rotmode_items[] = {
-               {ROT_MODE_QUAT, "QUATERNION", 0, "Quaternion (WXYZ)", "No Gimbal Lock"},
-               {ROT_MODE_XYZ, "XYZ", 0, "XYZ Euler", "XYZ Rotation Order. Prone to Gimbal Lock. (Default)"},
-               {ROT_MODE_XZY, "XZY", 0, "XZY Euler", "XZY Rotation Order. Prone to Gimbal Lock"},
-               {ROT_MODE_YXZ, "YXZ", 0, "YXZ Euler", "YXZ Rotation Order. Prone to Gimbal Lock"},
-               {ROT_MODE_YZX, "YZX", 0, "YZX Euler", "YZX Rotation Order. Prone to Gimbal Lock"},
-               {ROT_MODE_ZXY, "ZXY", 0, "ZXY Euler", "ZXY Rotation Order. Prone to Gimbal Lock"},
-               {ROT_MODE_ZYX, "ZYX", 0, "ZYX Euler", "ZYX Rotation Order. Prone to Gimbal Lock"},
-               {ROT_MODE_AXISANGLE, "AXIS_ANGLE", 0, "Axis Angle", "Axis Angle (W+XYZ). Defines a rotation around some axis defined by 3D-Vector"},
+               {ROT_MODE_QUAT, "QUATERNION", 0, N_("Quaternion (WXYZ)"), N_("No Gimbal Lock")},
+               {ROT_MODE_XYZ, "XYZ", 0, N_("XYZ Euler"), N_("XYZ Rotation Order. Prone to Gimbal Lock. (Default)")},
+               {ROT_MODE_XZY, "XZY", 0, N_("XZY Euler"), N_("XZY Rotation Order. Prone to Gimbal Lock")},
+               {ROT_MODE_YXZ, "YXZ", 0, N_("YXZ Euler"), N_("YXZ Rotation Order. Prone to Gimbal Lock")},
+               {ROT_MODE_YZX, "YZX", 0, N_("YZX Euler"), N_("YZX Rotation Order. Prone to Gimbal Lock")},
+               {ROT_MODE_ZXY, "ZXY", 0, N_("ZXY Euler"), N_("ZXY Rotation Order. Prone to Gimbal Lock")},
+               {ROT_MODE_ZYX, "ZYX", 0, N_("ZYX Euler"), N_("ZYX Rotation Order. Prone to Gimbal Lock")},
+               {ROT_MODE_AXISANGLE, "AXIS_ANGLE", 0, N_("Axis Angle"), N_("Axis Angle (W+XYZ). Defines a rotation around some axis defined by 3D-Vector")},
                {0, NULL, 0, NULL, NULL}};
        
        static float default_quat[4] = {1,0,0,0};       /* default quaternion values */
@@ -1767,7 +1767,7 @@ static void rna_def_object(BlenderRNA *brna)
        static int boundbox_dimsize[]= {8, 3};
 
        srna= RNA_def_struct(brna, "Object", "ID");
-       RNA_def_struct_ui_text(srna, "Object", "Object datablock defining an object in a scene");
+       RNA_def_struct_ui_text(srna, N_("Object"), N_("Object datablock defining an object in a scene"));
        RNA_def_struct_clear_flag(srna, STRUCT_ID_REFCOUNT);
        RNA_def_struct_ui_icon(srna, ICON_OBJECT_DATA);
 
@@ -1775,32 +1775,32 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_struct_type(prop, "ID");
        RNA_def_property_pointer_funcs(prop, NULL, "rna_Object_data_set", "rna_Object_data_typef", NULL);
        RNA_def_property_flag(prop, PROP_EDITABLE|PROP_NEVER_UNLINK);
-       RNA_def_property_ui_text(prop, "Data", "Object data");
+       RNA_def_property_ui_text(prop, N_("Data"), N_("Object data"));
        RNA_def_property_update(prop, 0, "rna_Object_internal_update_data");
 
        prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "type");
        RNA_def_property_enum_items(prop, object_type_items);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Type", "Type of Object");
+       RNA_def_property_ui_text(prop, N_("Type"), N_("Type of Object"));
 
        prop= RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "mode");
        RNA_def_property_enum_items(prop, object_mode_items);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Mode", "Object interaction mode");
+       RNA_def_property_ui_text(prop, N_("Mode"), N_("Object interaction mode"));
 
        prop= RNA_def_property(srna, "layers", PROP_BOOLEAN, PROP_LAYER_MEMBER);
        RNA_def_property_boolean_sdna(prop, NULL, "lay", 1);
        RNA_def_property_array(prop, 20);
-       RNA_def_property_ui_text(prop, "Layers", "Layers the object is on");
+       RNA_def_property_ui_text(prop, N_("Layers"), N_("Layers the object is on"));
        RNA_def_property_boolean_funcs(prop, NULL, "rna_Object_layer_set");
        RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_layer_update");
 
        prop= RNA_def_property(srna, "select", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SELECT);
-       RNA_def_property_ui_text(prop, "Select", "Object selection state");
+       RNA_def_property_ui_text(prop, N_("Select"), N_("Object selection state"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_select_update");
 
        /* for data access */
@@ -1808,32 +1808,32 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_multi_array(prop, 2, boundbox_dimsize);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
        RNA_def_property_float_funcs(prop, "rna_Object_boundbox_get", NULL, NULL);
-       RNA_def_property_ui_text(prop, "Bound Box", "Objects bound box in object-space coordinates, all values are -1.0 when not available.");
+       RNA_def_property_ui_text(prop, N_("Bound Box"), N_("Objects bound box in object-space coordinates, all values are -1.0 when not available."));
 
        /* parent */
        prop= RNA_def_property(srna, "parent", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_funcs(prop, NULL, "rna_Object_parent_set", NULL, NULL);
        RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
-       RNA_def_property_ui_text(prop, "Parent", "Parent Object");
+       RNA_def_property_ui_text(prop, N_("Parent"), N_("Parent Object"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_dependency_update");
        
        prop= RNA_def_property(srna, "parent_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_bitflag_sdna(prop, NULL, "partype");
        RNA_def_property_enum_items(prop, parent_type_items);
        RNA_def_property_enum_funcs(prop, NULL, "rna_Object_parent_type_set", "rna_Object_parent_type_itemf");
-       RNA_def_property_ui_text(prop, "Parent Type", "Type of parent relation");
+       RNA_def_property_ui_text(prop, N_("Parent Type"), N_("Type of parent relation"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_dependency_update");
 
        prop= RNA_def_property(srna, "parent_vertices", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_int_sdna(prop, NULL, "par1");
        RNA_def_property_array(prop, 3);
-       RNA_def_property_ui_text(prop, "Parent Vertices", "Indices of vertices in cases of a vertex parenting relation");
+       RNA_def_property_ui_text(prop, N_("Parent Vertices"), N_("Indices of vertices in cases of a vertex parenting relation"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "parent_bone", PROP_STRING, PROP_NONE);
        RNA_def_property_string_sdna(prop, NULL, "parsubstr");
        RNA_def_property_string_funcs(prop, NULL, NULL, "rna_Object_parent_bone_set");
-       RNA_def_property_ui_text(prop, "Parent Bone", "Name of parent bone in case of a bone parenting relation");
+       RNA_def_property_ui_text(prop, N_("Parent Bone"), N_("Name of parent bone in case of a bone parenting relation"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_dependency_update");
        
        /* Track and Up flags */
@@ -1841,41 +1841,41 @@ static void rna_def_object(BlenderRNA *brna)
        prop= RNA_def_property(srna, "track_axis", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "trackflag");
        RNA_def_property_enum_items(prop, track_items);
-       RNA_def_property_ui_text(prop, "Track Axis", "Axis that points in 'forward' direction (applies to DupliFrame when parent 'Follow' is enabled)");
+       RNA_def_property_ui_text(prop, N_("Track Axis"), N_("Axis that points in 'forward' direction (applies to DupliFrame when parent 'Follow' is enabled)"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "up_axis", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "upflag");
        RNA_def_property_enum_items(prop, up_items);
-       RNA_def_property_ui_text(prop, "Up Axis", "Axis that points in the upward direction (applies to DupliFrame when parent 'Follow' is enabled)");
+       RNA_def_property_ui_text(prop, N_("Up Axis"), N_("Axis that points in the upward direction (applies to DupliFrame when parent 'Follow' is enabled)"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
        
        /* proxy */
        prop= RNA_def_property(srna, "proxy", PROP_POINTER, PROP_NONE);
-       RNA_def_property_ui_text(prop, "Proxy", "Library object this proxy object controls");
+       RNA_def_property_ui_text(prop, N_("Proxy"), N_("Library object this proxy object controls"));
 
        prop= RNA_def_property(srna, "proxy_group", PROP_POINTER, PROP_NONE);
-       RNA_def_property_ui_text(prop, "Proxy Group", "Library group duplicator object this proxy object controls");
+       RNA_def_property_ui_text(prop, N_("Proxy Group"), N_("Library group duplicator object this proxy object controls"));
 
        /* materials */
        prop= RNA_def_property(srna, "material_slots", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "mat", "totcol");
        RNA_def_property_struct_type(prop, "MaterialSlot");
        RNA_def_property_collection_funcs(prop, NULL, NULL, NULL, "rna_iterator_array_get", NULL, NULL, NULL); /* don't dereference pointer! */
-       RNA_def_property_ui_text(prop, "Material Slots", "Material slots in the object");
+       RNA_def_property_ui_text(prop, N_("Material Slots"), N_("Material slots in the object"));
 
        prop= RNA_def_property(srna, "active_material", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "Material");
        RNA_def_property_pointer_funcs(prop, "rna_Object_active_material_get", "rna_Object_active_material_set", NULL, NULL);
        RNA_def_property_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Active Material", "Active material being displayed");
+       RNA_def_property_ui_text(prop, N_("Active Material"), N_("Active material being displayed"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_MaterialSlot_update");
 
        prop= RNA_def_property(srna, "active_material_index", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_int_sdna(prop, NULL, "actcol");
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_int_funcs(prop, "rna_Object_active_material_index_get", "rna_Object_active_material_index_set", "rna_Object_active_material_index_range");
-       RNA_def_property_ui_text(prop, "Active Material Index", "Index of active material slot");
+       RNA_def_property_ui_text(prop, N_("Active Material Index"), N_("Index of active material slot"));
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
        /* transform */
@@ -1883,14 +1883,14 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_float_sdna(prop, NULL, "loc");
        RNA_def_property_editable_array_func(prop, "rna_Object_location_editable");
        RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 3);
-       RNA_def_property_ui_text(prop, "Location", "Location of the object");
+       RNA_def_property_ui_text(prop, N_("Location"), N_("Location of the object"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
        
        prop= RNA_def_property(srna, "rotation_quaternion", PROP_FLOAT, PROP_QUATERNION);
        RNA_def_property_float_sdna(prop, NULL, "quat");
        RNA_def_property_editable_array_func(prop, "rna_Object_rotation_4d_editable");
        RNA_def_property_float_array_default(prop, default_quat);
-       RNA_def_property_ui_text(prop, "Quaternion Rotation", "Rotation in Quaternions");
+       RNA_def_property_ui_text(prop, N_("Quaternion Rotation"), N_("Rotation in Quaternions"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
        
                /* XXX: for axis-angle, it would have been nice to have 2 separate fields for UI purposes, but
@@ -1901,20 +1901,20 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_float_funcs(prop, "rna_Object_rotation_axis_angle_get", "rna_Object_rotation_axis_angle_set", NULL);
        RNA_def_property_editable_array_func(prop, "rna_Object_rotation_4d_editable");
        RNA_def_property_float_array_default(prop, default_axisAngle);
-       RNA_def_property_ui_text(prop, "Axis-Angle Rotation", "Angle of Rotation for Axis-Angle rotation representation");
+       RNA_def_property_ui_text(prop, N_("Axis-Angle Rotation"), N_("Angle of Rotation for Axis-Angle rotation representation"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
        
        prop= RNA_def_property(srna, "rotation_euler", PROP_FLOAT, PROP_EULER);
        RNA_def_property_float_sdna(prop, NULL, "rot");
        RNA_def_property_editable_array_func(prop, "rna_Object_rotation_euler_editable");
-       RNA_def_property_ui_text(prop, "Euler Rotation", "Rotation in Eulers");
+       RNA_def_property_ui_text(prop, N_("Euler Rotation"), N_("Rotation in Eulers"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
        
        prop= RNA_def_property(srna, "rotation_mode", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "rotmode");
        RNA_def_property_enum_items(prop, prop_rotmode_items); // XXX move to using a single define of this someday
        RNA_def_property_enum_funcs(prop, NULL, "rna_Object_rotation_mode_set", NULL);
-       RNA_def_property_ui_text(prop, "Rotation Mode", "");
+       RNA_def_property_ui_text(prop, N_("Rotation Mode"), "");
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
        
        prop= RNA_def_property(srna, "scale", PROP_FLOAT, PROP_XYZ);
@@ -1922,59 +1922,59 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_editable_array_func(prop, "rna_Object_scale_editable");
        RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 3);
        RNA_def_property_float_array_default(prop, default_scale);
-       RNA_def_property_ui_text(prop, "Scale", "Scaling of the object");
+       RNA_def_property_ui_text(prop, N_("Scale"), N_("Scaling of the object"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "dimensions", PROP_FLOAT, PROP_XYZ_LENGTH);
        RNA_def_property_array(prop, 3);
        RNA_def_property_float_funcs(prop, "rna_Object_dimensions_get", "rna_Object_dimensions_set", NULL);
        RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, 3);
-       RNA_def_property_ui_text(prop, "Dimensions", "Absolute bounding box dimensions of the object");
+       RNA_def_property_ui_text(prop, N_("Dimensions"), N_("Absolute bounding box dimensions of the object"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
        
 
        /* delta transforms */
        prop= RNA_def_property(srna, "delta_location", PROP_FLOAT, PROP_TRANSLATION);
        RNA_def_property_float_sdna(prop, NULL, "dloc");
-       RNA_def_property_ui_text(prop, "Delta Location", "Extra translation added to the location of the object");
+       RNA_def_property_ui_text(prop, N_("Delta Location"), N_("Extra translation added to the location of the object"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
        
        prop= RNA_def_property(srna, "delta_rotation_euler", PROP_FLOAT, PROP_EULER);
        RNA_def_property_float_sdna(prop, NULL, "drot");
-       RNA_def_property_ui_text(prop, "Delta Rotation (Euler)", "Extra rotation added to the rotation of the object (when using Euler rotations)");
+       RNA_def_property_ui_text(prop, N_("Delta Rotation (Euler)"), N_("Extra rotation added to the rotation of the object (when using Euler rotations)"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
        
        prop= RNA_def_property(srna, "delta_rotation_quaternion", PROP_FLOAT, PROP_QUATERNION);
        RNA_def_property_float_sdna(prop, NULL, "dquat");
        RNA_def_property_float_array_default(prop, default_quat);
-       RNA_def_property_ui_text(prop, "Delta Rotation (Quaternion)", "Extra rotation added to the rotation of the object (when using Quaternion rotations)");
+       RNA_def_property_ui_text(prop, N_("Delta Rotation (Quaternion)"), N_("Extra rotation added to the rotation of the object (when using Quaternion rotations)"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
        
 #if 0 // XXX not supported well yet...
        prop= RNA_def_property(srna, "delta_rotation_axis_angle", PROP_FLOAT, PROP_AXISANGLE);
        RNA_def_property_float_sdna(prop, NULL, "dquat"); // FIXME: this is not a single field any more! (drotAxis and drotAngle)
        RNA_def_property_float_array_default(prop, default_axisAngle);
-       RNA_def_property_ui_text(prop, "Delta Rotation (Axis Angle)", "Extra rotation added to the rotation of the object (when using Axis-Angle rotations)");
+       RNA_def_property_ui_text(prop, N_("Delta Rotation (Axis Angle)"), N_("Extra rotation added to the rotation of the object (when using Axis-Angle rotations)"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
 #endif
        
        prop= RNA_def_property(srna, "delta_scale", PROP_FLOAT, PROP_XYZ);
        RNA_def_property_float_sdna(prop, NULL, "dsize");
-       RNA_def_property_ui_text(prop, "Delta Scale", "Extra scaling added to the scale of the object");
+       RNA_def_property_ui_text(prop, N_("Delta Scale"), N_("Extra scaling added to the scale of the object"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
        
        /* transform locks */
        prop= RNA_def_property(srna, "lock_location", PROP_BOOLEAN, PROP_XYZ);
        RNA_def_property_boolean_sdna(prop, NULL, "protectflag", OB_LOCK_LOCX);
        RNA_def_property_array(prop, 3);
-       RNA_def_property_ui_text(prop, "Lock Location", "Lock editing of location in the interface");
+       RNA_def_property_ui_text(prop, N_("Lock Location"), N_("Lock editing of location in the interface"));
        RNA_def_property_ui_icon(prop, ICON_UNLOCKED, 1);
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "lock_rotation", PROP_BOOLEAN, PROP_XYZ);
        RNA_def_property_boolean_sdna(prop, NULL, "protectflag", OB_LOCK_ROTX);
        RNA_def_property_array(prop, 3);
-       RNA_def_property_ui_text(prop, "Lock Rotation", "Lock editing of rotation in the interface");
+       RNA_def_property_ui_text(prop, N_("Lock Rotation"), N_("Lock editing of rotation in the interface"));
        RNA_def_property_ui_icon(prop, ICON_UNLOCKED, 1);
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
        
@@ -1982,16 +1982,16 @@ static void rna_def_object(BlenderRNA *brna)
        prop= RNA_def_property(srna, "lock_rotation_w", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "protectflag", OB_LOCK_ROTW);
        RNA_def_property_ui_icon(prop, ICON_UNLOCKED, 1);
-       RNA_def_property_ui_text(prop, "Lock Rotation (4D Angle)", "Lock editing of 'angle' component of four-component rotations in the interface");
+       RNA_def_property_ui_text(prop, N_("Lock Rotation (4D Angle)"), N_("Lock editing of 'angle' component of four-component rotations in the interface"));
                // XXX this needs a better name
        prop= RNA_def_property(srna, "lock_rotations_4d", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "protectflag", OB_LOCK_ROT4D);
-       RNA_def_property_ui_text(prop, "Lock Rotations (4D)", "Lock editing of four component rotations by components (instead of as Eulers)");
+       RNA_def_property_ui_text(prop, N_("Lock Rotations (4D)"), N_("Lock editing of four component rotations by components (instead of as Eulers)"));
 
        prop= RNA_def_property(srna, "lock_scale", PROP_BOOLEAN, PROP_XYZ);
        RNA_def_property_boolean_sdna(prop, NULL, "protectflag", OB_LOCK_SCALEX);
        RNA_def_property_array(prop, 3);
-       RNA_def_property_ui_text(prop, "Lock Scale", "Lock editing of scale in the interface");
+       RNA_def_property_ui_text(prop, N_("Lock Scale"), N_("Lock editing of scale in the interface"));
        RNA_def_property_ui_icon(prop, ICON_UNLOCKED, 1);
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
 
@@ -2000,33 +2000,33 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_float_sdna(prop, NULL, "obmat");
        RNA_def_property_multi_array(prop, 2, rna_matrix_dimsize_4x4);
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
-       RNA_def_property_ui_text(prop, "Matrix World", "Worldspace transformation matrix");
+       RNA_def_property_ui_text(prop, N_("Matrix World"), N_("Worldspace transformation matrix"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_matrix_world_update");
 
        prop= RNA_def_property(srna, "matrix_local", PROP_FLOAT, PROP_MATRIX);
        RNA_def_property_multi_array(prop, 2, rna_matrix_dimsize_4x4);
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
-       RNA_def_property_ui_text(prop, "Local Matrix", "Parent relative transformation matrix");
+       RNA_def_property_ui_text(prop, N_("Local Matrix"), N_("Parent relative transformation matrix"));
        RNA_def_property_float_funcs(prop, "rna_Object_matrix_local_get", "rna_Object_matrix_local_set", NULL);
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, NULL);
 
        prop= RNA_def_property(srna, "matrix_basis", PROP_FLOAT, PROP_MATRIX);
        RNA_def_property_multi_array(prop, 2, rna_matrix_dimsize_4x4);
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
-       RNA_def_property_ui_text(prop, "Input Matrix", "Matrix access to location, rotation and scale (including deltas), before constraints and parenting are applied.");
+       RNA_def_property_ui_text(prop, N_("Input Matrix"), N_("Matrix access to location, rotation and scale (including deltas), before constraints and parenting are applied."));
        RNA_def_property_float_funcs(prop, "rna_Object_matrix_basis_get", "rna_Object_matrix_basis_set", NULL);
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
        
        /* collections */
        prop= RNA_def_property(srna, "constraints", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_struct_type(prop, "Constraint");
-       RNA_def_property_ui_text(prop, "Constraints", "Constraints affecting the transformation of the object");
+       RNA_def_property_ui_text(prop, N_("Constraints"), N_("Constraints affecting the transformation of the object"));
 //     RNA_def_property_collection_funcs(prop, 0, 0, 0, 0, 0, 0, 0, "constraints__add", "constraints__remove");
        rna_def_object_constraints(brna, prop);
 
        prop= RNA_def_property(srna, "modifiers", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_struct_type(prop, "Modifier");
-       RNA_def_property_ui_text(prop, "Modifiers", "Modifiers affecting the geometric data of the object");
+       RNA_def_property_ui_text(prop, N_("Modifiers"), N_("Modifiers affecting the geometric data of the object"));
        rna_def_object_modifiers(brna, prop);
 
        /* game engine */
@@ -2034,44 +2034,44 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_flag(prop, PROP_NEVER_NULL);
        RNA_def_property_struct_type(prop, "GameObjectSettings");
        RNA_def_property_pointer_funcs(prop, "rna_Object_game_settings_get", NULL, NULL, NULL);
-       RNA_def_property_ui_text(prop, "Game Settings", "Game engine related settings for the object");
+       RNA_def_property_ui_text(prop, N_("Game Settings"), N_("Game engine related settings for the object"));
 
        /* vertex groups */
        prop= RNA_def_property(srna, "vertex_groups", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "defbase", NULL);
        RNA_def_property_struct_type(prop, "VertexGroup");
-       RNA_def_property_ui_text(prop, "Vertex Groups", "Vertex groups of the object");
+       RNA_def_property_ui_text(prop, N_("Vertex Groups"), N_("Vertex groups of the object"));
        rna_def_object_vertex_groups(brna, prop);
 
        /* empty */
        prop= RNA_def_property(srna, "empty_draw_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "empty_drawtype");
        RNA_def_property_enum_items(prop, empty_drawtype_items);
-       RNA_def_property_ui_text(prop, "Empty Display Type", "Viewport display style for empties");
+       RNA_def_property_ui_text(prop, N_("Empty Display Type"), N_("Viewport display style for empties"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
 
        prop= RNA_def_property(srna, "empty_draw_size", PROP_FLOAT, PROP_DISTANCE);
        RNA_def_property_float_sdna(prop, NULL, "empty_drawsize");
        RNA_def_property_range(prop, 0.0001f, 1000.0f);
        RNA_def_property_ui_range(prop, 0.01, 100, 1, 2);
-       RNA_def_property_ui_text(prop, "Empty Display Size", "Size of display for empties in the viewport");
+       RNA_def_property_ui_text(prop, N_("Empty Display Size"), N_("Size of display for empties in the viewport"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
 
        prop= RNA_def_property(srna, "empty_image_offset", PROP_FLOAT, PROP_DISTANCE);
        RNA_def_property_float_sdna(prop, NULL, "ima_ofs");
-       RNA_def_property_ui_text(prop, "Origin Offset", "Origin offset distance");
+       RNA_def_property_ui_text(prop, N_("Origin Offset"), N_("Origin offset distance"));
        RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 0.1f, 2);
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
 
        /* render */
        prop= RNA_def_property(srna, "pass_index", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_int_sdna(prop, NULL, "index");
-       RNA_def_property_ui_text(prop, "Pass Index", "Index # for the IndexOB render pass");
+       RNA_def_property_ui_text(prop, N_("Pass Index"), N_("Index # for the IndexOB render pass"));
        RNA_def_property_update(prop, NC_OBJECT, NULL);
        
        prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR);
        RNA_def_property_float_sdna(prop, NULL, "col");
-       RNA_def_property_ui_text(prop, "Color", "Object color and alpha, used when faces have the ObColor mode enabled");
+       RNA_def_property_ui_text(prop, N_("Color"), N_("Object color and alpha, used when faces have the ObColor mode enabled"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
 
        /* physics */
@@ -2079,41 +2079,41 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_pointer_sdna(prop, NULL, "pd");
        RNA_def_property_struct_type(prop, "FieldSettings");
        RNA_def_property_pointer_funcs(prop, "rna_Object_field_get", NULL, NULL, NULL);
-       RNA_def_property_ui_text(prop, "Field Settings", "Settings for using the objects as a field in physics simulation");
+       RNA_def_property_ui_text(prop, N_("Field Settings"), N_("Settings for using the objects as a field in physics simulation"));
 
        prop= RNA_def_property(srna, "collision", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "pd");
        RNA_def_property_struct_type(prop, "CollisionSettings");
        RNA_def_property_pointer_funcs(prop, "rna_Object_collision_get", NULL, NULL, NULL);
-       RNA_def_property_ui_text(prop, "Collision Settings", "Settings for using the objects as a collider in physics simulation");
+       RNA_def_property_ui_text(prop, N_("Collision Settings"), N_("Settings for using the objects as a collider in physics simulation"));
 
        prop= RNA_def_property(srna, "soft_body", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "soft");
        RNA_def_property_struct_type(prop, "SoftBodySettings");
-       RNA_def_property_ui_text(prop, "Soft Body Settings", "Settings for soft body simulation");
+       RNA_def_property_ui_text(prop, N_("Soft Body Settings"), N_("Settings for soft body simulation"));
 
        prop= RNA_def_property(srna, "particle_systems", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "particlesystem", NULL);
        RNA_def_property_struct_type(prop, "ParticleSystem");
-       RNA_def_property_ui_text(prop, "Particle Systems", "Particle systems emitted from the object");
+       RNA_def_property_ui_text(prop, N_("Particle Systems"), N_("Particle systems emitted from the object"));
        rna_def_object_particle_systems(brna, prop);
 
        /* restrict */
        prop= RNA_def_property(srna, "hide", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "restrictflag", OB_RESTRICT_VIEW);
-       RNA_def_property_ui_text(prop, "Restrict View", "Restrict visibility in the viewport");
+       RNA_def_property_ui_text(prop, N_("Restrict View"), N_("Restrict visibility in the viewport"));
        RNA_def_property_ui_icon(prop, ICON_RESTRICT_VIEW_OFF, 1);
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
 
        prop= RNA_def_property(srna, "hide_select", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "restrictflag", OB_RESTRICT_SELECT);
-       RNA_def_property_ui_text(prop, "Restrict Select", "Restrict selection in the viewport");
+       RNA_def_property_ui_text(prop, N_("Restrict Select"), N_("Restrict selection in the viewport"));
        RNA_def_property_ui_icon(prop, ICON_RESTRICT_SELECT_OFF, 1);
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
 
        prop= RNA_def_property(srna, "hide_render", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "restrictflag", OB_RESTRICT_RENDER);
-       RNA_def_property_ui_text(prop, "Restrict Render", "Restrict renderability");
+       RNA_def_property_ui_text(prop, N_("Restrict Render"), N_("Restrict renderability"));
        RNA_def_property_ui_icon(prop, ICON_RESTRICT_RENDER_OFF, 1);
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
 
@@ -2127,73 +2127,73 @@ static void rna_def_object(BlenderRNA *brna)
                // XXX: evil old crap
        prop= RNA_def_property(srna, "use_slow_parent", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "partype", PARSLOW);
-       RNA_def_property_ui_text(prop, "Slow Parent", "Create a delay in the parent relationship");
+       RNA_def_property_ui_text(prop, N_("Slow Parent"), N_("Create a delay in the parent relationship"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "dupli_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_bitflag_sdna(prop, NULL, "transflag");
        RNA_def_property_enum_items(prop, dupli_items);
-       RNA_def_property_ui_text(prop, "Dupli Type", "If not None, object duplication method to use");
+       RNA_def_property_ui_text(prop, N_("Dupli Type"), N_("If not None, object duplication method to use"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_dependency_update");
 
        prop= RNA_def_property(srna, "use_dupli_frames_speed", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "transflag", OB_DUPLINOSPEED);
-       RNA_def_property_ui_text(prop, "Dupli Frames Speed", "Set dupliframes to use the frame"); // TODO, better descriptio!
+       RNA_def_property_ui_text(prop, N_("Dupli Frames Speed"), N_("Set dupliframes to use the frame")); // TODO, better descriptio!
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "use_dupli_vertices_rotation", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "transflag", OB_DUPLIROT);
-       RNA_def_property_ui_text(prop, "Dupli Verts Rotation", "Rotate dupli according to vertex normal");
+       RNA_def_property_ui_text(prop, N_("Dupli Verts Rotation"), N_("Rotate dupli according to vertex normal"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
 
        prop= RNA_def_property(srna, "use_dupli_faces_scale", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "transflag", OB_DUPLIFACES_SCALE);
-       RNA_def_property_ui_text(prop, "Dupli Faces Inherit Scale", "Scale dupli based on face size");
+       RNA_def_property_ui_text(prop, N_("Dupli Faces Inherit Scale"), N_("Scale dupli based on face size"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "dupli_faces_scale", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "dupfacesca");
        RNA_def_property_range(prop, 0.001f, 10000.0f);
-       RNA_def_property_ui_text(prop, "Dupli Faces Scale", "Scale the DupliFace objects");
+       RNA_def_property_ui_text(prop, N_("Dupli Faces Scale"), N_("Scale the DupliFace objects"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
 
        prop= RNA_def_property(srna, "dupli_group", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "dup_group");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_pointer_funcs(prop, NULL, "rna_Object_dup_group_set", NULL, NULL);
-       RNA_def_property_ui_text(prop, "Dupli Group", "Instance an existing group");
+       RNA_def_property_ui_text(prop, N_("Dupli Group"), N_("Instance an existing group"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_dependency_update");
 
        prop= RNA_def_property(srna, "dupli_frames_start", PROP_INT, PROP_NONE|PROP_UNIT_TIME);
        RNA_def_property_int_sdna(prop, NULL, "dupsta");
        RNA_def_property_range(prop, MINAFRAME, MAXFRAME);
-       RNA_def_property_ui_text(prop, "Dupli Frames Start", "Start frame for DupliFrames");
+       RNA_def_property_ui_text(prop, N_("Dupli Frames Start"), N_("Start frame for DupliFrames"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "dupli_frames_end", PROP_INT, PROP_NONE|PROP_UNIT_TIME);
        RNA_def_property_int_sdna(prop, NULL, "dupend");
        RNA_def_property_range(prop, MINAFRAME, MAXFRAME);
-       RNA_def_property_ui_text(prop, "Dupli Frames End", "End frame for DupliFrames");
+       RNA_def_property_ui_text(prop, N_("Dupli Frames End"), N_("End frame for DupliFrames"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "dupli_frames_on", PROP_INT, PROP_NONE|PROP_UNIT_TIME);
        RNA_def_property_int_sdna(prop, NULL, "dupon");
        RNA_def_property_range(prop, MINFRAME, MAXFRAME);
        RNA_def_property_ui_range(prop, 1, 1500, 1, 0);
-       RNA_def_property_ui_text(prop, "Dupli Frames On", "Number of frames to use between DupOff frames");
+       RNA_def_property_ui_text(prop, N_("Dupli Frames On"), N_("Number of frames to use between DupOff frames"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "dupli_frames_off", PROP_INT, PROP_NONE|PROP_UNIT_TIME);
        RNA_def_property_int_sdna(prop, NULL, "dupoff");
        RNA_def_property_range(prop, 0, MAXFRAME);
        RNA_def_property_ui_range(prop, 0, 1500, 1, 0);
-       RNA_def_property_ui_text(prop, "Dupli Frames Off", "Recurring frames to exclude from the Dupliframes");
+       RNA_def_property_ui_text(prop, N_("Dupli Frames Off"), N_("Recurring frames to exclude from the Dupliframes"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "dupli_list", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "duplilist", NULL);
        RNA_def_property_struct_type(prop, "DupliObject");
-       RNA_def_property_ui_text(prop, "Dupli list", "Object duplis");
+       RNA_def_property_ui_text(prop, N_("Dupli list"), N_("Object duplis"));
 
        prop= RNA_def_property(srna, "is_duplicator", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "transflag", OB_DUPLI);
@@ -2203,74 +2203,74 @@ static void rna_def_object(BlenderRNA *brna)
        prop= RNA_def_property(srna, "time_offset", PROP_FLOAT, PROP_NONE|PROP_UNIT_TIME);
        RNA_def_property_float_sdna(prop, NULL, "sf");
        RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF);
-       RNA_def_property_ui_text(prop, "Time Offset", "Animation offset in frames for F-Curve and dupligroup instances");
+       RNA_def_property_ui_text(prop, N_("Time Offset"), N_("Animation offset in frames for F-Curve and dupligroup instances"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "use_time_offset_edit", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "ipoflag", OB_OFFS_OB);
-       RNA_def_property_ui_text(prop, "Time Offset Edit", "Use time offset when inserting keys and display time offset for F-Curve and action views");
+       RNA_def_property_ui_text(prop, N_("Time Offset Edit"), N_("Use time offset when inserting keys and display time offset for F-Curve and action views"));
 
        prop= RNA_def_property(srna, "use_time_offset_parent", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "ipoflag", OB_OFFS_PARENT);
-       RNA_def_property_ui_text(prop, "Time Offset Parent", "Apply the time offset to this objects parent relationship");
+       RNA_def_property_ui_text(prop, N_("Time Offset Parent"), N_("Apply the time offset to this objects parent relationship"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "use_time_offset_particle", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "ipoflag", OB_OFFS_PARTICLE);
-       RNA_def_property_ui_text(prop, "Time Offset Particle", "Let the time offset work on the particle effect");
+       RNA_def_property_ui_text(prop, N_("Time Offset Particle"), N_("Let the time offset work on the particle effect"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "use_time_offset_add_parent", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "ipoflag", OB_OFFS_PARENTADD);
-       RNA_def_property_ui_text(prop, "Time Offset Add Parent", "Add the parents time offset value");
+       RNA_def_property_ui_text(prop, N_("Time Offset Add Parent"), N_("Add the parents time offset value"));
        RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update");
 
        /* drawing */
        prop= RNA_def_property(srna, "draw_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "dt");
        RNA_def_property_enum_items(prop, drawtype_items);
-       RNA_def_property_ui_text(prop, "Maximum Draw Type",  "Maximum draw type to display object with in viewport");
+       RNA_def_property_ui_text(prop, N_("Maximum Draw Type"),  N_("Maximum draw type to display object with in viewport"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
 
        prop= RNA_def_property(srna, "show_bounds", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_BOUNDBOX);
-       RNA_def_property_ui_text(prop, "Draw Bounds", "Displays the object's bounds");
+       RNA_def_property_ui_text(prop, N_("Draw Bounds"), N_("Displays the object's bounds"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
 
        prop= RNA_def_property(srna, "draw_bounds_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "boundtype");
        RNA_def_property_enum_items(prop, boundtype_items);
-       RNA_def_property_ui_text(prop, "Draw Bounds Type", "Object boundary display type");
+       RNA_def_property_ui_text(prop, N_("Draw Bounds Type"), N_("Object boundary display type"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
        
        prop= RNA_def_property(srna, "show_name", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_DRAWNAME);
-       RNA_def_property_ui_text(prop, "Draw Name", "Displays the object's name");
+       RNA_def_property_ui_text(prop, N_("Draw Name"), N_("Displays the object's name"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
        
        prop= RNA_def_property(srna, "show_axis", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_AXIS);
-       RNA_def_property_ui_text(prop, "Draw Axis", "Displays the object's origin and axis");
+       RNA_def_property_ui_text(prop, N_("Draw Axis"), N_("Displays the object's origin and axis"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
        
        prop= RNA_def_property(srna, "show_texture_space", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_TEXSPACE);
-       RNA_def_property_ui_text(prop, "Draw Texture Space", "Displays the object's texture space");
+       RNA_def_property_ui_text(prop, N_("Draw Texture Space"), N_("Displays the object's texture space"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
        
        prop= RNA_def_property(srna, "show_wire", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_DRAWWIRE);
-       RNA_def_property_ui_text(prop, "Draw Wire", "Adds the object's wireframe over solid drawing");
+       RNA_def_property_ui_text(prop, N_("Draw Wire"), N_("Adds the object's wireframe over solid drawing"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
        
        prop= RNA_def_property(srna, "show_transparent", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_DRAWTRANSP);
-       RNA_def_property_ui_text(prop, "Draw Transparent", "Displays material transparency in the object");
+       RNA_def_property_ui_text(prop, N_("Draw Transparent"), N_("Displays material transparency in the object"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
        
        prop= RNA_def_property(srna, "show_x_ray", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "dtx", OB_DRAWXRAY);
-       RNA_def_property_ui_text(prop, "X-Ray", "Makes the object draw in front of others");
+       RNA_def_property_ui_text(prop, N_("X-Ray"), N_("Makes the object draw in front of others"));
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
        
        /* Grease Pencil */
@@ -2278,43 +2278,43 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_pointer_sdna(prop, NULL, "gpd");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_struct_type(prop, "GreasePencil");
-       RNA_def_property_ui_text(prop, "Grease Pencil Data", "Grease Pencil datablock");
+       RNA_def_property_ui_text(prop, N_("Grease Pencil Data"), N_("Grease Pencil datablock"));
        
        /* pose */
        prop= RNA_def_property(srna, "pose_library", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "poselib");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_struct_type(prop, "Action");
-       RNA_def_property_ui_text(prop, "Pose Library", "Action used as a pose library for armatures");
+       RNA_def_property_ui_text(prop, N_("Pose Library"), N_("Action used as a pose library for armatures"));
 
        prop= RNA_def_property(srna, "pose", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "pose");
        RNA_def_property_struct_type(prop, "Pose");
-       RNA_def_property_ui_text(prop, "Pose", "Current pose for armatures");
+       RNA_def_property_ui_text(prop, N_("Pose"), N_("Current pose for armatures"));
 
        /* shape keys */
        prop= RNA_def_property(srna, "show_only_shape_key", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "shapeflag", OB_SHAPE_LOCK);
-       RNA_def_property_ui_text(prop, "Shape Key Lock", "Always show the current Shape for this Object");
+       RNA_def_property_ui_text(prop, N_("Shape Key Lock"), N_("Always show the current Shape for this Object"));
        RNA_def_property_ui_icon(prop, ICON_UNPINNED, 1);
        RNA_def_property_update(prop, 0, "rna_Object_internal_update_data");
 
        prop= RNA_def_property(srna, "use_shape_key_edit_mode", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "shapeflag", OB_SHAPE_EDIT_MODE);
-       RNA_def_property_ui_text(prop, "Shape Key Edit Mode", "Apply shape keys in edit mode (for Meshes only)");
+       RNA_def_property_ui_text(prop, N_("Shape Key Edit Mode"), N_("Apply shape keys in edit mode (for Meshes only)"));
        RNA_def_property_ui_icon(prop, ICON_EDITMODE_HLT, 0);
        RNA_def_property_update(prop, 0, "rna_Object_internal_update_data");
 
        prop= RNA_def_property(srna, "active_shape_key", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "ShapeKey");
        RNA_def_property_pointer_funcs(prop, "rna_Object_active_shape_key_get", NULL, NULL, NULL);
-       RNA_def_property_ui_text(prop, "Active Shape Key", "Current shape key");
+       RNA_def_property_ui_text(prop, N_("Active Shape Key"), N_("Current shape key"));
 
        prop= RNA_def_property(srna, "active_shape_key_index", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "shapenr");
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); // XXX this is really unpredictable...
        RNA_def_property_int_funcs(prop, "rna_Object_active_shape_key_index_get", "rna_Object_active_shape_key_index_set", "rna_Object_active_shape_key_index_range");
-       RNA_def_property_ui_text(prop, "Active Shape Key Index", "Current shape key index");
+       RNA_def_property_ui_text(prop, N_("Active Shape Key Index"), N_("Current shape key index"));
        RNA_def_property_update(prop, 0, "rna_Object_active_shape_update");
 
        RNA_api_object(srna);
index f4449dd478a0e82962d4b79f7f3c26f6bff5019a..dd4244557f7fe630b954e2d1cd7b40aa224d5596 100644 (file)
@@ -3105,30 +3105,30 @@ static void rna_def_scene_keying_sets(BlenderRNA *brna, PropertyRNA *cprop)
        RNA_def_property_srna(cprop, "KeyingSets");
        srna= RNA_def_struct(brna, "KeyingSets", NULL);
        RNA_def_struct_sdna(srna, "Scene");
-       RNA_def_struct_ui_text(srna, "Keying Sets", "Scene keying sets");
+       RNA_def_struct_ui_text(srna, N_("Keying Sets"), N_("Scene keying sets"));
 
        /* Add Keying Set */
        func= RNA_def_function(srna, "new", "rna_Scene_keying_set_new");
-       RNA_def_function_ui_description(func, "Add a new Keying Set to Scene.");
+       RNA_def_function_ui_description(func, N_("Add a new Keying Set to Scene."));
        RNA_def_function_flag(func, FUNC_USE_REPORTS);
        /* name */
-       RNA_def_string(func, "name", "KeyingSet", 64, "Name", "Name of Keying Set");
+       RNA_def_string(func, "name", "KeyingSet", 64, N_("Name"), N_("Name of Keying Set"));
 
        /* returns the new KeyingSet */
-       parm= RNA_def_pointer(func, "keyingset", "KeyingSet", "", "Newly created Keying Set.");
+       parm= RNA_def_pointer(func, "keyingset", "KeyingSet", "", N_("Newly created Keying Set."));
        RNA_def_function_return(func, parm);
 
        prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "KeyingSet");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_pointer_funcs(prop, "rna_Scene_active_keying_set_get", "rna_Scene_active_keying_set_set", NULL, NULL);
-       RNA_def_property_ui_text(prop, "Active Keying Set", "Active Keying Set used to insert/delete keyframes");
+       RNA_def_property_ui_text(prop, N_("Active Keying Set"), N_("Active Keying Set used to insert/delete keyframes"));
        RNA_def_property_update(prop, NC_SCENE|ND_KEYINGSET, NULL);
        
        prop= RNA_def_property(srna, "active_index", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "active_keyingset");
        RNA_def_property_int_funcs(prop, "rna_Scene_active_keying_set_index_get", "rna_Scene_active_keying_set_index_set", NULL);
-       RNA_def_property_ui_text(prop, "Active Keying Set Index", "Current Keying Set index (negative for 'builtin' and positive for 'absolute')");
+       RNA_def_property_ui_text(prop, N_("Active Keying Set Index"), N_("Current Keying Set index (negative for 'builtin' and positive for 'absolute')"));
        RNA_def_property_update(prop, NC_SCENE|ND_KEYINGSET, NULL);
 }
 
@@ -3140,7 +3140,7 @@ static void rna_def_scene_keying_sets_all(BlenderRNA *brna, PropertyRNA *cprop)
        RNA_def_property_srna(cprop, "KeyingSetsAll");
        srna= RNA_def_struct(brna, "KeyingSetsAll", NULL);
        RNA_def_struct_sdna(srna, "Scene");
-       RNA_def_struct_ui_text(srna, "Keying Sets All", "All available keying sets");
+       RNA_def_struct_ui_text(srna, N_("Keying Sets All"), N_("All available keying sets"));
        
        /* NOTE: no add/remove available here, without screwing up this amalgamated list... */
        
@@ -3148,13 +3148,13 @@ static void rna_def_scene_keying_sets_all(BlenderRNA *brna, PropertyRNA *cprop)
        RNA_def_property_struct_type(prop, "KeyingSet");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_pointer_funcs(prop, "rna_Scene_active_keying_set_get", "rna_Scene_active_keying_set_set", NULL, NULL);
-       RNA_def_property_ui_text(prop, "Active Keying Set", "Active Keying Set used to insert/delete keyframes");
+       RNA_def_property_ui_text(prop, N_("Active Keying Set"), N_("Active Keying Set used to insert/delete keyframes"));
        RNA_def_property_update(prop, NC_SCENE|ND_KEYINGSET, NULL);
        
        prop= RNA_def_property(srna, "active_index", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "active_keyingset");
        RNA_def_property_int_funcs(prop, "rna_Scene_active_keying_set_index_get", "rna_Scene_active_keying_set_index_set", NULL);
-       RNA_def_property_ui_text(prop, "Active Keying Set Index", "Current Keying Set index (negative for 'builtin' and positive for 'absolute')");
+       RNA_def_property_ui_text(prop, N_("Active Keying Set Index"), N_("Current Keying Set index (negative for 'builtin' and positive for 'absolute')"));
        RNA_def_property_update(prop, NC_SCENE|ND_KEYINGSET, NULL);
 }
 
index 0966e2b4a3876a2a2b14cca50ff68d56c989fbce..97a5ea47a6dcebcd8b9cbcb5882b20db5f0c88e0 100644 (file)
@@ -74,10 +74,10 @@ EnumPropertyItem space_type_items[] = {
        {0, NULL, 0, NULL, NULL}};
 
 static EnumPropertyItem draw_channels_items[] = {
-       {0, "COLOR", ICON_IMAGE_RGB, "Color", "Draw image with RGB colors"},
-       {SI_USE_ALPHA, "COLOR_ALPHA", ICON_IMAGE_RGB_ALPHA, "Color and Alpha", "Draw image with RGB colors and alpha transparency"},
-       {SI_SHOW_ALPHA, "ALPHA", ICON_IMAGE_ALPHA, "Alpha", "Draw alpha transparency channel"},
-       {SI_SHOW_ZBUF, "Z_BUFFER", ICON_IMAGE_ZDEPTH, "Z-Buffer", "Draw Z-buffer associated with image (mapped from camera clip start to end)"},
+       {0, "COLOR", ICON_IMAGE_RGB, N_("Color"), N_("Draw image with RGB colors")},
+       {SI_USE_ALPHA, "COLOR_ALPHA", ICON_IMAGE_RGB_ALPHA, N_("Color and Alpha"), N_("Draw image with RGB colors and alpha transparency")},
+       {SI_SHOW_ALPHA, "ALPHA", ICON_IMAGE_ALPHA, N_("Alpha"), N_("Draw alpha transparency channel")},
+       {SI_SHOW_ZBUF, "Z_BUFFER", ICON_IMAGE_ZDEPTH, N_("Z-Buffer"), N_("Draw Z-buffer associated with image (mapped from camera clip start to end)")},
        {0, NULL, 0, NULL, NULL}};
 
 static EnumPropertyItem transform_orientation_items[] = {
@@ -90,10 +90,10 @@ static EnumPropertyItem transform_orientation_items[] = {
        {0, NULL, 0, NULL, NULL}};
 
 EnumPropertyItem autosnap_items[] = {
-       {SACTSNAP_OFF, "NONE", 0, "No Auto-Snap", ""},
-       {SACTSNAP_STEP, "STEP", 0, "Time Step", "Snap to 1.0 frame/second intervals"},
-       {SACTSNAP_FRAME, "FRAME", 0, "Nearest Frame", "Snap to actual frames/seconds (nla-action time)"},
-       {SACTSNAP_MARKER, "MARKER", 0, "Nearest Marker", "Snap to nearest marker"},
+       {SACTSNAP_OFF, "NONE", 0, N_("No Auto-Snap"), ""},
+       {SACTSNAP_STEP, "STEP", 0, N_("Time Step"), N_("Snap to 1.0 frame/second intervals")},
+       {SACTSNAP_FRAME, "FRAME", 0, N_("Nearest Frame"), N_("Snap to actual frames/seconds (nla-action time)")},
+       {SACTSNAP_MARKER, "MARKER", 0, N_("Nearest Marker"), N_("Snap to nearest marker")},
        {0, NULL, 0, NULL, NULL}};
 
 EnumPropertyItem viewport_shade_items[] = {
@@ -904,14 +904,14 @@ static void rna_def_space(BlenderRNA *brna)
        
        srna= RNA_def_struct(brna, "Space", NULL);
        RNA_def_struct_sdna(srna, "SpaceLink");
-       RNA_def_struct_ui_text(srna, "Space", "Space data for a screen area");
+       RNA_def_struct_ui_text(srna, N_("Space"), N_("Space data for a screen area"));
        RNA_def_struct_refine_func(srna, "rna_Space_refine");
        
        prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "spacetype");
        RNA_def_property_enum_items(prop, space_type_items);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Type", "Space data type");
+       RNA_def_property_ui_text(prop, N_("Type"), N_("Space data type"));
 }
 
 static void rna_def_space_image_uv(BlenderRNA *brna)
@@ -920,106 +920,106 @@ static void rna_def_space_image_uv(BlenderRNA *brna)
        PropertyRNA *prop;
 
        static EnumPropertyItem sticky_mode_items[] = {
-               {SI_STICKY_DISABLE, "DISABLED", ICON_STICKY_UVS_DISABLE, "Disabled", "Sticky vertex selection disabled"},
-               {SI_STICKY_LOC, "SHARED_LOCATION", ICON_STICKY_UVS_LOC, "Shared Location", "Select UVs that are at the same location and share a mesh vertex"},
-               {SI_STICKY_VERTEX, "SHARED_VERTEX", ICON_STICKY_UVS_VERT, "Shared Vertex", "Select UVs that share mesh vertex, irrespective if they are in the same location"},
+               {SI_STICKY_DISABLE, "DISABLED", ICON_STICKY_UVS_DISABLE, N_("Disabled"), N_("Sticky vertex selection disabled")},
+               {SI_STICKY_LOC, "SHARED_LOCATION", ICON_STICKY_UVS_LOC, N_("Shared Location"), N_("Select UVs that are at the same location and share a mesh vertex")},
+               {SI_STICKY_VERTEX, "SHARED_VERTEX", ICON_STICKY_UVS_VERT, N_("Shared Vertex"), N_("Select UVs that share mesh vertex, irrespective if they are in the same location")},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem dt_uv_items[] = {
-               {SI_UVDT_OUTLINE, "OUTLINE", 0, "Outline", "Draw white edges with black outline"},
-               {SI_UVDT_DASH, "DASH", 0, "Dash", "Draw dashed black-white edges"},
-               {SI_UVDT_BLACK, "BLACK", 0, "Black", "Draw black edges"},
-               {SI_UVDT_WHITE, "WHITE", 0, "White", "Draw white edges"},
+               {SI_UVDT_OUTLINE, "OUTLINE", 0, N_("Outline"), N_("Draw white edges with black outline")},
+               {SI_UVDT_DASH, "DASH", 0, N_("Dash"), N_("Draw dashed black-white edges")},
+               {SI_UVDT_BLACK, "BLACK", 0, N_("Black"), N_("Draw black edges")},
+               {SI_UVDT_WHITE, "WHITE", 0, N_("White"), N_("Draw white edges")},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem dt_uvstretch_items[] = {
-               {SI_UVDT_STRETCH_ANGLE, "ANGLE", 0, "Angle", "Angular distortion between UV and 3D angles"},
-               {SI_UVDT_STRETCH_AREA, "AREA", 0, "Area", "Area distortion between UV and 3D faces"},
+               {SI_UVDT_STRETCH_ANGLE, "ANGLE", 0, N_("Angle"), N_("Angular distortion between UV and 3D angles")},
+               {SI_UVDT_STRETCH_AREA, "AREA", 0, N_("Area"), N_("Area distortion between UV and 3D faces")},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem pivot_items[] = {
-               {V3D_CENTER, "CENTER", ICON_ROTATE, "Bounding Box Center", ""},
-               {V3D_CENTROID, "MEDIAN", ICON_ROTATECENTER, "Median Point", ""},
-               {V3D_CURSOR, "CURSOR", ICON_CURSOR, "2D Cursor", ""},
+               {V3D_CENTER, "CENTER", ICON_ROTATE, N_("Bounding Box Center"), ""},
+               {V3D_CENTROID, "MEDIAN", ICON_ROTATECENTER, N_("Median Point"), ""},
+               {V3D_CURSOR, "CURSOR", ICON_CURSOR, N_("2D Cursor"), ""},
                {0, NULL, 0, NULL, NULL}};
 
        srna= RNA_def_struct(brna, "SpaceUVEditor", NULL);
        RNA_def_struct_sdna(srna, "SpaceImage");
        RNA_def_struct_nested(brna, srna, "SpaceImageEditor");
-       RNA_def_struct_ui_text(srna, "Space UV Editor", "UV editor data for the image editor space");
+       RNA_def_struct_ui_text(srna, N_("Space UV Editor"), N_("UV editor data for the image editor space"));
 
        /* selection */
        prop= RNA_def_property(srna, "sticky_select_mode", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "sticky");
        RNA_def_property_enum_items(prop, sticky_mode_items);
-       RNA_def_property_ui_text(prop, "Sticky Selection Mode", "Automatically select also UVs sharing the same vertex as the ones being selected");
+       RNA_def_property_ui_text(prop, N_("Sticky Selection Mode"), N_("Automatically select also UVs sharing the same vertex as the ones being selected"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        /* drawing */
        prop= RNA_def_property(srna, "edge_draw_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "dt_uv");
        RNA_def_property_enum_items(prop, dt_uv_items);
-       RNA_def_property_ui_text(prop, "Edge Draw Type", "Draw type for drawing UV edges");
+       RNA_def_property_ui_text(prop, N_("Edge Draw Type"), N_("Draw type for drawing UV edges"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        prop= RNA_def_property(srna, "show_smooth_edges", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_SMOOTH_UV);
-       RNA_def_property_ui_text(prop, "Draw Smooth Edges", "Draw UV edges anti-aliased");
+       RNA_def_property_ui_text(prop, N_("Draw Smooth Edges"), N_("Draw UV edges anti-aliased"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        prop= RNA_def_property(srna, "show_stretch", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_DRAW_STRETCH);
-       RNA_def_property_ui_text(prop, "Draw Stretch", "Draw faces colored according to the difference in shape between UVs and their 3D coordinates (blue for low distortion, red for high distortion)");
+       RNA_def_property_ui_text(prop, N_("Draw Stretch"), N_("Draw faces colored according to the difference in shape between UVs and their 3D coordinates (blue for low distortion, red for high distortion)"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        prop= RNA_def_property(srna, "draw_stretch_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "dt_uvstretch");
        RNA_def_property_enum_items(prop, dt_uvstretch_items);
-       RNA_def_property_ui_text(prop, "Draw Stretch Type", "Type of stretch to draw");
+       RNA_def_property_ui_text(prop, N_("Draw Stretch Type"), N_("Type of stretch to draw"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        prop= RNA_def_property(srna, "show_modified_edges", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_DRAWSHADOW);
-       RNA_def_property_ui_text(prop, "Draw Modified Edges", "Draw edges after modifiers are applied");
+       RNA_def_property_ui_text(prop, N_("Draw Modified Edges"), N_("Draw edges after modifiers are applied"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        prop= RNA_def_property(srna, "show_other_objects", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_DRAW_OTHER);
-       RNA_def_property_ui_text(prop, "Draw Other Objects", "Draw other selected objects that share the same image");
+       RNA_def_property_ui_text(prop, N_("Draw Other Objects"), N_("Draw other selected objects that share the same image"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        prop= RNA_def_property(srna, "show_normalized_coords", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_COORDFLOATS);
-       RNA_def_property_ui_text(prop, "Normalized Coordinates", "Display UV coordinates from 0.0 to 1.0 rather than in pixels");
+       RNA_def_property_ui_text(prop, N_("Normalized Coordinates"), N_("Display UV coordinates from 0.0 to 1.0 rather than in pixels"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
        
        prop= RNA_def_property(srna, "cursor_location", PROP_FLOAT, PROP_XYZ);
        RNA_def_property_array(prop, 2);
        RNA_def_property_float_funcs(prop, "rna_SpaceImageEditor_cursor_location_get", "rna_SpaceImageEditor_cursor_location_set", NULL);
-       RNA_def_property_ui_text(prop, "2D Cursor Location", "2D cursor location for this view");
+       RNA_def_property_ui_text(prop, N_("2D Cursor Location"), N_("2D cursor location for this view"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        /* todo: move edge and face drawing options here from G.f */
 
        prop= RNA_def_property(srna, "use_snap_to_pixels", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_PIXELSNAP);
-       RNA_def_property_ui_text(prop, "Snap to Pixels", "Snap UVs to pixel locations while editing");
+       RNA_def_property_ui_text(prop, N_("Snap to Pixels"), N_("Snap UVs to pixel locations while editing"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        prop= RNA_def_property(srna, "lock_bounds", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_CLIP_UV);
-       RNA_def_property_ui_text(prop, "Constrain to Image Bounds", "Constraint to stay within the image bounds while editing");
+       RNA_def_property_ui_text(prop, N_("Constrain to Image Bounds"), N_("Constraint to stay within the image bounds while editing"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        prop= RNA_def_property(srna, "use_live_unwrap", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_LIVE_UNWRAP);
-       RNA_def_property_ui_text(prop, "Live Unwrap", "Continuously unwrap the selected UV island while transforming pinned vertices");
+       RNA_def_property_ui_text(prop, N_("Live Unwrap"), N_("Continuously unwrap the selected UV island while transforming pinned vertices"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        prop= RNA_def_property(srna, "pivot_point", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "around");
        RNA_def_property_enum_items(prop, pivot_items);
-       RNA_def_property_ui_text(prop, "Pivot", "Rotation/Scaling Pivot");
+       RNA_def_property_ui_text(prop, N_("Pivot"), N_("Rotation/Scaling Pivot"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 }
 
@@ -1081,71 +1081,71 @@ static void rna_def_background_image(BlenderRNA *brna)
 
        /* note: combinations work but dont flip so arnt that useful */
        static EnumPropertyItem bgpic_axis_items[] = {
-               {0, "", 0, "X Axis", ""},
-               {(1<<RV3D_VIEW_LEFT), "LEFT", 0, "Left", "Show background image while looking to the left"},
-               {(1<<RV3D_VIEW_RIGHT), "RIGHT", 0, "Right", "Show background image while looking to the right"},
+               {0, "", 0, N_("X Axis"), ""},
+               {(1<<RV3D_VIEW_LEFT), "LEFT", 0, N_("Left"), N_("Show background image while looking to the left")},
+               {(1<<RV3D_VIEW_RIGHT), "RIGHT", 0, N_("Right"), N_("Show background image while looking to the right")},
                /*{(1<<RV3D_VIEW_LEFT)|(1<<RV3D_VIEW_RIGHT), "LEFT_RIGHT", 0, "Left/Right", ""},*/
-               {0, "", 0, "Y Axis", ""},
-               {(1<<RV3D_VIEW_BACK), "BACK", 0, "Back", "Show background image in back view"},
-               {(1<<RV3D_VIEW_FRONT), "FRONT", 0, "Front", "Show background image in front view"},
+               {0, "", 0, N_("Y Axis"), ""},
+               {(1<<RV3D_VIEW_BACK), "BACK", 0, N_("Back"), N_("Show background image in back view")},
+               {(1<<RV3D_VIEW_FRONT), "FRONT", 0, N_("Front"), N_("Show background image in front view")},
                /*{(1<<RV3D_VIEW_BACK)|(1<<RV3D_VIEW_FRONT), "BACK_FRONT", 0, "Back/Front", ""},*/
-               {0, "", 0, "Z Axis", ""},
-               {(1<<RV3D_VIEW_BOTTOM), "BOTTOM", 0, "Bottom", "Show background image in bottom view"},
-               {(1<<RV3D_VIEW_TOP), "TOP", 0, "Top", "Show background image in top view"},
+               {0, "", 0, N_("Z Axis"), ""},
+               {(1<<RV3D_VIEW_BOTTOM), "BOTTOM", 0, N_("Bottom"), N_("Show background image in bottom view")},
+               {(1<<RV3D_VIEW_TOP), "TOP", 0, N_("Top"), N_("Show background image in top view")},
                /*{(1<<RV3D_VIEW_BOTTOM)|(1<<RV3D_VIEW_TOP), "BOTTOM_TOP", 0, "Top/Bottom", ""},*/
-               {0, "", 0, "Other", ""},
-               {0, "ALL", 0, "All Views", "Show background image in all views"},
-               {(1<<RV3D_VIEW_CAMERA), "CAMERA", 0, "Camera", "Show background image in camera view"},
+               {0, "", 0, N_("Other"), ""},
+               {0, "ALL", 0, N_("All Views"), N_("Show background image in all views")},
+               {(1<<RV3D_VIEW_CAMERA), "CAMERA", 0, N_("Camera"), N_("Show background image in camera view")},
                {0, NULL, 0, NULL, NULL}};
 
        srna= RNA_def_struct(brna, "BackgroundImage", NULL);
        RNA_def_struct_sdna(srna, "BGpic");
-       RNA_def_struct_ui_text(srna, "Background Image", "Image and settings for display in the 3d View background");
+       RNA_def_struct_ui_text(srna, N_("Background Image"), N_("Image and settings for display in the 3d View background"));
 
        prop= RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "ima");
-       RNA_def_property_ui_text(prop, "Image", "Image displayed and edited in this space");
+       RNA_def_property_ui_text(prop, N_("Image"), N_("Image displayed and edited in this space"));
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "image_user", PROP_POINTER, PROP_NONE);
        RNA_def_property_flag(prop, PROP_NEVER_NULL);
        RNA_def_property_pointer_sdna(prop, NULL, "iuser");
-       RNA_def_property_ui_text(prop, "Image User", "Parameters defining which layer, pass and frame of the image is displayed");
+       RNA_def_property_ui_text(prop, N_("Image User"), N_("Parameters defining which layer, pass and frame of the image is displayed"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "offset_x", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "xof");
-       RNA_def_property_ui_text(prop, "X Offset", "Offsets image horizontally from the world origin");
+       RNA_def_property_ui_text(prop, N_("X Offset"), N_("Offsets image horizontally from the world origin"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "offset_y", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "yof");
-       RNA_def_property_ui_text(prop, "Y Offset", "Offsets image vertically from the world origin");
+       RNA_def_property_ui_text(prop, N_("Y Offset"), N_("Offsets image vertically from the world origin"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "size", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "size");
-       RNA_def_property_ui_text(prop, "Size", "Scaling factor for the background image");
+       RNA_def_property_ui_text(prop, N_("Size"), N_("Scaling factor for the background image"));
        RNA_def_property_range(prop, 0.0, FLT_MAX);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "opacity", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "blend");
        RNA_def_property_float_funcs(prop, "rna_BackgroundImage_opacity_get", "rna_BackgroundImage_opacity_set", NULL);
-       RNA_def_property_ui_text(prop, "Opacity", "Image opacity to blend the image against the background color");
+       RNA_def_property_ui_text(prop, N_("Opacity"), N_("Image opacity to blend the image against the background color"));
        RNA_def_property_range(prop, 0.0, 1.0);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "view_axis", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "view");
        RNA_def_property_enum_items(prop, bgpic_axis_items);
-       RNA_def_property_ui_text(prop, "Image Axis", "The axis to display the image on");
+       RNA_def_property_ui_text(prop, N_("Image Axis"), N_("The axis to display the image on"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "show_expanded", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_BGPIC_EXPANDED);
-       RNA_def_property_ui_text(prop, "Show Expanded", "Show the expanded in the user interface");
+       RNA_def_property_ui_text(prop, N_("Show Expanded"), N_("Show the expanded in the user interface"));
        RNA_def_property_ui_icon(prop, ICON_TRIA_RIGHT, 1);
 
 }
@@ -1165,35 +1165,35 @@ static void rna_def_space_view3d(BlenderRNA *brna)
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem rv3d_persp_items[] = {
-               {RV3D_PERSP, "PERSP", 0, "Perspective", ""},
-               {RV3D_ORTHO, "ORTHO", 0, "Orthographic", ""},
-               {RV3D_CAMOB, "CAMERA", 0, "Camera", ""},
+               {RV3D_PERSP, "PERSP", 0, N_("Perspective"), ""},
+               {RV3D_ORTHO, "ORTHO", 0, N_("Orthographic"), ""},
+               {RV3D_CAMOB, "CAMERA", 0, N_("Camera"), ""},
                {0, NULL, 0, NULL, NULL}};
        
        srna= RNA_def_struct(brna, "SpaceView3D", "Space");
        RNA_def_struct_sdna(srna, "View3D");
-       RNA_def_struct_ui_text(srna, "3D View Space", "3D View space data");
+       RNA_def_struct_ui_text(srna, N_("3D View Space"), N_("3D View space data"));
        
        prop= RNA_def_property(srna, "camera", PROP_POINTER, PROP_NONE);
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_pointer_sdna(prop, NULL, "camera");
-       RNA_def_property_ui_text(prop, "Camera", "Active camera used in this view (when unlocked from the scene's active camera)");
+       RNA_def_property_ui_text(prop, N_("Camera"), N_("Active camera used in this view (when unlocked from the scene's active camera)"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "lock_object", PROP_POINTER, PROP_NONE);
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_pointer_sdna(prop, NULL, "ob_centre");
-       RNA_def_property_ui_text(prop, "Lock to Object", "3D View center is locked to this object's position");
+       RNA_def_property_ui_text(prop, N_("Lock to Object"), N_("3D View center is locked to this object's position"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "lock_bone", PROP_STRING, PROP_NONE);
        RNA_def_property_string_sdna(prop, NULL, "ob_centre_bone");
-       RNA_def_property_ui_text(prop, "Lock to Bone", "3D View center is locked to this bone's position");
+       RNA_def_property_ui_text(prop, N_("Lock to Bone"), N_("3D View center is locked to this bone's position"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "lock_cursor", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "ob_centre_cursor", 1);
-       RNA_def_property_ui_text(prop, "Lock to Cursor", "3D View center is locked to the cursor's position");
+       RNA_def_property_ui_text(prop, N_("Lock to Cursor"), N_("3D View center is locked to the cursor's position"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "viewport_shade", PROP_ENUM, PROP_NONE);
@@ -1204,116 +1204,116 @@ static void rna_def_space_view3d(BlenderRNA *brna)
 
        prop= RNA_def_property(srna, "local_view", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "localvd");
-       RNA_def_property_ui_text(prop, "Local View", "Display an isolated sub-set of objects, apart from the scene visibility");
+       RNA_def_property_ui_text(prop, N_("Local View"), N_("Display an isolated sub-set of objects, apart from the scene visibility"));
        
        prop= RNA_def_property(srna, "cursor_location", PROP_FLOAT, PROP_XYZ_LENGTH);
        RNA_def_property_array(prop, 3);
        RNA_def_property_float_funcs(prop, "rna_View3D_CursorLocation_get", "rna_View3D_CursorLocation_set", NULL);
-       RNA_def_property_ui_text(prop, "3D Cursor Location", "3D cursor location for this view (dependent on local view setting)");
+       RNA_def_property_ui_text(prop, N_("3D Cursor Location"), N_("3D cursor location for this view (dependent on local view setting)"));
        RNA_def_property_ui_range(prop, -10000.0, 10000.0, 10, 4);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "lens", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "lens");
-       RNA_def_property_ui_text(prop, "Lens", "Lens angle (mm) in perspective view");
+       RNA_def_property_ui_text(prop, N_("Lens"), N_("Lens angle (mm) in perspective view"));
        RNA_def_property_range(prop, 1.0f, 250.0f);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "clip_start", PROP_FLOAT, PROP_DISTANCE);
        RNA_def_property_float_sdna(prop, NULL, "near");
        RNA_def_property_range(prop, 0.001f, FLT_MAX);
-       RNA_def_property_ui_text(prop, "Clip Start", "3D View near clipping distance");
+       RNA_def_property_ui_text(prop, N_("Clip Start"), N_("3D View near clipping distance"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "clip_end", PROP_FLOAT, PROP_DISTANCE);
        RNA_def_property_float_sdna(prop, NULL, "far");
        RNA_def_property_range(prop, 1.0f, FLT_MAX);
-       RNA_def_property_ui_text(prop, "Clip End", "3D View far clipping distance");
+       RNA_def_property_ui_text(prop, N_("Clip End"), N_("3D View far clipping distance"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "grid_scale", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "grid");
-       RNA_def_property_ui_text(prop, "Grid Scale", "The distance between 3D View grid lines");
+       RNA_def_property_ui_text(prop, N_("Grid Scale"), N_("The distance between 3D View grid lines"));
        RNA_def_property_range(prop, 0.0f, FLT_MAX);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "grid_lines", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "gridlines");
-       RNA_def_property_ui_text(prop, "Grid Lines", "The number of grid lines to display in perspective view");
+       RNA_def_property_ui_text(prop, N_("Grid Lines"), N_("The number of grid lines to display in perspective view"));
        RNA_def_property_range(prop, 0, 1024);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "grid_subdivisions", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "gridsubdiv");
-       RNA_def_property_ui_text(prop, "Grid Subdivisions", "The number of subdivisions between grid lines");
+       RNA_def_property_ui_text(prop, N_("Grid Subdivisions"), N_("The number of subdivisions between grid lines"));
        RNA_def_property_range(prop, 1, 1024);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "show_floor", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "gridflag", V3D_SHOW_FLOOR);
-       RNA_def_property_ui_text(prop, "Display Grid Floor", "Show the ground plane grid in perspective view");
+       RNA_def_property_ui_text(prop, N_("Display Grid Floor"), N_("Show the ground plane grid in perspective view"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "show_axis_x", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "gridflag", V3D_SHOW_X);
-       RNA_def_property_ui_text(prop, "Display X Axis", "Show the X axis line in perspective view");
+       RNA_def_property_ui_text(prop, N_("Display X Axis"), N_("Show the X axis line in perspective view"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "show_axis_y", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "gridflag", V3D_SHOW_Y);
-       RNA_def_property_ui_text(prop, "Display Y Axis", "Show the Y axis line in perspective view");
+       RNA_def_property_ui_text(prop, N_("Display Y Axis"), N_("Show the Y axis line in perspective view"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "show_axis_z", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "gridflag", V3D_SHOW_Z);
-       RNA_def_property_ui_text(prop, "Display Z Axis", "Show the Z axis line in perspective view");
+       RNA_def_property_ui_text(prop, N_("Display Z Axis"), N_("Show the Z axis line in perspective view"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "show_outline_selected", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_SELECT_OUTLINE);
-       RNA_def_property_ui_text(prop, "Outline Selected", "Show an outline highlight around selected objects in non-wireframe views");
+       RNA_def_property_ui_text(prop, N_("Outline Selected"), N_("Show an outline highlight around selected objects in non-wireframe views"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "show_all_objects_origin", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_DRAW_CENTERS);
-       RNA_def_property_ui_text(prop, "All Object Origins", "Show the object origin center dot for all (selected and unselected) objects");
+       RNA_def_property_ui_text(prop, N_("All Object Origins"), N_("Show the object origin center dot for all (selected and unselected) objects"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "show_relationship_lines", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", V3D_HIDE_HELPLINES);
-       RNA_def_property_ui_text(prop, "Relationship Lines", "Show dashed lines indicating parent or constraint relationships");
+       RNA_def_property_ui_text(prop, N_("Relationship Lines"), N_("Show dashed lines indicating parent or constraint relationships"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "show_textured_solid", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_SOLID_TEX);
-       RNA_def_property_ui_text(prop, "Textured Solid", "Display face-assigned textures in solid view");
+       RNA_def_property_ui_text(prop, N_("Textured Solid"), N_("Display face-assigned textures in solid view"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "lock_camera", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_LOCK_CAMERA);
-       RNA_def_property_ui_text(prop, "Lock Camera to View", "Enable view navigation within the camera view");
+       RNA_def_property_ui_text(prop, N_("Lock Camera to View"), N_("Enable view navigation within the camera view"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "show_only_render", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag2", V3D_RENDER_OVERRIDE);
-       RNA_def_property_ui_text(prop, "Only Render", "Display only objects which will be rendered");
+       RNA_def_property_ui_text(prop, N_("Only Render"), N_("Display only objects which will be rendered"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "use_occlude_geometry", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_ZBUF_SELECT);
-       RNA_def_property_ui_text(prop, "Occlude Geometry", "Limit selection to visible (clipped with depth buffer)");
+       RNA_def_property_ui_text(prop, N_("Occlude Geometry"), N_("Limit selection to visible (clipped with depth buffer)"));
        RNA_def_property_ui_icon(prop, ICON_ORTHO, 0);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "background_images", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "bgpicbase", NULL);
        RNA_def_property_struct_type(prop, "BackgroundImage");
-       RNA_def_property_ui_text(prop, "Background Images", "List of background images");
+       RNA_def_property_ui_text(prop, N_("Background Images"), N_("List of background images"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "show_background_images", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_DISPBGPICS);
-       RNA_def_property_ui_text(prop, "Display Background Images", "Display reference images behind objects in the 3D View");
+       RNA_def_property_ui_text(prop, N_("Display Background Images"), N_("Display reference images behind objects in the 3D View"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "pivot_point", PROP_ENUM, PROP_NONE);
@@ -1324,31 +1324,31 @@ static void rna_def_space_view3d(BlenderRNA *brna)
        
        prop= RNA_def_property(srna, "use_pivot_point_align", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_ALIGN);
-       RNA_def_property_ui_text(prop, "Align", "Manipulate object centers only");
+       RNA_def_property_ui_text(prop, N_("Align"), N_("Manipulate object centers only"));
        RNA_def_property_ui_icon(prop, ICON_ALIGN, 0);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, "rna_SpaceView3D_pivot_update");
 
        prop= RNA_def_property(srna, "show_manipulator", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "twflag", V3D_USE_MANIPULATOR);
-       RNA_def_property_ui_text(prop, "Manipulator", "Use a 3D manipulator widget for controlling transforms");
+       RNA_def_property_ui_text(prop, N_("Manipulator"), N_("Use a 3D manipulator widget for controlling transforms"));
        RNA_def_property_ui_icon(prop, ICON_MANIPUL, 0);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "use_manipulator_translate", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "twtype", V3D_MANIP_TRANSLATE);
-       RNA_def_property_ui_text(prop, "Manipulator Translate", "Use the manipulator for movement transformations");
+       RNA_def_property_ui_text(prop, N_("Manipulator Translate"), N_("Use the manipulator for movement transformations"));
        RNA_def_property_ui_icon(prop, ICON_MAN_TRANS, 0);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "use_manipulator_rotate", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "twtype", V3D_MANIP_ROTATE);
-       RNA_def_property_ui_text(prop, "Manipulator Rotate", "Use the manipulator for rotation transformations");
+       RNA_def_property_ui_text(prop, N_("Manipulator Rotate"), N_("Use the manipulator for rotation transformations"));
        RNA_def_property_ui_icon(prop, ICON_MAN_ROT, 0);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        prop= RNA_def_property(srna, "use_manipulator_scale", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "twtype", V3D_MANIP_SCALE);
-       RNA_def_property_ui_text(prop, "Manipulator Scale", "Use the manipulator for scale transformations");
+       RNA_def_property_ui_text(prop, N_("Manipulator Scale"), N_("Use the manipulator for scale transformations"));
        RNA_def_property_ui_icon(prop, ICON_MAN_SCALE, 0);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
@@ -1362,12 +1362,12 @@ static void rna_def_space_view3d(BlenderRNA *brna)
        prop= RNA_def_property(srna, "current_orientation", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "TransformOrientation");
        RNA_def_property_pointer_funcs(prop, "rna_CurrentOrientation_get", NULL, NULL, NULL);
-       RNA_def_property_ui_text(prop, "Current Transform Orientation", "Current Transformation orientation");
+       RNA_def_property_ui_text(prop, N_("Current Transform Orientation"), N_("Current Transformation orientation"));
 
        prop= RNA_def_property(srna, "lock_camera_and_layers", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "scenelock", 1);
        RNA_def_property_boolean_funcs(prop, NULL, "rna_SpaceView3D_lock_camera_and_layers_set");
-       RNA_def_property_ui_text(prop, "Lock Camera and Layers", "Use the scene's active camera and layers in this view, rather than local layers");
+       RNA_def_property_ui_text(prop, N_("Lock Camera and Layers"), N_("Use the scene's active camera and layers in this view, rather than local layers"));
        RNA_def_property_ui_icon(prop, ICON_LOCKVIEW_OFF, 1);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
@@ -1375,68 +1375,68 @@ static void rna_def_space_view3d(BlenderRNA *brna)
        RNA_def_property_boolean_sdna(prop, NULL, "lay", 1);
        RNA_def_property_array(prop, 20);
        RNA_def_property_boolean_funcs(prop, NULL, "rna_SpaceView3D_layer_set");
-       RNA_def_property_ui_text(prop, "Visible Layers", "Layers visible in this 3D View");
+       RNA_def_property_ui_text(prop, N_("Visible Layers"), N_("Layers visible in this 3D View"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, "rna_SpaceView3D_layer_update");
        
        prop= RNA_def_property(srna, "layers_used", PROP_BOOLEAN, PROP_LAYER_MEMBER);
        RNA_def_property_boolean_sdna(prop, NULL, "lay_used", 1);
        RNA_def_property_array(prop, 20);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Used Layers", "Layers that contain something");
+       RNA_def_property_ui_text(prop, N_("Used Layers"), N_("Layers that contain something"));
 
        prop= RNA_def_property(srna, "region_3d", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "RegionView3D");
        RNA_def_property_pointer_funcs(prop, "rna_SpaceView3D_region_3d_get", NULL, NULL, NULL);
-       RNA_def_property_ui_text(prop, "3D Region", "3D region in this space, in case of quad view the camera region");
+       RNA_def_property_ui_text(prop, N_("3D Region"), N_("3D region in this space, in case of quad view the camera region"));
 
        prop= RNA_def_property(srna, "region_quadview", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "RegionView3D");
        RNA_def_property_pointer_funcs(prop, "rna_SpaceView3D_region_quadview_get", NULL, NULL, NULL);
-       RNA_def_property_ui_text(prop, "Quad View Region", "3D region that defines the quad view settings");
+       RNA_def_property_ui_text(prop, N_("Quad View Region"), N_("3D region that defines the quad view settings"));
 
        /* region */
 
        srna= RNA_def_struct(brna, "RegionView3D", NULL);
        RNA_def_struct_sdna(srna, "RegionView3D");
-       RNA_def_struct_ui_text(srna, "3D View Region", "3D View region data");
+       RNA_def_struct_ui_text(srna, N_("3D View Region"), N_("3D View region data"));
 
        prop= RNA_def_property(srna, "lock_rotation", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "viewlock", RV3D_LOCKED);
-       RNA_def_property_ui_text(prop, "Lock", "Lock view rotation in side views");
+       RNA_def_property_ui_text(prop, N_("Lock"), N_("Lock view rotation in side views"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, "rna_RegionView3D_quadview_update");
        
        prop= RNA_def_property(srna, "show_sync_view", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "viewlock", RV3D_BOXVIEW);
-       RNA_def_property_ui_text(prop, "Box", "Sync view position between side views");
+       RNA_def_property_ui_text(prop, N_("Box"), N_("Sync view position between side views"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, "rna_RegionView3D_quadview_update");
        
        prop= RNA_def_property(srna, "use_box_clip", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "viewlock", RV3D_BOXCLIP);
-       RNA_def_property_ui_text(prop, "Clip", "Clip objects based on what's visible in other side views");
+       RNA_def_property_ui_text(prop, N_("Clip"), N_("Clip objects based on what's visible in other side views"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, "rna_RegionView3D_quadview_clip_update");
        
        prop= RNA_def_property(srna, "perspective_matrix", PROP_FLOAT, PROP_MATRIX);
        RNA_def_property_float_sdna(prop, NULL, "persmat");
        RNA_def_property_clear_flag(prop, PROP_EDITABLE); // XXX: for now, it's too risky for users to do this
        RNA_def_property_multi_array(prop, 2, matrix_dimsize);
-       RNA_def_property_ui_text(prop, "Perspective Matrix", "Current perspective matrix of the 3D region");
+       RNA_def_property_ui_text(prop, N_("Perspective Matrix"), N_("Current perspective matrix of the 3D region"));
        
        prop= RNA_def_property(srna, "view_matrix", PROP_FLOAT, PROP_MATRIX);
        RNA_def_property_float_sdna(prop, NULL, "viewmat");
        RNA_def_property_multi_array(prop, 2, matrix_dimsize);
        RNA_def_property_float_funcs(prop, NULL, "rna_RegionView3D_view_matrix_set", NULL);
-       RNA_def_property_ui_text(prop, "View Matrix", "Current view matrix of the 3D region");
+       RNA_def_property_ui_text(prop, N_("View Matrix"), N_("Current view matrix of the 3D region"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "view_perspective", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "persp");
        RNA_def_property_enum_items(prop, rv3d_persp_items);
-       RNA_def_property_ui_text(prop, "Perspective", "View Perspective");
+       RNA_def_property_ui_text(prop, N_("Perspective"), N_("View Perspective"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 
        prop= RNA_def_property(srna, "is_perspective", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "is_persp", 1);
-       RNA_def_property_ui_text(prop, "Is Perspective", "");
+       RNA_def_property_ui_text(prop, N_("Is Perspective"), "");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        
        prop= RNA_def_property(srna, "view_location", PROP_FLOAT, PROP_TRANSLATION);
@@ -1446,7 +1446,7 @@ static void rna_def_space_view3d(BlenderRNA *brna)
        RNA_def_property_array(prop, 3);
        RNA_def_property_float_funcs(prop, "rna_RegionView3D_view_location_get", "rna_RegionView3D_view_location_set", NULL);
 #endif
-       RNA_def_property_ui_text(prop, "View Location", "View pivot location");
+       RNA_def_property_ui_text(prop, N_("View Location"), N_("View pivot location"));
        RNA_def_property_ui_range(prop, -10000.0, 10000.0, 10, 4);
        RNA_def_property_update(prop, NC_WINDOW, NULL);
        
@@ -1457,13 +1457,13 @@ static void rna_def_space_view3d(BlenderRNA *brna)
        RNA_def_property_array(prop, 4);
        RNA_def_property_float_funcs(prop, "rna_RegionView3D_view_rotation_get", "rna_RegionView3D_view_rotation_set", NULL);
 #endif
-       RNA_def_property_ui_text(prop, "View Rotation", "Rotation in quaternions (keep normalized)");
+       RNA_def_property_ui_text(prop, N_("View Rotation"), N_("Rotation in quaternions (keep normalized)"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
        
        /* not sure we need rna access to these but adding anyway */
        prop= RNA_def_property(srna, "view_distance", PROP_FLOAT, PROP_UNSIGNED);
        RNA_def_property_float_sdna(prop, NULL, "dist");
-       RNA_def_property_ui_text(prop, "Distance", "Distance to the view location");
+       RNA_def_property_ui_text(prop, N_("Distance"), N_("Distance to the view location"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
 }
 
@@ -1473,52 +1473,52 @@ static void rna_def_space_buttons(BlenderRNA *brna)
        PropertyRNA *prop;
 
        static EnumPropertyItem buttons_context_items[] = {
-               {BCONTEXT_SCENE, "SCENE", ICON_SCENE, "Scene", "Scene"},
-               {BCONTEXT_RENDER, "RENDER", ICON_SCENE_DATA, "Render", "Render"},
-               {BCONTEXT_WORLD, "WORLD", ICON_WORLD, "World", "World"},
-               {BCONTEXT_OBJECT, "OBJECT", ICON_OBJECT_DATA, "Object", "Object"},
-               {BCONTEXT_CONSTRAINT, "CONSTRAINT", ICON_CONSTRAINT, "Constraints", "Constraints"},
-               {BCONTEXT_MODIFIER, "MODIFIER", ICON_MODIFIER, "Modifiers", "Modifiers"},
-               {BCONTEXT_DATA, "DATA", 0, "Data", "Data"},
-               {BCONTEXT_BONE, "BONE", ICON_BONE_DATA, "Bone", "Bone"},
-               {BCONTEXT_BONE_CONSTRAINT, "BONE_CONSTRAINT", ICON_CONSTRAINT, "Bone Constraints", "Bone Constraints"},
-               {BCONTEXT_MATERIAL, "MATERIAL", ICON_MATERIAL, "Material", "Material"},
-               {BCONTEXT_TEXTURE, "TEXTURE", ICON_TEXTURE, "Texture", "Texture"},
-               {BCONTEXT_PARTICLE, "PARTICLES", ICON_PARTICLES, "Particles", "Particle"},
-               {BCONTEXT_PHYSICS, "PHYSICS", ICON_PHYSICS, "Physics", "Physics"},
+               {BCONTEXT_SCENE, "SCENE", ICON_SCENE, N_("Scene"), "Scene"},
+               {BCONTEXT_RENDER, "RENDER", ICON_SCENE_DATA, N_("Render"), "Render"},
+               {BCONTEXT_WORLD, "WORLD", ICON_WORLD, N_("World"), "World"},
+               {BCONTEXT_OBJECT, "OBJECT", ICON_OBJECT_DATA, N_("Object"), "Object"},
+               {BCONTEXT_CONSTRAINT, "CONSTRAINT", ICON_CONSTRAINT, N_("Constraints"), "Constraints"},
+               {BCONTEXT_MODIFIER, "MODIFIER", ICON_MODIFIER, N_("Modifiers"), "Modifiers"},
+               {BCONTEXT_DATA, "DATA", 0, N_("Data"), "Data"},
+               {BCONTEXT_BONE, "BONE", ICON_BONE_DATA, N_("Bone"), "Bone"},
+               {BCONTEXT_BONE_CONSTRAINT, "BONE_CONSTRAINT", ICON_CONSTRAINT, N_("Bone Constraints"), "Bone Constraints"},
+               {BCONTEXT_MATERIAL, "MATERIAL", ICON_MATERIAL, N_("Material"), "Material"},
+               {BCONTEXT_TEXTURE, "TEXTURE", ICON_TEXTURE, N_("Texture"), "Texture"},
+               {BCONTEXT_PARTICLE, "PARTICLES", ICON_PARTICLES, N_("Particles"), "Particle"},
+               {BCONTEXT_PHYSICS, "PHYSICS", ICON_PHYSICS, N_("Physics"), "Physics"},
                {0, NULL, 0, NULL, NULL}};
                
        static EnumPropertyItem align_items[] = {
-               {BUT_HORIZONTAL, "HORIZONTAL", 0, "Horizontal", ""},
-               {BUT_VERTICAL, "VERTICAL", 0, "Vertical", ""},
+               {BUT_HORIZONTAL, "HORIZONTAL", 0, N_("Horizontal"), ""},
+               {BUT_VERTICAL, "VERTICAL", 0, N_("Vertical"), ""},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem buttons_texture_context_items[] = {
-               {SB_TEXC_MAT_OR_LAMP, "MATERIAL", ICON_MATERIAL, "Material", "Material"},
+               {SB_TEXC_MAT_OR_LAMP, "MATERIAL", ICON_MATERIAL, N_("Material"), "Material"},
                {0, NULL, 0, NULL, NULL}}; //actually populated dynamically trough a function
                
        srna= RNA_def_struct(brna, "SpaceProperties", "Space");
        RNA_def_struct_sdna(srna, "SpaceButs");
-       RNA_def_struct_ui_text(srna, "Properties Space", "Properties space data");
+       RNA_def_struct_ui_text(srna, N_("Properties Space"), N_("Properties space data"));
        
        prop= RNA_def_property(srna, "context", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "mainb");
        RNA_def_property_enum_items(prop, buttons_context_items);
        RNA_def_property_enum_funcs(prop, NULL, "rna_SpaceProperties_context_set", NULL);
-       RNA_def_property_ui_text(prop, "Context", "Type of active data to display and edit");
+       RNA_def_property_ui_text(prop, N_("Context"), N_("Type of active data to display and edit"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_PROPERTIES, NULL);
        
        prop= RNA_def_property(srna, "align", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "align");
        RNA_def_property_enum_items(prop, align_items);
        RNA_def_property_enum_funcs(prop, NULL, "rna_SpaceProperties_align_set", NULL);
-       RNA_def_property_ui_text(prop, "Align", "Arrangement of the panels");
+       RNA_def_property_ui_text(prop, N_("Align"), N_("Arrangement of the panels"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_PROPERTIES, NULL);
 
        prop= RNA_def_property(srna, "texture_context", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_items(prop, buttons_texture_context_items);
        RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_SpaceProperties_texture_context_itemf");
-       RNA_def_property_ui_text(prop, "Texture Context", "Type of texture data to display and edit");
+       RNA_def_property_ui_text(prop, N_("Texture Context"), N_("Type of texture data to display and edit"));
        RNA_def_property_update(prop, NC_TEXTURE, NULL);
 
        /* pinned data */
@@ -1532,7 +1532,7 @@ static void rna_def_space_buttons(BlenderRNA *brna)
 
        prop= RNA_def_property(srna, "use_pin_id", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SB_PIN_CONTEXT);
-       RNA_def_property_ui_text(prop, "Pin ID", "Use the pinned context");
+       RNA_def_property_ui_text(prop, N_("Pin ID"), N_("Use the pinned context"));
 }
 
 static void rna_def_space_image(BlenderRNA *brna)
@@ -1542,60 +1542,60 @@ static void rna_def_space_image(BlenderRNA *brna)
 
        srna= RNA_def_struct(brna, "SpaceImageEditor", "Space");
        RNA_def_struct_sdna(srna, "SpaceImage");
-       RNA_def_struct_ui_text(srna, "Space Image Editor", "Image and UV editor space data");
+       RNA_def_struct_ui_text(srna, N_("Space Image Editor"), N_("Image and UV editor space data"));
 
        /* image */
        prop= RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_funcs(prop, NULL, "rna_SpaceImageEditor_image_set", NULL, NULL);
-       RNA_def_property_ui_text(prop, "Image", "Image displayed and edited in this space");
+       RNA_def_property_ui_text(prop, N_("Image"), N_("Image displayed and edited in this space"));
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_update(prop, NC_GEOM|ND_DATA, NULL); // is handled in image editor too
 
        prop= RNA_def_property(srna, "image_user", PROP_POINTER, PROP_NONE);
        RNA_def_property_flag(prop, PROP_NEVER_NULL);
        RNA_def_property_pointer_sdna(prop, NULL, "iuser");
-       RNA_def_property_ui_text(prop, "Image User", "Parameters defining which layer, pass and frame of the image is displayed");
+       RNA_def_property_ui_text(prop, N_("Image User"), N_("Parameters defining which layer, pass and frame of the image is displayed"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        prop= RNA_def_property(srna, "curve", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "cumap");
-       RNA_def_property_ui_text(prop, "Curve", "Color curve mapping to use for displaying the image");
+       RNA_def_property_ui_text(prop, N_("Curve"), N_("Color curve mapping to use for displaying the image"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, "rna_SpaceImageEditor_curves_update");
 
        prop= RNA_def_property(srna, "scopes", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "scopes");
        RNA_def_property_struct_type(prop, "Scopes");
-       RNA_def_property_ui_text(prop, "Scopes", "Scopes to visualize image statistics.");
+       RNA_def_property_ui_text(prop, N_("Scopes"), N_("Scopes to visualize image statistics."));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, "rna_SpaceImageEditor_scopes_update");
 
        prop= RNA_def_property(srna, "use_image_pin", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "pin", 0);
-       RNA_def_property_ui_text(prop, "Image Pin", "Display current image regardless of object selection");
+       RNA_def_property_ui_text(prop, N_("Image Pin"), N_("Display current image regardless of object selection"));
        RNA_def_property_ui_icon(prop, ICON_UNPINNED, 1);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        prop= RNA_def_property(srna, "sample_histogram", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "sample_line_hist");
        RNA_def_property_struct_type(prop, "Histogram");
-       RNA_def_property_ui_text(prop, "Line sample", "Sampled colors along line");
+       RNA_def_property_ui_text(prop, N_("Line sample"), N_("Sampled colors along line"));
 
        prop= RNA_def_property(srna, "zoom", PROP_FLOAT, PROP_NONE);
        RNA_def_property_array(prop, 2);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
        RNA_def_property_float_funcs(prop, "rna_SpaceImageEditor_zoom_get", NULL, NULL);
-       RNA_def_property_ui_text(prop, "Zoom", "Zoom factor");
+       RNA_def_property_ui_text(prop, N_("Zoom"), N_("Zoom factor"));
        
        /* image draw */
        prop= RNA_def_property(srna, "show_repeat", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_DRAW_TILE);
-       RNA_def_property_ui_text(prop, "Draw Repeated", "Draw the image repeated outside of the main view");
+       RNA_def_property_ui_text(prop, N_("Draw Repeated"), N_("Draw the image repeated outside of the main view"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        prop= RNA_def_property(srna, "draw_channels", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag");
        RNA_def_property_enum_items(prop, draw_channels_items);
        RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_SpaceImageEditor_draw_channels_itemf");
-       RNA_def_property_ui_text(prop, "Draw Channels", "Channels of the image to draw");
+       RNA_def_property_ui_text(prop, N_("Draw Channels"), N_("Channels of the image to draw"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, NULL);
 
        /* uv */
@@ -1603,12 +1603,12 @@ static void rna_def_space_image(BlenderRNA *brna)
        RNA_def_property_flag(prop, PROP_NEVER_NULL);
        RNA_def_property_struct_type(prop, "SpaceUVEditor");
        RNA_def_property_pointer_funcs(prop, "rna_SpaceImageEditor_uvedit_get", NULL, NULL, NULL);
-       RNA_def_property_ui_text(prop, "UV Editor", "UV editor settings");
+       RNA_def_property_ui_text(prop, N_("UV Editor"), N_("UV editor settings"));
        
        /* paint */
        prop= RNA_def_property(srna, "use_image_paint", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_DRAWTOOL);
-       RNA_def_property_ui_text(prop, "Image Painting", "Enable image painting mode");
+       RNA_def_property_ui_text(prop, N_("Image Painting"), N_("Enable image painting mode"));
        RNA_def_property_ui_icon(prop, ICON_TPAINT_HLT, 0);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, "rna_SpaceImageEditor_paint_update");
 
@@ -1617,32 +1617,32 @@ static void rna_def_space_image(BlenderRNA *brna)
        RNA_def_property_pointer_sdna(prop, NULL, "gpd");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_struct_type(prop, "GreasePencil");
-       RNA_def_property_ui_text(prop, "Grease Pencil", "Grease pencil data for this space");
+       RNA_def_property_ui_text(prop, N_("Grease Pencil"), N_("Grease pencil data for this space"));
 
        prop= RNA_def_property(srna, "use_grease_pencil", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_DISPGP);
-       RNA_def_property_ui_text(prop, "Use Grease Pencil", "Display and edit the grease pencil freehand annotations overlay");
+       RNA_def_property_ui_text(prop, N_("Use Grease Pencil"), N_("Display and edit the grease pencil freehand annotations overlay"));
 
        /* update */
        prop= RNA_def_property(srna, "use_realtime_update", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "lock", 0);
-       RNA_def_property_ui_text(prop, "Update Automatically", "Update other affected window spaces automatically to reflect changes during interactive operations such as transform");
+       RNA_def_property_ui_text(prop, N_("Update Automatically"), N_("Update other affected window spaces automatically to reflect changes during interactive operations such as transform"));
 
        /* state */
        prop= RNA_def_property(srna, "show_render", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_funcs(prop, "rna_SpaceImageEditor_show_render_get", NULL);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Show Render", "Show render related properties");
+       RNA_def_property_ui_text(prop, N_("Show Render"), N_("Show render related properties"));
 
        prop= RNA_def_property(srna, "show_paint", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_funcs(prop, "rna_SpaceImageEditor_show_paint_get", NULL);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Show Paint", "Show paint related properties");
+       RNA_def_property_ui_text(prop, N_("Show Paint"), N_("Show paint related properties"));
 
        prop= RNA_def_property(srna, "show_uvedit", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_funcs(prop, "rna_SpaceImageEditor_show_uvedit_get", NULL);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Show UV Editor", "Show UV editing related properties");
+       RNA_def_property_ui_text(prop, N_("Show UV Editor"), N_("Show UV editing related properties"));
 
        rna_def_space_image_uv(brna);
 }
@@ -1653,36 +1653,36 @@ static void rna_def_space_sequencer(BlenderRNA *brna)
        PropertyRNA *prop;
        
        static EnumPropertyItem view_type_items[] = {
-               {SEQ_VIEW_SEQUENCE, "SEQUENCER", ICON_SEQ_SEQUENCER, "Sequencer", ""},
-               {SEQ_VIEW_PREVIEW,  "PREVIEW", ICON_SEQ_PREVIEW, "Image Preview", ""},
-               {SEQ_VIEW_SEQUENCE_PREVIEW,  "SEQUENCER_PREVIEW", ICON_SEQ_SPLITVIEW, "Sequencer and Image Preview", ""},
+               {SEQ_VIEW_SEQUENCE, "SEQUENCER", ICON_SEQ_SEQUENCER, N_("Sequencer"), ""},
+               {SEQ_VIEW_PREVIEW,  "PREVIEW", ICON_SEQ_PREVIEW, N_("Image Preview"), ""},
+               {SEQ_VIEW_SEQUENCE_PREVIEW,  "SEQUENCER_PREVIEW", ICON_SEQ_SPLITVIEW, N_("Sequencer and Image Preview"), ""},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem display_mode_items[] = {
-               {SEQ_DRAW_IMG_IMBUF, "IMAGE", ICON_SEQ_PREVIEW, "Image Preview", ""},
-               {SEQ_DRAW_IMG_WAVEFORM, "WAVEFORM", ICON_SEQ_LUMA_WAVEFORM, "Luma Waveform", ""},
-               {SEQ_DRAW_IMG_VECTORSCOPE, "VECTOR_SCOPE", ICON_SEQ_CHROMA_SCOPE, "Chroma Vectorscope", ""},
-               {SEQ_DRAW_IMG_HISTOGRAM, "HISTOGRAM", ICON_SEQ_HISTOGRAM, "Histogram", ""},
+               {SEQ_DRAW_IMG_IMBUF, "IMAGE", ICON_SEQ_PREVIEW, N_("Image Preview"), ""},
+               {SEQ_DRAW_IMG_WAVEFORM, "WAVEFORM", ICON_SEQ_LUMA_WAVEFORM, N_("Luma Waveform"), ""},
+               {SEQ_DRAW_IMG_VECTORSCOPE, "VECTOR_SCOPE", ICON_SEQ_CHROMA_SCOPE, N_("Chroma Vectorscope"), ""},
+               {SEQ_DRAW_IMG_HISTOGRAM, "HISTOGRAM", ICON_SEQ_HISTOGRAM, N_("Histogram"), ""},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem proxy_render_size_items[] = {
-               {SEQ_PROXY_RENDER_SIZE_NONE, "NONE", 0, "No display", ""},
-               {SEQ_PROXY_RENDER_SIZE_SCENE, "SCENE", 0, "Scene render size", ""},
-               {SEQ_PROXY_RENDER_SIZE_25, "PROXY_25", 0, "Proxy size 25%", ""},
-               {SEQ_PROXY_RENDER_SIZE_50, "PROXY_50", 0, "Proxy size 50%", ""},
-               {SEQ_PROXY_RENDER_SIZE_75, "PROXY_75", 0, "Proxy size 75%", ""},
-               {SEQ_PROXY_RENDER_SIZE_FULL, "FULL", 0, "No proxy, full render", ""},
+               {SEQ_PROXY_RENDER_SIZE_NONE, "NONE", 0, N_("No display"), ""},
+               {SEQ_PROXY_RENDER_SIZE_SCENE, "SCENE", 0, N_("Scene render size"), ""},
+               {SEQ_PROXY_RENDER_SIZE_25, "PROXY_25", 0, N_("Proxy size 25%"), ""},
+               {SEQ_PROXY_RENDER_SIZE_50, "PROXY_50", 0, N_("Proxy size 50%"), ""},
+               {SEQ_PROXY_RENDER_SIZE_75, "PROXY_75", 0, N_("Proxy size 75%"), ""},
+               {SEQ_PROXY_RENDER_SIZE_FULL, "FULL", 0, N_("No proxy, full render"), ""},
                {0, NULL, 0, NULL, NULL}};
        
        srna= RNA_def_struct(brna, "SpaceSequenceEditor", "Space");
        RNA_def_struct_sdna(srna, "SpaceSeq");
-       RNA_def_struct_ui_text(srna, "Space Sequence Editor", "Sequence editor space data");
+       RNA_def_struct_ui_text(srna, N_("Space Sequence Editor"), N_("Sequence editor space data"));
        
        /* view type, fairly important */
        prop= RNA_def_property(srna, "view_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "view");
        RNA_def_property_enum_items(prop, view_type_items);
-       RNA_def_property_ui_text(prop, "View Type", "The type of the Sequencer view (sequencer, preview or both)");
+       RNA_def_property_ui_text(prop, N_("View Type"), N_("The type of the Sequencer view (sequencer, preview or both)"));
        RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE);
        RNA_def_property_update(prop, 0, "rna_Sequencer_display_mode_update");
 
@@ -1690,80 +1690,80 @@ static void rna_def_space_sequencer(BlenderRNA *brna)
        prop= RNA_def_property(srna, "display_mode", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "mainb");
        RNA_def_property_enum_items(prop, display_mode_items);
-       RNA_def_property_ui_text(prop, "Display Mode", "The view mode to use for displaying sequencer output");
+       RNA_def_property_ui_text(prop, N_("Display Mode"), N_("The view mode to use for displaying sequencer output"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
                
        /* flag's */
        prop= RNA_def_property(srna, "show_frame_indicator", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SEQ_NO_DRAW_CFRANUM);
-       RNA_def_property_ui_text(prop, "Show Frame Number Indicator", "Show frame number beside the current frame indicator line");
+       RNA_def_property_ui_text(prop, N_("Show Frame Number Indicator"), N_("Show frame number beside the current frame indicator line"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
        
        prop= RNA_def_property(srna, "show_frames", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_DRAWFRAMES);
-       RNA_def_property_ui_text(prop, "Draw Frames", "Draw frames rather than seconds");
+       RNA_def_property_ui_text(prop, N_("Draw Frames"), N_("Draw frames rather than seconds"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
        
        prop= RNA_def_property(srna, "use_marker_sync", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MARKER_TRANS);
-       RNA_def_property_ui_text(prop, "Transform Markers", "Transform markers as well as strips");
+       RNA_def_property_ui_text(prop, N_("Transform Markers"), N_("Transform markers as well as strips"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
        
        prop= RNA_def_property(srna, "show_separate_color", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_DRAW_COLOR_SEPERATED);
-       RNA_def_property_ui_text(prop, "Separate Colors", "Separate color channels in preview");
+       RNA_def_property_ui_text(prop, N_("Separate Colors"), N_("Separate color channels in preview"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
 
        prop= RNA_def_property(srna, "show_safe_margin", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_DRAW_SAFE_MARGINS);
-       RNA_def_property_ui_text(prop, "Safe Margin", "Draw title safe margins in preview");    
+       RNA_def_property_ui_text(prop, N_("Safe Margin"), N_("Draw title safe margins in preview"));    
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
        
        prop= RNA_def_property(srna, "use_grease_pencil", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_DRAW_GPENCIL);
-       RNA_def_property_ui_text(prop, "Use Grease Pencil", "Display and edit the grease pencil freehand annotations overlay"); 
+       RNA_def_property_ui_text(prop, N_("Use Grease Pencil"), N_("Display and edit the grease pencil freehand annotations overlay")); 
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
        
        /* grease pencil */
        prop= RNA_def_property(srna, "grease_pencil", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "gpd");
        RNA_def_property_struct_type(prop, "UnknownType");
-       RNA_def_property_ui_text(prop, "Grease Pencil", "Grease pencil data for this space");
+       RNA_def_property_ui_text(prop, N_("Grease Pencil"), N_("Grease pencil data for this space"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
        
        prop= RNA_def_property(srna, "display_channel", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "chanshown");
-       RNA_def_property_ui_text(prop, "Display Channel", "The channel number shown in the image preview. 0 is the result of all strips combined");
+       RNA_def_property_ui_text(prop, N_("Display Channel"), N_("The channel number shown in the image preview. 0 is the result of all strips combined"));
        RNA_def_property_range(prop, -5, 32); // MAXSEQ --- todo, move from BKE_sequencer.h, allow up to 5 layers up the metastack. Should be dynamic...
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
        
        prop= RNA_def_property(srna, "draw_overexposed", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "zebra");
-       RNA_def_property_ui_text(prop, "Show Overexposed", "Show overexposed areas with zebra stripes");
+       RNA_def_property_ui_text(prop, N_("Show Overexposed"), N_("Show overexposed areas with zebra stripes"));
        RNA_def_property_range(prop, 0, 110);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
        
        prop= RNA_def_property(srna, "proxy_render_size", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "render_size");
        RNA_def_property_enum_items(prop, proxy_render_size_items);
-       RNA_def_property_ui_text(prop, "Proxy render size", "Draw preview using full resolution or different proxy resolutions");
+       RNA_def_property_ui_text(prop, N_("Proxy render size"), N_("Draw preview using full resolution or different proxy resolutions"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
        
        
        /* not sure we need rna access to these but adding anyway */
        prop= RNA_def_property(srna, "offset_x", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "xof");
-       RNA_def_property_ui_text(prop, "X Offset", "Offsets image horizontally from the view center");
+       RNA_def_property_ui_text(prop, N_("X Offset"), N_("Offsets image horizontally from the view center"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
 
        prop= RNA_def_property(srna, "offset_y", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "yof");
-       RNA_def_property_ui_text(prop, "Y Offset", "Offsets image horizontally from the view center");
+       RNA_def_property_ui_text(prop, N_("Y Offset"), N_("Offsets image horizontally from the view center"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
        
        prop= RNA_def_property(srna, "zoom", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "zoom");
-       RNA_def_property_ui_text(prop, "Zoom", "Display zoom level");   
+       RNA_def_property_ui_text(prop, N_("Zoom"), N_("Display zoom level"));   
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);
 }
 
@@ -1774,12 +1774,12 @@ static void rna_def_space_text(BlenderRNA *brna)
 
        srna= RNA_def_struct(brna, "SpaceTextEditor", "Space");
        RNA_def_struct_sdna(srna, "SpaceText");
-       RNA_def_struct_ui_text(srna, "Space Text Editor", "Text editor space data");
+       RNA_def_struct_ui_text(srna, N_("Space Text Editor"), N_("Text editor space data"));
 
        /* text */
        prop= RNA_def_property(srna, "text", PROP_POINTER, PROP_NONE);
        RNA_def_property_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Text", "Text displayed and edited in this space");
+       RNA_def_property_ui_text(prop, N_("Text"), N_("Text displayed and edited in this space"));
        RNA_def_property_pointer_funcs(prop, NULL, "rna_SpaceTextEditor_text_set", NULL, NULL);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
 
@@ -1787,85 +1787,85 @@ static void rna_def_space_text(BlenderRNA *brna)
        prop= RNA_def_property(srna, "show_word_wrap", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "wordwrap", 0);
        RNA_def_property_boolean_funcs(prop, NULL, "rna_SpaceTextEditor_word_wrap_set");
-       RNA_def_property_ui_text(prop, "Word Wrap", "Wrap words if there is not enough horizontal space");
+       RNA_def_property_ui_text(prop, N_("Word Wrap"), N_("Wrap words if there is not enough horizontal space"));
        RNA_def_property_ui_icon(prop, ICON_WORDWRAP_OFF, 1);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
 
        prop= RNA_def_property(srna, "show_line_numbers", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "showlinenrs", 0);
-       RNA_def_property_ui_text(prop, "Line Numbers", "Show line numbers next to the text");
+       RNA_def_property_ui_text(prop, N_("Line Numbers"), N_("Show line numbers next to the text"));
        RNA_def_property_ui_icon(prop, ICON_LINENUMBERS_OFF, 1);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
 
        prop= RNA_def_property(srna, "show_syntax_highlight", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "showsyntax", 0);
-       RNA_def_property_ui_text(prop, "Syntax Highlight", "Syntax highlight for scripting");
+       RNA_def_property_ui_text(prop, N_("Syntax Highlight"), N_("Syntax highlight for scripting"));
        RNA_def_property_ui_icon(prop, ICON_SYNTAX_OFF, 1);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
        
        prop= RNA_def_property(srna, "show_line_highlight", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "line_hlight", 0);
-       RNA_def_property_ui_text(prop, "Highlight Line", "Highlight the current line");
+       RNA_def_property_ui_text(prop, N_("Highlight Line"), N_("Highlight the current line"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
 
        prop= RNA_def_property(srna, "tab_width", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "tabnumber");
        RNA_def_property_range(prop, 2, 8);
-       RNA_def_property_ui_text(prop, "Tab Width", "Number of spaces to display tabs with");
+       RNA_def_property_ui_text(prop, N_("Tab Width"), N_("Number of spaces to display tabs with"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, "rna_SpaceTextEditor_updateEdited");
 
        prop= RNA_def_property(srna, "font_size", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "lheight");
        RNA_def_property_range(prop, 8, 32);
-       RNA_def_property_ui_text(prop, "Font Size", "Font size to use for displaying the text");
+       RNA_def_property_ui_text(prop, N_("Font Size"), N_("Font size to use for displaying the text"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
 
        prop= RNA_def_property(srna, "show_margin", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flags", ST_SHOW_MARGIN);
-       RNA_def_property_ui_text(prop, "Show Margin", "Show right margin");
+       RNA_def_property_ui_text(prop, N_("Show Margin"), N_("Show right margin"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
 
        prop= RNA_def_property(srna, "margin_column", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "margin_column");
        RNA_def_property_range(prop, 0, 1024);
-       RNA_def_property_ui_text(prop, "Margin Column", "Column number to show right margin at");
+       RNA_def_property_ui_text(prop, N_("Margin Column"), N_("Column number to show right margin at"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
 
        /* functionality options */
        prop= RNA_def_property(srna, "use_overwrite", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "overwrite", 1);
-       RNA_def_property_ui_text(prop, "Overwrite", "Overwrite characters when typing rather than inserting them");
+       RNA_def_property_ui_text(prop, N_("Overwrite"), N_("Overwrite characters when typing rather than inserting them"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
        
        prop= RNA_def_property(srna, "use_live_edit", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "live_edit", 1);
-       RNA_def_property_ui_text(prop, "Live Edit", "Run python while editing");
+       RNA_def_property_ui_text(prop, N_("Live Edit"), N_("Run python while editing"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
        
        /* find */
        prop= RNA_def_property(srna, "use_find_all", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flags", ST_FIND_ALL);
-       RNA_def_property_ui_text(prop, "Find All", "Search in all text datablocks, instead of only the active one");
+       RNA_def_property_ui_text(prop, N_("Find All"), N_("Search in all text datablocks, instead of only the active one"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
 
        prop= RNA_def_property(srna, "use_find_wrap", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flags", ST_FIND_WRAP);
-       RNA_def_property_ui_text(prop, "Find Wrap", "Search again from the start of the file when reaching the end");
+       RNA_def_property_ui_text(prop, N_("Find Wrap"), N_("Search again from the start of the file when reaching the end"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
 
        prop= RNA_def_property(srna, "use_match_case", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flags", ST_MATCH_CASE);
-       RNA_def_property_ui_text(prop, "Match case", "Search string is sensitive to uppercase and lowercase letters");
+       RNA_def_property_ui_text(prop, N_("Match case"), N_("Search string is sensitive to uppercase and lowercase letters"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
 
        prop= RNA_def_property(srna, "find_text", PROP_STRING, PROP_NONE);
        RNA_def_property_string_sdna(prop, NULL, "findstr");
-       RNA_def_property_ui_text(prop, "Find Text", "Text to search for with the find tool");
+       RNA_def_property_ui_text(prop, N_("Find Text"), N_("Text to search for with the find tool"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
 
        prop= RNA_def_property(srna, "replace_text", PROP_STRING, PROP_NONE);
        RNA_def_property_string_sdna(prop, NULL, "replacestr");
-       RNA_def_property_ui_text(prop, "Replace Text", "Text to replace selected text with using the replace tool");
+       RNA_def_property_ui_text(prop, N_("Replace Text"), N_("Text to replace selected text with using the replace tool"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_TEXT, NULL);
 }
 
@@ -1875,79 +1875,79 @@ static void rna_def_space_dopesheet(BlenderRNA *brna)
        PropertyRNA *prop;
        
        static EnumPropertyItem mode_items[] = {
-               {SACTCONT_DOPESHEET, "DOPESHEET", 0, "DopeSheet", "DopeSheet Editor"},
-               {SACTCONT_ACTION, "ACTION", 0, "Action Editor", "Action Editor"},
-               {SACTCONT_SHAPEKEY, "SHAPEKEY", 0, "ShapeKey Editor", "ShapeKey Editor"},
-               {SACTCONT_GPENCIL, "GPENCIL", 0, "Grease Pencil", "Grease Pencil"},
+               {SACTCONT_DOPESHEET, "DOPESHEET", 0, N_("DopeSheet"), N_("DopeSheet Editor")},
+               {SACTCONT_ACTION, "ACTION", 0, N_("Action Editor"), N_("Action Editor")},
+               {SACTCONT_SHAPEKEY, "SHAPEKEY", 0, N_("ShapeKey Editor"), N_("ShapeKey Editor")},
+               {SACTCONT_GPENCIL, "GPENCIL", 0, N_("Grease Pencil"), N_("Grease Pencil")},
                {0, NULL, 0, NULL, NULL}};
                
        
        srna= RNA_def_struct(brna, "SpaceDopeSheetEditor", "Space");
        RNA_def_struct_sdna(srna, "SpaceAction");
-       RNA_def_struct_ui_text(srna, "Space DopeSheet Editor", "DopeSheet space data");
+       RNA_def_struct_ui_text(srna, N_("Space DopeSheet Editor"), N_("DopeSheet space data"));
 
        /* data */
        prop= RNA_def_property(srna, "action", PROP_POINTER, PROP_NONE);
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_pointer_funcs(prop, NULL, "rna_SpaceDopeSheetEditor_action_set", NULL, "rna_Action_actedit_assign_poll");
-       RNA_def_property_ui_text(prop, "Action", "Action displayed and edited in this space");
+       RNA_def_property_ui_text(prop, N_("Action"), N_("Action displayed and edited in this space"));
        RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, "rna_SpaceDopeSheetEditor_action_update");
        
        /* mode */
        prop= RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "mode");
        RNA_def_property_enum_items(prop, mode_items);
-       RNA_def_property_ui_text(prop, "Mode", "Editing context being displayed");
+       RNA_def_property_ui_text(prop, N_("Mode"), N_("Editing context being displayed"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_DOPESHEET, "rna_SpaceDopeSheetEditor_mode_update");
        
        /* display */
        prop= RNA_def_property(srna, "show_seconds", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SACTION_DRAWTIME);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE); // XXX for now, only set with operator
-       RNA_def_property_ui_text(prop, "Show Seconds", "Show timing in seconds not frames");
+       RNA_def_property_ui_text(prop, N_("Show Seconds"), N_("Show timing in seconds not frames"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_DOPESHEET, NULL);
        
        prop= RNA_def_property(srna, "show_frame_indicator", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SACTION_NODRAWCFRANUM);
-       RNA_def_property_ui_text(prop, "Show Frame Number Indicator", "Show frame number beside the current frame indicator line");
+       RNA_def_property_ui_text(prop, N_("Show Frame Number Indicator"), N_("Show frame number beside the current frame indicator line"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_DOPESHEET, NULL);
        
        prop= RNA_def_property(srna, "show_sliders", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SACTION_SLIDERS);
-       RNA_def_property_ui_text(prop, "Show Sliders", "Show sliders beside F-Curve channels");
+       RNA_def_property_ui_text(prop, N_("Show Sliders"), N_("Show sliders beside F-Curve channels"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_DOPESHEET, NULL);
        
        prop= RNA_def_property(srna, "show_pose_markers", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SACTION_POSEMARKERS_SHOW);
-       RNA_def_property_ui_text(prop, "Show Pose Markers", "Show markers belonging to the active action instead of Scene markers (Action and Shape Key Editors only)");
+       RNA_def_property_ui_text(prop, N_("Show Pose Markers"), N_("Show markers belonging to the active action instead of Scene markers (Action and Shape Key Editors only)"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_DOPESHEET, NULL);
        
        /* editing */
        prop= RNA_def_property(srna, "use_auto_merge_keyframes", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SACTION_NOTRANSKEYCULL);
-       RNA_def_property_ui_text(prop, "AutoMerge Keyframes", "Automatically merge nearby keyframes");
+       RNA_def_property_ui_text(prop, N_("AutoMerge Keyframes"), N_("Automatically merge nearby keyframes"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_DOPESHEET, NULL);
        
        prop= RNA_def_property(srna, "use_realtime_update", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SACTION_NOREALTIMEUPDATES);
-       RNA_def_property_ui_text(prop, "Realtime Updates", "When transforming keyframes, changes to the animation data are flushed to other views");
+       RNA_def_property_ui_text(prop, N_("Realtime Updates"), N_("When transforming keyframes, changes to the animation data are flushed to other views"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_DOPESHEET, NULL);
 
        prop= RNA_def_property(srna, "use_marker_sync", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SACTION_MARKERS_MOVE);
-       RNA_def_property_ui_text(prop, "Sync Markers", "Sync Markers with keyframe edits");
+       RNA_def_property_ui_text(prop, N_("Sync Markers"), N_("Sync Markers with keyframe edits"));
 
        /* dopesheet */
        prop= RNA_def_property(srna, "dopesheet", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "DopeSheet");
        RNA_def_property_pointer_sdna(prop, NULL, "ads");
-       RNA_def_property_ui_text(prop, "DopeSheet", "Settings for filtering animation data");
+       RNA_def_property_ui_text(prop, N_("DopeSheet"), N_("Settings for filtering animation data"));
 
        /* autosnap */
        prop= RNA_def_property(srna, "auto_snap", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "autosnap");
        RNA_def_property_enum_items(prop, autosnap_items);
-       RNA_def_property_ui_text(prop, "Auto Snap", "Automatic time snapping settings for transformations");
+       RNA_def_property_ui_text(prop, N_("Auto Snap"), N_("Automatic time snapping settings for transformations"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_DOPESHEET, NULL);
 }
 
@@ -1957,15 +1957,15 @@ static void rna_def_space_graph(BlenderRNA *brna)
        PropertyRNA *prop;
        
        static EnumPropertyItem mode_items[] = {
-               {SIPO_MODE_ANIMATION, "FCURVES", 0, "F-Curve Editor", "Edit f-curves"},
-               {SIPO_MODE_DRIVERS, "DRIVERS", 0, "Drivers", "Edit drivers"},
+               {SIPO_MODE_ANIMATION, "FCURVES", 0, N_("F-Curve Editor"), N_("Edit f-curves")},
+               {SIPO_MODE_DRIVERS, "DRIVERS", 0, N_("Drivers"), N_("Edit drivers")},
                {0, NULL, 0, NULL, NULL}};
                
                /* this is basically the same as the one for the 3D-View, but with some entries ommitted */
        static EnumPropertyItem gpivot_items[] = {
-               {V3D_CENTER, "BOUNDING_BOX_CENTER", ICON_ROTATE, "Bounding Box Center", ""},
-               {V3D_CURSOR, "CURSOR", ICON_CURSOR, "2D Cursor", ""},
-               {V3D_LOCAL, "INDIVIDUAL_ORIGINS", ICON_ROTATECOLLECTION, "Individual Centers", ""},
+               {V3D_CENTER, "BOUNDING_BOX_CENTER", ICON_ROTATE, N_("Bounding Box Center"), ""},
+               {V3D_CURSOR, "CURSOR", ICON_CURSOR, N_("2D Cursor"), ""},
+               {V3D_LOCAL, "INDIVIDUAL_ORIGINS", ICON_ROTATECOLLECTION, N_("Individual Centers"), ""},
                //{V3D_CENTROID, "MEDIAN_POINT", 0, "Median Point", ""},
                //{V3D_ACTIVE, "ACTIVE_ELEMENT", 0, "Active Element", ""},
                {0, NULL, 0, NULL, NULL}};
@@ -1973,13 +1973,13 @@ static void rna_def_space_graph(BlenderRNA *brna)
        
        srna= RNA_def_struct(brna, "SpaceGraphEditor", "Space");
        RNA_def_struct_sdna(srna, "SpaceIpo");
-       RNA_def_struct_ui_text(srna, "Space Graph Editor", "Graph Editor space data");
+       RNA_def_struct_ui_text(srna, N_("Space Graph Editor"), N_("Graph Editor space data"));
        
        /* mode */
        prop= RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "mode");
        RNA_def_property_enum_items(prop, mode_items);
-       RNA_def_property_ui_text(prop, "Mode", "Editing context being displayed");
+       RNA_def_property_ui_text(prop, N_("Mode"), N_("Editing context being displayed"));
        RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE);
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, "rna_SpaceGraphEditor_display_mode_update");
        
@@ -1987,85 +1987,85 @@ static void rna_def_space_graph(BlenderRNA *brna)
        prop= RNA_def_property(srna, "show_seconds", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SIPO_DRAWTIME);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE); // XXX for now, only set with operator
-       RNA_def_property_ui_text(prop, "Show Seconds", "Show timing in seconds not frames");
+       RNA_def_property_ui_text(prop, N_("Show Seconds"), N_("Show timing in seconds not frames"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
        
        prop= RNA_def_property(srna, "show_frame_indicator", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SIPO_NODRAWCFRANUM);
-       RNA_def_property_ui_text(prop, "Show Frame Number Indicator", "Show frame number beside the current frame indicator line");
+       RNA_def_property_ui_text(prop, N_("Show Frame Number Indicator"), N_("Show frame number beside the current frame indicator line"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
        
        prop= RNA_def_property(srna, "show_sliders", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SIPO_SLIDERS);
-       RNA_def_property_ui_text(prop, "Show Sliders", "Show sliders beside F-Curve channels");
+       RNA_def_property_ui_text(prop, N_("Show Sliders"), N_("Show sliders beside F-Curve channels"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
        
        prop= RNA_def_property(srna, "show_handles", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SIPO_NOHANDLES);
-       RNA_def_property_ui_text(prop, "Show Handles", "Show handles of Bezier control points");
+       RNA_def_property_ui_text(prop, N_("Show Handles"), N_("Show handles of Bezier control points"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
        
        prop= RNA_def_property(srna, "use_only_selected_curves_handles", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SIPO_SELCUVERTSONLY);
-       RNA_def_property_ui_text(prop, "Only Selected Curve Keyframes", "Only keyframes of selected F-Curves are visible and editable");
+       RNA_def_property_ui_text(prop, N_("Only Selected Curve Keyframes"), N_("Only keyframes of selected F-Curves are visible and editable"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
        
        prop= RNA_def_property(srna, "use_only_selected_keyframe_handles", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SIPO_SELVHANDLESONLY);
-       RNA_def_property_ui_text(prop, "Only Selected Keyframes Handles", "Only show and edit handles of selected keyframes");
+       RNA_def_property_ui_text(prop, N_("Only Selected Keyframes Handles"), N_("Only show and edit handles of selected keyframes"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
        
        prop= RNA_def_property(srna, "use_fancy_drawing", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SIPO_BEAUTYDRAW_OFF);
-       RNA_def_property_ui_text(prop, "Use Fancy Drawing", "Draw F-Curves using Anti-Aliasing and other fancy effects. Disable for better performance");
+       RNA_def_property_ui_text(prop, N_("Use Fancy Drawing"), N_("Draw F-Curves using Anti-Aliasing and other fancy effects. Disable for better performance"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
        
        /* editing */
        prop= RNA_def_property(srna, "use_auto_merge_keyframes", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SIPO_NOTRANSKEYCULL);
-       RNA_def_property_ui_text(prop, "AutoMerge Keyframes", "Automatically merge nearby keyframes");
+       RNA_def_property_ui_text(prop, N_("AutoMerge Keyframes"), N_("Automatically merge nearby keyframes"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
        
        prop= RNA_def_property(srna, "use_realtime_update", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SIPO_NOREALTIMEUPDATES);
-       RNA_def_property_ui_text(prop, "Realtime Updates", "When transforming keyframes, changes to the animation data are flushed to other views");
+       RNA_def_property_ui_text(prop, N_("Realtime Updates"), N_("When transforming keyframes, changes to the animation data are flushed to other views"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
        
        /* cursor */
        prop= RNA_def_property(srna, "show_cursor", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SIPO_NODRAWCURSOR);
-       RNA_def_property_ui_text(prop, "Show Cursor", "Show 2D cursor");
+       RNA_def_property_ui_text(prop, N_("Show Cursor"), N_("Show 2D cursor"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
        
        prop= RNA_def_property(srna, "cursor_position_y", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "cursorVal");
-       RNA_def_property_ui_text(prop, "Cursor Y-Value", "Graph Editor 2D-Value cursor - Y-Value component");
+       RNA_def_property_ui_text(prop, N_("Cursor Y-Value"), N_("Graph Editor 2D-Value cursor - Y-Value component"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
        
        prop= RNA_def_property(srna, "pivot_point", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "around");
        RNA_def_property_enum_items(prop, gpivot_items);
-       RNA_def_property_ui_text(prop, "Pivot Point", "Pivot center for rotation/scaling");
+       RNA_def_property_ui_text(prop, N_("Pivot Point"), N_("Pivot center for rotation/scaling"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
 
        /* dopesheet */
        prop= RNA_def_property(srna, "dopesheet", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "DopeSheet");
        RNA_def_property_pointer_sdna(prop, NULL, "ads");
-       RNA_def_property_ui_text(prop, "DopeSheet", "Settings for filtering animation data");
+       RNA_def_property_ui_text(prop, N_("DopeSheet"), N_("Settings for filtering animation data"));
 
        /* autosnap */
        prop= RNA_def_property(srna, "auto_snap", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "autosnap");
        RNA_def_property_enum_items(prop, autosnap_items);
-       RNA_def_property_ui_text(prop, "Auto Snap", "Automatic time snapping settings for transformations");
+       RNA_def_property_ui_text(prop, N_("Auto Snap"), N_("Automatic time snapping settings for transformations"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
        
        /* readonly state info */
        prop= RNA_def_property(srna, "has_ghost_curves", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", 0); /* XXX: hack to make this compile, since this property doesn't actually exist*/
        RNA_def_property_boolean_funcs(prop, "rna_SpaceGraphEditor_has_ghost_curves_get", NULL);
-       RNA_def_property_ui_text(prop, "Has Ghost Curves", "Graph Editor instance has some ghost curves stored");
+       RNA_def_property_ui_text(prop, N_("Has Ghost Curves"), N_("Graph Editor instance has some ghost curves stored"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_GRAPH, NULL);
 }
 
@@ -2076,42 +2076,42 @@ static void rna_def_space_nla(BlenderRNA *brna)
        
        srna= RNA_def_struct(brna, "SpaceNLA", "Space");
        RNA_def_struct_sdna(srna, "SpaceNla");
-       RNA_def_struct_ui_text(srna, "Space Nla Editor", "NLA editor space data");
+       RNA_def_struct_ui_text(srna, N_("Space Nla Editor"), N_("NLA editor space data"));
        
        /* display */
        prop= RNA_def_property(srna, "show_seconds", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SNLA_DRAWTIME);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE); // XXX for now, only set with operator
-       RNA_def_property_ui_text(prop, "Show Seconds", "Show timing in seconds not frames");
+       RNA_def_property_ui_text(prop, N_("Show Seconds"), N_("Show timing in seconds not frames"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NLA, NULL);
        
        prop= RNA_def_property(srna, "show_frame_indicator", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SNLA_NODRAWCFRANUM);
-       RNA_def_property_ui_text(prop, "Show Frame Number Indicator", "Show frame number beside the current frame indicator line");
+       RNA_def_property_ui_text(prop, N_("Show Frame Number Indicator"), N_("Show frame number beside the current frame indicator line"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NLA, NULL);
        
        prop= RNA_def_property(srna, "show_strip_curves", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SNLA_NOSTRIPCURVES);
-       RNA_def_property_ui_text(prop, "Show Control Curves", "Show influence curves on strips");
+       RNA_def_property_ui_text(prop, N_("Show Control Curves"), N_("Show influence curves on strips"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NLA, NULL);
        
        /* editing */
        prop= RNA_def_property(srna, "use_realtime_update", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SNLA_NOREALTIMEUPDATES);
-       RNA_def_property_ui_text(prop, "Realtime Updates", "When transforming strips, changes to the animation data are flushed to other views");
+       RNA_def_property_ui_text(prop, N_("Realtime Updates"), N_("When transforming strips, changes to the animation data are flushed to other views"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NLA, NULL);
 
        /* dopesheet */
        prop= RNA_def_property(srna, "dopesheet", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "DopeSheet");
        RNA_def_property_pointer_sdna(prop, NULL, "ads");
-       RNA_def_property_ui_text(prop, "DopeSheet", "Settings for filtering animation data");
+       RNA_def_property_ui_text(prop, N_("DopeSheet"), N_("Settings for filtering animation data"));
 
        /* autosnap */
        prop= RNA_def_property(srna, "auto_snap", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "autosnap");
        RNA_def_property_enum_items(prop, autosnap_items);
-       RNA_def_property_ui_text(prop, "Auto Snap", "Automatic time snapping settings for transformations");
+       RNA_def_property_ui_text(prop, N_("Auto Snap"), N_("Automatic time snapping settings for transformations"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NLA, NULL);
 }
 
@@ -2122,7 +2122,7 @@ static void rna_def_space_time(BlenderRNA *brna)
        
        srna= RNA_def_struct(brna, "SpaceTimeline", "Space");
        RNA_def_struct_sdna(srna, "SpaceTime");
-       RNA_def_struct_ui_text(srna, "Space Timeline Editor", "Timeline editor space data");
+       RNA_def_struct_ui_text(srna, N_("Space Timeline Editor"), N_("Timeline editor space data"));
        
        /* view settings */     
        prop= RNA_def_property(srna, "show_only_selected", PROP_BOOLEAN, PROP_NONE);
@@ -2168,12 +2168,12 @@ static void rna_def_console_line(BlenderRNA *brna)
        PropertyRNA *prop;
        
        srna = RNA_def_struct(brna, "ConsoleLine", NULL);
-       RNA_def_struct_ui_text(srna, "Console Input", "Input line for the interactive console");
+       RNA_def_struct_ui_text(srna, N_("Console Input"), N_("Input line for the interactive console"));
        // XXX using non-inited "prop", uh? RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CONSOLE, NULL);
        
        prop= RNA_def_property(srna, "body", PROP_STRING, PROP_NONE);
        RNA_def_property_string_funcs(prop, "rna_ConsoleLine_body_get", "rna_ConsoleLine_body_length", "rna_ConsoleLine_body_set");
-       RNA_def_property_ui_text(prop, "Line", "Text in the line");
+       RNA_def_property_ui_text(prop, N_("Line"), N_("Text in the line"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CONSOLE, NULL);
        
        prop= RNA_def_property(srna, "current_character", PROP_INT, PROP_NONE); /* copied from text editor */
@@ -2189,13 +2189,13 @@ static void rna_def_space_console(BlenderRNA *brna)
        
        srna= RNA_def_struct(brna, "SpaceConsole", "Space");
        RNA_def_struct_sdna(srna, "SpaceConsole");
-       RNA_def_struct_ui_text(srna, "Space Console", "Interactive python console");
+       RNA_def_struct_ui_text(srna, N_("Space Console"), N_("Interactive python console"));
        
        /* display */
        prop= RNA_def_property(srna, "font_size", PROP_INT, PROP_NONE); /* copied from text editor */
        RNA_def_property_int_sdna(prop, NULL, "lheight");
        RNA_def_property_range(prop, 8, 32);
-       RNA_def_property_ui_text(prop, "Font Size", "Font size to use for displaying the text");
+       RNA_def_property_ui_text(prop, N_("Font Size"), N_("Font size to use for displaying the text"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CONSOLE, NULL);
 
 
@@ -2208,20 +2208,20 @@ static void rna_def_space_console(BlenderRNA *brna)
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_CONSOLE, NULL);
 
        prop= RNA_def_property(srna, "prompt", PROP_STRING, PROP_NONE);
-       RNA_def_property_ui_text(prop, "Prompt", "Command line prompt");
+       RNA_def_property_ui_text(prop, N_("Prompt"), N_("Command line prompt"));
        
        prop= RNA_def_property(srna, "language", PROP_STRING, PROP_NONE);
-       RNA_def_property_ui_text(prop, "Language", "Command line prompt language");
+       RNA_def_property_ui_text(prop, N_("Language"), N_("Command line prompt language"));
 
        prop= RNA_def_property(srna, "history", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "history", NULL);
        RNA_def_property_struct_type(prop, "ConsoleLine");
-       RNA_def_property_ui_text(prop, "History", "Command history");
+       RNA_def_property_ui_text(prop, N_("History"), N_("Command history"));
        
        prop= RNA_def_property(srna, "scrollback", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "scrollback", NULL);
        RNA_def_property_struct_type(prop, "ConsoleLine");
-       RNA_def_property_ui_text(prop, "Output", "Command output");
+       RNA_def_property_ui_text(prop, N_("Output"), N_("Command output"));
 }
 
 static void rna_def_fileselect_params(BlenderRNA *brna)
@@ -2344,15 +2344,15 @@ static void rna_def_space_filebrowser(BlenderRNA *brna)
 
        srna= RNA_def_struct(brna, "SpaceFileBrowser", "Space");
        RNA_def_struct_sdna(srna, "SpaceFile");
-       RNA_def_struct_ui_text(srna, "Space File Browser", "File browser space data");
+       RNA_def_struct_ui_text(srna, N_("Space File Browser"), N_("File browser space data"));
 
        prop= RNA_def_property(srna, "params", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "params");
-       RNA_def_property_ui_text(prop, "Filebrowser Parameter", "Parameters and Settings for the Filebrowser");
+       RNA_def_property_ui_text(prop, N_("Filebrowser Parameter"), N_("Parameters and Settings for the Filebrowser"));
        
        prop= RNA_def_property(srna, "operator", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "op");
-       RNA_def_property_ui_text(prop, "Operator", "");
+       RNA_def_property_ui_text(prop, N_("Operator"), "");
 }
 
 static void rna_def_space_info(BlenderRNA *brna)
@@ -2362,32 +2362,32 @@ static void rna_def_space_info(BlenderRNA *brna)
 
        srna= RNA_def_struct(brna, "SpaceInfo", "Space");
        RNA_def_struct_sdna(srna, "SpaceInfo");
-       RNA_def_struct_ui_text(srna, "Space Info", "Info space data");
+       RNA_def_struct_ui_text(srna, N_("Space Info"), N_("Info space data"));
        
        /* reporting display */
        prop= RNA_def_property(srna, "show_report_debug", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "rpt_mask", INFO_RPT_DEBUG);
-       RNA_def_property_ui_text(prop, "Show Debug", "Display debug reporting info");
+       RNA_def_property_ui_text(prop, N_("Show Debug"), N_("Display debug reporting info"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_INFO_REPORT, NULL);
        
        prop= RNA_def_property(srna, "show_report_info", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "rpt_mask", INFO_RPT_INFO);
-       RNA_def_property_ui_text(prop, "Show Info", "Display general information");
+       RNA_def_property_ui_text(prop, N_("Show Info"), N_("Display general information"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_INFO_REPORT, NULL);
        
        prop= RNA_def_property(srna, "show_report_operator", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "rpt_mask", INFO_RPT_OP);
-       RNA_def_property_ui_text(prop, "Show Operator", "Display the operator log");
+       RNA_def_property_ui_text(prop, N_("Show Operator"), N_("Display the operator log"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_INFO_REPORT, NULL);
        
        prop= RNA_def_property(srna, "show_report_warning", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "rpt_mask", INFO_RPT_WARN);
-       RNA_def_property_ui_text(prop, "Show Warn", "Display warnings");
+       RNA_def_property_ui_text(prop, N_("Show Warn"), N_("Display warnings"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_INFO_REPORT, NULL);
        
        prop= RNA_def_property(srna, "show_report_error", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "rpt_mask", INFO_RPT_ERR);
-       RNA_def_property_ui_text(prop, "Show Error", "Display error text");
+       RNA_def_property_ui_text(prop, N_("Show Error"), N_("Display error text"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_INFO_REPORT, NULL);     
 }
 
@@ -2398,7 +2398,7 @@ static void rna_def_space_userpref(BlenderRNA *brna)
        
        srna= RNA_def_struct(brna, "SpaceUserPreferences", "Space");
        RNA_def_struct_sdna(srna, "SpaceUserPref");
-       RNA_def_struct_ui_text(srna, "Space User Preferences", "User preferences space data");
+       RNA_def_struct_ui_text(srna, N_("Space User Preferences"), N_("User preferences space data"));
        
        prop= RNA_def_property(srna, "filter_text", PROP_STRING, PROP_NONE);
        RNA_def_property_string_sdna(prop, NULL, "filter");
@@ -2412,61 +2412,61 @@ static void rna_def_space_node(BlenderRNA *brna)
        PropertyRNA *prop;
 
        static EnumPropertyItem tree_type_items[] = {
-               {NTREE_SHADER, "MATERIAL", ICON_MATERIAL, "Material", "Material nodes"},
-               {NTREE_TEXTURE, "TEXTURE", ICON_TEXTURE, "Texture", "Texture nodes"},
-               {NTREE_COMPOSIT, "COMPOSITING", ICON_RENDERLAYERS, "Compositing", "Compositing nodes"},
+               {NTREE_SHADER, "MATERIAL", ICON_MATERIAL, N_("Material"), N_("Material nodes")},
+               {NTREE_TEXTURE, "TEXTURE", ICON_TEXTURE, N_("Texture"), N_("Texture nodes")},
+               {NTREE_COMPOSIT, "COMPOSITING", ICON_RENDERLAYERS, N_("Compositing"), N_("Compositing nodes")},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem texture_type_items[] = {
-               {SNODE_TEX_OBJECT, "OBJECT", ICON_OBJECT_DATA, "Object", "Edit texture nodes from Object"},
-               {SNODE_TEX_WORLD, "WORLD", ICON_WORLD_DATA, "World", "Edit texture nodes from World"},
-               {SNODE_TEX_BRUSH, "BRUSH", ICON_BRUSH_DATA, "Brush", "Edit texture nodes from Brush"},
+               {SNODE_TEX_OBJECT, "OBJECT", ICON_OBJECT_DATA, N_("Object"), N_("Edit texture nodes from Object")},
+               {SNODE_TEX_WORLD, "WORLD", ICON_WORLD_DATA, N_("World"), N_("Edit texture nodes from World")},
+               {SNODE_TEX_BRUSH, "BRUSH", ICON_BRUSH_DATA, N_("Brush"), N_("Edit texture nodes from Brush")},
                {0, NULL, 0, NULL, NULL}};
 
        static EnumPropertyItem backdrop_channels_items[] = {
-               {0, "COLOR", ICON_IMAGE_RGB, "Color", "Draw image with RGB colors"},
-               {SNODE_USE_ALPHA, "COLOR_ALPHA", ICON_IMAGE_RGB_ALPHA, "Color and Alpha", "Draw image with RGB colors and alpha transparency"},
-               {SNODE_SHOW_ALPHA, "ALPHA", ICON_IMAGE_ALPHA, "Alpha", "Draw alpha transparency channel"},
+               {0, "COLOR", ICON_IMAGE_RGB, N_("Color"), N_("Draw image with RGB colors")},
+               {SNODE_USE_ALPHA, "COLOR_ALPHA", ICON_IMAGE_RGB_ALPHA, N_("Color and Alpha"), N_("Draw image with RGB colors and alpha transparency")},
+               {SNODE_SHOW_ALPHA, "ALPHA", ICON_IMAGE_ALPHA, N_("Alpha"), N_("Draw alpha transparency channel")},
                {0, NULL, 0, NULL, NULL}};
 
        srna= RNA_def_struct(brna, "SpaceNodeEditor", "Space");
        RNA_def_struct_sdna(srna, "SpaceNode");
-       RNA_def_struct_ui_text(srna, "Space Node Editor", "Node editor space data");
+       RNA_def_struct_ui_text(srna, N_("Space Node Editor"), N_("Node editor space data"));
 
        prop= RNA_def_property(srna, "tree_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "treetype");
        RNA_def_property_enum_items(prop, tree_type_items);
-       RNA_def_property_ui_text(prop, "Tree Type", "Node tree type to display and edit");
+       RNA_def_property_ui_text(prop, N_("Tree Type"), N_("Node tree type to display and edit"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NODE, NULL);
 
        prop= RNA_def_property(srna, "texture_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "texfrom");
        RNA_def_property_enum_items(prop, texture_type_items);
-       RNA_def_property_ui_text(prop, "Texture Type", "Type of data to take texture from");
+       RNA_def_property_ui_text(prop, N_("Texture Type"), N_("Type of data to take texture from"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NODE, NULL);
 
        prop= RNA_def_property(srna, "id", PROP_POINTER, PROP_NONE);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "ID", "Datablock whose nodes are being edited");
+       RNA_def_property_ui_text(prop, "ID", N_("Datablock whose nodes are being edited"));
 
        prop= RNA_def_property(srna, "id_from", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "from");
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "ID From", "Datablock from which the edited datablock is linked");
+       RNA_def_property_ui_text(prop, N_("ID From"), N_("Datablock from which the edited datablock is linked"));
 
        prop= RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "nodetree");
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
-       RNA_def_property_ui_text(prop, "Node Tree", "Node tree being displayed and edited");
+       RNA_def_property_ui_text(prop, N_("Node Tree"), N_("Node tree being displayed and edited"));
 
        prop= RNA_def_property(srna, "show_backdrop", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SNODE_BACKDRAW);
-       RNA_def_property_ui_text(prop, "Backdrop", "Use active Viewer Node output as backdrop for compositing nodes");
+       RNA_def_property_ui_text(prop, N_("Backdrop"), N_("Use active Viewer Node output as backdrop for compositing nodes"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NODE_VIEW, NULL);
 
        prop= RNA_def_property(srna, "use_auto_render", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SNODE_AUTO_RENDER);
-       RNA_def_property_ui_text(prop, "Auto Render", "Re-render and composite changed layer on 3D edits");
+       RNA_def_property_ui_text(prop, N_("Auto Render"), N_("Re-render and composite changed layer on 3D edits"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NODE_VIEW, NULL);
        
        prop= RNA_def_property(srna, "backdrop_zoom", PROP_FLOAT, PROP_NONE);
@@ -2474,23 +2474,23 @@ static void rna_def_space_node(BlenderRNA *brna)
        RNA_def_property_float_default(prop, 1.0f);
        RNA_def_property_range(prop, 0.01f, FLT_MAX);
        RNA_def_property_ui_range(prop, 0.01, 100, 1, 2);
-       RNA_def_property_ui_text(prop, "Backdrop Zoom", "Backdrop zoom factor");
+       RNA_def_property_ui_text(prop, N_("Backdrop Zoom"), N_("Backdrop zoom factor"));
        RNA_def_property_update(prop, NC_SPACE|ND_SPACE_NODE_VIEW, NULL);
        
        prop= RNA_def_property(srna, "backdrop_x", PROP_FLOAT, PROP_NONE);
        RNA_def_property_float_sdna(prop, NULL, "xof");
-       RNA_def_property_ui_text(prop, "Backdrop X", "Backdrop X offset");