comecaramelos / i18n-iso-relations
Composer package for ISO 639-1 (languages) and ISO 3166-1 (countries) relationships with locale generation and validation
Package info
bitbucket.org/ComeCaramelos/i18nisorelations
pkg:composer/comecaramelos/i18n-iso-relations
dev-main
2026-04-07 19:06 UTC
Requires
- php: ^8.3
Requires (Dev)
- codeigniter4/framework: ^4.7
- friendsofphp/php-cs-fixer: ^3.94
- laravel/framework: ^13.3
- phpunit/phpunit: ^12.5
This package is not auto-updated.
Last update: 2026-05-06 18:13:54 UTC
README
Gestión de relación entre idiomas (ISO 639-1) y países (ISO 3166-1) para generar y validar locales en formato estándar (ej: es_ES, en_AU)
Instalación
composer require comecaramelos/i18n-iso-relations
Uso Básico
Crear instancia desde código de idioma
use ComeCaramelos\I18nIsoRelations\IsoRelations;
$iso = IsoRelations::fromLangCode('es'); // o IsoRelations::fromIso6391('es')
echo $iso->getLocale(); // es_ES
echo $iso->getLangCode(); // es
echo $iso->getCountryCode(); // ES
Crear instancia desde código de país
use ComeCaramelos\I18nIsoRelations\IsoRelations;
$iso = IsoRelations::fromCountryCode('FR'); // o IsoRelations::fromIso31661('FR')
echo $iso->getLocale(); // fr_FR
echo $iso->getLangCode(); // fr
echo $iso->getCountryCode(); // FR
Crear instancia desde locale
use ComeCaramelos\I18nIsoRelations\IsoRelations;
$iso = IsoRelations::create('fr', 'CA'); // o IsoRelations::create('fr_CA')
var_dump($iso->getValidLangCodes()); // array ['en', 'fr']
var_dump($iso->getValidCountryCodes()); // array ['FR', 'CA', 'BE', 'CH', 'LU', 'SN', 'CI', 'CM', 'MA', 'DZ', 'TN']
Datos aleatorios
use ComeCaramelos\I18nIsoRelations\IsoRelations;
// Instancia aleatoria
$iso = IsoRelations::createRandom();
// Valores aleatorios relacionados
$randomLang = $iso->getRandLangCode();
$randomCountry = $iso->getRandCountryCode();
API Completa
Métodos Estáticos
| Método | Alias | Tipo | Descripción |
|---|---|---|---|
create(string $iso6391, ?string $iso31661) | - | class | Crear instancia con ambos códigos individuales o desde un locale |
createRandom() | - | class | Crear instancia aleatoria |
fromIso31661(string $code) | fromCountryCode() | string | Crear instancia desde código ISO 3166-1 |
fromIso6391(string $code) | fromLangCode() | string | Crear instancia desde código ISO 639-1 |
getAllCombinations() | - | array | Obtener todas las combinaciones idioma-país |
getAllIso31661Codes() | - | array | Obtener todos los códigos de país |
getAllIso6391Codes() | - | array | Obtener todos los códigos de idioma |
Métodos de Instancia
| Método | Alias | Descripción |
|---|---|---|
getIso6391() | getLangCode() | Obtener código ISO 639-1 |
getIso31661() | getCountryCode() | Obtener código ISO 3166-1 |
getLocale() | - | Obtener locale en formato {lang}_{COUNTRY} |
getValidIso6391() | getValidLangCodes() | Obtener idiomas válidos para el país actual |
getValidIso31661() | getValidCountryCodes() | Obtener países válidos para el idioma actual |
getRandIso6391() | getRandLangCode() | Obtener idioma aleatorio válido para el país |
getRandIso31661() | getRandCountryCode() | Obtener país aleatorio válido para el idioma |
toArray() | - | Convertir a array |
toJson() | - | Convertir a JSON |
Licencia
MIT
Autor
ComeCaramelos
Cambios Recientes
v1.0.0
- Lanzamiento inicial