2017 © Pedro Peláez
 

library mq-locale

Automatic detection of locales for Zend Framework 3

image

milqmedia/mq-locale

Automatic detection of locales for Zend Framework 3

  • Monday, May 1, 2017
  • by yo-han
  • Repository
  • 4 Watchers
  • 0 Stars
  • 1,469 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 7 Versions
  • 0 % Grown

The README.md

mq-locale

Build Status, (*1)

A slimmed down version of a SlmLocal fork., (*2)

Introduction

MQLocale is a Zend Framework 2 module to automatically detect a locale for your application. It uses a variety of pluggable strategies to search for a valid locale. MQLocale features a default locale, a set of supported locales and locale aliases., (*3)

MQLocale supports out of the box several strategies to search for a locale. Through interfaces, other strategies could be created. The set of default strategy is:, (*4)

  1. A part of the domain name (either the TLD or a subdomain)
  2. The first segment of the path of an uri

Furthermore, it provides a set of additional localisation features:, (*5)

  1. A default locale, used as fallback
  2. A set of aliases, so you can map .com as "en-US" in the hostname strategy
  3. View helper and controller plugin to retrieve the current language
  4. Doctrine Language entity to provide a reusable language object in projects

Installation

Add "milqmedia/mq-locale" to your composer.json file and update your dependencies. Enable MQLocale in your application.config.php., (*6)

If you do not have a composer.json file in the root of your project, copy the contents below and put that into a file called composer.json and save it in the root of your project:, (*7)

{
    "require": {
        "milqmedia/mq-locale": "dev-master"
    }
}

Then execute the following commands in a CLI:, (*8)

curl -s http://getcomposer.org/installer | php
php composer.phar install

Now you should have a vendor directory, including a milqmedia/mq-locale. In your bootstrap code, make sure you include the vendor/autoload.php file to properly load the MQLocale module., (*9)

Usage

Set your default locale in the configuration:, (*10)

'mq_locale' => array(
    'default' => 'nl-NL',
),

Set all your supported locales in the configuration:, (*11)

'mq_locale' => array(
    'supported' => array('en-US', 'en-GB'),
),

And enable a strategy. The naming is made via the following list:, (*12)

  • host: MQLocale\Strategy\HostStrategy
  • url: MQLocale\Strategy\UrlStrategy
'mq_locale' => array(
    'strategy' => 'host'
),

At this moment, the locale should be detected. The locale is stored inside php's Locale object. Retrieve the locale with Locale::getDefault(). This is also automated inside Zend Framework 2 translator objects and i18n view helpers (so you do not need to set the locale yourself there)., (*13)

Set the locale's language in html

It is common to provide the html with the used locale. This can be set for example in the html tag:, (*14)

<html lang="en">

Inject the detected language here with the following code:, (*15)

<html lang="<?= Locale::getPrimaryLanguage(Locale::getDefault())?>">

Use the view helper or controller plugin

$locale = $this->parseDefaultLanguage();
echo $locale; #nl-NL

$language = $this->getCurrentLanguage(); // Returns a Application\Entity\Language object
echo $language->getDescription(); // Dutch

Contributing

  1. Fork it ( https://github.com/milqmedia/mq-locale/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

The Versions

01/05 2017

dev-master

9999999-dev https://github.com/milqmedia/mq-locale

Automatic detection of locales for Zend Framework 3

  Sources   Download

BSD-3-Clause

The Requires

  • ext-intl *
  • php >=7.0

 

The Development Requires

zf2 locale i18n

19/05 2013

v0.0.1

0.0.1.0 https://github.com/juriansluiman/SlmLocale

Automatic detection of locales for Zend Framework 2

  Sources   Download

The Requires

 

zf2 locale i18n