matriphe/iso-639

PHP library to convert ISO-639-1 code to language name.

Installs: 2 854 032

Dependents: 7

Suggesters: 0

Security: 0

Stars: 51

Watchers: 2

Forks: 20

Open Issues: 1

pkg:composer/matriphe/iso-639

v2.0.10 2025-10-05 21:40 UTC

README

Run Test Total Download Latest Stable Version

PHP library to convert ISO-639-1 code to language name, based on Wikipedia's List of ISO 639-1 codes.

Installation

For PHP 8.1 or latest:

composer require matriphe/iso-639

For older PHP version:

composer require matriphe/iso-639:1.3

Requirements

  • PHP 8.0 or higher
  • Optional: ext-mbstring extension for better multibyte character support

The library will work without the mbstring extension, but for optimal handling of multibyte characters (like accented characters, Cyrillic, Arabic, etc.) in language names, it's recommended to install the mbstring extension.

Usage Example

<?php

required 'src/ISO639.php';
//required 'vendor/autoload.php'; // If using composer

$iso = new Matriphe\ISO639\ISO639;

// Get language name from ISO-639-1 code
echo $iso->languageByCode1('en'); // English
echo $iso->languageByCode1('id'); // Indonesian
echo $iso->languageByCode1('jv'); // Javanese

// Get native language name from ISO-639-1 code
echo $iso->nativeByCode1('en'); // English
echo $iso->nativeByCode1('id'); // Bahasa Indonesia
echo $iso->nativeByCode1('jv'); // basa Jawa

// Get native language name from ISO-639-1 code with capitalized
echo $iso->nativeByCode1('en', true); // English
echo $iso->nativeByCode1('id', true); // Bahasa Indonesia
echo $iso->nativeByCode1('jv', true); // Basa Jawa
echo $iso->nativeByCode1('hi', true); // हिन्दी, हिंदी
echo $iso->nativeByCode1('th', true); // ไทย
echo $iso->nativeByCode1('ko', true); // 한국어
echo $iso->nativeByCode1('ja', true); // 日本語 (にほんご)
echo $iso->nativeByCode1('zh', true); // '中文 (Zhōngwén), 汉语, 漢語
echo $iso->nativeByCode1('ru', true); // Русский
echo $iso->nativeByCode1('ar', true); // االعربية
echo $iso->nativeByCode1('vi', true); // Việt Nam

// Get language name from ISO-639-2t code
echo $iso->languageByCode2t('eng'); // English
echo $iso->languageByCode2t('ind'); // Indonesian
echo $iso->languageByCode2t('jav'); // Javanese

// Get native language name from ISO-639-2t code
echo $iso->nativeByCode2t('eng'); // English
echo $iso->nativeByCode2t('ind'); // Bahasa Indonesia
echo $iso->nativeByCode2t('jav'); // basa Jawa

// Get native language name from ISO-639-2t code with capitalized
echo $iso->nativeByCode2t('eng', true); // English
echo $iso->nativeByCode2t('ind', true); // Bahasa Indonesia
echo $iso->nativeByCode2t('jav', true); // Basa Jawa
echo $iso->nativeByCode2t('hin', true); // हिन्दी, हिंदी
echo $iso->nativeByCode2t('tha', true); // ไทย
echo $iso->nativeByCode2t('kor', true); // 한국어
echo $iso->nativeByCode2t('jpn', true); // 日本語 (にほんご)
echo $iso->nativeByCode2t('zho', true); // '中文 (Zhōngwén), 汉语, 漢語
echo $iso->nativeByCode2t('rus', true); // Русский
echo $iso->nativeByCode2t('ara', true); // االعربية
echo $iso->nativeByCode2t('vie', true); // Việt Nam

// Get language name from ISO-639-2b code
echo $iso->languageByCode2b('eng'); // English
echo $iso->languageByCode2b('ind'); // Indonesian
echo $iso->languageByCode2b('jav'); // Javanese

// Get native language name from ISO-639-2b code
echo $iso->nativeByCode2b('eng'); // English
echo $iso->nativeByCode2b('ind'); // Bahasa Indonesia
echo $iso->nativeByCode2b('jav'); // basa Jawa

// Get native language name from ISO-639-2b code with capitalized
echo $iso->nativeByCode2b('eng', true); // English
echo $iso->nativeByCode2b('ind', true); // Bahasa Indonesia
echo $iso->nativeByCode2b('jav', true); // Basa Jawa
echo $iso->nativeByCode2b('hin', true); // हिन्दी, हिंदी
echo $iso->nativeByCode2b('tha', true); // ไทย
echo $iso->nativeByCode2b('kor', true); // 한국어
echo $iso->nativeByCode2b('jpn', true); // 日本語 (にほんご)
echo $iso->nativeByCode2b('chi', true); // '中文 (Zhōngwén), 汉语, 漢語
echo $iso->nativeByCode2b('rus', true); // Русский
echo $iso->nativeByCode2b('ara', true); // االعربية
echo $iso->nativeByCode2b('vie', true); // Việt Nam

// Get language name from ISO-639-3 code
echo $iso->languageByCode3('eng'); // English
echo $iso->languageByCode3('ind'); // Indonesian
echo $iso->languageByCode3('jav'); // Javanese

// Get native language name from ISO-639-3 code
echo $iso->nativeByCode3('eng'); // English
echo $iso->nativeByCode3('ind'); // Bahasa Indonesia
echo $iso->nativeByCode3('jav'); // basa Jawa

// Get native language name from ISO-639-3 code with capitalized
echo $iso->nativeByCode3('eng', true); // English
echo $iso->nativeByCode3('ind', true); // Bahasa Indonesia
echo $iso->nativeByCode3('jav', true); // Basa Jawa
echo $iso->nativeByCode3('hin', true); // हिन्दी, हिंदी
echo $iso->nativeByCode3('tha', true); // ไทย
echo $iso->nativeByCode3('kor', true); // 한국어
echo $iso->nativeByCode3('jpn', true); // 日本語 (にほんご)
echo $iso->nativeByCode3('zho', true); // '中文 (Zhōngwén), 汉语, 漢語
echo $iso->nativeByCode3('rus', true); // Русский
echo $iso->nativeByCode3('ara', true); // االعربية
echo $iso->nativeByCode3('vie', true); // Việt Nam

// Get language array from ISO-639-2b code
echo $iso->getLanguageByIsoCode2b('eng'); // ['en', 'eng', 'eng', 'eng', 'English', 'English']
echo $iso->getLanguageByIsoCode2b('ind'); // ['id', 'ind', 'ind', 'ind', 'Indonesian', 'Bahasa Indonesia']
echo $iso->getLanguageByIsoCode2b('jav'); // ['jv', 'jav', 'jav', 'jav', 'Javanese', 'basa Jawa']

Contributing

Do as usual contribution on open source projects by creating a pull request!

Install Composer

composer install

Run Test

composer run-script test

Run Linter Fix

composer run-script lint:fix