This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Lookup of localised language name by ISO 639 language code and reverse look up
Type: enhancement Stage: resolved
Components: Versions:
process
Status: closed Resolution: wont fix
Dependencies: Superseder:
Assigned To: Nosy List: asmodai, christian.heimes, eric.araujo, loewis, pander
Priority: normal Keywords:

Created on 2009-05-01 07:24 by pander, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (5)
msg86867 - (view) Author: (pander) Date: 2009-05-01 07:24
Hi all,

Does a module exist that can look up localised language names for ISO
639 language codes? If not, could one be constructed according to (sort
of) the following specifications?

1) Look up a localised language name for an ISO 639-1 language code for
a required parameter named code, providing the language code, and an
optional parameter named lang, providing the output language code, which
by default is set to 'en'. Example input and output would would be:

iso6391name(code='en') => 'English'
iso6391name(code='zu', lang='en') => 'Zulu'
iso6391name(code='zu', lang='nl') => 'Zoeloe'
iso6391name(code='nl', lang='en') => 'Dutch'

2) Reverse lookup of 1) from localised language to language code, e.g.:
iso6391code(name='English') => 'en'
iso6391code(name='Zulu', lang='en') => 'zu'
iso6391code(name='Zoeloe', lang='nl') => 'zu'
iso6391code(name='Dutch', lang='en') => 'nl'

3) Look up native language name for an ISO 639-1 language code for a
required parameter named code, providing the language code. Example
input and output would would be:

iso6391native(code='en') => 'English'
iso6391native(code='nl) => 'Nederlands'

4) Retrieving a tuple with all language codes. Example output would be:

iso6391codes() => ('aa', 'ab', ..., 'zu')

5) Retrieving a tuple with all localised language names for an optional
parameter named lang, providing the output language code, which by
default is set to 'en'. Example input and output would be:

iso6391names() => ('Afar', 'Abkhazian', ..., 'Zulu')
iso6391names(lang='nl') => ('Afar', 'Abchazisch', ..., 'Zoeloe')

6), 7), 8), 9), 10) Something similar for ISO 639-2 language codes

11), 12), 13), 14), 15) Something similar for ISO 639-2 language codes

sources:
http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
http://nl.wikipedia.org/wiki/Lijst_van_ISO_639-1-codes

I have a very simple implementation for English and Dutch but figured
that such a module should be available for all developers in all
languages. Hence this request to build something from scratch in the
Python localisation community.

Implementing functionality as described above will boost the ease of
internalisation and localisation of Python applications.

Please reply to this issue for constructive feedback.

Thanks,

Pander

PS   The original post in i18n-sg is here:
  http://mail.python.org/pipermail/i18n-sig/2009-April/002117.html
msg86870 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2009-05-01 08:38
I think the pycountry module might be helpful:

http://pypi.python.org/pypi/pycountry

As it is at version 0.11, I think it is very far away of being ready for
inclusion in the standard library. If this doesn't quite do what you
want, please cooperate with the author of the module to make it fit your
needs.
msg86875 - (view) Author: Jeroen Ruigrok van der Werven (asmodai) * (Python committer) Date: 2009-05-01 09:42
Babel already provides (almost all of) this. It uses the Unicode CLDR
data to present the information you need.

See http://babel.edgewall.org/
msg174721 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2012-11-04 00:30
Suggest closing, as pycountry is available and Babel is excellent.
msg174726 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2012-11-04 00:41
Agreed! Like time zones country and language information are altered ever so often. Babel, zope.i18n and pyicu provide excellent interfaces to the information and can be updated separately from the stdlib.
History
Date User Action Args
2022-04-11 14:56:48adminsetgithub: 50144
2012-11-04 00:41:33christian.heimessetstatus: open -> closed

nosy: + christian.heimes
messages: + msg174726

resolution: wont fix
stage: resolved
2012-11-04 00:30:52eric.araujosetnosy: + eric.araujo
messages: + msg174721
2009-05-01 09:42:02asmodaisetnosy: + asmodai
messages: + msg86875
2009-05-01 08:38:16loewissetnosy: + loewis
messages: + msg86870
2009-05-01 07:24:48pandercreate