I felt honoured and happy when I was informed this week by XQuery co-inventor Jonathan ROBIE that my proposal https://www.w3.org/Bugs/Public/show_bug.cgi?id=28850 this week was accepted by the Xpath/Xquery working group at the W3C!
While XSLT spec lead Michael KAY pointed out, it is rather unlikely that a new functionality is to be added while a new version of a standard is already in the Candidate Recommendation pahse (like the spec’s v3.1 already is http://www.w3.org/TR/xpath-functions-31/), and it is even more unlikely that a new proposal is added within few weeks, I actually am totally happy that both happened in case of my proposal: I filed it end of June, and it was agreed by the working group mid of July – midst of the Candidate Recommendation phase. You daresay that I am really proud and happy to have achieved this.
So you can expect XSLT transformers like SAXON soon to be able to not only respect the local language when applying Xpath formatting functions like http://www.w3.org/TR/xpath-functions-30/#func-format-dateTime. Thanks to my new default-language() function I have proposed to the W3C you will be even able to write your own functions doing so.
For example, if I you want to write an XPath function that formats phone numbers according to the location one performs a report, in Germany you would expect to get (00 49 12 34) 56 78 90, while an international format would look like +49 1234 567890. So how to get the current locale? The answer is what I have proposed and now will become an international cross-vendor standard: default-language().
The default-language() method will return a string which is never null but always a valid language token (such a the format-dateTime() method would consume it). It comes in hand in any kind of custom function which is language dependend by nature, so writing functions like format-phone() will be possible and pretty easy now.