summaryrefslogtreecommitdiffstats
path: root/src/document.cpp
diff options
context:
space:
mode:
authorAndrius Ramanauskas <knutux@gmail.com>2006-04-20 16:06:59 +0000
committerknutux <knutux@users.sourceforge.net>2006-04-20 16:06:59 +0000
commit59f47a0c4156ad31d8c685ccac2c02ac83c658c6 (patch)
treeca2bc01c578b9b70fe4bd9e9c2a40c648f81f971 /src/document.cpp
parentdisabling rendering optimization for dashed strokes (until optimization is tw... (diff)
downloadinkscape-59f47a0c4156ad31d8c685ccac2c02ac83c658c6.tar.gz
inkscape-59f47a0c4156ad31d8c685ccac2c02ac83c658c6.zip
SVG 1.1 Conditional Processing Module rendering support (<switch> element, requiredReatures/requiredExtensions/systemLanguage attributes).
Two more W3C SVG Test Suite testes pass after this change. (bzr r556)
Diffstat (limited to 'src/document.cpp')
-rw-r--r--src/document.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/document.cpp b/src/document.cpp
index 863266c05..ef04735ef 100644
--- a/src/document.cpp
+++ b/src/document.cpp
@@ -673,6 +673,35 @@ SPObject *SPDocument::getObjectByRepr(Inkscape::XML::Node *repr) {
return (SPObject*)g_hash_table_lookup(priv->reprdef, repr);
}
+Glib::ustring SPDocument::getLanguage() {
+ gchar const *document_language = rdf_get_work_entity(this, rdf_find_entity("language"));
+ if (document_language) {
+ while (isspace(*document_language))
+ document_language++;
+ }
+ if ( !document_language || 0 == *document_language) {
+ // retrieve system language
+ document_language = getenv("LC_ALL");
+ if ( NULL == document_language || *document_language == 0 ) {
+ document_language = getenv ("LC_MESSAGES");
+ }
+ if ( NULL == document_language || *document_language == 0 ) {
+ document_language = getenv ("LANG");
+ }
+
+ if ( NULL != document_language ) {
+ gchar *pos = strchr(document_language, '_');
+ if ( NULL != pos ) {
+ return Glib::ustring(document_language, pos - document_language);
+ }
+ }
+ }
+
+ if ( NULL == document_language )
+ return Glib::ustring();
+ return document_language;
+}
+
/* Object modification root handler */
void