[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