2017 © Pedro Peláez
 

yii2-extension yii2-polyglot

Yii2 integration for AirBnB Polyglot.js

image

devgroup/yii2-polyglot

Yii2 integration for AirBnB Polyglot.js

  • Friday, December 2, 2016
  • by bethrezen
  • Repository
  • 7 Watchers
  • 2 Stars
  • 1,877 Installations
  • PHP
  • 3 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

Yii2 integration for Airbnb Polyglot.js

Polyglot.js is a tiny and powerful JavaScript i18n library from Airbnb., (*1)

This is a yii2-extension that helps integrating polyglot.js into your yii2 application., (*2)

Usage

First install extension through composer:, (*3)

php composer.phar require --prefer-dist devgroup/yii2-polyglot

Create directory where you will place your translation js files. For example, if we our app is based on yii2-app-advanced - create directory common/polyglot.js/., (*4)

Now create your js translation files under this directory. Naming format is common/polyglot.js/%LANGUAGE%.js, where %LANGUAGE% is your Yii::$app->language, for example common/polyglot.js/ru-RU.js., (*5)

An example of js file contents(:en: version file common/polyglot.js/en-US.js:, (*6)

polyglot.extend({
  "nav": {
    "hello": "Hello",
    "hello_name": "Hello, %{name}",
    "sidebar": {
      "welcome": "Welcome"
    }
  }
});

And an example for :ru: version file common/polyglot.js/ru-RU.js:, (*7)

polyglot.extend({
  "nav": {
    "hello": "Привет",
    "hello_name": "Привет, %{name}",
    "sidebar": {
      "welcome": "Бобро пожаловать"
    }
  }
});

Now add a special yii2 application param PolyglotTranslationPath with your js translation path as value into your config file(ie. common/config/params.php):, (*8)

<?php
return [
    'adminEmail' => 'admin@example.com',
    'supportEmail' => 'support@example.com',
    'user.passwordResetTokenExpire' => 3600,
    /**
     * This is a path where your js translation files are stored
     * You can use yii2 aliases here(@app, @common, etc.)
     */
    'PolyglotTranslationPath' => '@common/polyglot.js'
];

And the final thing is to register CurrentTranslation inside your layout view or add it as AssetBundle dependency., (*9)

For adding CurrentTranslation into your view just add the one line into views/layouts/main.php near your AppAsset::register call:, (*10)

DevGroup\Polyglot\CurrentTranslation::register($this);

For adding CurrentTranslation as dependency for your AppAssetBundle modify your assets/AppAsset.php:, (*11)

<?php

namespace frontend\assets;

use yii\web\AssetBundle;

class AppAsset extends AssetBundle
{
    public $sourcePath = '@frontend/assets/dist/';

    public $css = [
        'styles/main.min.css',
    ];
    public $js = [
        'scripts/main.js',
    ];
    public $depends = [
        'yii\web\JqueryAsset',
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
        'yii\bootstrap\BootstrapPluginAsset',
        /// !!! This is a dependency to CurrentTranslation !!!
        'DevGroup\Polyglot\CurrentTranslation',
    ];
}

That's it. Now on every request you will get:, (*12)

  1. Polyglot.js will be included in HEAD section of your HTML
  2. Global polyglot variable will be initialized with current locale(Yii::$app->language).
  3. Translation file based on app language will be added dynamically right after <body> tag.

Now you can use Polyglot.js as it is described in official documentation:, (*13)

polyglot.t("nav.sidebar.welcome");
=> "Бобро пожаловать"

The Versions

02/12 2016

dev-master

9999999-dev

Yii2 integration for AirBnB Polyglot.js

  Sources   Download

MIT

The Requires

 

extension yii2 javascript translation js i18n internationalization translate internationalisation interpolation polyglot polyglot.js

08/12 2015

1.1.1

1.1.1.0

Yii2 integration for AirBnB Polyglot.js

  Sources   Download

MIT

The Requires

 

extension yii2 javascript translation js i18n internationalization translate internationalisation interpolation polyglot polyglot.js

07/12 2015

1.1.0

1.1.0.0

Yii2 integration for AirBnB Polyglot.js

  Sources   Download

MIT

The Requires

 

extension yii2 javascript translation js i18n internationalization translate internationalisation interpolation polyglot polyglot.js

24/11 2015

1.0.1

1.0.1.0

Yii2 integration for AirBnB Polyglot.js

  Sources   Download

MIT

The Requires

 

extension yii2 javascript translation js i18n internationalization translate internationalisation interpolation polyglot polyglot.js

24/11 2015

1.0.0

1.0.0.0

Yii2 integration for AirBnB Polyglot.js

  Sources   Download

MIT

The Requires

 

extension yii2 javascript translation js i18n internationalization translate internationalisation interpolation polyglot polyglot.js