PHP code example of idynsys / localizator

1. Go to this page and download the library: Download idynsys/localizator 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/ */

    

idynsys / localizator example snippets


   use Idynsys\Localizator\TranslatorFactory;
   use Idynsys\Localizator\Translator;
   
   /** @var Translator $translator */
   $translator = TranslatorFactory::create('<clientId>', '<secret>')->build();
   



use Idynsys\Localizator\TranslatorFactory;
use Idynsys\Localizator\Translator;

// Если "clientId" и "secret" установлены через переменные окружения (см. п.2.1.)
/** @var Translator $translator */
$translator = TranslatorFactory::create()->build();
...

// или через прямое указание через параметры (см. п.2.2.)   

/** @var Translator $translator */
$translator = TranslatorFactory::create('<clientId>', '<secret>')->build();
...

    // переводы для всех языков
    $allTranslations = $translator->getStaticItems();
    
    // переводы для определенного языка приложения
    $rusTranslations = $translator->getStaticItems('rus');

    var_dump($allTranslations->getOriginalTranslations();

array:1 [
  "data" => array:2 [
    0 => array:3 [
      "product_id" => 10
      "product_name" => "Test product name"
      "translations" => array:3 [
        "eng" => array:1 [
          "Test form" => array:2 [
            "Title1" => "Test form title1"
            "Title2" => "Test form title2"
          ]
        ]
        "rus" => array:1 [
        "Test form" => array:2 [
          "Title1" => "Название 1 тестовой формы"
          "Title2" => "Название 2 тестовой формы"
        ]
      ]
    ]

use Idynsys\Localizator\DTO\StaticTranslationData;

/** @var StaticTranslationData $translation */
foreach ($allTranslations->translations() as $translation) {
    var_dump($translation->getTranslation());
}

use Idynsys\Localizator\DTO\StaticTranslationData;

/** @var StaticTranslationData $translation */
foreach ($allTranslations->translations('Test product name') as $translation) {
    var_dump($translation->getTranslation());
}

use Idynsys\Localizator\DTO\StaticTranslationData;

/** @var StaticTranslationData $translation */
foreach ($allTranslations->translations('Test product name', 'rus') as $translation) {
    var_dump($translation->getTranslation());
}

use Idynsys\Localizator\DTO\StaticTranslationData;

/** @var StaticTranslationData $translation */
foreach ($allTranslations->translations(null, 'rus') as $translation) {
    var_dump($translation->getTranslation());
}

    $translator->setStaticItemsToCache()

    $translator->setStaticItemsToCache('eng')

    // (по умолчанию) Сохраняется каждый перевод отдельно в кэш под своими ключами
    $cacheStorageType = CacheStorageTypes::TRANSLATIONS_STORAGE_TYPE();
    
    // Переводы сохраняются с группировкой по родительскому элементу
    $cacheStorageType = CacheStorageTypes::PARENTS_STORAGE_TYPE();
    
    // Переводы сохраняются с группировкой по коду языка
    $cacheStorageType = CacheStorageTypes::LANGUAGE_STORAGE_TYPE();

    $translator->changeStorageType($cacheStorageType);

    /** @var  \Idynsys\Localizator\DTO\StaticTranslationData $cashedData */
    $cachedData = $translator->getStaticItemFromCache('Test product name', 'eng', 'Test form', 'Title');
    
    echo $cachedData->getTranslation();

    /** @var  \Idynsys\Localizator\DTO\StaticTranslationData $cashedData */
    $cachedData = $translator->getStaticItem('Test product name', 'rus');

    var_dump($cachedData->getTranslation()); 

    array:1 [
      "Title" => "Test form title"
    ]

    /** @var  \Idynsys\Localizator\DTO\StaticTranslationData $cashedData */
    $cachedData = $translator->getStaticItem('eng');

    var_dump($cachedData->getTranslation()); 

    array:1 [
      "Test form" => array:1 [
        "Title" => "Test form title"
      ]
    ]

$translator->cacheClear();

//использовать собственную реализацию кешера Psr\Cache\CacheItemPoolInterface

$translator = TranslatorFactory::create($applicationId, 'rus')
                ->setCache(new RedisAdapter(new \Redis()))
                ->build();


docker-compose run --rm php-cli composer --version
docker-compose run --rm php-cli composer install