From 59f47a0c4156ad31d8c685ccac2c02ac83c658c6 Mon Sep 17 00:00:00 2001 From: Andrius Ramanauskas Date: Thu, 20 Apr 2006 16:06:59 +0000 Subject: SVG 1.1 Conditional Processing Module rendering support ( element, requiredReatures/requiredExtensions/systemLanguage attributes). Two more W3C SVG Test Suite testes pass after this change. (bzr r556) --- src/document.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/document.cpp') 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 -- cgit v1.2.3