<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ameliabr</id>
	<title>Inkscape Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ameliabr"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/Special:Contributions/Ameliabr"/>
	<updated>2026-04-08T09:13:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Hackfest2015_Topics&amp;diff=96696</id>
		<title>Hackfest2015 Topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Hackfest2015_Topics&amp;diff=96696"/>
		<updated>2015-04-29T14:28:57Z</updated>

		<summary type="html">&lt;p&gt;Ameliabr: /* Accessibility */ summary of discussion and outcome&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Please add topics you would like to discuss or work you would like to see done at the hackfest.&lt;br /&gt;
&lt;br /&gt;
Other pages: [[Hackfest2015|Hackfest 2015]], [[Hackfest2015 Attendees]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
# Introductions: '''DONE'''&lt;br /&gt;
# Create Agenda: '''DONE'''&lt;br /&gt;
# Hacking:&lt;br /&gt;
## 2geom: sync '''IN PROGRESS'''&lt;br /&gt;
## Tackle GTK3 flickering bug. '''IN PROGRESS'''&lt;br /&gt;
## Selection - boost multiindex&lt;br /&gt;
# Bugs&lt;br /&gt;
# Code Review '''DONE'''&lt;br /&gt;
# Code Documentation&lt;br /&gt;
# Roadmap Review '''DONE'''&lt;br /&gt;
# Accessibility &lt;br /&gt;
&lt;br /&gt;
* What do we want to accomplish?&lt;br /&gt;
* How should we record this meeting?&lt;br /&gt;
* How can others participate?&lt;br /&gt;
** IRC&lt;br /&gt;
** Google Hangouts?&lt;br /&gt;
&lt;br /&gt;
== Work pages ==&lt;br /&gt;
&lt;br /&gt;
* [[Killing Livarot]]&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
=== SVG 2 strategy (Tav) ===&lt;br /&gt;
&lt;br /&gt;
* Overview/rundown of relevant new SVG2 features.  What are they, what will need done to implement them? '''DONE'''&lt;br /&gt;
* How do we handle fallbacks?&lt;br /&gt;
* When do we add things to the GUI? (When three browsers offers support?)&lt;br /&gt;
&lt;br /&gt;
=== Program flow (Tav) ===&lt;br /&gt;
&lt;br /&gt;
* Diagram how Inkscape behaves/should behave on:&lt;br /&gt;
** Opening a file.&lt;br /&gt;
** Changing a style item (e.g. 'fill').&lt;br /&gt;
** Moving a node.&lt;br /&gt;
** Deleting an item.&lt;br /&gt;
*** Comment: Deleting an item causes Inkscape to create a new SVG document with containing the deleted item to allow pasting.&lt;br /&gt;
&lt;br /&gt;
==== Motivation ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;width:60em&amp;quot;&amp;gt;Add a few random print statements in Inkscape and you'll see that Inkscape visits certain functions more often than one would think it should. Having well defined diagrams will allow developers to clean up existing code and to better understand what needs to be done to add new features. I've noticed that we suffer from &amp;quot;cargo cult programming&amp;quot; where people add functions without fully understanding if they are truly needed.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ideas&lt;br /&gt;
** Better, easily referenced API documentation&lt;br /&gt;
** Code reviews&lt;br /&gt;
** `linux perf` can be used to identify performance critical functions&lt;br /&gt;
&lt;br /&gt;
==== Comments from Krzysztof ====&lt;br /&gt;
&lt;br /&gt;
This is a pretty big problem right now. The flow looks like this:&lt;br /&gt;
&lt;br /&gt;
Something is updated in the SP tree&lt;br /&gt;
# updateRepr() is called&lt;br /&gt;
# new XML is written&lt;br /&gt;
# XML modification listeners fire&lt;br /&gt;
# SP tree is re-read from the XML&lt;br /&gt;
# A recursive call to update() is made&lt;br /&gt;
# Each of those update calls updates the rendering tree in turn.&lt;br /&gt;
&lt;br /&gt;
As a result, changing the document height triggers a full update of&lt;br /&gt;
the rendering tree, even though almost nothing changes.&lt;br /&gt;
&lt;br /&gt;
The current approach makes it impossible to introduce errors that&lt;br /&gt;
cause the XML and the SP tree to go out of sync, at the cost of&lt;br /&gt;
performance. We could discuss what to do about this.&lt;br /&gt;
&lt;br /&gt;
=== Refactoring ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;width:60em&amp;quot;&amp;gt;Can we decide on a roadmap to work with new APIs and compilers?  How do we minimize breakages for downstream users?  Can we balance risk with reward?  How does each migration benefit the developers, package maintainers and end users?&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some possible changes to discuss:&lt;br /&gt;
&lt;br /&gt;
* Moving to C++11 (AV)&lt;br /&gt;
** code cleanup/maintainability&lt;br /&gt;
** improved data structures/templating&lt;br /&gt;
* Adding a hard Cairo 1.14 dependency (AV)&lt;br /&gt;
** Fix bitmap downscaling issue&lt;br /&gt;
* Gtk+ 3 migration (AV)&lt;br /&gt;
** Get rid of lots of conditional code&lt;br /&gt;
** Get rid of embedded GDK library fork&lt;br /&gt;
** Some &amp;quot;cleaner&amp;quot; API available&lt;br /&gt;
** How do we handle canvas flickering/rendering issues?&lt;br /&gt;
* C++ification (AV)&lt;br /&gt;
** Migrate widgets/dialogs to Gtkmm&lt;br /&gt;
** Get rid of popt&lt;br /&gt;
** Get rid of GObject usage&lt;br /&gt;
* Removing 3rd party Library dependencies from version control (AV)&lt;br /&gt;
* Change how we're utilizing 3rd party libraries (Josh)&lt;br /&gt;
** Stop using Poppler internals, use the proper API via poppler-glib (https://bugs.launchpad.net/inkscape/+bug/239544)&lt;br /&gt;
** Use newer Pango-Cairo text/glyph APIs (https://bugs.launchpad.net/inkscape/+bug/420822)&lt;br /&gt;
* Unnecessary profileration of namespaces (Krzysztof)&amp;lt;p style=&amp;quot;width:60em&amp;quot;&amp;gt;Things like Inkscape::UI::View::View are excessive. I cannot imagine a scenario where we would need more than 2 levels of namespaces. Everything UI-related should sit in Inkscape::UI, without separate namespaces for widgets and dialogs which only serve to increase typing.&amp;lt;/p&amp;gt;&lt;br /&gt;
* Directory structure. (Krzysztof)&amp;lt;p style=&amp;quot;width:60em&amp;quot;&amp;gt;Let's make a directory for the SP tree, and namespace it as Inkscape::SVG (or maybe Inkscape::DOM).&amp;lt;/p&amp;gt; &lt;br /&gt;
* Identify clever geometry code which can be cleaned up and moved to 2Geom. (Krzysztof)&lt;br /&gt;
&lt;br /&gt;
=== Accessibility ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;width:60em&amp;quot;&amp;gt;Amelia Bellamy-Royds, an SVG WG member, will be giving a talk at LGM on making SVGs accessible. She is available Monday afternoon and/or Tuesday to talk to us about how we can make it easier in Inkscape to make accessible SVGs. Things we can do include:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Automatically generating alt text when converting from Text to Path. '''Tav has pushed a fix -- the text will be saved as aria-label attribute.'''&lt;br /&gt;
* Making it easy to add [http://www.w3.org/TR/wai-aria/ common ARIA attributes] (Didn't really discuss this)&lt;br /&gt;
* Adding language metadata (so that screen readers know what they're reading, but also for other benefits)&lt;br /&gt;
&lt;br /&gt;
I've summed up some of the discussion in two wiki pages: [http://wiki.inkscape.org/wiki/index.php/Accessible_graphics Accessible Graphics] and [http://wiki.inkscape.org/wiki/index.php/Language_support Language Support].  See also &lt;br /&gt;
&lt;br /&gt;
* [https://bugs.launchpad.net/inkscape/+bug/170340 Bug #170340, &amp;quot;metadata: need User Interface for SVG accessibility features&amp;quot;] &lt;br /&gt;
* [https://bugs.launchpad.net/inkscape/+bug/1249423 Bug #1249423 &amp;quot;Properly support the &amp;lt;switch&amp;gt; element and the &amp;quot;systemLanguage&amp;quot; attribute&amp;quot;].  &lt;br /&gt;
&lt;br /&gt;
Both of these bug reports existed, but they've been updated with new comments and references.&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
Topics from Inkscape &amp;lt;span style=&amp;quot;font-style:italic&amp;quot;&amp;gt;g+&amp;lt;/span&amp;gt; Page&lt;br /&gt;
&lt;br /&gt;
* Style editor&lt;br /&gt;
* CMYK&lt;br /&gt;
* GTK3&lt;br /&gt;
* Native OS X&lt;br /&gt;
* Animation&lt;br /&gt;
* PDF Import, text as path (semi-broken)&lt;br /&gt;
* Text flow&lt;br /&gt;
* Swatches&lt;br /&gt;
* Geometric bucket tool (Paid development?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
&lt;br /&gt;
* Discuss Jenkins/unittesting/rendertesting.&lt;br /&gt;
* Unit tests: Google Test/Boost. '''DONE''': We decided to go with Google Tests based on it being better with templates, a bit less verbose, and its use in lib2geom unless there is a major outcry on inkscape-dev.&lt;br /&gt;
&lt;br /&gt;
=== Website (DoctorMO) ===&lt;br /&gt;
&lt;br /&gt;
* How do people feel about it's current functions&lt;br /&gt;
* How should we move it forwards?&lt;br /&gt;
* Plans for mailing list migrations.&lt;br /&gt;
* Getting developers set up with local copies for hacking.&lt;br /&gt;
* Modifying wiki style (p {width: 60em}).&lt;br /&gt;
&lt;br /&gt;
=== Roadmap Planning (Bryce) ===&lt;br /&gt;
&lt;br /&gt;
Prioritize feature and infrastructure development work for next several releases.&lt;br /&gt;
'''DONE''': See [[roadmap]].&lt;br /&gt;
&lt;br /&gt;
=== Fundraisers (Bryce) ===&lt;br /&gt;
&lt;br /&gt;
Brainstorm future fundraising ideas.&lt;br /&gt;
&lt;br /&gt;
=== Community Development (Bryce) ===&lt;br /&gt;
&lt;br /&gt;
* Championing FOSS ideals generally&lt;br /&gt;
* Expanding userbase&lt;br /&gt;
* Building up a strong evangelist user community&lt;br /&gt;
* Recruiting newbie developers, encouraging involvement, and mentoring&lt;br /&gt;
* Re-connecting with old timers&lt;br /&gt;
* Promoting existing developers into leadership roles&lt;br /&gt;
&lt;br /&gt;
=== Design new plugin/extension system ===&lt;br /&gt;
&lt;br /&gt;
== Hacking ==&lt;br /&gt;
&lt;br /&gt;
=== Invert coordinate system (Tav) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;width:60em&amp;quot;&amp;gt;If there was ever a good moment to do the coordinate system flip, this is it. (should coordinates be configurable in relation to the canvas?)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Comment from Krzysztof ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;width:60em&amp;quot;&amp;gt;We need to decide whether we want to keep the 3D Box at all costs, or is the coordinate system inversion a more important goal than having 3D Box. Being unable to fix 3D Box was the main reason I didn't commit this change when I initially made it. FWIW, I think the 3D Box tool is nearly unusable and needs to be rewritten from scratch. It also pollutes the entire codebase with special handling for its perspective elements, indicating faulty&lt;br /&gt;
design.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Harfbuzz: Better CSS support and User Fonts (WOFF) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;width:60em&amp;quot;&amp;gt;There will be a Harfbuzz documenting session taking place at the same time as the Inkscape Hackfest. Maybe we can get some expertise on how to improve our font handling. CSS now has much more sophisticated ways of selecting alternative glyphs that Harfbuzz may support. Also, it would be nice to be able to use user fonts, in particular WOFF fonts, into Inkscape. At the moment we rely on Pango for all our font related stuff and Pango's support for new CSS stuff and for user fonts is negligible if completely non-existent.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Swatches ===&lt;br /&gt;
&lt;br /&gt;
Merge GSoC swatches dialog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;width:60em&amp;quot;&amp;gt;Tomasz Boczkowski has started working on updating it. He'll probably have some C++'ification done during the hackfest so we can do a code review.&amp;lt;/p&amp;gt;&lt;br /&gt;
'''REVIEW DONE''' Mostly some minor white-space issues.&lt;br /&gt;
&lt;br /&gt;
=== Make Systems ===&lt;br /&gt;
&lt;br /&gt;
'''UNDER REVIEW''': Alex is doing an independent comparison to see if the simplicity of WAF outways the popularity of CMAKE.&lt;br /&gt;
&lt;br /&gt;
==== CMake (Bryce) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;width:60em&amp;quot;&amp;gt;A while back someone made a valiant attempt to get Inkscape built with cmake, but if this ever worked it's bitrotted to where it doesn't work presently.  Hack it back into working shape on Linux, Mac, and Windows. Write up evaluation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== WAF (Krzysztof) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;width:60em&amp;quot;&amp;gt;I would rather use Waf. CMake has its own, sloppy scripting language; writing anything moderately complex in it is an exercise in frustration. By contrast, Waf scripts can leverage all the mighty power of Python.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;width:60em&amp;quot;&amp;gt;Killer feature: since Waf stores a database of what was compiled, it support wildcards correctly. As in, when the set of files matched by a wildcard in the build script changes, it will automatically recompiles the correct files, without the need to modify build scripts. CMake cannot do this, because it just generates makefiles, and Make cannot support wildcards in this manner because it does not have any persistence beyond what is stored in the file system.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other things we could easily do with Waf are:&lt;br /&gt;
* render test integration&lt;br /&gt;
* automatically updating the AUTHORS file and the authors tab in the About dialog from Bazaar logs&lt;br /&gt;
* creating a completely standalone executable (using e.g. GResource to store data files in the executable itself)&lt;br /&gt;
&lt;br /&gt;
=== Hardware Acceleration Experimentation (Bryce) ===&lt;br /&gt;
&lt;br /&gt;
Create experimental branch using Cairo-GLX as the rendering backend.  Evaluate rendering performance.  Brainstorm follow up work.&lt;/div&gt;</summary>
		<author><name>Ameliabr</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Accessible_Graphics&amp;diff=96691</id>
		<title>Accessible Graphics</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Accessible_Graphics&amp;diff=96691"/>
		<updated>2015-04-29T14:19:43Z</updated>

		<summary type="html">&lt;p&gt;Ameliabr: Added more references and discussion from Hackfest 2015 brainstorm, removed spam link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How can Inkscape become the ideal tool for creating accessible SVG?&lt;br /&gt;
&lt;br /&gt;
=== Background Links ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- dead link, not sure where this was supposed to point&lt;br /&gt;
* inkscape [https://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=993367&amp;amp;group_id=93438&amp;amp;atid=604309 rfe]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* a [http://www.peepo.co.uk/pmwiki/pmwiki.php/Main/SVG rant] (dead link) on SVG and Accessibility given at the latest (year?) London SVGUG meeting with plenty of links. some concepts were addressed and alpha proof of concept code developed.&lt;br /&gt;
* Links to primary [http://www.learningdifferently.com/develop/svg.html documentation] on creating accessible SVG&lt;br /&gt;
* SVG and accessibility (somewhat out of date): [http://www.w3.org/TR/SVG-access/ authoring guidance], [http://www.w3.org/TR/SVG11/access.html SVG 1.1 appendix]&lt;br /&gt;
* Work of the W3C Accessibility task force: [http://www.w3.org/WAI/PF/svg-a11y-tf/ work statement], [https://www.w3.org/wiki/SVG_Accessibility wiki]&lt;br /&gt;
&lt;br /&gt;
=== What Inkscape Does Well ===&lt;br /&gt;
&lt;br /&gt;
Some accessibility features of SVG Inkscape inherits by default, such as having text stored as machine-readable text.  Others require extra effort.&lt;br /&gt;
&lt;br /&gt;
As of 0.91, Inkscape:&lt;br /&gt;
&lt;br /&gt;
* Allows users to set alternative text (&amp;lt;title&amp;gt; and &amp;lt;desc&amp;gt;) for graphics content in the object properties dialog.&lt;br /&gt;
* Sets the document-level &amp;lt;title&amp;gt; element if the user has set a title in the metadata&lt;br /&gt;
* Supports logical grouping of elements, and allows &amp;lt;title&amp;gt; and &amp;lt;desc&amp;gt; to be set on the group&lt;br /&gt;
&lt;br /&gt;
Recently pushed to the dev branch was a fix so that text-to-path stores the original text content in an aria-label attribute, which will go a long way to preserving the accessibility of that content.&lt;br /&gt;
&lt;br /&gt;
=== Doing Better ===&lt;br /&gt;
&lt;br /&gt;
There is currently a [https://bugs.launchpad.net/inkscape/+bug/170340 bug report regarding adding UI support for the core SVG accessibility features].&lt;br /&gt;
&lt;br /&gt;
Two main issues (not yet implemented) are covered by that bug report:&lt;br /&gt;
&lt;br /&gt;
* A document-level title should be required, but it is currently hard to set and there is no prompting for it.&lt;br /&gt;
* The language of the text (visible or alternative) needs to be easy to specify with the xml:lang attribute.&lt;br /&gt;
&lt;br /&gt;
Language issues can get rather complex, and have benefits beyond accessibility, so there [[Language_support | is a separate wiki page for them]].&lt;br /&gt;
&lt;br /&gt;
More advanced issues to consider:&lt;br /&gt;
&lt;br /&gt;
* Ensuring that text elements are preserved in a logical reading order.  This will be easier once z-index is supported, for now the aria-flowto attribute could be used to define the reading order.  However, there would need to be a user interface for setting the reading order -- the order that elements are added to the graphic may not be the logical reading order.&lt;br /&gt;
* Adding WAI-ARIA widget roles for anything that has interactive scripting added to it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Discussion]]&lt;br /&gt;
[[Category:Needs Work]]&lt;/div&gt;</summary>
		<author><name>Ameliabr</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Hackfest2015_Attendees&amp;diff=96686</id>
		<title>Hackfest2015 Attendees</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Hackfest2015_Attendees&amp;diff=96686"/>
		<updated>2015-04-29T14:17:59Z</updated>

		<summary type="html">&lt;p&gt;Ameliabr: ...and a few minor corrections/additions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Information about and for Hackfest2015 Attendees&lt;br /&gt;
&lt;br /&gt;
Other pages: [[Hackfest2015|Hackfest 2015]], [[Hackfest2015 Topics]].&lt;br /&gt;
&lt;br /&gt;
== Who is Attending? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ List of Attendees&lt;br /&gt;
 Hackfest&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Who&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Dates&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Allocation&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Flights&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Hotel&lt;br /&gt;
|-&lt;br /&gt;
! Hackfest&lt;br /&gt;
! LGM&lt;br /&gt;
! Hackfest&lt;br /&gt;
! LGM&lt;br /&gt;
! Arrival&lt;br /&gt;
! Departure&lt;br /&gt;
|-&lt;br /&gt;
| Bryce Harrington&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| 4/29, 4/30, 5/1, 5/2&lt;br /&gt;
| Sponsored&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| Sponsored&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| UA0843 YYZ @ 8:13pm&lt;br /&gt;
| UA5165 YYZ @ 10:10am&lt;br /&gt;
| Courtyard Downtown Marriott&lt;br /&gt;
|-&lt;br /&gt;
| Tavmjong Bah&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| 4/29, 4/30, 5/1&lt;br /&gt;
| $2000&lt;br /&gt;
| $500&lt;br /&gt;
| AF356 YYZ @ 4:10pm&lt;br /&gt;
| AF352 YYZ @ 6:35pm (on 1st)&lt;br /&gt;
| AirBnB (126 Harbord St.)&lt;br /&gt;
|-&lt;br /&gt;
| Jon Cruz&lt;br /&gt;
| --&lt;br /&gt;
| 4/29, 4/30, 5/1, 5/2&lt;br /&gt;
| N/A&lt;br /&gt;
| Sponsored&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Josh Andler&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| 4/29, 4/30, 5/1, 5/2&lt;br /&gt;
| $500&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
| $500&lt;br /&gt;
| AC1038 YYZ @ 4:24pm&lt;br /&gt;
| AC755 YYZ @ 12:05pm&lt;br /&gt;
| AirBnB (13 Glenbaillie Pl.)&lt;br /&gt;
|-&lt;br /&gt;
| Martin Owens&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| 4/29, 4/30, 5/1, 5/2&lt;br /&gt;
| $2000&lt;br /&gt;
| $500&lt;br /&gt;
| PD942 YTZ @ 2:50PM&lt;br /&gt;
| PD945 YTZ @ 2:35PM&lt;br /&gt;
| Urban Living Suites 787 Dundas St W&lt;br /&gt;
|-&lt;br /&gt;
| Jabiertxo Arraiza Cenoz&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| 4/29, 4/30, 5/1, 5/2&lt;br /&gt;
| $1500&lt;br /&gt;
| $500&lt;br /&gt;
| KLM695 YYZ @ 8:05PM&lt;br /&gt;
| DL2320 YYZ @ 3:00PM&lt;br /&gt;
| AirBnB (158 Brunswick Avenue)&lt;br /&gt;
|-&lt;br /&gt;
| Krzysztof Kosiński&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| --&lt;br /&gt;
| $2000&lt;br /&gt;
| N/A&lt;br /&gt;
| LH470 YYZ @ 4:40PM, 4/23&lt;br /&gt;
| OS72 YYZ @ 5:55PM, 4/28&lt;br /&gt;
| Canadiana Backpackers Inn&lt;br /&gt;
|-&lt;br /&gt;
| Alex Valavanis&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| --&lt;br /&gt;
| $2000&lt;br /&gt;
| N/A&lt;br /&gt;
| BA99 YYZ @ 1839, 4/24&lt;br /&gt;
| BA94 YUL @ 2235, 5/6&lt;br /&gt;
| AirBnB (Russell Street)&lt;br /&gt;
|-&lt;br /&gt;
| Amelia Bellamy-Royds&lt;br /&gt;
|  4/27, 4/28&lt;br /&gt;
| 4/29, 4/30, 5/1, 5/2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| (by train, April 26)&lt;br /&gt;
| (week after LGM)&lt;br /&gt;
| with friends&lt;br /&gt;
|-&lt;br /&gt;
| insaner (Raphael Rosch)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| (I live here)&lt;br /&gt;
|-&lt;br /&gt;
| Inkscaper&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! Total&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
! $10000&lt;br /&gt;
! $2000&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; Sponsered by outside organization.&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; Flight sponsered by outside organization.&lt;br /&gt;
&lt;br /&gt;
Allocation for attending hackfest:&lt;br /&gt;
* Up to $2000 each for Inkscape developers who have contributed for 3+ years and &amp;gt; 200 commits.&lt;br /&gt;
* Up to $1500 each for Inkscape developers who have contributed for 2+ years and &amp;gt; 100 commits.&lt;br /&gt;
* Up to $1000 each for Inkscape developers who have contributed for 1+ year and &amp;gt; 50 commits.&lt;br /&gt;
* Up to $500 each for any Inkscape contributor listed in AUTHORS file with at least 10 commits by Jan 1, 2015.&lt;br /&gt;
&lt;br /&gt;
Allocation for attending LGM (additional to allocation for hackfest):&lt;br /&gt;
* Up to $500 each for any Inkscape contributor listed  in AUTHORS file by Jan 1, 2015.&lt;br /&gt;
&lt;br /&gt;
If your are an active contributor to Inkscape but are NOT in the AUTHORS file (translator, documentor, etc.) we may still be able to provide some funding on a case-by-case basis.&lt;br /&gt;
&lt;br /&gt;
== Travel ==&lt;br /&gt;
&lt;br /&gt;
Attendees must follow [https://gitorious.org/conservancy/policies/raw/75b8894f8586503e5abd23bed84229bbe5c1b7ee:Travel/conservancy-travel-policy.txt SFC travel policy]. Most importantly, take a screen shot of your airfare search. Your ticket must be within $100 of the lowest fare. Keep receipts for transport and lodging. Meal cost and misc. expenses are handled by a per diem and don't require receipts.&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
Google Flights search is probably your best bet. kayak.com and mobissimo.com can also be useful.&lt;br /&gt;
&lt;br /&gt;
Most international flights arrive at Pearson International Airport (YYZ). Some Canadian and US flights arrive at Billy Bishop Toronto City Airport (YTZ).&lt;br /&gt;
&lt;br /&gt;
See also: [http://libregraphicsmeeting.org/2015/travel/ LGM Travel page].&lt;br /&gt;
&lt;br /&gt;
=== Hotel ===&lt;br /&gt;
&lt;br /&gt;
The [http://libregraphicsmeeting.org/2015/travel/accommodation/ LGM Accommodation page] is pretty sparse. The AirBnB suggestion is worth looking into (I paid 1/3 of what a hotel would cost in Sydney using AirBnB). If you are interested in sharing a room (US/Canadian hotel rooms are usually quite big, often with two queen size beds) leave a note here:&lt;br /&gt;
&lt;br /&gt;
=== Venue ===&lt;br /&gt;
&lt;br /&gt;
The hackfest will take place in room 1150 on the first floor of [http://www.openstreetmap.org/#map=19/43.66439/-79.39981 Robarts Library] (130 St. George St.).&lt;br /&gt;
&lt;br /&gt;
A map of the U. of Toronto campus can be found on the [http://libregraphicsmeeting.org/2015/venue/ LGM Venue page].&lt;br /&gt;
&lt;br /&gt;
== Reimbursements ==&lt;br /&gt;
&lt;br /&gt;
After the event, forward your receipts (scans/pdf files/etc.) to me (Tavmjong). I'll collect them and forward them to the SFC. You need to also send payment information (name, currency, paypal account or bank information: see travel policy for more details).&lt;/div&gt;</summary>
		<author><name>Ameliabr</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Hackfest2015_Attendees&amp;diff=96681</id>
		<title>Hackfest2015 Attendees</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Hackfest2015_Attendees&amp;diff=96681"/>
		<updated>2015-04-29T14:15:56Z</updated>

		<summary type="html">&lt;p&gt;Ameliabr: belatedly adding myself in for posterity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Information about and for Hackfest2015 Attendees&lt;br /&gt;
&lt;br /&gt;
Other pages: [[Hackfest2015|Hackfest 2015]], [[Hackfest2015 Topics]].&lt;br /&gt;
&lt;br /&gt;
== Who is Attending? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ List of Attendees&lt;br /&gt;
 Hackfest&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Who&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Dates&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Allocation&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Flights&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Hotel&lt;br /&gt;
|-&lt;br /&gt;
! Hackfest&lt;br /&gt;
! LGM&lt;br /&gt;
! Hackfest&lt;br /&gt;
! LGM&lt;br /&gt;
! Arrival&lt;br /&gt;
! Departure&lt;br /&gt;
|-&lt;br /&gt;
| Bryce Harrington&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| 4/29, 4/30, 5/1, 5/2&lt;br /&gt;
| Sponsored&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| Sponsored&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| UA0843 YYZ @ 8:13pm&lt;br /&gt;
| UA5165 YYZ @ 10:10am&lt;br /&gt;
| Courtyard Downtown Marriott&lt;br /&gt;
|-&lt;br /&gt;
| Tavmjong Bah&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| 4/29, 4/30, 5/1&lt;br /&gt;
| $2000&lt;br /&gt;
| $500&lt;br /&gt;
| AF356 YYZ @ 4:10pm&lt;br /&gt;
| AF352 YYZ @ 6:35pm (on 1st)&lt;br /&gt;
| AirBnB (126 Harbord St.)&lt;br /&gt;
|-&lt;br /&gt;
| Jon Cruz&lt;br /&gt;
| --&lt;br /&gt;
| 4/29, 4/30, 5/1, 5/2&lt;br /&gt;
| N/A&lt;br /&gt;
| Sponsored&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Josh Andler&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| 4/29, 4/30, 5/1, 5/2&lt;br /&gt;
| $500&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
| $500&lt;br /&gt;
| AC1038 YYZ @ 4:24pm&lt;br /&gt;
| AC755 YYZ @ 12:05pm&lt;br /&gt;
| AirBnB (13 Glenbaillie Pl.)&lt;br /&gt;
|-&lt;br /&gt;
| Martin Owens&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| 4/29, 4/30, 5/1, 5/2&lt;br /&gt;
| $2000&lt;br /&gt;
| $500&lt;br /&gt;
| PD942 YTZ @ 2:50PM&lt;br /&gt;
| PD945 YTZ @ 2:35PM&lt;br /&gt;
| Urban Living Suites 787 Dundas St W&lt;br /&gt;
|-&lt;br /&gt;
| Jabiertxo Arraiza Cenoz&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| 4/29, 4/30, 5/1, 5/2&lt;br /&gt;
| $1500&lt;br /&gt;
| $500&lt;br /&gt;
| KLM695 YYZ @ 8:05PM&lt;br /&gt;
| DL2320 YYZ @ 3:00PM&lt;br /&gt;
| AirBnB (158 Brunswick Avenue)&lt;br /&gt;
|-&lt;br /&gt;
| Krzysztof Kosiński&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| --&lt;br /&gt;
| $2000&lt;br /&gt;
| N/A&lt;br /&gt;
| LH470 YYZ @ 4:40PM, 4/23&lt;br /&gt;
| OS72 YYZ @ 5:55PM, 4/28&lt;br /&gt;
| Canadiana Backpackers Inn&lt;br /&gt;
|-&lt;br /&gt;
| Alex Valavanis&lt;br /&gt;
| 4/26, 4/27, 4/28&lt;br /&gt;
| --&lt;br /&gt;
| $2000&lt;br /&gt;
| N/A&lt;br /&gt;
| BA99 YYZ @ 1839, 4/24&lt;br /&gt;
| BA94 YUL @ 2235, 5/6&lt;br /&gt;
| AirBnB (Russell Street)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| Amelia Bellamy-Royds&lt;br /&gt;
|  4/27, 4/28&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| (by train, April 26)&lt;br /&gt;
| (until after LGM)&lt;br /&gt;
| with friends&lt;br /&gt;
|-&lt;br /&gt;
| insaner (Raphael Rosch)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| (I live here)&lt;br /&gt;
|-&lt;br /&gt;
| Inkscaper&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! Total&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
! $10000&lt;br /&gt;
! $2000&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; Sponsered by outside organization.&lt;br /&gt;
&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; Flight sponsered by outside organization.&lt;br /&gt;
&lt;br /&gt;
Allocation for attending hackfest:&lt;br /&gt;
* Up to $2000 each for Inkscape developers who have contributed for 3+ years and &amp;gt; 200 commits.&lt;br /&gt;
* Up to $1500 each for Inkscape developers who have contributed for 2+ years and &amp;gt; 100 commits.&lt;br /&gt;
* Up to $1000 each for Inkscape developers who have contributed for 1+ year and &amp;gt; 50 commits.&lt;br /&gt;
* Up to $500 each for any Inkscape contributor listed in AUTHORS file with at least 10 commits by Jan 1, 2015.&lt;br /&gt;
&lt;br /&gt;
Allocation for attending LGM (additional to allocation for hackfest):&lt;br /&gt;
* Up to $500 each for any Inkscape contributor listed  in AUTHORS file by Jan 1, 2015.&lt;br /&gt;
&lt;br /&gt;
If your are an active contributor to Inkscape but are NOT in the AUTHORS file (translator, documentor, etc.) we may still be able to provide some funding on a case-by-case basis.&lt;br /&gt;
&lt;br /&gt;
== Travel ==&lt;br /&gt;
&lt;br /&gt;
Attendees must follow [https://gitorious.org/conservancy/policies/raw/75b8894f8586503e5abd23bed84229bbe5c1b7ee:Travel/conservancy-travel-policy.txt SFC travel policy]. Most importantly, take a screen shot of your airfare search. Your ticket must be within $100 of the lowest fare. Keep receipts for transport and lodging. Meal cost and misc. expenses are handled by a per diem and don't require receipts.&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
Google Flights search is probably your best bet. kayak.com and mobissimo.com can also be useful.&lt;br /&gt;
&lt;br /&gt;
Most international flights arrive at Pearson International Airport (YYZ). Some Canadian and US flights arrive at Billy Bishop Toronto City Airport (YTZ).&lt;br /&gt;
&lt;br /&gt;
See also: [http://libregraphicsmeeting.org/2015/travel/ LGM Travel page].&lt;br /&gt;
&lt;br /&gt;
=== Hotel ===&lt;br /&gt;
&lt;br /&gt;
The [http://libregraphicsmeeting.org/2015/travel/accommodation/ LGM Accommodation page] is pretty sparse. The AirBnB suggestion is worth looking into (I paid 1/3 of what a hotel would cost in Sydney using AirBnB). If you are interested in sharing a room (US/Canadian hotel rooms are usually quite big, often with two queen size beds) leave a note here:&lt;br /&gt;
&lt;br /&gt;
=== Venue ===&lt;br /&gt;
&lt;br /&gt;
The hackfest will take place in room 1150 on the first floor of [http://www.openstreetmap.org/#map=19/43.66439/-79.39981 Robarts Library] (130 St. George St.).&lt;br /&gt;
&lt;br /&gt;
A map of the U. of Toronto campus can be found on the [http://libregraphicsmeeting.org/2015/venue/ LGM Venue page].&lt;br /&gt;
&lt;br /&gt;
== Reimbursements ==&lt;br /&gt;
&lt;br /&gt;
After the event, forward your receipts (scans/pdf files/etc.) to me (Tavmjong). I'll collect them and forward them to the SFC. You need to also send payment information (name, currency, paypal account or bank information: see travel policy for more details).&lt;/div&gt;</summary>
		<author><name>Ameliabr</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Language_Support&amp;diff=96676</id>
		<title>Language Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Language_Support&amp;diff=96676"/>
		<updated>2015-04-29T13:52:24Z</updated>

		<summary type="html">&lt;p&gt;Ameliabr: Added discussion category&lt;/p&gt;
&lt;hr /&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;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Discussion]]&lt;/div&gt;</summary>
		<author><name>Ameliabr</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Language_Support&amp;diff=96671</id>
		<title>Language Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Language_Support&amp;diff=96671"/>
		<updated>2015-04-29T13:43:44Z</updated>

		<summary type="html">&lt;p&gt;Ameliabr: Created page with summary of brainstorm and testing from Hackfest 2015&lt;/p&gt;
&lt;hr /&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>