for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace JellyBool\Translug;
use GuzzleHttp\Client;
/**
* Class Translug
*
* @package JellyBool\Translug
*/
class Translug
{
* @var array
protected $config = [];
* Translug constructor.
* @param array $config
public function __construct(array $config = [])
$this->config = $config;
}
public function setConfig(array $config)
public function getConfig()
return $this->config;
* @param $text
* @return mixed
public function translate($text)
$translator = new Translation(new Client(), $this->config);
return $translator->translate($text);
* @return string
public function translug($text)
return $this->sluggable($this->translate($text));
* @param $title
* @param string $separator
private function sluggable($title, $separator = '-')
$flip = $separator == '-' ? '_' : '-';
$title = preg_replace('![' . preg_quote($flip) . ']+!u', $separator, $title);
$title = preg_replace('![^' . preg_quote($separator) . '\pL\pN\s]+!u', '', mb_strtolower($title));
$title = preg_replace('![' . preg_quote($separator) . '\s]+!u', $separator, $title);
return trim($title, $separator);