mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-11-03 11:55:52 +01:00
🚧 Simplify admin translate method
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user