rinvex/languages

Rinvex Languages is a simple and lightweight package for retrieving language details with flexibility. A whole bunch of data including name, native, iso codes, language family, language script, language cultures, and other attributes for the 180+ known languages worldwide at your fingertips.

v5.0.1 2020-04-04 21:58 UTC

This package is auto-updated.

Last update: 2020-10-23 04:25:55 UTC


README

Rinvex Language is a simple and lightweight package for retrieving language details with flexibility. A whole bunch of data including name, native, iso codes, language family, language script, language cultures, and other attributes for the 180+ known languages worldwide at your fingertips.

Packagist Scrutinizer Code Quality Travis StyleCI License

Usage

Install via composer require rinvex/languages, then use intuitively:

// Get single language
$english = language('en');

// Get language name: English
echo $english->getName();

// Get language native name: English
echo $english->getNativeName();

// Get language ISO 639-1 code: en
echo $english->getIso6391();

// Get language ISO 639-2 code: eng
echo $english->getIso6392();

// Get language ISO 639-3 code: eng
echo $english->getIso6393();

// Get language script details: {"name": "Latin","iso_15924": "Latn","iso_numeric": "215","direction": "ltr"}
echo $english->getScript();

// Get language script name: Latin
echo $english->getScriptName();

// Get language script ISO 15924 code: Latn
echo $english->getScriptIso15924();

// Get language script ISO numeric code: 215
echo $english->getScriptIsoNumeric();

// Get language script direction: ltr
echo $english->getScriptDirection();

// Get language family details: {"name": "Indo-European","iso_639_5": "ine","hierarchy": "ine"}
echo $english->getFamily();

// Get language family name: Indo-European
echo $english->getFamilyName();

// Get language family ISO 6395 code: ine
echo $english->getFamilyIso6395();

// Get language family hierarchy: ine
echo $english->getFamilyHierarchy();

// Get language scope: individual
echo $english->getScope();

// Get language type: living
echo $english->getType();

// Get language cultures: {"en-US": {"name": "English (United States)","native": "English (United States)"}, {...}}
echo $english->getCultures();

// Get language specific culture: {"name": "English (United States)","native": "English (United States)"}
echo $english->getCulture('en-US');


// Get all languages
$languages = languages();

// Get all language scripts
$language_scripts = language_scripts();

// Get all language families
$language_families = language_families();

// Get languages with where condition (language script: Latin)
$whereLanguages = \Rinvex\Language\LanguageLoader::where('script.name', 'Latin');

Notes:

  • Rinvex Language is framework-agnostic, so it's compatible with any PHP framework whatsoever without any dependencies at all, except for the PHP version itself ^7.4.0. Awesome, huh? 😃
  • Rinvex Language provides the global helpers for your convenience and for ease of use, but in fact it's just wrappers around the underlying LanguageLoader class, which you can utilize and use directly if you wish

Features Explained

  • Language data are all stored here: resources/languages.json.
  • name - language english name
  • native - language native name
  • iso_639_1 - two letter code ISO 639-1
  • iso_639_2 - three letter code ISO 639-2
  • iso_639_3 - three letter code ISO 639-3
  • script - language script details
    • name: language script name
    • iso_15924: language script ISO 15924 code
    • iso_numeric: language script ISO numeric code
    • direction: language script writing direction
  • family - language family details
    • name: language family name
    • iso_639_5: three-letter ISO 639-5 code
    • hierarchy: language family hierarchy
  • cultures - list of language cultures
    • key: four-letter language culture code (iso_639_1-iso_3166_1)
    • value: culture object
      • name: language culture name
      • native: language culture native name
  • scope - language scope (like individual or macrolanguage)
  • type - language type (like living or ancient)

Changelog

Refer to the Changelog for a full history of the project.

Support

The following support channels are available at your fingertips:

Contributing & Protocols

Thank you for considering contributing to this project! The contribution guide can be found in CONTRIBUTING.md.

Bug reports, feature requests, and pull requests are very welcome.

Security Vulnerabilities

If you discover a security vulnerability within this project, please send an e-mail to help@rinvex.com. All security vulnerabilities will be promptly addressed.

About Rinvex

Rinvex is a software solutions startup, specialized in integrated enterprise solutions for SMEs established in Alexandria, Egypt since June 2016. We believe that our drive The Value, The Reach, and The Impact is what differentiates us and unleash the endless possibilities of our philosophy through the power of software. We like to call it Innovation At The Speed Of Life. That’s how we do our share of advancing humanity.

License

This software is released under The MIT License (MIT).

(c) 2016-2020 Rinvex LLC, Some rights reserved.