Date: Tue, 12 Mar 2002 17:16:09 +0200 From: Alexey Zelkin <phantom@freebsd.org> To: i18n@freebsd.org Subject: FreeBSD i18n related plans Message-ID: <20020312171609.A94497@gate.sim.ionidea.com>
next in thread | raw e-mail | index | archive | help
Folks,
I'd like to share my and collect your plans related to
internationalization work for next few months. Idea of
this letter is:
. To receive useful ideas, comments and feedback
on current and future i18n way of FreeBSD. My targets
are noted below and your comments/additions to this
list are welcome!
. To share information about ongoing i18n related projects.
If you're involved to any such project please post short
notice and project description to this mailing list.
. To collect stale/suspended/not-started projects
and possibly find volunteers to take them over.
If you've information on such kind of projects/ideas
please post it to this mailing list or to me directly.
. And at general -- to make FreeBSD more friendly to
not-english speaking/reading people.
If you've notes by any of these points -- answer right now ! :-)
Briefly about my short-term plans:
1. I am going to MFC bunch of locale and time specific
changes soon to RELENG_4. Main aim of this merge is to
sync -current and -stable locale handling code. This MFC
brings to -stable few useful features, like:
. support for LC_MESSAGES/LC_NUMERIC/LC_MONETARY locale
categories (i.e.
. support for nl_langinfo(3)
. bunch of changes to str[fp]time(3) functions, like
adding of new POSIX specifiers, removing of some non-standard
specifiers (like %E[Ff])
As soon as it will be committed I would ask you to check
these changes against your locale experience. I am using
these changes at my system for some time, but I can prove
their correctness against english and russian locales only.
2. I am going to port from NetBSD NLS stuff used to translate
libc error and signal messages. This change will affect results
of strerror(), strsignal(), perror() and psignal() functions. They'll
return translated errors message according to current locale set.
3. We (few people) are planing to start implementing NLS support
for base system utilities, i.e. to provide i18n support to applications
which live in /bin, /usr.bin, etc.
There're two possible options:
a) implement this using standard NLS stuff (catopen()/catgets()/catclose()).
Pros and Cons of this way:
Pros:
. infrastructure is already implemented and used in FreeBSD for long time
Cons:
. translated strings are referred by numeric Ids (this will require
spending more time on synchronization)
. no infrastructure to generate source catalogs and check outdated
translated catalogs exists
b) implement this using gettext. Actually there're two
possible choices of infrastructure: GNU gettext (GPL) or Citrus
libintl (BSDL).
Pros:
. simple maintaince of translated catalogs
. no fixed Ids for messages
. some of base tree tools already have translated catalogs (not imported
to base tree by default)
Cons:
. In BSDL case: no maintaince tools under BSDL available, only library.
. In GPL case: licensing problems.
. In both cases -- possibility to hit into outdated library with new
(changed) .po/.mo files format case.
Also I am interesting in case of having both in-tree and ports versions
of libintl. Any ideas how to do it (except exact renaming of in-tree
version) ?
4) As continue of previous idea is to implement i18n of user interaction
infrastructure. For example application should not just ask for:
Are you sure [y/n]: yes
but use nl_langinfo(3) to receive translated "yes" and "no" message. Like:
printf("%s? [%s/%s] ", _i18n("Are you sure), nl_langinfo(YESSTR),
nl_langinfo(NOSTR));
Also use "yesexpr" and "noexpr" (also available from nl_langinfo()) to
parse answer (to respect national positive/negative answer values).
5) And last idea that I have in mind is to start implementing POSIX
compatible localedef(1) utility and to completely replace our
current source locale data with POSIX compatible ones.
Additions, comments ?
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-i18n" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020312171609.A94497>
