View on GitHub

Open Language — LT Support

Or: Can I use my language? Documentation of open language technology (LT) support in common OS's and Office packages.

⚠️ This is early work, most is still TBW. Please contribute by forking and submitting PRs 😊

Language codes

Language codes are used to identify a language internally in a computing system, just like Unicode is used to identify letters (slightly simplified). Without a language code, there’s no way to communicate to a spelling checker what language to use for checking, to tell the system which voice to use for voice-over, or how to tell the user which language is currently being used for whatever tool.

There are several standards for language codes, but only one is used in computing systems: the ISO 639 series, by way of the BCP 47 standard. Other language coding systems are thus not considered.

It is unfortunate that the ISO 639 series of language codes are maintained by several entities. It would be desirable that they be all maintained along the same lines as Unicode, with regular updates and corrigenda.

ISO 639-1

Whether all ISO 639-1 codes are recognised by a system, with proper language names in both English and the native language

System System version Documentation Codes Language name in English Language name native language
Linux XX - Yes Yes Yes
Windows XX - Unknown Yes Yes
macOS 13.x - Partial Yes Yes
Android XX - Unknown Yes Yes
iOS XX - Unknown Yes Yes
ChromeOS XX - Unknown Yes Yes
O365/Win XX - Unknown Yes Unknown
O365/Mac XX - Unknown Yes Unknown
O365/Web XX - Unknown Yes Unknown
GDocs XX - Unknown Yes Unknown
LibreOffice XX - Unknown Yes Unknown

ISO 639-3

Whether all ISO 639-3 codes are recognised by a system, with proper language names in both English and the native language

System System version Documentation Codes Language name in English Language name native language
Linux XX - Unknown Yes Unknown
Windows XX - Unknown Yes Unknown
macOS XX - Unknown Yes Unknown
Android XX - Unknown Yes Unknown
iOS XX - Unknown Yes Unknown
ChromeOS XX - Unknown Yes Unknown
O365/Win XX - Unknown Yes Unknown
O365/Mac XX - Unknown Yes Unknown
O365/Web XX - Unknown Yes Unknown
GDocs XX - Unknown Yes Unknown
LibreOffice XX - Unknown Yes Unknown

Adding or registering missing language codes

While waiting for a Unicode like model for maintaining language codes, it is necessary that users or independent developers can add missing language codes as needed. The following table describes the status for this option.

System System version Documentation/Comments Codes Language name in English Language name native language
Linux XX - Yes Yes Yes
Windows XX - Partial Yes Yes
macOS XX - Partial No No
Android XX - No No No
iOS XX - No No No
ChromeOS XX - No No No
O365/Win XX Codes and names from the OS Partial Yes Yes
O365/Mac XX - No No No
O365/Web XX - No No No
GDocs XX - No No No
LibreOffice XX - Unknown Yes Unknown