generated from boboko/starter
119 lines
6.5 KiB
PHP
119 lines
6.5 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use Modules\Core\Localization\Services\TranslationService;
|
|
use Spatie\TranslationLoader\LanguageLine;
|
|
|
|
/**
|
|
* Default `checkout` translation lines for the cart drawer and the checkout
|
|
* page (see the checkout module under resources/views/checkout).
|
|
*
|
|
* Additive and idempotent: a group/key that already exists is left untouched,
|
|
* so anything edited in the Filament Language Lines UI wins on a re-run. Runs
|
|
* explicitly — `php artisan db:seed --class=CheckoutTranslationsSeeder` — it is
|
|
* not wired into DatabaseSeeder.
|
|
*
|
|
* Greek copy uses the project's informal register (εσύ/σου). When the checkout
|
|
* module moves to boboko-core this becomes the module's own default-strings
|
|
* seeder.
|
|
*/
|
|
class CheckoutTranslationsSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
$translations = app(TranslationService::class);
|
|
|
|
foreach ($this->lines() as $key => [$en, $el]) {
|
|
$exists = LanguageLine::query()
|
|
->where('group', 'checkout')
|
|
->where('key', $key)
|
|
->exists();
|
|
|
|
if ($exists) {
|
|
$this->command?->warn("checkout.{$key} already exists — skipped");
|
|
|
|
continue;
|
|
}
|
|
|
|
$translations->create('checkout', $key, ['en' => $en, 'el' => $el]);
|
|
$this->command?->info("checkout.{$key} added");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* key => [English, Greek].
|
|
*
|
|
* @return array<string, array{0: string, 1: string}>
|
|
*/
|
|
private function lines(): array
|
|
{
|
|
return [
|
|
// ── Cart drawer + order summary ──────────────────────────────
|
|
'cart.title' => ['Your cart', 'Το καλάθι σου'],
|
|
'cart.close' => ['Close', 'Κλείσιμο'],
|
|
'cart.empty' => ['Your cart is empty', 'Το καλάθι σου είναι άδειο'],
|
|
'cart.quantity' => ['Quantity', 'Ποσότητα'],
|
|
'cart.increase' => ['Increase quantity', 'Αύξηση ποσότητας'],
|
|
'cart.decrease' => ['Decrease quantity', 'Μείωση ποσότητας'],
|
|
'cart.remove' => ['Remove', 'Αφαίρεση'],
|
|
'cart.subtotal' => ['Subtotal', 'Υποσύνολο'],
|
|
'cart.discount' => ['Discount', 'Έκπτωση'],
|
|
'cart.total' => ['Total', 'Σύνολο'],
|
|
'cart.checkout' => ['Checkout', 'Ολοκλήρωση παραγγελίας'],
|
|
'cart.coupon_label' => ['Coupon code', 'Κωδικός κουπονιού'],
|
|
'cart.coupon_placeholder' => ['Coupon code', 'Κωδικός κουπονιού'],
|
|
'cart.coupon_apply' => ['Apply', 'Εφαρμογή'],
|
|
'cart.coupon_remove' => ['Remove', 'Αφαίρεση'],
|
|
'cart.coupon_invalid' => ["That coupon code isn't valid", 'Ο κωδικός κουπονιού δεν είναι έγκυρος'],
|
|
|
|
// ── Checkout page ────────────────────────────────────────────
|
|
'page.title' => ['Checkout', 'Ολοκλήρωση παραγγελίας'],
|
|
'page.contact_heading' => ['Contact', 'Στοιχεία επικοινωνίας'],
|
|
'page.guest_tab' => ['Guest', 'Ως επισκέπτης'],
|
|
'page.login_tab' => ['Log in', 'Σύνδεση'],
|
|
'page.email_label' => ['Email', 'Email'],
|
|
'page.marketing_consent' => [
|
|
'Email me offers, news and order reminders',
|
|
'Στείλε μου προσφορές, νέα και υπενθυμίσεις παραγγελιών',
|
|
],
|
|
'page.login_email_label' => ['Email', 'Email'],
|
|
'page.send_code' => ['Send code', 'Αποστολή κωδικού'],
|
|
'page.login_coming_soon' => [
|
|
'Login is coming soon — continue as a guest for now.',
|
|
'Η σύνδεση θα είναι διαθέσιμη σύντομα — προς το παρόν συνέχισε ως επισκέπτης.',
|
|
],
|
|
'page.billing_heading' => ['Billing information', 'Στοιχεία τιμολόγησης'],
|
|
'page.shipping_heading' => ['Shipping information', 'Στοιχεία αποστολής'],
|
|
'page.same_as_billing' => ['Same as billing address', 'Ίδια με τη διεύθυνση τιμολόγησης'],
|
|
'page.first_name' => ['First name', 'Όνομα'],
|
|
'page.last_name' => ['Last name', 'Επώνυμο'],
|
|
'page.company_name' => ['Company name', 'Επωνυμία εταιρείας'],
|
|
'page.tax_identifier' => ['Tax ID', 'ΑΦΜ'],
|
|
'page.address_line_one' => ['Address', 'Διεύθυνση'],
|
|
'page.address_line_two' => ['Address line 2', 'Διεύθυνση (γραμμή 2)'],
|
|
'page.city' => ['City', 'Πόλη'],
|
|
'page.state' => ['State / Region', 'Νομός / Περιοχή'],
|
|
'page.postcode' => ['Postcode', 'Ταχυδρομικός κώδικας'],
|
|
'page.country' => ['Country', 'Χώρα'],
|
|
'page.country_placeholder' => ['Select a country', 'Επίλεξε χώρα'],
|
|
'page.phone' => ['Phone', 'Τηλέφωνο'],
|
|
'page.delivery_instructions' => ['Delivery notes', 'Σχόλια για την παράδοση'],
|
|
'page.save_address' => ['Save and continue', 'Αποθήκευση και συνέχεια'],
|
|
'page.shipping_method_heading' => ['Shipping method', 'Τρόπος αποστολής'],
|
|
'page.shipping_method_empty' => [
|
|
'Add your shipping address to see delivery options.',
|
|
'Συμπλήρωσε τη διεύθυνση αποστολής για να δεις τις διαθέσιμες επιλογές.',
|
|
],
|
|
'page.select_shipping_method' => ['Continue', 'Συνέχεια'],
|
|
'page.shipping_option_invalid' => [
|
|
'That shipping option is no longer available.',
|
|
'Αυτός ο τρόπος αποστολής δεν είναι πλέον διαθέσιμος.',
|
|
],
|
|
'page.continue_to_payment' => ['Continue to payment', 'Συνέχεια στην πληρωμή'],
|
|
'page.order_summary_heading' => ['Order summary', 'Σύνοψη παραγγελίας'],
|
|
];
|
|
}
|
|
}
|