Issue 8252 - Using ISO 639 and ISO 3166 for language codes
Summary: Using ISO 639 and ISO 3166 for language codes
Alias: None
Product: Internationalization
Classification: Code
Component: code (show other issues)
Version: current
Hardware: All All
: P2 Trivial with 6 votes (vote)
Target Milestone: ---
Assignee: hjs
QA Contact: issues@l10n
: 13735 (view as issue list)
Depends on:
Blocks: 9723
  Show dependency tree
Reported: 2002-10-11 17:40 UTC by ooo
Modified: 2013-08-07 15:00 UTC (History)
7 users (show)

See Also:
Latest Confirmation in: ---
Developer Difficulty: ---


Note You need to log in before you can comment on or make changes to this issue.
Description ooo 2002-10-11 17:40:49 UTC
Now OOo uses international phone code for language codes but some countries 
has more than one language and some languages are used with small country 
specific versions in more than one country like: 
- Basque and Spanish in Spain 
- Portuguese in both Portugal and Brazil 
just to name a few. 
Other systems like Linux uses a combination of the two ISO standards: 
  ISO 639 - "Code for the representation of names of languages": 
  ISO 3166 - "Codes for the representation of names of countries" 
You use the language code in lowercase and the two letter country code in 
uppercase and separate them with a dash. 
Examples with the above countries: 
  eu-ES  Basque in Spain. 
  es-ES  Spanish in Spain 
  pt-PT  Portuguese in Portugal 
  pt-BZ  Portuguese in Brazil 
In the beginning when a language is translated you should only use the 
language code. The country code can be added if the language differs. 
I think it should be a goal for 2.0 to use open standards and 
specifications within the office suite when ever it is possible.
Comment 1 huftis 2002-10-11 18:34:11 UTC
I wholeheartedly  agree. But ISO 639 shouldn't be used directly. 
RFC 3066[1] is a better solution, as this support ISO 639-2 
(three-letter) codes  when ISO 639-1 (two-letter) codes don't 

[1] <URL: >
Comment 2 huftis 2002-10-11 18:38:01 UTC
Note that the links Claus gave for ISO 639-1 and ISO 3166-1 are old
and outdated. You can find the latest official versions of these
standards here:

  ISO 639 (-1 and -2)

  ISO 3166-1
Comment 3 huftis 2002-10-12 08:11:03 UTC
*** This issue has been confirmed by popular vote. ***
Comment 4 Dieter.Loeschky 2002-10-23 12:39:52 UTC
DL->NF: Would you please takeover?
Comment 5 nils.fuhrmann 2002-12-18 08:38:47 UTC
In general, I agree to use 639-2. The problem is, that the OOo core
libraries currently support 639. If whe change the usage of numbers,
whe have to find a generic solution whith no need for code or
environment changes when intorducing new language. Because of the
current 639 restriction, such solution could only be based on 639
instead of 639-2.

The change is already planned for a build after 1.1.

NF->HJS: Please take over this task
Comment 6 huftis 2002-12-18 09:07:58 UTC
> In general, I agree to use 639-2.

As I said, I recommend using RFC 3066 instead of either ISO 639-1 or
ISO 639-2. RFC 3066 uses the concept of a 'language tag', which
consist of a language code, optionally followed by a country code or
other subtag. (The country code only helps to specify the language,
and really has nothing to do with countries in this context.)

RFC 3066 basically says:
1. Use ISO 639-1 if possible
2. Use ISO 639-2 if no ISO 639-1 code exists
3. USE ISO 3166 country code if necessary,
   to separate to languages with the same language
   code, e.g. US English and British English.

This means we'll have these codes:

sv       Swedish
en-US    US English
en-GB    UK English (note: not 'en-UK'!)
zun      Zuni

RFC 3066 is also used in most newer standards which uses language
codes, e.g. XML. (Older standards, such as HTTP uses RFC 1766, which
RFC 3066 updates and obsoletes. Future versions will use RFC 3066.)
Comment 7 hjs 2003-02-17 17:43:27 UTC
just setting the target milestone
Comment 8 ooo 2003-02-18 21:21:10 UTC
Yes - let 2.0 be the target for this.

Let 2.0 be the first office 
suite where open standards are used wherever possible.

What are the 
connections to issue 
Comment 9 thorsten.ziehm 2003-06-24 11:50:18 UTC
This task shouldn't be on priority 1, it is not a showstopper for a
version. So I set it to P2.
Comment 10 paulbe 2004-04-22 09:51:51 UTC
Isn´t this the same as Issue 13735 "RFE: change language/locale identifier to
standard convention"?
Comment 11 ooo 2004-04-23 14:40:20 UTC
Yes, issue 13735 is about the same thing, probably that one should be closed as

@Ause: please set this issue here to status started, as you and Ivo are working
on it in CWS mergebuild.
Comment 12 hjs 2004-04-26 16:06:05 UTC
Comment 13 hjs 2004-05-05 18:18:20 UTC
*** Issue 13735 has been marked as a duplicate of this issue. ***
Comment 14 hjs 2004-06-17 18:48:29 UTC
with the "mergebuild" CWS the main issue, switch from phone code to iso code,
has been addressed. although there are still some open points i would like to
close  this issue and handle subsequent improvements in  seperate ones.

still  open:
- support for ISO  639-2 (partially working)
- support for language variants
- generic language support  (some  preperations  done)

feel free to  write issues  on these.
Comment 15 hjs 2004-06-21 14:26:38 UTC
Comment 16 hjs 2004-07-05 17:56:01 UTC