abedmaatalla/slim-twig-translation

Twig function for Illuminate\Translation\Translator in Slim framework

1.0.0 2016-11-25 09:25 UTC

This package is not auto-updated.

Last update: 2024-03-16 17:15:34 UTC


README

This repository provides a twig extension class for the twig view parser. The class adds a translate helper function for the use in twig templates. The translator function tries to call the trans() function of an Illuminate\Translation\Translator object in the slim DI container.

How to install

using Composer

Create a composer.json file in your project root:

{
    "require": {
        "abedmaatalla/slim-twig-translation": "1.0.0"
    }
}

Then run the following composer command:

$ php composer.phar install

How to use

Create new folder for langauges

-- lang

  • -- en
    • -- file.php
  • -- fr
    • -- file.php

Tanslator

Set up your Tansloator

$container['translator'] = function ($c)
{
  // Register the English translator 'en'
  $translator = new Illuminate\Translation\Translator(new Illuminate\Translation\FileLoader(new Illuminate\Filesystem\Filesystem(), __DIR__ . '/lang'), 'en');
    // setLocal for new location 
    $translator->setLocale('fr');
    return $translator;
};

Slim

Set up your twig views as described in the SlimViews Repository. Add the extension to your parser extensions.

$container['view'] = function ($c)
{
  $view = new \Slim\Views\Twig('../resources/views');

  // add translator functions to Twig
  $view->addExtension(new \abedmaatalla\Slim\Twig\Extension\TranslationExtension($c->translator));

}

Twig template

In your twig template you would write:

  {{ translate('male') }}

You can also use the shorthand:

  {{ tans('male') }}

You can also use the shorthand:

  {{ _('male') }}