kuenzelit/auto-lang

A package to automatically detect and set the locale in a laravel application

dev-master 2015-02-02 21:15 UTC

This package is not auto-updated.

Last update: 2024-11-27 06:36:40 UTC


README

AutoLang is a small package for Laravel applications which automatically detects the users browser language and sets this language with the App::setLocale() command.

It uses Session to temporarily save the language, so it doesn't need to detect the language on every request. Furthermore you can tell AutoLang which language to use, e.g. if a user wants to switch to another language than the browser has set.

Installation

Get the package

Use the command line to get AutoLang:

composer require kuenzelit/auto-lang:dev-master

OR put this line in your composer.json file:

"kuenzelit/auto-lang": "dev-master",

Service Provider

Add the service provider to your list of providers in app.php:

"Kuenzelit/AutoLang/AutoLangServiceProvider",

Alias

If you like, you can register an alias by putting this line in your aliases array

'AutoLang' => 'Kuenzelit\AutoLang\Facades\AutoLang',

Configuration

You may use artisan to publish the configuration file and edit it to specify the languages you're offering:

php artisan config:publish kuenzelit/auto-lang

Interface

The AutoLang-Facade provides 4 methods: set, get, availableLanguages and detectLanguage:

/**
 * Overrides the currently detected language and sets it to the $lang param.
 * $lang has to be from the array of available languages.
 * 
 * @param $lang
 * @throws \Exception
 */
public function set($lang)


/**
 * Returns the current language.
 * @return mixed
 */
public function get()


/**
 * Returns the array of available languages. Can be set in the packages config.php.
 *
 * @return array
 */
public function availableLanguages()


/**
 * Returns the language of the users browser.
 *
 * @return string
 */
public function detectLanguage()