matriphe/iso-639

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

Maintainers

👁 matriphe

Package info

github.com/matriphe/php-iso-639

pkg:composer/matriphe/iso-639

Statistics

Installs: 3 508 119

Dependents: 7

Suggesters: 0

Stars: 50

Open Issues: 2

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

Requires

  • php: 8.*

Requires (Dev)

Suggests

  • ext-mbstring: For better multibyte character support in text transformations
  • ext-xdebug: For code coverage when running tests

Provides

None

Conflicts

None

Replaces

None

MIT aa2ddce7eb9000570e6398bf52f114ebf9f0691a

  • Muhammad Zamroni <halo.woop@matriphe.com>

languagelaravelisolangiso-639639

This package is auto-updated.

Last update: 2026-06-05 23:39:14 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