[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40427] trunk/blender/source/blender: py/ rna string subtypes for strings which should be automatically translated:

Campbell Barton ideasman42 at gmail.com
Wed Sep 21 15:53:36 CEST 2011


Revision: 40427
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40427
Author:   campbellbarton
Date:     2011-09-21 13:53:35 +0000 (Wed, 21 Sep 2011)
Log Message:
-----------
py/rna string subtypes for strings which should be automatically translated:

  layout.prop("blah", text="Translate Me!")

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/RNA_types.h
    trunk/blender/source/blender/makesrna/intern/makesrna.c
    trunk/blender/source/blender/makesrna/intern/rna_define.c
    trunk/blender/source/blender/makesrna/intern/rna_rna.c
    trunk/blender/source/blender/makesrna/intern/rna_ui_api.c
    trunk/blender/source/blender/python/intern/CMakeLists.txt
    trunk/blender/source/blender/python/intern/bpy_props.c
    trunk/blender/source/blender/python/intern/bpy_rna.c

Modified: trunk/blender/source/blender/makesrna/RNA_types.h
===================================================================
--- trunk/blender/source/blender/makesrna/RNA_types.h	2011-09-21 13:30:52 UTC (rev 40426)
+++ trunk/blender/source/blender/makesrna/RNA_types.h	2011-09-21 13:53:35 UTC (rev 40427)
@@ -110,6 +110,7 @@
 	PROP_FILEPATH = 1,
 	PROP_DIRPATH = 2,
 	PROP_FILENAME = 3,
+	PROP_TRANSLATE = 4, /* a string which should be translated */
 
 	/* numbers */
 	PROP_UNSIGNED = 13,

Modified: trunk/blender/source/blender/makesrna/intern/makesrna.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/makesrna.c	2011-09-21 13:30:52 UTC (rev 40426)
+++ trunk/blender/source/blender/makesrna/intern/makesrna.c	2011-09-21 13:53:35 UTC (rev 40427)
@@ -1815,6 +1815,7 @@
 		case PROP_FILEPATH: return "PROP_FILEPATH";
 		case PROP_FILENAME: return "PROP_FILENAME";
 		case PROP_DIRPATH: return "PROP_DIRPATH";
+		case PROP_TRANSLATE: return "PROP_TRANSLATE";
 		case PROP_UNSIGNED: return "PROP_UNSIGNED";
 		case PROP_PERCENTAGE: return "PROP_PERCENTAGE";
 		case PROP_FACTOR: return "PROP_FACTOR";

Modified: trunk/blender/source/blender/makesrna/intern/rna_define.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_define.c	2011-09-21 13:30:52 UTC (rev 40426)
+++ trunk/blender/source/blender/makesrna/intern/rna_define.c	2011-09-21 13:53:35 UTC (rev 40427)
@@ -2240,6 +2240,20 @@
 	return prop;
 }
 
+PropertyRNA *RNA_def_string_translate(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen,
+	const char *ui_name, const char *ui_description)
+{
+	ContainerRNA *cont= cont_;
+	PropertyRNA *prop;
+
+	prop= RNA_def_property(cont, identifier, PROP_STRING, PROP_TRANSLATE);
+	if(maxlen != 0) RNA_def_property_string_maxlength(prop, maxlen);
+	if(default_value) RNA_def_property_string_default(prop, default_value);
+	RNA_def_property_ui_text(prop, ui_name, ui_description);
+
+	return prop;
+}
+
 PropertyRNA *RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, 
 	const char *ui_name, const char *ui_description)
 {

Modified: trunk/blender/source/blender/makesrna/intern/rna_rna.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_rna.c	2011-09-21 13:30:52 UTC (rev 40426)
+++ trunk/blender/source/blender/makesrna/intern/rna_rna.c	2011-09-21 13:53:35 UTC (rev 40427)
@@ -53,6 +53,7 @@
 	{PROP_FILEPATH, "FILEPATH", 0, "File Path", ""},
 	{PROP_DIRPATH, "DIRPATH", 0, "Directory Path", ""},
 	{PROP_FILENAME, "FILENAME", 0, "File Name", ""},
+	{PROP_TRANSLATE, "TRANSLATE", 0, "Translate", ""},
 
 	/* numbers */
 	{PROP_UNSIGNED, "UNSIGNED", 0, "Unsigned", ""},

Modified: trunk/blender/source/blender/makesrna/intern/rna_ui_api.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_ui_api.c	2011-09-21 13:30:52 UTC (rev 40426)
+++ trunk/blender/source/blender/makesrna/intern/rna_ui_api.c	2011-09-21 13:53:35 UTC (rev 40427)
@@ -84,7 +84,7 @@
 {
 	PropertyRNA *prop;
 
-	RNA_def_string(func, "text", "", 0, "", "Override automatic text of the item");
+	prop= RNA_def_string_translate(func, "text", "", 0, "", "Override automatic text of the item");
 
 	prop= RNA_def_property(func, "icon", PROP_ENUM, PROP_NONE);
 	RNA_def_property_enum_items(prop, icon_items);
@@ -309,7 +309,7 @@
 	parm= RNA_def_string(func, "type_property", "", 0, "",
 	                     "Identifier of property in data giving the type of the ID-blocks to use");
 	RNA_def_property_flag(parm, PROP_REQUIRED);
-	RNA_def_string(func, "text", "", 0, "", "Custom label to display in UI");
+	RNA_def_string_translate(func, "text", "", 0, "", "Custom label to display in UI");
 	
 	func= RNA_def_function(srna, "template_path_builder", "uiTemplatePathBuilder");
 	parm= RNA_def_pointer(func, "data", "AnyType", "", "Data from which to take property");
@@ -318,7 +318,7 @@
 	RNA_def_property_flag(parm, PROP_REQUIRED);
 	parm= RNA_def_pointer(func, "root", "ID", "", "ID-block from which path is evaluated from");
 	RNA_def_property_flag(parm, PROP_REQUIRED|PROP_RNAPTR);
-	RNA_def_string(func, "text", "", 0, "", "Custom label to display in UI");
+	RNA_def_string_translate(func, "text", "", 0, "", "Custom label to display in UI");
 	
 	func= RNA_def_function(srna, "template_modifier", "uiTemplateModifier");
 	RNA_def_function_flag(func, FUNC_USE_CONTEXT);

Modified: trunk/blender/source/blender/python/intern/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/python/intern/CMakeLists.txt	2011-09-21 13:30:52 UTC (rev 40426)
+++ trunk/blender/source/blender/python/intern/CMakeLists.txt	2011-09-21 13:53:35 UTC (rev 40427)
@@ -95,4 +95,8 @@
 	add_definitions(-DWITH_AUDASPACE)
 endif()
 
+if(WITH_INTERNATIONAL)
+        add_definitions(-DINTERNATIONAL)
+endif()
+
 blender_add_lib(bf_python "${SRC}" "${INC}" "${INC_SYS}")

Modified: trunk/blender/source/blender/python/intern/bpy_props.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_props.c	2011-09-21 13:30:52 UTC (rev 40426)
+++ trunk/blender/source/blender/python/intern/bpy_props.c	2011-09-21 13:53:35 UTC (rev 40427)
@@ -72,6 +72,7 @@
 	{PROP_FILEPATH, "FILE_PATH", 0, "File Path", ""},
 	{PROP_DIRPATH, "DIR_PATH", 0, "Directory Path", ""},
 	{PROP_FILENAME, "FILENAME", 0, "Filename", ""},
+    {PROP_TRANSLATE, "TRANSLATE", 0, "Translate", ""},
 
 	{PROP_NONE, "NONE", 0, "None", ""},
 	{0, NULL, 0, NULL, NULL}};

Modified: trunk/blender/source/blender/python/intern/bpy_rna.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_rna.c	2011-09-21 13:30:52 UTC (rev 40426)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c	2011-09-21 13:53:35 UTC (rev 40427)
@@ -73,6 +73,10 @@
 #include "../generic/IDProp.h" /* for IDprop lookups */
 #include "../generic/py_capi_utils.h"
 
+#ifdef INTERNATIONAL
+#include "UI_interface.h" /* bad level call into editors */
+#endif
+
 #define USE_PEDANTIC_WRITE
 #define USE_MATHUTILS
 #define USE_STRING_COERCE
@@ -1519,6 +1523,12 @@
 			}
 			else {
 				param= _PyUnicode_AsString(value);
+#ifdef INTERNATIONAL
+				if(subtype == PROP_TRANSLATE) {
+					param= UI_translate_do_iface(param);
+				}
+#endif // INTERNATIONAL
+
 			}
 #else // USE_STRING_COERCE
 			param= _PyUnicode_AsString(value);




More information about the Bf-blender-cvs mailing list