1. Go to this page and download the library: Download litepie/trans 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/ */
litepie / trans example snippets
'providers' => [
// Other providers...
Litepie\Trans\TransServiceProvider::class,
],
// In routes/web.php
Route::group(['middleware' => 'localization'], function () {
Route::get('/', 'HomeController@index');
Route::get('/about', 'AboutController@index');
// Your localized routes...
});
use Litepie\Trans\Trans;
class HomeController extends Controller
{
protected Trans $trans;
public function __construct(Trans $trans)
{
$this->trans = $trans;
}
public function index()
{
// Get current locale
$currentLocale = $this->trans->getCurrentLocale(); // 'en'
// Get localized URL for different locale
$spanishUrl = $this->trans->getLocalizedURL('es');
// Check if multilingual
$isMultilingual = $this->trans->isMultilingual(); // true/false
// Get all supported locales
$locales = $this->trans->getSupportedLocales();
return view('home', compact('currentLocale', 'spanishUrl', 'locales'));
}
}
Route::group(['middleware' => 'localization'], function () {
// Your routes
});
public function handle($request, Closure $next)
{
// Custom logic before localization
$response = $next($request);
// Custom logic after localization
return $response;
}
// Set current locale
$trans->setLocale('es'); // Returns: 'es'
// Get current locale
$trans->getCurrentLocale(); // Returns: 'en'
// Get default locale
$trans->getDefaultLocale(); // Returns: 'en'
// Check if locale is supported
$trans->checkLocaleInSupportedLocales('fr'); // Returns: true/false
// Get locale display name
$trans->getCurrentLocaleName(); // Returns: 'English'
// Get locale native name
$trans->getCurrentLocaleNative(); // Returns: 'English'
// Get text direction
$trans->getCurrentLocaleDirection(); // Returns: 'ltr' or 'rtl'
// Get locale script
$trans->getCurrentLocaleScript(); // Returns: 'Latn'
// Get regional locale
$trans->getCurrentLocaleRegional(); // Returns: 'en_US'
// Generate localized URL
$trans->getLocalizedURL('es', '/products');
// Returns: 'https://site.com/es/productos'
// Generate non-localized URL
$trans->getNonLocalizedURL('/es/productos');
// Returns: 'https://site.com/productos'
// Get URL from route name
$trans->getURLFromRouteNameTranslated('es', 'products');
// Check if application is multilingual
$trans->isMultilingual(); // Returns: true/false
// Get all supported locales
$trans->getSupportedLocales(); // Returns: array
// Get supported locale keys
$trans->getSupportedLanguagesKeys(); // Returns: ['en', 'es', 'fr']
// Negotiate best language
$negotiator->negotiateLanguage(); // Returns: 'es'
// Get supported languages
$negotiator->getSupportedLanguages(); // Returns: array
// Check if language is supported
$negotiator->isLanguageSupported('fr'); // Returns: true/false
// Get best match for language
$negotiator->getBestMatch('en-US'); // Returns: 'en'
use Litepie\Trans\Trans;
use Litepie\Trans\LanguageNegotiator;
class TransTest extends TestCase
{
public function test_can_set_and_get_locale()
{
$trans = $this->app->make(Trans::class);
$result = $trans->setLocale('es');
$this->assertEquals('es', $result);
$this->assertEquals('es', $trans->getCurrentLocale());
}
public function test_can_generate_localized_url()
{
$trans = $this->app->make(Trans::class);
$url = $trans->getLocalizedURL('es', '/products');
$this->assertStringContains('/es/', $url);
}
}