1. Go to this page and download the library: Download tobento/service-language library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tobento / service-language example snippets
use Tobento\Service\Language\LanguageFactory;
use Tobento\Service\Language\LanguageInterface;
$languageFactory = new LanguageFactory();
$language = $languageFactory->createLanguage('en');
var_dump($language instanceof LanguageInterface);
// bool(true)
use Tobento\Service\Language\LanguageFactory;
use Tobento\Service\Language\LanguageInterface;
$languageFactory = new LanguageFactory();
$language = $languageFactory->createLanguage('en-US');
var_dump($language instanceof LanguageInterface);
// bool(true)
var_dump($language->locale());
// string(5) "en-US"
var_dump($language->iso());
// string(2) "en"
var_dump($language->region());
// string(2) "US" or returns NULL if no region.
var_dump($language->name());
// string(5) "en-US"
var_dump($language->key());
// string(5) "en-us"
var_dump($language->id());
// int(0)
var_dump($language->slug());
// string(5) "en-us"
var_dump($language->directory());
// string(5) "en-us"
var_dump($language->direction());
// string(3) "ltr"
var_dump($language->area());
// string(7) "default"
var_dump($language->domain());
// NULL or returns string if has domain.
var_dump($language->url());
// NULL or returns string if has url.
var_dump($language->fallback());
// NULL or returns string if has fallback
var_dump($language->default());
// bool(false)
var_dump($language->active());
// bool(true)
var_dump($language->editable());
// bool(true)
var_dump($language->order());
// int(2)
use Tobento\Service\Language\LanguageFactory;
use Tobento\Service\Language\Languages;
use Tobento\Service\Language\LanguagesInterface;
$languageFactory = new LanguageFactory();
$languages = new Languages(
$languageFactory->createLanguage('en', default: true),
$languageFactory->createLanguage('de', fallback: 'en'),
$languageFactory->createLanguage('de-CH', fallback: 'de'),
$languageFactory->createLanguage('fr', fallback: 'en', active: false),
$languageFactory->createLanguage('it', fallback: 'de', active: false),
);
var_dump($languages instanceof LanguagesInterface);
// bool(true)
use Tobento\Service\Language\LanguageFactory;
use Tobento\Service\Language\Languages;
use Tobento\Service\Language\LanguagesInterface;
$languageFactory = new LanguageFactory();
$languages = new Languages(
...$languageFactory->createLanguagesFromArray([
['locale' => 'en', 'default' => true],
['locale' => 'de', 'fallback' => 'en'],
['locale' => 'fr', 'fallback' => 'en'],
])
);
var_dump($languages instanceof LanguagesInterface);
// bool(true)
use Tobento\Service\Language\LanguageFactory;
use Tobento\Service\Language\Languages;
use Tobento\Service\Language\LanguagesInterface;
use Tobento\Service\Language\LanguageInterface;
$languageFactory = new LanguageFactory();
$languages = new Languages(
$languageFactory->createLanguage('en', default: true),
$languageFactory->createLanguage('de', fallback: 'en'),
);
$language = $languages->get('de-CH');
// supports locale, id, key or slug values (all are case-insensitive).
var_dump($language instanceof LanguageInterface);
// bool(true)
// Will return the default language as language does not exist.
var_dump($languages->get('it')->locale());
// string(2) "en"
// Without fallback
var_dump($languages->get('fr', fallback: false)?->locale());
// NULL
var_dump($languages->get('it', fallback: false)?->locale());
// NULL
// supports locale, id, key or slug values (all are case-insensitive).
var_dump($languages->has('de-CH'));
// bool(true)
var_dump($languages->has('fr'));
// bool(false)
use Tobento\Service\Language\LanguageInterface;
$defaultLanguage = $languages->default();
var_dump($defaultLanguage instanceof LanguageInterface);
// bool(true)
$languages->current('en');
// supports locale, id, key or slug values (all are case-insensitive).
use Tobento\Service\Language\LanguageInterface;
$currentLanguage = $languages->current();
var_dump($currentLanguage instanceof LanguageInterface);
// bool(true)
use Tobento\Service\Language\LanguageInterface;
$allLanguages = $languages->all();
// array<int, LanguageInterface>
// or just
foreach($languages as $language) {}
$locales = $languages->column('locale');
/*Array
(
[0] => en
[1] => de
[2] => de-CH
)*/
$locales = $languages->column('locale', 'id');
/*Array
(
[1] => en
[2] => de
[3] => de-CH
)*/
// by locale
$fallbacks = $languages->fallbacks();
/*Array
(
[de] => en
[de-CH] => de
[fr] => en
[it] => de
)*/
// by id:
$fallbacks = $languages->fallbacks('id');
/*Array
(
[2] => 1
[3] => 2
[4] => 1
[5] => 2
)*/
// by key:
$fallbacks = $languages->fallbacks('key');
/*Array
(
[de] => en
[de-ch] => de
[fr] => en
[it] => de
)*/
// by slug:
$fallbacks = $languages->fallbacks('slug');
/*Array
(
[de] => en
[de-ch] => de
[fr] => en
[it] => de
)*/
use Tobento\Service\Language\LanguageInterface;
$fallbackLanguage = $languages->getFallback('de-CH');
var_dump($fallbackLanguage instanceof LanguageInterface);
// bool(true)
use Tobento\Service\Language\LanguageInterface;
// returns first found active language:
var_dump($languages->first() instanceof LanguageInterface);
// bool(true) or NULL
// returns first found language:
$firstLanguage = $languages->first(activeOnly: false);
use Tobento\Service\Language\LanguageFactory;
use Tobento\Service\Language\AreaLanguages;
use Tobento\Service\Language\AreaLanguagesInterface;
use Tobento\Service\Language\LanguagesFactoryInterface;
$languageFactory = new LanguageFactory();
$areaLanguages = new AreaLanguages(
null, // null|LanguagesFactoryInterface
$languageFactory->createLanguage('en', area: 'frontend', default: true),
$languageFactory->createLanguage('de', area: 'frontend', fallback: 'en'),
$languageFactory->createLanguage('de-CH', area: 'frontend', fallback: 'de'),
$languageFactory->createLanguage('en', area: 'backend', default: true),
$languageFactory->createLanguage('de', area: 'backend', fallback: 'en'),
);
var_dump($areaLanguages instanceof AreaLanguagesInterface);
// bool(true)
use Tobento\Service\Language\LanguagesInterface;
$frontendLanguages = $areaLanguages->get('frontend');
var_dump($frontendLanguages instanceof LanguagesInterface);
// bool(true)
// return NULL if no languages found:
var_dump($areaLanguages->get('api'));
// NULL
var_dump($areaLanguages->has('frontend'));
// bool(true)
use Tobento\Service\Language\LanguageFactory;
use Tobento\Service\Language\Languages;
use Tobento\Service\Language\LanguagesInterface;
use Tobento\Service\Language\CurrentLanguageResolver;
use Tobento\Service\Language\CurrentLanguageResolverInterface;
use Tobento\Service\Language\CurrentLanguageResolverException;
$languageFactory = new LanguageFactory();
$languages = new Languages(
$languageFactory->createLanguage('en', default: true),
$languageFactory->createLanguage('de'),
);
$resolver = new CurrentLanguageResolver(
currentLanguage: 'fr',
allowFallbackToDefaultLanguage: false, // default is true
);
var_dump($resolver instanceof CurrentLanguageResolverInterface);
// bool(true)
try {
$resolver->resolve($languages);
} catch (CurrentLanguageResolverException $e) {
// do something
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.