diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-09-15 17:20:18 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-09-15 17:20:18 +0400 |
commit | 0eda51f2eabe24016efdc8f07825f1ba667cac33 (patch) | |
tree | 03d6f876da6b1256b8890b89db09b63952fa544f /source/blender/python/generic | |
parent | 30293dc2ca8052ad0c7113c77365feca590f4d05 (diff) |
Fixing issues with i18n stuff:
- Make gettext stuff draw-time. so switching between languages
can happens without restart now.
- Added option to translate visible interface (menus, buttons, labels)
and tooltips. Now it's possible to have english UI and localized tooltips.
- Clean-up sources, do not use gettext stuff for things which can be
collected with RNA.
- Fix issues with windows 64bit and ru_RU locale on my desktop
(it was codepage issue).
- Added operator "Get Messages" which generates new text block with
with all strings collected from RNA.
- Changed script for updating blender.pot so now it appends
messages collected from rna to automatically gathered messages.
To update .pot you have to re-generate messages.txt using "Get Messages"
operator and then run update_pot script.
- Clean up old translation stuff which wasn't used and most probably
wouldn't be used.
- Return back "International Fonts" option, so if it's disabled, no
gettext lookups happens on draw.
- Merged read_homefile function back. No need in splitting it.
TODO:
- Custom fonts and font size.
Current font isn't nice at least for russian locale, it's
difficult to read it.
- Put references to messages.txt so gettext can merge translation when
name/description of some property changes.
Diffstat (limited to 'source/blender/python/generic')
-rw-r--r-- | source/blender/python/generic/CMakeLists.txt | 3 | ||||
-rw-r--r-- | source/blender/python/generic/blf_py_api.c | 17 |
2 files changed, 19 insertions, 1 deletions
diff --git a/source/blender/python/generic/CMakeLists.txt b/source/blender/python/generic/CMakeLists.txt index 8dfbf476995..0a49036c15d 100644 --- a/source/blender/python/generic/CMakeLists.txt +++ b/source/blender/python/generic/CMakeLists.txt @@ -48,5 +48,8 @@ set(SRC py_capi_utils.h ) +if(WITH_INTERNATIONAL) + add_definitions(-DINTERNATIONAL) +endif() blender_add_lib(bf_python_ext "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/python/generic/blf_py_api.c b/source/blender/python/generic/blf_py_api.c index 7bc115f943c..9a4bcf22ed8 100644 --- a/source/blender/python/generic/blf_py_api.c +++ b/source/blender/python/generic/blf_py_api.c @@ -34,6 +34,9 @@ #include "BLI_utildefines.h" +#ifdef INTERNATIONAL +#include "DNA_userdef_types.h" /* is it bad level? */ +#endif PyDoc_STRVAR(py_blf_position_doc, @@ -367,6 +370,7 @@ static PyObject *py_blf_load(PyObject *UNUSED(self), PyObject *args) return PyLong_FromLong(BLF_load(filename)); } +#ifdef INTERNATIONAL PyDoc_STRVAR(py_blf_gettext_doc, ".. function:: gettext(msgid)\n" "\n" @@ -380,9 +384,17 @@ PyDoc_STRVAR(py_blf_gettext_doc, static PyObject *py_blf_gettext(PyObject *UNUSED(self), PyObject *args) { char* msgid; + const char *text; + if (!PyArg_ParseTuple(args, "s:blf.gettext", &msgid)) return NULL; - return PyUnicode_FromString( BLF_gettext( msgid ) ); + + if((U.transopts&USER_DOTRANSLATE) && (U.transopts&USER_TR_IFACE)) + text = BLF_gettext( msgid ); + else + text = msgid; + + return PyUnicode_FromString( text ); } PyDoc_STRVAR(py_blf_fake_gettext_doc, @@ -403,6 +415,7 @@ static PyObject *py_blf_fake_gettext(PyObject *UNUSED(self), PyObject *args) return PyUnicode_FromString( msgid ); } +#endif /*----------------------------MODULE INIT-------------------------*/ static PyMethodDef BLF_methods[] = { @@ -419,8 +432,10 @@ static PyMethodDef BLF_methods[] = { {"shadow_offset", (PyCFunction) py_blf_shadow_offset, METH_VARARGS, py_blf_shadow_offset_doc}, {"size", (PyCFunction) py_blf_size, METH_VARARGS, py_blf_size_doc}, {"load", (PyCFunction) py_blf_load, METH_VARARGS, py_blf_load_doc}, +#ifdef INTERNATIONAL {"gettext", (PyCFunction) py_blf_gettext, METH_VARARGS, py_blf_gettext_doc}, {"fake_gettext", (PyCFunction) py_blf_fake_gettext, METH_VARARGS, py_blf_fake_gettext_doc}, +#endif {NULL, NULL, 0, NULL} }; |