you definitely are a hard-core newsgroup/ml guy, aren’t you?!
But: just not to forget the (more or less explicit) subject of this
it refers to the “POSIX locale concept” and the ruby (non-)compliance
And we got carried away from it, didn’t we?
“MS” == Michal S. [email protected] writes:
MS> yes, the problem is that you have to deal with strings also
MS> view, and you want to do that independently of the view and its
>> >> That's what I like and appriate with academical people: >> they are not pragmatic, and they don't need to be ;-) >> And it's good that way. Serious. >> >> Dear Michal, you are right in that it should be dealt with
>> multiple user interfaces,
>> all dealing with users in entirely different locales.
MS> No, I meant software dealing with texts in different languages. MS> Different languages have different sorting rules (even for the
MS> letters) but you have only one locale.
MS> That's why I don't really like the idea of using locale too
That’s fine, but I do want to use it,
and it comes for free in any UNIX / Linux / Mac / Cygwin (/ Windows?!?)
so why not simply pass it through w/o confusing the interpreter’s
and enjoy it.
I mean: re-implementing it in ruby,
just because it’s nicer (+ slower) in ruby,
>> > no, it's avoiding it. The locale was set to "C" in 1.8, >> > and now only LC_CTYPE is set. >> >> Oh, and that's not set *to* *a* *value*? >> >> Matz wrote, that this is done: >> >> setlocale(LC_CTYPE, ""); MS> Yes, it's correct. It means "set locale from the environment
So why does my example not work with my ruby1.9, just downloaded and
$ env LC_ALL=fr_FR /usr/local/ruby1.9/bin/ruby
-e ‘t = Time.now; puts t.strftime("%A")’
$ env LC_ALL=fr_FR date ‘+%A’
MS> With ruby 1.9 you get exactly that.
I would love to see that,
but it seems to be incorrect.
MS> Yes, this is ruby's strftime that operates on ruby Time values
MS> nothing in common with the libc strftime except the name
It does have in common most of it,
so not complying 99.5 % is what I call “camouflage” and simply
misleading the programmer user.
I assume, you will agree here.
MS> You cannot just pass them. MS> It's not too hard MS> to convert limited subset of possible ruby valus MS> to C values and use the C localized functions on them. MS> But you probably cannot format all Time values,
Probably, so let’s assume returning strings on the ruby heap or stack
would actually work.
You know my roots are in the compiler and interpreter business of the
I implemented a code generator and a runtime system for Ada on a
Motorola 68k on a bare machine and also within a SysV UNIX,
I helped the Modula2 compiler guys from next door,
in implementing a first I/O library based on the C printf/scanf
I made use of the Tcl-C interface,
so I can dare to say,
that things in that area are not overly complex
and with a quality approach it can even be achieved w/o creating memory
leaks and “almost” bugfree.
MS> and certainly not all Bignums.
MS> I am not very fond of localized date/time formats. MS> I find them confusing. MS> Anybody and anything should be able to parse 2008-01-18, MS> and it even sorts correctly in dictionary order.
I fully agree to you.
I started using this ISO date format next to my signature on forms back
in the early eighties.
And I learned esperanto then.
But in real life people want to speak French, Czech, German, Portugues,
Spanish, Russian, and also English,
and they want to use their familiar date format.
MS> Still it should not be too hard to use the C strftime MS> if anybody wants to do so. MS> You are welcome to update the ruby-locale extension if you are
I feel, like my enhancements would also not find their way into the
just like the patch stemming from 2002.
And how can I recommend using such a crappy enhancement to people in my
local user group?