<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Language_Support</id>
	<title>Language Support - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Language_Support"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Language_Support&amp;action=history"/>
	<updated>2026-05-13T19:32:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Language_Support&amp;diff=96711&amp;oldid=prev</id>
		<title>NeoPhyte Rep: moved Language support to Language Support: Wiki convention</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Language_Support&amp;diff=96711&amp;oldid=prev"/>
		<updated>2015-04-29T22:14:49Z</updated>

		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/wiki/Language_support&quot; class=&quot;mw-redirect&quot; title=&quot;Language support&quot;&gt;Language support&lt;/a&gt; to &lt;a href=&quot;/wiki/Language_Support&quot; title=&quot;Language Support&quot;&gt;Language Support&lt;/a&gt;: Wiki convention&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:14, 29 April 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>NeoPhyte Rep</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Language_Support&amp;diff=96676&amp;oldid=prev</id>
		<title>Ameliabr: Added discussion category</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Language_Support&amp;diff=96676&amp;oldid=prev"/>
		<updated>2015-04-29T13:52:24Z</updated>

		<summary type="html">&lt;p&gt;Added discussion category&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:52, 29 April 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l61&quot;&gt;Line 61:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 61:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*# specify which one is the default&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*# specify which one is the default&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* For title/desc, the default *would* have a lang attribute (note, SVG 2 spec currently uses `lang` not `xml:lang`), and would be the *first* such child element in the DOM.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* For title/desc, the default *would* have a lang attribute (note, SVG 2 spec currently uses `lang` not `xml:lang`), and would be the *first* such child element in the DOM.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Developer Discussion]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ameliabr</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Language_Support&amp;diff=96671&amp;oldid=prev</id>
		<title>Ameliabr: Created page with summary of brainstorm and testing from Hackfest 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Language_Support&amp;diff=96671&amp;oldid=prev"/>
		<updated>2015-04-29T13:43:44Z</updated>

		<summary type="html">&lt;p&gt;Created page with summary of brainstorm and testing from Hackfest 2015&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Improving Inkscape support for internationalized/multi-lingual SVG&lt;br /&gt;
&lt;br /&gt;
There are two distinct language settings:&lt;br /&gt;
* the user's preferred language(s) (affects systemLanguage conditional test)&lt;br /&gt;
* declaring the document/element language (xml:lang); for SVG 2, this would be used as a conditional switch for &amp;lt;title&amp;gt; and &amp;lt;desc&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== systemLanguage &amp;amp; conditional tests ==&lt;br /&gt;
&lt;br /&gt;
* The systemLanguage attribute is used to only show certain content if it matches the user's preferred language, usually within a `&amp;lt;switch&amp;gt;` element.  In a browser, the user's preferred languages are the same as those sent in HTTP headers.&lt;br /&gt;
&lt;br /&gt;
=== Read support ===&lt;br /&gt;
&lt;br /&gt;
* Support for displaying conditional SVG is implemented within conditions.cpp, which uses SPDocument.getLanguage() (document.cpp) to find the user's preferred language (as set in the preferences dialog)&lt;br /&gt;
** BUG: If the user's preference setting is &amp;quot;System Default&amp;quot; (the default), it does not match the actual language code!  [https://bugs.launchpad.net/inkscape/+bug/1249423 See Bug #1249423]&lt;br /&gt;
** possible bug: According to the specs, the user's preferred language shouldn't be a document property, it should be a UI property.  However, if Inkscape in the future implements ways to ''create'' &amp;lt;switch&amp;gt; elements, you would definitely want to swap between languages on a document basic (instead of resetting their UI settings and restarting Inkscape).&lt;br /&gt;
** Potential enhancements: &lt;br /&gt;
*# The user should be able to set alternate languages in preferences, similar to how browsers set multiple values for the HTTP Accept-Language header (and use the same values for &amp;lt;switch&amp;gt;).&lt;br /&gt;
*# The user should be able to temporarily swap the preferred language for any document view, to see how the graphic looks like for others.&lt;br /&gt;
*# If the conditional tests all fail within a &amp;lt;switch&amp;gt;, the user could be prompted to select which language they prefer.&lt;br /&gt;
&lt;br /&gt;
=== Write support ===&lt;br /&gt;
&lt;br /&gt;
* No UI support currently for creating &amp;lt;switch&amp;gt;, this would all be enhancement&lt;br /&gt;
* Best use case would be within individual &amp;lt;text&amp;gt; elements, to switch between languages&lt;br /&gt;
* would need a way to swap the canvas view to show the different languages (e.g., temporarily swap the user preferred language for that document)&lt;br /&gt;
* would need a way to specify which text should be used as default, and then to store the language information (as xml:lang probably).  In the SVG markup, the only way to create a default is to give it as the last element in a &amp;lt;switch&amp;gt;, and ''don't'' give it a systemLanguage attribute&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== xml:lang ==&lt;br /&gt;
&lt;br /&gt;
* The xml:lang attribute defines the language of text content (visible text or alternative text).  It is used in advanced text layout, by screen readers, and by web translation tools.&lt;br /&gt;
&lt;br /&gt;
=== Read support ===&lt;br /&gt;
&lt;br /&gt;
* For reading existing files, this is relevant for&lt;br /&gt;
*# passing information to OS Accessibility APIs&lt;br /&gt;
*# rendering text in certain scripts where the Unicode characters map to different glyphs depending on the language&lt;br /&gt;
* Would need some typography experts to confirm that there is already support in underlying text layout libraries (HarfBuzz/Pango), and what info needs to be forwarded to them to get the correct rendering.&lt;br /&gt;
* The code for figuring out the current language is already used in CSS to match the :lang() pseudo-selector (cr-sel-eng.c).  If there are no bugs there, it can hopefully be generalized for finding out the language code and passing it to text layout.&lt;br /&gt;
&lt;br /&gt;
=== Write support ===&lt;br /&gt;
&lt;br /&gt;
Basic support:&lt;br /&gt;
* There should be a document-level property that can be set (e.g., xml:lang attribute on the &amp;lt;svg&amp;gt; element) [https://bugs.launchpad.net/inkscape/+bug/170340 see Bug #170340]&lt;br /&gt;
* Currently, there is a language field in the document metadata, but this is not used for xml:lang.&lt;br /&gt;
* By default, the document language should be the user's preferred language at the time the document is created, but it should be easy to change.&lt;br /&gt;
* Ideally, you should be able to set xml:lang on individual elements or groups, in order to define multi-lingual documents.&lt;br /&gt;
* For text elements, this could be in the font &amp;amp; text dialog, but more generally it would be in object properties&lt;br /&gt;
* However, you should also be able to set language on a &amp;lt;tspan&amp;gt;, so that would mean allowing the user to select some text and then assign a language value.&lt;br /&gt;
* Would want to have a &amp;quot;use document language&amp;quot; checkbox (with the current document language setting clearly stated); if unchecked, you would then have a drop-down list/text box to set a different language for this element.  Technically, this shouldn't be &amp;quot;document&amp;quot; language, but &amp;quot;parent element&amp;quot; language (since you could set language on groups or similar); not sure what a better wording would be.&lt;br /&gt;
&lt;br /&gt;
Making use of language for added features:&lt;br /&gt;
* Once Inkscape is able to keep track of the document language, and the user is able to set the document language, then it would be possible to implement spelling/grammar checking or other language-based features.&lt;br /&gt;
* For spellcheck, there is even a functionality in GTK: see http://wiki.inkscape.org/wiki/index.php/SpellCheckForTextNodes. text-edit.cpp has a TODO to use a computed value of xml:lang in gtkspell_set_language().&lt;br /&gt;
&lt;br /&gt;
Multi-lingual accessible text:&lt;br /&gt;
* For SVG 2 multi-lingual title/desc, you would need a way to &lt;br /&gt;
*# add additional title/desc in the object properties dialog, &lt;br /&gt;
*# set the language for each (this should be *required* for having multiple title/desc elements) and &lt;br /&gt;
*# specify which one is the default&lt;br /&gt;
* For title/desc, the default *would* have a lang attribute (note, SVG 2 spec currently uses `lang` not `xml:lang`), and would be the *first* such child element in the DOM.&lt;/div&gt;</summary>
		<author><name>Ameliabr</name></author>
	</entry>
</feed>