🚧 Simplify admin translate method

This commit is contained in:
Flavio Copes
2016-01-28 15:07:41 +01:00
parent 5170a9d2c4
commit 30a08f6203
2 changed files with 8 additions and 21 deletions

View File

@@ -833,23 +833,11 @@ class Admin
/** /**
* Translate a string to the user-defined language * Translate a string to the user-defined language
* *
* @param string $string the string to translate * @param array|mixed $args
* *
* @return string * @return string
*/ */
public function translate($string) public function translate($args)
{
return $this->_translate($string, [$this->grav['user']->authenticated ? $this->grav['user']->language : 'en']);
}
/**
* @param array|mixed $args
* @param array|null $languages
* @param bool $array_support
* @param bool $html_out
* @return string
*/
public function _translate($args, Array $languages = null, $array_support = false, $html_out = false)
{ {
if (is_array($args)) { if (is_array($args)) {
$lookup = array_shift($args); $lookup = array_shift($args);
@@ -858,6 +846,8 @@ class Admin
$args = []; $args = [];
} }
$languages = [$this->grav['user']->authenticated ? $this->grav['user']->language : 'en'];
if ($lookup) { if ($lookup) {
if (empty($languages) || reset($languages) == null) { if (empty($languages) || reset($languages) == null) {
if ($this->grav['config']->get('system.languages.translations_fallback', true)) { if ($this->grav['config']->get('system.languages.translations_fallback', true)) {
@@ -866,22 +856,19 @@ class Admin
$languages = (array)$this->grav['language']->getDefault(); $languages = (array)$this->grav['language']->getDefault();
} }
} }
} else {
$languages = ['en'];
} }
foreach ((array)$languages as $lang) { foreach ((array)$languages as $lang) {
$translation = $this->grav['language']->getTranslation($lang, $lookup, $array_support); $translation = $this->grav['language']->getTranslation($lang, $lookup);
if (!$translation) { if (!$translation) {
$language = $this->grav['language']->getDefault() ?: 'en'; $language = $this->grav['language']->getDefault() ?: 'en';
$translation = $this->grav['language']->getTranslation($language, $lookup, $array_support); $translation = $this->grav['language']->getTranslation($language, $lookup);
} }
if (!$translation) { if (!$translation) {
$language = 'en'; $language = 'en';
$translation = $this->grav['language']->getTranslation($language, $lookup, $array_support); $translation = $this->grav['language']->getTranslation($language, $lookup);
} }
if ($translation) { if ($translation) {

View File

@@ -37,7 +37,7 @@ class AdminTwigExtension extends \Twig_Extension
public function tuFilter() public function tuFilter()
{ {
return $this->grav['admin']->translate(func_get_args(), [$this->grav['user']->authenticated ? $this->lang : 'en']); return $this->grav['admin']->translate(func_get_args());
} }
public function toYamlFilter($value, $inline = true) public function toYamlFilter($value, $inline = true)