This is mainly an upstream bug of librsvg (Bug 761482). Please see the description of the upstream bug. In a nutshell, for example, this SVG image contains options en, en-US, en-AU and en-GB. Only en-US works well (by luck) but all other language options display "English (United States)". Also according to validator.w3.org, there's no error or warning in the image "System language attribute bug demo.svg".
To fix this bug, there can be two ways:
- Wait librsvg fix the upstream bug.
- Workaround: generate a new SVG which replaced dash "-" to underscore "_" in all BCP 47 language codes to avoid librsvg wrongly fallback the languages. This can be very tricky since you may need to add new element to strictly follow the w3c standard of language fallbacks.
Also there's a small bug in MediaWiki is that it uses unprocessed value derived from systemLanguage attrs in <select id="mw-imglangselector"> on image pages (they should be all lowercase for query parameter "lang", but SVG standard requires BCP 47 format). On this SVG image you can't select any language except the all lowercase "en" actually. This can be a quick fix and I may create a patch later.