* [devel] Q: locale(7) hell
@ 2004-12-14 8:28 Alexey I. Froloff
2004-12-14 9:05 ` Alexey I. Froloff
0 siblings, 1 reply; 11+ messages in thread
From: Alexey I. Froloff @ 2004-12-14 8:28 UTC (permalink / raw)
To: ALT Devel discussion list; +Cc: ALT Linux Sisyphus
[-- Attachment #1: Type: text/plain, Size: 1140 bytes --]
Занялся я тут переписыванием fortune-mod (ну не нравится мне как
оно написано!) и хочу сделать "как в Debian" (C), только лучше
;-)
В двух словах:
При поиске базы fortune(6) перебирает следующие пути:
FORTDIR/%LOCALE%
FORTDIR/%LOCALE_2%
FORTDIR/
где %LOCALE% - язык. Определяется переменными LC_ALL,
LC_MESSAGES, LANG и LANGUAGE. %LOCALE% - полное имя локали,
вместе с территорией и кодировкой, %LOCALE_2% - двухсимвольный
код языка. Rationale: мне (ru_RU.KOI8-R) неинтересно читать
фортунки на белорусском или украинском языках - я просто ничего
не пойму.
С файлами данных в utf-8 тоже всё будет в порядке - fortune-mod
1.99.1, судя по исходникам, рассматривает базы как utf-8 если
видит рядом с базой файл с именем <имя_базы>.u8.
Всвязи с этим вопрос - куда девать ГНУтое расширение под
названием LANGUAGE? Вариантов два:
LC_ALL
LC_MESSAGES
LANGUAGE.each
LANG
и
LC_ALL
LANGUAGE.each
LC_MESSAGES
LANG
Как правильно?
--
Regards, Sir Raorn.
-------------------
Пока мне не объяснят, как сделать так, чтобы воспроизвести это, я буду
считать, что всё нормально.
-- ldv in devel@
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Q: locale(7) hell
2004-12-14 8:28 [devel] Q: locale(7) hell Alexey I. Froloff
@ 2004-12-14 9:05 ` Alexey I. Froloff
2004-12-14 10:30 ` Dmitry V. Levin
0 siblings, 1 reply; 11+ messages in thread
From: Alexey I. Froloff @ 2004-12-14 9:05 UTC (permalink / raw)
To: ALT Devel discussion list, ALT Linux Sisyphus
[-- Attachment #1: Type: text/plain, Size: 581 bytes --]
* Alexey I. Froloff <raorn@> [041214 11:29]:
> Всвязи с этим вопрос - куда девать ГНУтое расширение под
> названием LANGUAGE? Вариантов два:
Посмотрел как сделано в gettext...
Если есть LANGUAGE - использовать его, при условии что данная
категория локали не выставлена в "C"...
Однако берут меня сомнения... У LC_ALL должен быть самый большой
приоритет.
--
Regards, Sir Raorn.
-------------------
Дефис AKA минус в именах пакетов использовать НЕЛЬЗЯ, это грех перед
Богом, за который вас заставят 1000 лет пересобирать пакеты в чистилище.
-- mhz in devel@
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Q: locale(7) hell
2004-12-14 9:05 ` Alexey I. Froloff
@ 2004-12-14 10:30 ` Dmitry V. Levin
2004-12-15 9:07 ` Sergey V Turchin
0 siblings, 1 reply; 11+ messages in thread
From: Dmitry V. Levin @ 2004-12-14 10:30 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 2283 bytes --]
On Tue, Dec 14, 2004 at 12:05:40PM +0300, Alexey I. Froloff wrote:
> * Alexey I. Froloff <raorn@> [041214 11:29]:
> > Всвязи с этим вопрос - куда девать ГНУтое расширение под
> > названием LANGUAGE? Вариантов два:
> Посмотрел как сделано в gettext...
>
> Если есть LANGUAGE - использовать его, при условии что данная
> категория локали не выставлена в "C"...
>
> Однако берут меня сомнения... У LC_ALL должен быть самый большой
> приоритет.
В gettext(3) написано следующее:
Translation lookup operates in the context of the current locale.
For the gettext and dgettext functions, the LC_MESSAGES locale facet
is used. It is determined by a preceding call to the setlocale function.
setlocale(LC_ALL,"") initializes the LC_MESSAGES locale based on the first
nonempty value of the three environment variables LC_ALL, LC_MESSAGES,
LANG; see setlocale(3). For the dcgettext function, the locale facet
is determined by the category argument, which should be one of the
LC_xxx constants defined in the <locale.h> header, excluding LC_ALL.
In both cases, the functions also use the LC_CTYPE locale facet in
order to convert the translated message from the translator's codeset
to the current locale's codeset, unless overridden by a prior call to
the bind_textdomain_codeset function.
The message catalog used by the functions is at the pathname
dirname/locale/category/domainname.mo. Here dirname is the directory
specified through bindtextdomain. Its default is system and configuration
dependent; typically it is prefix/share/locale, where prefix is the
installation prefix of the package. locale is the name of the current
locale facet; the GNU implementation also tries generalizations, such as
the language name without the territory name. category is LC_MESSAGES
for the gettext and dgettext functions, or the argument passed to the
dcgettext function.
If the LANGUAGE environment variable is set to a nonempty value, and
the locale is not the "C" locale, the value of LANGUAGE is assumed
to contain a colon separated list of locale names. The functions will
attempt to look up a translation of msgid in each of the locales in turn.
This is a GNU extension.
Было бы разумно реализовать аналогичное поведение.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Q: locale(7) hell
2004-12-14 10:30 ` Dmitry V. Levin
@ 2004-12-15 9:07 ` Sergey V Turchin
2004-12-15 9:12 ` Alexey I. Froloff
2004-12-15 10:13 ` Dmitry V. Levin
0 siblings, 2 replies; 11+ messages in thread
From: Sergey V Turchin @ 2004-12-15 9:07 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 651 bytes --]
В сообщении от Вторник 14 Декабрь 2004 13:30 Dmitry V. Levin
написал(a):
[...]
> If the LANGUAGE environment variable is set to a nonempty value,
> and the locale is not the "C" locale, the value of LANGUAGE is
> assumed to contain a colon separated list of locale names. The
> functions will attempt to look up a translation of msgid in each
> of the locales in turn. This is a GNU extension.
Т.е. использовать локаль C для установки одной категории не имеет
смысла?
> Было бы разумно реализовать аналогичное поведение.
--
Regards, Sergey, ALT Linux Team, http://www.altlinux.ru
http://stinkfoot.org:11371/pks/lookup?op=get&search=0x1C2A3F08
[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Q: locale(7) hell
2004-12-15 9:07 ` Sergey V Turchin
@ 2004-12-15 9:12 ` Alexey I. Froloff
2004-12-15 11:58 ` Sergey V Turchin
2004-12-15 10:13 ` Dmitry V. Levin
1 sibling, 1 reply; 11+ messages in thread
From: Alexey I. Froloff @ 2004-12-15 9:12 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 791 bytes --]
* Sergey V Turchin <zerg@> [041215 12:07]:
> > If the LANGUAGE environment variable is set to a nonempty value,
> > and the locale is not the "C" locale, the value of LANGUAGE is
> > assumed to contain a colon separated list of locale names. The
> > functions will attempt to look up a translation of msgid in each
> > of the locales in turn. This is a GNU extension.
> Т.е. использовать локаль C для установки одной категории не имеет
> смысла?
Почему? Имеет. Есть локаль данной категории равна "C", то на
LANGUAGE даже не смотрим.
--
Regards, Sir Raorn.
-------------------
> Собранный без хашера не работает, а собранный с хашером - работает...
> Чудеса на постном масле.
У Вас есть файл libqt-mt.a,
а я никогда не собирал libqt3-devel-static
-- zerg in devel@
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Q: locale(7) hell
2004-12-15 9:12 ` Alexey I. Froloff
@ 2004-12-15 11:58 ` Sergey V Turchin
2004-12-15 12:01 ` Alexey I. Froloff
2004-12-15 12:02 ` Sergey V Turchin
0 siblings, 2 replies; 11+ messages in thread
From: Sergey V Turchin @ 2004-12-15 11:58 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 804 bytes --]
В сообщении от Среда 15 Декабрь 2004 12:12 Alexey I. Froloff
написал(a):
> * Sergey V Turchin <zerg@> [041215 12:07]:
> > > If the LANGUAGE environment variable is set to a nonempty
> > > value, and the locale is not the "C" locale, the value of
> > > LANGUAGE is assumed to contain a colon separated list of
> > > locale names. The functions will attempt to look up a
> > > translation of msgid in each of the locales in turn. This is
> > > a GNU extension.
> >
> > Т.е. использовать локаль C для установки одной категории не
> > имеет смысла?
>
> Почему? Имеет. Есть локаль данной категории равна "C", то на
> LANGUAGE даже не смотрим.
А если при этом категория LC_ALL!=C ?
--
Regards, Sergey, ALT Linux Team, http://www.altlinux.ru
http://stinkfoot.org:11371/pks/lookup?op=get&search=0x1C2A3F08
[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Q: locale(7) hell
2004-12-15 11:58 ` Sergey V Turchin
@ 2004-12-15 12:01 ` Alexey I. Froloff
2004-12-15 12:04 ` Sergey V Turchin
2004-12-15 12:02 ` Sergey V Turchin
1 sibling, 1 reply; 11+ messages in thread
From: Alexey I. Froloff @ 2004-12-15 12:01 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 825 bytes --]
* Sergey V Turchin <zerg@> [041215 14:57]:
> > > > If the LANGUAGE environment variable is set to a nonempty
> > > > value, and the locale is not the "C" locale, the value of
> > > > LANGUAGE is assumed to contain a colon separated list of
> > > > locale names. The functions will attempt to look up a
> > > > translation of msgid in each of the locales in turn. This is
> > > > a GNU extension.
> > > Т.е. использовать локаль C для установки одной категории не
> > > имеет смысла?
> > Почему? Имеет. Есть локаль данной категории равна "C", то на
> > LANGUAGE даже не смотрим.
> А если при этом категория LC_ALL!=C ?
Тогда "локаль одной категории" тоже будет !=C...
--
Regards, Sir Raorn.
-------------------
Время задержки колеблется от "несколько часов" до "неопределенно долго".
-- ldv in devel@
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Q: locale(7) hell
2004-12-15 11:58 ` Sergey V Turchin
2004-12-15 12:01 ` Alexey I. Froloff
@ 2004-12-15 12:02 ` Sergey V Turchin
1 sibling, 0 replies; 11+ messages in thread
From: Sergey V Turchin @ 2004-12-15 12:02 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 936 bytes --]
В сообщении от Среда 15 Декабрь 2004 14:58 Sergey V Turchin
написал(a):
> В сообщении от Среда 15 Декабрь 2004 12:12 Alexey I. Froloff
>
> написал(a):
> > * Sergey V Turchin <zerg@> [041215 12:07]:
> > > > If the LANGUAGE environment variable is set to a nonempty
> > > > value, and the locale is not the "C" locale, the value of
> > > > LANGUAGE is assumed to contain a colon separated list of
> > > > locale names. The functions will attempt to look up a
> > > > translation of msgid in each of the locales in turn. This
> > > > is a GNU extension.
> > >
> > > Т.е. использовать локаль C для установки одной категории не
> > > имеет смысла?
> >
> > Почему? Имеет. Есть локаль данной категории равна "C", то на
> > LANGUAGE даже не смотрим.
>
> А если при этом категория LC_ALL!=C ?
Хотя ее нет в /etc/skel
--
Regards, Sergey, ALT Linux Team, http://www.altlinux.ru
http://stinkfoot.org:11371/pks/lookup?op=get&search=0x1C2A3F08
[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Q: locale(7) hell
2004-12-15 9:07 ` Sergey V Turchin
2004-12-15 9:12 ` Alexey I. Froloff
@ 2004-12-15 10:13 ` Dmitry V. Levin
2004-12-15 10:38 ` Sergey V Turchin
1 sibling, 1 reply; 11+ messages in thread
From: Dmitry V. Levin @ 2004-12-15 10:13 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 712 bytes --]
On Wed, Dec 15, 2004 at 12:07:46PM +0300, Sergey V Turchin wrote:
> В сообщении от Вторник 14 Декабрь 2004 13:30 Dmitry V. Levin
> написал(a):
>
> [...]
>
> > If the LANGUAGE environment variable is set to a nonempty value,
> > and the locale is not the "C" locale, the value of LANGUAGE is
> > assumed to contain a colon separated list of locale names. The
> > functions will attempt to look up a translation of msgid in each
> > of the locales in turn. This is a GNU extension.
> Т.е. использовать локаль C для установки одной категории не имеет
> смысла?
Если она переопределена с помощью переменной LANGUAGE.
По этой причине не надо определять LANGUAGE без необходимости.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] Q: locale(7) hell
2004-12-15 10:13 ` Dmitry V. Levin
@ 2004-12-15 10:38 ` Sergey V Turchin
0 siblings, 0 replies; 11+ messages in thread
From: Sergey V Turchin @ 2004-12-15 10:38 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 932 bytes --]
В сообщении от Среда 15 Декабрь 2004 13:13 Dmitry V. Levin
написал(a):
> On Wed, Dec 15, 2004 at 12:07:46PM +0300, Sergey V Turchin wrote:
> > В сообщении от Вторник 14 Декабрь 2004 13:30 Dmitry V. Levin
> > написал(a):
> >
> > [...]
> >
> > > If the LANGUAGE environment variable is set to a nonempty
> > > value, and the locale is not the "C" locale, the value of
> > > LANGUAGE is assumed to contain a colon separated list of
> > > locale names. The functions will attempt to look up a
> > > translation of msgid in each of the locales in turn. This is
> > > a GNU extension.
> >
> > Т.е. использовать локаль C для установки одной категории не
> > имеет смысла?
>
> Если она переопределена с помощью переменной LANGUAGE.
> По этой причине не надо определять LANGUAGE без необходимости.
/etc/skel*/.i18n
--
Regards, Sergey, ALT Linux Team, http://www.altlinux.ru
http://stinkfoot.org:11371/pks/lookup?op=get&search=0x1C2A3F08
[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2004-12-15 12:04 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-14 8:28 [devel] Q: locale(7) hell Alexey I. Froloff
2004-12-14 9:05 ` Alexey I. Froloff
2004-12-14 10:30 ` Dmitry V. Levin
2004-12-15 9:07 ` Sergey V Turchin
2004-12-15 9:12 ` Alexey I. Froloff
2004-12-15 11:58 ` Sergey V Turchin
2004-12-15 12:01 ` Alexey I. Froloff
2004-12-15 12:04 ` Sergey V Turchin
2004-12-15 12:02 ` Sergey V Turchin
2004-12-15 10:13 ` Dmitry V. Levin
2004-12-15 10:38 ` Sergey V Turchin
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git