我目前正在使用默认的基于文件的Yii消息源(CPhpMessageSource),我希望将其更改为基于数据库的源(CDbMessageSource),但我已经在基于文件的源中有大量现有翻译。
是否有快速方法将这些翻译从文件移动到数据库源?
答案 0 :(得分:0)
如何创建database migration,为每个翻译插入一行。如果您需要进一步的帮助,可以尝试共享一些代码,我可以尝试为您提供代码示例。
答案 1 :(得分:0)
只需创建读取所有翻译并将其插入数据库的脚本:
$content = file_get_content($pathToMessages);
$translations = eval($content);
$sql = "INSERT INTO `translations` (`key`, `value`) VALUES ";
$params = [];
$inserts = [];
$index = 0;
foreach ($translations as $key => $value) {
$inserts[] = "(:param{$index}, :param".($index + 1).")";
$params[":param{$index}"] = $key;
$params[":param".($index + 1)] = $value;
$index += 2;
}
$sql .= implode(', ', $inserts);
// Convert it to Yii style.
$query = $db->prepare($sql);
$query->execute($params);