[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53952] trunk/blender/source/blender/ python/intern/bpy_app_translations.c: Expose locale_explode in bpy.app. translations, will be handy in i18n manipulation scripts/addons.

Bastien Montagne montagne29 at wanadoo.fr
Mon Jan 21 11:57:30 CET 2013


Revision: 53952
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53952
Author:   mont29
Date:     2013-01-21 10:57:24 +0000 (Mon, 21 Jan 2013)
Log Message:
-----------
Expose locale_explode in bpy.app.translations, will be handy in i18n manipulation scripts/addons.

Modified Paths:
--------------
    trunk/blender/source/blender/python/intern/bpy_app_translations.c

Modified: trunk/blender/source/blender/python/intern/bpy_app_translations.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_app_translations.c	2013-01-21 10:52:34 UTC (rev 53951)
+++ trunk/blender/source/blender/python/intern/bpy_app_translations.c	2013-01-21 10:57:24 UTC (rev 53952)
@@ -471,6 +471,37 @@
 	return PyUnicode_FromString(BLF_pgettext(msgctxt ? msgctxt : BLF_I18NCONTEXT_DEFAULT, msgid));
 }
 
+PyDoc_STRVAR(app_translations_locale_explode_doc,
+".. method:: locale_explode(locale)\n"
+"\n"
+"   Return all components and their combinations  of the given ISO locale string.\n"
+"\n"
+"   >>> bpy.app.translations.locale_explode(\"sr_RS at latin\")\n"
+"   (\"sr\", \"RS\", \"latin\", \"sr_RS\", \"sr at latin\")\n"
+"\n"
+"   For non-complete locales, missing elements will be None.\n"
+"\n"
+"   :arg locale: The ISO locale string to explode.\n"
+"   :type msgid: string\n"
+"   :return: A tuple (language, country, variant, language_country, language at variant).\n"
+"\n"
+);
+static PyObject *app_translations_locale_explode(BlenderAppTranslations *UNUSED(self), PyObject *args, PyObject *kw)
+{
+	static const char *kwlist[] = {"locale", NULL};
+	const char *locale;
+	char *language, *country, *variant, *language_country, *language_variant;
+
+	if (!PyArg_ParseTupleAndKeywords(args, kw, "s:bpy.app.translations.locale_explode", (char **)kwlist, &locale))
+	{
+		return NULL;
+	}
+
+	BLF_locale_explode(locale, &language, &country, &variant, &language_country, &language_variant);
+
+	return Py_BuildValue("sssss", language, country, variant, language_country, language_variant);
+}
+
 PyMethodDef app_translations_methods[] = {
 	/* Can't use METH_KEYWORDS alone, see http://bugs.python.org/issue11587 */
 	{(char *)"register", (PyCFunction)app_translations_py_messages_register, METH_VARARGS | METH_KEYWORDS,
@@ -479,6 +510,8 @@
 	                       app_translations_py_messages_unregister_doc},
 	{(char *)"pgettext", (PyCFunction)app_translations_pgettext, METH_VARARGS | METH_KEYWORDS | METH_STATIC,
 	                     app_translations_pgettext_doc},
+	{(char *)"locale_explode", (PyCFunction)app_translations_locale_explode, METH_VARARGS | METH_KEYWORDS | METH_STATIC,
+	                           app_translations_locale_explode_doc},
 	{NULL}
 };
 




More information about the Bf-blender-cvs mailing list