<?php
namespace phpDocumentor\Translator;
use Zend\I18n\Translator\Translator as ZendTranslator;
class Translator extends ZendTranslator
{
const TRANSLATION_FILE_TYPE = 'phparray';
const DEFAULT_LOCALE = 'en';
const DEFAULT_DOMAIN = 'default';
const DEFAULT_PATTERN = '%s.php';
public function __construct()
{
$this->setLocale(self::DEFAULT_LOCALE);
$this->setFallbackLocale(self::DEFAULT_LOCALE);
}
public function setLocale($locale)
{
return parent::setLocale($locale);
}
public function addTranslations($filename, $locale = self::DEFAULT_LOCALE, $textDomain = self::DEFAULT_DOMAIN)
{
parent::addTranslationFile(self::TRANSLATION_FILE_TYPE, $filename, $textDomain, $locale);
$this->messages = array();
return $this;
}
public function addTranslationFolder($folder, array $domains = array())
{
if (empty($domains)) {
$domains = array(self::DEFAULT_DOMAIN);
}
foreach ($domains as $domain) {
$this->addTranslationsUsingPattern($folder, $domain);
}
return $this;
}
public function addTranslationsUsingPattern(
$baseDir,
$textDomain = self::DEFAULT_DOMAIN,
$pattern = self::DEFAULT_PATTERN
) {
if ($textDomain !== self::DEFAULT_DOMAIN && $pattern === self::DEFAULT_PATTERN) {
$pattern = $textDomain . '.' . $pattern;
}
parent::addTranslationFilePattern(self::TRANSLATION_FILE_TYPE, $baseDir, $pattern, $textDomain);
$this->messages = array();
return $this;
}
public function translate($message, $textDomain = self::DEFAULT_DOMAIN, $locale = null)
{
return parent::translate($message, $textDomain, $locale);
}
}