ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [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: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

* 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 12:01           ` Alexey I. Froloff
@ 2004-12-15 12:04             ` Sergey V Turchin
  0 siblings, 0 replies; 11+ messages in thread
From: Sergey V Turchin @ 2004-12-15 12:04 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 306 bytes --]

В сообщении от Среда 15 Декабрь 2004 15:01 Alexey I. Froloff 
написал(a):

[...]

> > А если при этом категория LC_ALL!=C ?
> Тогда "локаль одной категории" тоже будет !=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

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