German umlauts and co

( Marc A. Lehmann ) pcg at goof.com
Thu Feb 3 23:10:08 CET 2005


On Thu, Feb 03, 2005 at 07:58:34AM +0100, "A. Pagaltzis" <pagaltzis at gmx.de> wrote:
> > > of an ö.
> > 
> > f6a is not the unicode code point for ö.
> 
> No, but f6 is. The escape sequence is always of the form

The escape contains (or contained, it no longer exists in current versions
of rxvt-unicode) the keysym value.

> character such as a vowel turns into an emitted umlaut. That
> works perfectly well in xterm, Firefox and a large array of Gtk
> apps including gvim.

xterm is not locale-aware normally, if you switch locale support on, it will
behave similarly to rxvt-unicode. firefox and gtk cannot communicate this
with other, locale-aware programs, either.

The point is that the character "ö" is simply not representable in your
chosen locale (C), no octet combination is defined for it, so it's impossible
to generate it.

rxvt-unicode would have no problems generating and displaying the "ö"
internally, just as gtk+ apps, but it has to communicate with other
programs (namely the ones running in the terminal), and they would have no
idea what the octet "f6" (or any other combination that you might want to
be generated for that key) means.

> Does that satisfy the requirement?

Yes, now you just need a locale that can represent the "ö".

> > and make sure your selected locale can display ö's.
> 
> Okay, so I'd need to use a UTF-8 locale or a Latin1 locale, like
> de_DE. Correct?

Any locale that has "ö" in it's character reportoire will do. If not
uTF-8, I would recommend latin9, because it conatins the euro symbol as
well:-)

> (Question: how do I set up locales such that it only affects the
> character encoding programs use, but nothing else such as their
> messages, numeric/currency formats or what have you?)

Use LC_CTYPE, it's the only locale property rxvt-unicode actually uses,
and it's spposed to use it consistently when talking to other apps.

> > that is your problem, as ö is not part of the C locale, so X
> > cannot generate it.
> 
> Does that imply that I need to change the X server's locale too,
> or is it enough to set the correct locale for urxvt?

The X-server has no notion of locale, it supports all of them, so you only
need to set it for urxvt (and the programs running within it).

> > > urxvt: default locale unavailable, check LC_* and LANG variables. Continuing.
> > 
> > that means that your system doesn't support the selected
> > locale. try to install the appropriate support for your OS.
> 
> This here is a glibc-based Linux system (Slackware 10.0, FWIW).
> Any pointers on what I need?

I guess the correct package for slackware, sorry that I don't know more, I
stopped using slackware around 8 years ago :->

> > is the area where you have to work on. Maybe you are not
> > setting it correctly?
> 
> Good question. I simply did ``LC_ALL=de_DE LANG=de_DE urxvt''
> (and two variations with only one of the variables each) and
> received the aforementioned message.

That is a correct way to set it (only LC_ALL, or LC_CTYPE only for urxvt,
would suffice). And the message means that de_DE is not supported.

> What might be missing? What might I be missing?

The locale files. In debian for example, it's in the package "locales",
which prompts you for the locles you want to have generated. I have no
idea how this is done under slackware, but if you find out and post it, I
can tell it the next poort victim :)

> I realize this whole issue is probably only tangentially related
> to urxvt. Do you have any pointers on where I can read up on how
> the whole locale thing is really supposed to work on Unix in
> generally

Well, the single-unix specification explains it in high detail, ut
it's not easily understandable as it is a standards document and
no tutorial. The setup of locales and locale names in general are
implementation-dependent.

> and glibc-based systems in particular?

No idea, if you have the locale data files instaleld you can create your own
locale with sth. like this:

   localedef -f UTF-8 -i de_DE de_DE.UTF-8

How this is handled in practise is outside the scope of glibc, either, as
it depends on how your distribution does it.

> Consequently, I've mostly used cargoculted configuration advice
> and avoided the whole area as well as I could once things seemed
> to work reasonably well. I have no idea what I'm really doing.

Well, he idea is that you install the locale suport, get asked which
locales you want and be done with it. Some distributions might generate
precompiled locale files and only require you to e.g. install all
europeean or al utf-8 locales. The detals on whch packages contain whcih
locales in which form depends on the personal taste of the packager.

-- 
                The choice of a
      -----==-     _GNU_
      ----==-- _       generation     Marc Lehmann
      ---==---(_)__  __ ____  __      pcg at goof.com
      --==---/ / _ \/ // /\ \/ /      http://schmorp.de/
      -=====/_/_//_/\_,_/ /_/\_\      XX11-RIPE




More information about the rxvt-unicode mailing list