@extends('layouts.admin') @section('content') @php // 顯示語系 Tab = 公司所有機台已開語系的聯集(見 docs/API/product_multilingual_spec.md §4.2) $localeLabels = config('locales.supported', ['zh_TW' => '繁體中文']); $locales = \App\Models\System\Company::activeLocalesFor($product->company_id); // 保險:併入「此商品已有翻譯」的語系,避免公司聯集縮減時藏掉既有翻譯而無法編輯。 $existingLocales = $product->translations->pluck('locale') ->merge($product->specTranslations->pluck('locale')) ->unique()->all(); $order = array_keys($localeLabels); // 依白名單順序穩定排序 $locales = collect($locales)->merge($existingLocales)->unique() ->sortBy(fn ($l) => ($i = array_search($l, $order)) === false ? 999 : $i) ->values()->all(); $names = []; $specs = []; foreach ($locales as $locale) { $names[$locale] = $product->translations->where('locale', $locale)->first()?->value ?? ''; $specs[$locale] = $product->specTranslations->where('locale', $locale)->first()?->value ?? ''; } // zh_TW 翻譯為空時回退至主欄位 if (empty($names['zh_TW'])) { $names['zh_TW'] = $product->name; } if (empty($specs['zh_TW'])) { $specs['zh_TW'] = $product->spec; } @endphp
@push('styles') @endpush @endsection @section('scripts') @endsection