创建时翻译
This commit is contained in:
@@ -62,9 +62,6 @@ class LocationController extends Crud
|
||||
*/
|
||||
public function insert(Request $request): Response
|
||||
{
|
||||
if ($request->method() === 'POST') {
|
||||
return parent::insert($request);
|
||||
}
|
||||
// 获取当前语言
|
||||
$lang = session('lang', 'zh-cn');
|
||||
|
||||
@@ -74,6 +71,48 @@ class LocationController extends Crud
|
||||
|
||||
// 合并翻译
|
||||
$translations = array_merge($location_translations, $common_translations);
|
||||
|
||||
// 如果是 POST 请求,处理数据保存和翻译
|
||||
if ($request->method() === 'POST') {
|
||||
// 获取表单数据
|
||||
$data = $request->all();
|
||||
Log::info('location',$data);
|
||||
|
||||
// 保存主表数据
|
||||
$location = new Location();
|
||||
$location->fill($data);
|
||||
$location->save();
|
||||
|
||||
// 处理多语言翻译
|
||||
$languages = ['en', 'ar', 'ru'];
|
||||
$translationModels = [
|
||||
'en' => \app\model\LocationEn::class,
|
||||
'ar' => \app\model\LocationAr::class,
|
||||
'ru' => \app\model\LocationRu::class
|
||||
];
|
||||
|
||||
// 创建翻译服务实例
|
||||
$translatorService = new \app\service\TranslatorService();
|
||||
|
||||
foreach ($languages as $lang) {
|
||||
$translationModel = $translationModels[$lang];
|
||||
$translation = new $translationModel();
|
||||
|
||||
// 复制主表数据
|
||||
$translation->fill($data);
|
||||
$translation->id = $location->id;
|
||||
|
||||
// 使用翻译服务处理需要翻译的字段
|
||||
$translatedData = $translatorService->location($data, $lang);
|
||||
|
||||
// 更新翻译后的字段
|
||||
$translation->name = $translatedData['name'] ?? $data['name'];
|
||||
// $translation->description = $translatedData['description'] ?? $data['description'];
|
||||
|
||||
Log::info('location:'.$lang.':translatedData',$translatedData);
|
||||
$translation->save();
|
||||
}
|
||||
}
|
||||
|
||||
return view('location/insert', [
|
||||
'lang' => $lang,
|
||||
|
||||
Reference in New Issue
Block a user