Commit 3a9e88d3 authored by Mpro's avatar Mpro

interface translate

pigLatinTranslator service implemented infterface translate
registration in config.neon
parent fbb20cc3
......@@ -22,6 +22,7 @@ nette:
services:
- PigLatinTranslator\Model\UserManager
- PigLatinTranslator\RouterFactory
router: @PigLatinTranslator\RouterFactory::createRouter
- PigLatinTranslator\Services\PigLatinTranslator
<?php
namespace PigLatinTranslator\Services;
interface ITranslator
{
/**
* Translate method
* @param string $text text for translate
* @return string translated text
*/
public function translate($text);
}
<?php
namespace PigLatinTranslator\Services;
use Nette\Utils\Strings;
class PigLatinTranslator implements ITranslator
{
/**
* @inherit
*/
public function translate($text)
{
$words = Strings::split($text, '~([\s,.]+)~');
foreach($words as &$word) {
$word = $this->translateWord($word);
}
return implode($words);
}
protected function translateWord($word)
{
return Strings::replace($word, array(
'~^[aeiou]+[a-z]*$~' => '\\0way',
'~^([^aeiou]+)([a-z]+)$~' => '\\2\\1ay',
));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment