comecaramelos/i18n-iso-relations

Composer package for ISO 639-1 (languages) and ISO 3166-1 (countries) relationships with locale generation and validation

Maintainers

Package info

bitbucket.org/ComeCaramelos/i18nisorelations

pkg:composer/comecaramelos/i18n-iso-relations

Statistics

Installs: 41

Dependents: 0

Suggesters: 0

dev-main 2026-04-07 19:06 UTC

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étodoAliasTipoDescripción
create(string $iso6391, ?string $iso31661)-classCrear instancia con ambos códigos individuales o desde un locale
createRandom()-classCrear instancia aleatoria
fromIso31661(string $code)fromCountryCode()stringCrear instancia desde código ISO 3166-1
fromIso6391(string $code)fromLangCode()stringCrear instancia desde código ISO 639-1
getAllCombinations()-arrayObtener todas las combinaciones idioma-país
getAllIso31661Codes()-arrayObtener todos los códigos de país
getAllIso6391Codes()-arrayObtener todos los códigos de idioma

Métodos de Instancia

MétodoAliasDescripció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