If I understood the code right, the <use>-element is transformed to a <g>-element (in a basic case). All Attributes are given to the transformed element (like transform,fill,stroke), except for the x- and y-attributes. This only affects the Qt- and Cairo-implementation.
a simple problem: http://trac.webkit.org/browser/trunk/WebCore/svg/SVGUseElement.cpp#L323 I get a comma instead of a point for floating-point (non-english-speaker), thats why webkit ignores the transformation. e.g.: transform(12,000, 30,500) instead of transform(12.000, 30.500)
(In reply to comment #1) I use gcc (GCC) 4.2.3
Looks like vsnprintf is locale-aware, which is probably not what we want inside WebCore.
*** Bug 19026 has been marked as a duplicate of this bug. ***
A solution could be setlocale(LC_NUMERIC, "C"); add the line before a vsnprintf() operation or system wide (don't know it this is possible) and it should work. (perhaps with #include <local.h>) I tested it in SVGUseElement.cpp with success.
See also: bug 18994.
I think the code should not use String::format() but simply toDouble() on a constructed string and construct the entire string to parse manually. String::toDouble() is locale-unaware as far as I can see.
*** This bug has been marked as a duplicate of bug 30342 ***