OctoberCMS翻译(带翻译插件)的预加载记录列表

时间:2017-06-11 23:00:36

标签: list translate octobercms

问题很简单,有没有快速的方法来翻译db中的预加载列表。例如城镇/国家名单?

class SeedTownTable extends Seeder
public function run()
{

    $town_list = array(
        'Акко',
        'Арад',
        'Ариэль',
        'Афула',
        'Ашдод',
        'Ашкелон',
        'Бат-Ям',
        'Бейт-Шеан',
        'Бейт-Шемеш',
        'Бейтар-Илит',
        'Беэр-Шева',
        'Бней-Брак',
        'Герцлия',
        'Гиват-Шмуэль',
        'Кирьят-Малахи',
        'Кирьят-Моцкин',
        'Кирьят-Оно',
        'Кирьят-Тивон',
        'Кирьят-Хаим',
        'Кирьят-Шмона',
        'Кирьят-Ям',
        'Кфар-Саба',
        'Лод',
        'Маале-Адумим',
        'Маалот-Таршиха',
        'Метула',
        'Мигдаль-ха-Эмек',
        'Модиин',
        'Ход-ха-Шарон',
        'Холон',
        'Цфат',
        'Эйлат',
        'Эльад',
        'Явне',
        'Яффо'
    );  

    foreach ( $town_list as $town ){
        Town::create([
            'name' => $town
            ]);
    }

}

我制作了带有记录的城镇模型,没有任何后端控制器。 我想翻译这个清单。 感谢。

1 个答案:

答案 0 :(得分:0)

将翻译添加到数据阵列,并使用setAttributeTranslated添加翻译版本。

如文件中所述

  

//获取语言的单个翻译属性

     

$ user-> getAttributeTranslated(' name',' fr');

     

//为语言

设置单个翻译属性      

$ user-> setAttributeTranslated(' name',' Jean-Claude',' fr');

尝试

$town_list = array(
    [ 
        'name'                      => 'Town Name Default Lang',
        'name-es'                   => 'Town Name in Spanish',
    ]
    ...
)

foreach ( $town_list as $town ){
        $t = new  TownModel(); 
        $t->name = $town['name'];
        $t->setAttributeTranslated('name',  $town['name-es'], 'es');
        $t->save();
}