From 81e276dedf40dfff8f0d3b5d4bf30ae0c0a50b55 Mon Sep 17 00:00:00 2001 From: Cocoa Date: Wed, 3 Dec 2025 20:41:32 -0500 Subject: [PATCH 01/16] Try sorting tags by name --- app/Models/Traits/ItemRelations.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/Traits/ItemRelations.php b/app/Models/Traits/ItemRelations.php index 2fe43467..e444f039 100644 --- a/app/Models/Traits/ItemRelations.php +++ b/app/Models/Traits/ItemRelations.php @@ -67,7 +67,7 @@ public function submitter() */ public function tags() { - return $this->belongsToMany(Tag::class)->withTimestamps(); + return $this->belongsToMany(Tag::class)->withTimestamps()->orderBy('name'); } /** From f7c474e101943998a7b8d46cf21dfc0768763698 Mon Sep 17 00:00:00 2001 From: Cocoa Date: Thu, 4 Dec 2025 17:43:06 -0500 Subject: [PATCH 02/16] Try different function? --- app/Models/Traits/ItemRelations.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/Traits/ItemRelations.php b/app/Models/Traits/ItemRelations.php index e444f039..9af21056 100644 --- a/app/Models/Traits/ItemRelations.php +++ b/app/Models/Traits/ItemRelations.php @@ -67,7 +67,7 @@ public function submitter() */ public function tags() { - return $this->belongsToMany(Tag::class)->withTimestamps()->orderBy('name'); + return $this->belongsToMany(Tag::class)->withTimestamps()->sortBy('name'); } /** From 8cc6e91893ce418faf2a19eee0a4f79222f7541c Mon Sep 17 00:00:00 2001 From: Cocoa Date: Thu, 4 Dec 2025 19:31:09 -0500 Subject: [PATCH 03/16] Try sorting in view? --- app/Models/Traits/ItemRelations.php | 2 +- resources/views/items/show.blade.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Models/Traits/ItemRelations.php b/app/Models/Traits/ItemRelations.php index 9af21056..2fe43467 100644 --- a/app/Models/Traits/ItemRelations.php +++ b/app/Models/Traits/ItemRelations.php @@ -67,7 +67,7 @@ public function submitter() */ public function tags() { - return $this->belongsToMany(Tag::class)->withTimestamps()->sortBy('name'); + return $this->belongsToMany(Tag::class)->withTimestamps(); } /** diff --git a/resources/views/items/show.blade.php b/resources/views/items/show.blade.php index bd58e46b..dbb287cd 100644 --- a/resources/views/items/show.blade.php +++ b/resources/views/items/show.blade.php @@ -164,7 +164,7 @@ class="text-regular">{{ $item->published_at->format('jS M Y, H:i') }} UTC

{{ __('ui.item.tags') }}

- @forelse ($item->tags as $tag) + @forelse ($item->tags()->sortBy('name') as $tag)
{{ $tag->name }} From 88f50ad829931e00a1729e4dba6a2146d96dac23 Mon Sep 17 00:00:00 2001 From: Cocoa Date: Thu, 4 Dec 2025 20:20:51 -0500 Subject: [PATCH 04/16] try different method? --- resources/views/items/show.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/items/show.blade.php b/resources/views/items/show.blade.php index dbb287cd..7683f199 100644 --- a/resources/views/items/show.blade.php +++ b/resources/views/items/show.blade.php @@ -164,7 +164,7 @@ class="text-regular">{{ $item->published_at->format('jS M Y, H:i') }} UTC

{{ __('ui.item.tags') }}

- @forelse ($item->tags()->sortBy('name') as $tag) + @forelse ($item->tags()->orderBy('name') as $tag)
{{ $tag->name }} From b2b604f852b1514e8a25a41d9e27b927b1e6289b Mon Sep 17 00:00:00 2001 From: Cocoa Date: Thu, 4 Dec 2025 21:02:12 -0500 Subject: [PATCH 05/16] debug? --- resources/views/items/show.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/items/show.blade.php b/resources/views/items/show.blade.php index 7683f199..07e456e2 100644 --- a/resources/views/items/show.blade.php +++ b/resources/views/items/show.blade.php @@ -164,7 +164,7 @@ class="text-regular">{{ $item->published_at->format('jS M Y, H:i') }} UTC

{{ __('ui.item.tags') }}

- @forelse ($item->tags()->orderBy('name') as $tag) + @forelse ($item->tags()->orderBy('name')->get() as $tag)
{{ $tag->name }} From 8c4c6123714e79dad296c840bd5015e77a45e964 Mon Sep 17 00:00:00 2001 From: Cocoa Date: Thu, 4 Dec 2025 21:42:28 -0500 Subject: [PATCH 06/16] try translations join --- resources/views/items/show.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/items/show.blade.php b/resources/views/items/show.blade.php index 07e456e2..6cc1212c 100644 --- a/resources/views/items/show.blade.php +++ b/resources/views/items/show.blade.php @@ -164,7 +164,7 @@ class="text-regular">{{ $item->published_at->format('jS M Y, H:i') }} UTC

{{ __('ui.item.tags') }}

- @forelse ($item->tags()->orderBy('name')->get() as $tag) + @forelse ($item->tags()->translations()->orderBy('name')->get() as $tag)
{{ $tag->name }} From 2732169f56eb501eed0545e98d6dea5a350138bb Mon Sep 17 00:00:00 2001 From: Cocoa Date: Thu, 4 Dec 2025 21:53:51 -0500 Subject: [PATCH 07/16] Try sort by slug --- resources/views/items/show.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/items/show.blade.php b/resources/views/items/show.blade.php index 6cc1212c..814587ed 100644 --- a/resources/views/items/show.blade.php +++ b/resources/views/items/show.blade.php @@ -164,7 +164,7 @@ class="text-regular">{{ $item->published_at->format('jS M Y, H:i') }} UTC

{{ __('ui.item.tags') }}

- @forelse ($item->tags()->translations()->orderBy('name')->get() as $tag) + @forelse ($item->tags()->orderBy('slug')->get() as $tag)
{{ $tag->name }} From d02574b1667f5637b2e5acc1c706d0408c57b1f0 Mon Sep 17 00:00:00 2001 From: Cocoa Date: Thu, 8 Jan 2026 18:58:06 -0500 Subject: [PATCH 08/16] Try a different sort? --- resources/views/items/show.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/items/show.blade.php b/resources/views/items/show.blade.php index 814587ed..6da6d764 100644 --- a/resources/views/items/show.blade.php +++ b/resources/views/items/show.blade.php @@ -164,7 +164,7 @@ class="text-regular">{{ $item->published_at->format('jS M Y, H:i') }} UTC

{{ __('ui.item.tags') }}

- @forelse ($item->tags()->orderBy('slug')->get() as $tag) + @forelse ($item->tags()->orderByTranslation()>get() as $tag)
{{ $tag->name }} From 813c7899ca4b329fab05893e026abc64ace7cfb9 Mon Sep 17 00:00:00 2001 From: Cocoa Date: Thu, 8 Jan 2026 19:08:53 -0500 Subject: [PATCH 09/16] Fix args --- resources/views/items/show.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/items/show.blade.php b/resources/views/items/show.blade.php index 6da6d764..c23d1f39 100644 --- a/resources/views/items/show.blade.php +++ b/resources/views/items/show.blade.php @@ -164,7 +164,7 @@ class="text-regular">{{ $item->published_at->format('jS M Y, H:i') }} UTC

{{ __('ui.item.tags') }}

- @forelse ($item->tags()->orderByTranslation()>get() as $tag) + @forelse ($item->tags()->orderByTranslation('name')>get() as $tag)
{{ $tag->name }} From edbd5eb3b37452eb0ff89b0f9ba9f2cd83ed5bb1 Mon Sep 17 00:00:00 2001 From: Cocoa Date: Thu, 8 Jan 2026 19:47:35 -0500 Subject: [PATCH 10/16] Fix typo --- resources/views/items/show.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/items/show.blade.php b/resources/views/items/show.blade.php index c23d1f39..a4f12ddc 100644 --- a/resources/views/items/show.blade.php +++ b/resources/views/items/show.blade.php @@ -164,7 +164,7 @@ class="text-regular">{{ $item->published_at->format('jS M Y, H:i') }} UTC

{{ __('ui.item.tags') }}

- @forelse ($item->tags()->orderByTranslation('name')>get() as $tag) + @forelse ($item->tags()->orderByTranslation('name')->get() as $tag)
{{ $tag->name }} From 75c56e04b91f5f308989ab38e14be88b84ac6653 Mon Sep 17 00:00:00 2001 From: Cocoa Date: Fri, 9 Jan 2026 16:50:49 -0500 Subject: [PATCH 11/16] Try to fix Nova for translations --- app/Nova/Tag.php | 3 +-- config/app.php | 5 ++--- config/translatable.php | 3 +-- resources/views/layouts/app.blade.php | 2 -- 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/app/Nova/Tag.php b/app/Nova/Tag.php index 3d7f22b8..6277ed09 100644 --- a/app/Nova/Tag.php +++ b/app/Nova/Tag.php @@ -54,8 +54,7 @@ public function fields(Request $request) Translatable::make('Name') ->indexLocale('en') - ->sortable() - ->rules('required', 'min:2', 'max:255'), + ->sortable(), DateTime::make('Created', 'created_at')->onlyOnDetail(), DateTime::make('Updated', 'updated_at')->onlyOnDetail(), diff --git a/config/app.php b/config/app.php index b8f41e92..be4756c8 100644 --- a/config/app.php +++ b/config/app.php @@ -80,7 +80,7 @@ | */ - 'locale' => 'en_US', + 'locale' => 'en', /* |-------------------------------------------------------------------------- @@ -107,12 +107,11 @@ | */ - 'faker_locale' => 'en_US', + 'faker_locale' => 'en', // Available locales 'locales' => [ 'en' => 'English', - 'en_US' => 'English', // Fallback locale fix, do not actually add tls 'fr' => 'français', 'it' => 'Italiano', 'nb_NO' => 'norsk (bokmål)', diff --git a/config/translatable.php b/config/translatable.php index c2a8ea44..00b5cb3e 100644 --- a/config/translatable.php +++ b/config/translatable.php @@ -11,8 +11,7 @@ | */ 'locales' => [ - 'en' => 'English', - 'en_US' => 'English', // Fallback locale fix, do not actually add tls + 'en' => 'English', 'fr' => 'français', 'it' => 'Italiano', 'nb_NO' => 'norsk (bokmål)', diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index dab97318..d0ad275d 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -48,9 +48,7 @@ From ec9342095c26fb2321a49bec92c7272053b919a1 Mon Sep 17 00:00:00 2001 From: Cocoa Date: Fri, 9 Jan 2026 17:12:33 -0500 Subject: [PATCH 12/16] Sort all relations alphabetically --- resources/views/items/show.blade.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/views/items/show.blade.php b/resources/views/items/show.blade.php index a4f12ddc..7baddfb7 100644 --- a/resources/views/items/show.blade.php +++ b/resources/views/items/show.blade.php @@ -89,7 +89,7 @@ class="text-regular">{{ $item->published_at->format('jS M Y, H:i') }} UTC

- @foreach ($item->attributes as $attribute) + @foreach ($item->attributes()->orderByTranslation('name')->get() as $attribute)

{{ $attribute->name }}

{{ $attribute->pivot->value }}

@endforeach @@ -123,7 +123,7 @@ class="text-regular">{{ $item->published_at->format('jS M Y, H:i') }} UTC

{{ __('ui.item.category') }}

- @forelse ($item->categories as $category) + @forelse ($item->categories()->orderByTranslation('name')->get() as $category)
{{ $category->name }} @@ -138,7 +138,7 @@ class="text-regular">{{ $item->published_at->format('jS M Y, H:i') }} UTC title="{{ __('ui.item.features_help') }}" data-toggle="tooltip" class="fal fa-question-circle">
- @forelse ($item->features as $feature) + @forelse ($item->features()->orderByTranslation('name')->get() as $feature)
{{ $feature->name }} @@ -151,7 +151,7 @@ class="text-regular">{{ $item->published_at->format('jS M Y, H:i') }} UTC

{{ __('ui.item.colors') }}

- @forelse ($item->colors as $color) + @forelse ($item->colors()->orderByTranslation('name')->get() as $color)
{{ $color->name }} From bc2584d4c9c02b64ec9e78152cf7d92c8be10a2c Mon Sep 17 00:00:00 2001 From: Cocoa Date: Fri, 9 Jan 2026 17:54:11 -0500 Subject: [PATCH 13/16] Remove 'required' rule for translatable fields in Nova, as it behaves oddly --- app/Nova/Attribute.php | 2 +- app/Nova/Color.php | 2 +- app/Nova/Feature.php | 2 +- app/Nova/Tag.php | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/Nova/Attribute.php b/app/Nova/Attribute.php index 588b1151..683c94a0 100644 --- a/app/Nova/Attribute.php +++ b/app/Nova/Attribute.php @@ -54,7 +54,7 @@ public function fields(Request $request) Translatable::make('Name') ->indexLocale('en') ->sortable() - ->rules('required', 'min:2', 'max:255'), + ->rules('max:255'), Text::make('Value') ->readonly(), diff --git a/app/Nova/Color.php b/app/Nova/Color.php index c0132795..2d27556d 100644 --- a/app/Nova/Color.php +++ b/app/Nova/Color.php @@ -55,7 +55,7 @@ public function fields(Request $request) Translatable::make('Name') ->indexLocale('en') ->sortable() - ->rules('required', 'min:2', 'max:255'), + ->rules('max:255'), DateTime::make('Created', 'created_at')->onlyOnDetail(), DateTime::make('Updated', 'updated_at')->onlyOnDetail(), diff --git a/app/Nova/Feature.php b/app/Nova/Feature.php index 9ec4ed83..7fb90fed 100644 --- a/app/Nova/Feature.php +++ b/app/Nova/Feature.php @@ -55,7 +55,7 @@ public function fields(Request $request) Translatable::make('Name') ->indexLocale('en') ->sortable() - ->rules('required', 'min:2', 'max:255'), + ->rules('max:255'), DateTime::make('Created', 'created_at')->onlyOnDetail(), DateTime::make('Updated', 'updated_at')->onlyOnDetail(), diff --git a/app/Nova/Tag.php b/app/Nova/Tag.php index 6277ed09..31488e1f 100644 --- a/app/Nova/Tag.php +++ b/app/Nova/Tag.php @@ -54,7 +54,8 @@ public function fields(Request $request) Translatable::make('Name') ->indexLocale('en') - ->sortable(), + ->sortable() + ->rules('max:255'), DateTime::make('Created', 'created_at')->onlyOnDetail(), DateTime::make('Updated', 'updated_at')->onlyOnDetail(), From 1658302a89f23f6e36f8cdad4525ad95adc509e4 Mon Sep 17 00:00:00 2001 From: Cocoa Date: Fri, 9 Jan 2026 18:50:12 -0500 Subject: [PATCH 14/16] Try to fix weird SQL bug --- app/Providers/NovaServiceProvider.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/Providers/NovaServiceProvider.php b/app/Providers/NovaServiceProvider.php index 26d820ce..544b32a2 100644 --- a/app/Providers/NovaServiceProvider.php +++ b/app/Providers/NovaServiceProvider.php @@ -27,6 +27,10 @@ public function boot() parent::boot(); + Nova::serving(function (ServingNova $event) { + app()->setLocale('en_US'); + }); + Nova::style("css-overrides", public_path("assets/overrides.css")); } From 3ae0885cbf8bf47eb2231be3dd6b4d4cf25e96ff Mon Sep 17 00:00:00 2001 From: Cocoa Date: Fri, 9 Jan 2026 19:01:08 -0500 Subject: [PATCH 15/16] typing --- app/Providers/NovaServiceProvider.php | 2 +- config/app.php | 3 ++- config/translatable.php | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/Providers/NovaServiceProvider.php b/app/Providers/NovaServiceProvider.php index 544b32a2..dabe3307 100644 --- a/app/Providers/NovaServiceProvider.php +++ b/app/Providers/NovaServiceProvider.php @@ -27,7 +27,7 @@ public function boot() parent::boot(); - Nova::serving(function (ServingNova $event) { + Nova::serving(function ($event) { app()->setLocale('en_US'); }); diff --git a/config/app.php b/config/app.php index be4756c8..76212bb1 100644 --- a/config/app.php +++ b/config/app.php @@ -107,11 +107,12 @@ | */ - 'faker_locale' => 'en', + 'faker_locale' => 'en_US', // Available locales 'locales' => [ 'en' => 'English', + 'en_US' => 'English', // Fallback locale fix, do not actually add tls 'fr' => 'français', 'it' => 'Italiano', 'nb_NO' => 'norsk (bokmål)', diff --git a/config/translatable.php b/config/translatable.php index 00b5cb3e..c2a8ea44 100644 --- a/config/translatable.php +++ b/config/translatable.php @@ -11,7 +11,8 @@ | */ 'locales' => [ - 'en' => 'English', + 'en' => 'English', + 'en_US' => 'English', // Fallback locale fix, do not actually add tls 'fr' => 'français', 'it' => 'Italiano', 'nb_NO' => 'norsk (bokmål)', From 899c5a680610948a4bd88feeada8ef5ea949eda5 Mon Sep 17 00:00:00 2001 From: Cocoa Date: Fri, 9 Jan 2026 19:11:00 -0500 Subject: [PATCH 16/16] Hide hacky second EN locale --- resources/views/layouts/app.blade.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index d0ad275d..41669445 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -48,7 +48,9 @@