Add BLF_gettext(msgid) for C, and blf.gettext(msgid) for Python.
authorXiao Xiangquan <xiaoxiangquan@gmail.com>
Mon, 30 May 2011 11:03:16 +0000 (11:03 +0000)
committerXiao Xiangquan <xiaoxiangquan@gmail.com>
Mon, 30 May 2011 11:03:16 +0000 (11:03 +0000)
source/blender/blenfont/BLF_api.h
source/blender/blenfont/intern/blf.c
source/blender/python/generic/blf_py_api.c

index 57f8c83eda61963661a2820cb9d2e7ecaa65b022..79c8c3b9a1ae450388fb9d8ee36a7f8c7ebe8c0f 100644 (file)
@@ -41,6 +41,8 @@ void BLF_exit(void);
 
 void BLF_cache_clear(void);
 
+char* BLF_gettext(const char *msgid);
+
 int BLF_load(const char *name);
 int BLF_load_mem(const char *name, unsigned char *mem, int mem_size);
 
index c0e62b1c0c70340d72bcf2b58efbebc2ecc8c33d..1d2ac298af411179ac6d8304b9f69580a83e9615 100644 (file)
@@ -37,6 +37,7 @@
 #include <math.h>
 
 #include <ft2build.h>
+#include <libintl.h>
 
 #include FT_FREETYPE_H
 #include FT_GLYPH_H
@@ -120,6 +121,11 @@ void BLF_cache_clear(void)
        }
 }
 
+char* BLF_gettext(const char *msgid)
+{
+       return gettext( msgid );
+}
+
 static int blf_search(const char *name)
 {
        FontBLF *font;
index 3cf0b0f1f27e76cfa39d1fa0be084c7f664a8a84..f7b49ad28dc72b6d6b191154ac6aaa3c7e75eaa7 100644 (file)
@@ -367,6 +367,30 @@ static PyObject *py_blf_load(PyObject *UNUSED(self), PyObject *args)
        return PyLong_FromLong(BLF_load(filename));
 }
 
+PyDoc_STRVAR(py_blf_gettext_doc,
+".. function:: gettext(msgid)\n"
+"\n"
+"   Get a msg in local language.\n"
+"\n"
+"   :arg msgid: the source string.\n"
+"   :type msgid: string\n"
+"   :return: the localized string.\n"
+"   :rtype: string\n"
+);
+static PyObject *py_blf_gettext(PyObject *UNUSED(self), PyObject *args)
+{
+       char* msgid;
+       char* msgstr;
+       char* error_handle;
+
+       if (!PyArg_ParseTuple(args, "s:blf.gettext", &msgid))
+               return NULL;
+
+       msgstr = BLF_gettext( msgid );
+
+       return PyUnicode_DecodeUTF8( msgstr, strlen(msgstr), error_handle );
+}
+
 /*----------------------------MODULE INIT-------------------------*/
 static PyMethodDef BLF_methods[] = {
        {"aspect", (PyCFunction) py_blf_aspect, METH_VARARGS, py_blf_aspect_doc},
@@ -382,6 +406,7 @@ 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},
+       {"gettext", (PyCFunction) py_blf_gettext, METH_VARARGS, py_blf_gettext_doc},
        {NULL, NULL, 0, NULL}
 };