Второй метод - намного лучше
Идея этого метода принадлежит Александру Канавину (хотя реализовал он его немного по-другому).
Поскольку "неправильные" программы, забывая установить нужную locale, используют locale "C", можно им вместо C "подсунуть" русскую locale, например - ru_RU.KOI8-R.
Для этого достаточно в файле "алиасов локалей" (X11R6/lib/X11/locale/locale.alias) добавить строчку
C ru_RU.KOI8-R
Таким образом, "правильные" программы будут пользоваться правильной locale - KOI8-R, а "неправильные" вместо C получат ту же KOI8-R.
К сожалению, и этот способ неидеальный.
- Во-первых, это "локальный хак" (для территорий с преобладанием "русскопишущего" населения :-). Поэтому, он не имеют никаких шансов войти в официальные дистрибутивы XFree. И следовательно, эти действия придется повторять каждый раз при установке новой версии "иксов".
- Во-вторых, он может и "не сработать" для программ "статически слинкованных".
- Ну и наконец, тем самым вы "испортите" locale "C", и если какой-то из программ требуется именно она, то ... будет плохо. (Я слабо представляю - кому нужна именно такая "локаль", но - кто его знает.)