Grav\Plugin\Admin\Admin::translate PHP Метод

translate() публичный Метод

Translate a string to the user-defined language
public translate ( array | mixed $args, mixed $languages = null ) : string
$args array | mixed
$languages mixed
Результат string
    public function translate($args, $languages = null)
    {
        if (is_array($args)) {
            $lookup = array_shift($args);
        } else {
            $lookup = $args;
            $args = [];
        }
        if (!$languages) {
            $languages = [$this->grav['user']->authenticated ? $this->grav['user']->language : 'en'];
        } else {
            $languages = (array) $languages;
        }
        if ($lookup) {
            if (empty($languages) || reset($languages) == null) {
                if ($this->grav['config']->get('system.languages.translations_fallback', true)) {
                    $languages = $this->grav['language']->getFallbackLanguages();
                } else {
                    $languages = (array) $this->grav['language']->getDefault();
                }
            }
        }
        foreach ((array) $languages as $lang) {
            $translation = $this->grav['language']->getTranslation($lang, $lookup);
            if (!$translation) {
                $language = $this->grav['language']->getDefault() ?: 'en';
                $translation = $this->grav['language']->getTranslation($language, $lookup);
            }
            if (!$translation) {
                $language = 'en';
                $translation = $this->grav['language']->getTranslation($language, $lookup);
            }
            if ($translation) {
                if (count($args) >= 1) {
                    return vsprintf($translation, $args);
                } else {
                    return $translation;
                }
            }
        }
        return $lookup;
    }

Usage Example

 /**
  * Handles removing a media file
  *
  * @return bool True if the action was performed
  */
 public function taskRemoveMedia()
 {
     if (!$this->canEditMedia()) {
         return false;
     }
     $filename = base64_decode($this->grav['uri']->param('route'));
     $file = File::instance($filename);
     $resultRemoveMedia = false;
     $resultRemoveMediaMeta = true;
     if ($file->exists()) {
         $resultRemoveMedia = $file->delete();
         $metaFilePath = $filename . '.meta.yaml';
         $metaFilePath = str_replace('@3x', '', $metaFilePath);
         $metaFilePath = str_replace('@2x', '', $metaFilePath);
         if (is_file($metaFilePath)) {
             $metaFile = File::instance($metaFilePath);
             $resultRemoveMediaMeta = $metaFile->delete();
         }
     }
     if ($resultRemoveMedia && $resultRemoveMediaMeta) {
         $this->admin->json_response = ['status' => 'success', 'message' => $this->admin->translate('PLUGIN_ADMIN.REMOVE_SUCCESSFUL')];
         return true;
     } else {
         $this->admin->json_response = ['status' => 'success', 'message' => $this->admin->translate('PLUGIN_ADMIN.REMOVE_FAILED')];
         return false;
     }
 }
All Usage Examples Of Grav\Plugin\Admin\Admin::translate