OctoberCMS переводит тексты по умолчанию YAML - PullRequest
0 голосов
/ 09 ноября 2018

В качестве примера у меня есть переводимая модель:

class Settings extends Model {
    public $implement = [
        'System.Behaviors.SettingsModel',
        'RainLab.Translate.Behaviors.TranslatableModel'
    ];

    public $settingsCode = 'zollerboy_customtheme_settings';
    public $settingsFields = 'fields.yaml';

    public $translatable = [
        'site_name',
        //I have a lot more here
    ];
}

Мой fields.yaml выглядит так:

tabs:
    fields:
        site_name:
            tab: Info
            label: Website Name
            type: text

        # And so on ...

Возможно ли, что я даю поле site_nameзначение по умолчанию для каждого языка?

Я пробовал его с

default: name.plugin::lang.settings.default.site_name

, но это похоже на работу с метками, но не со значениями по умолчанию.

1 Ответ

0 голосов
/ 11 ноября 2018

Да, опция по умолчанию не работает с переводами, но вы можете отобразить это поле через форму виджета, получив значение по умолчанию в методе визуализации.

public function render() {
    $value= Lang::get('name.plugin::lang.settings.default.site_name');
    return $this->makePartial('site_name', ['value' => $value, 'name' => 
    'site_name']);
}

Зарегистрируйте виджеты форм, переопределив метод registerFormWidgets внутри класса регистрации плагинов.

public function registerFormWidgets() {
    return [
          'Name\Plugin\FormWidgets\SiteName' => 'site_name'

    ];
}

Пример fields.yaml:

tabs:
fields:
    site_name:
        tab: Info
        label: Website Name
        type: site_name

    # And so on ...
...