From a56c044286c039c624b1b7dfeed18f318114ee7b Mon Sep 17 00:00:00 2001 From: Maytrok Date: Sat, 4 Nov 2023 11:53:53 +0100 Subject: [PATCH 1/3] german umlaut support --- app/Livewire/CreateCode.php | 7 ++++++- resources/views/components/code.blade.php | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/Livewire/CreateCode.php b/app/Livewire/CreateCode.php index c062bb5..b80ef7f 100644 --- a/app/Livewire/CreateCode.php +++ b/app/Livewire/CreateCode.php @@ -36,6 +36,11 @@ class CreateCode extends Component 'tools_power_drill', 'nest_eco_leaf', 'air_freshener', + 'favorite', + 'bolt', + 'key', + 'sunny', + ]; #[Computed(persist: true)] @@ -43,7 +48,7 @@ public function letters(): array { shuffle($this->symbols); - return collect(range('a', 'z')) + return collect([...range('a', 'z'), ...['ö', 'ä', 'ü', "ß"]]) ->combine($this->symbols) ->toArray(); } diff --git a/resources/views/components/code.blade.php b/resources/views/components/code.blade.php index 46c07c3..12d343a 100644 --- a/resources/views/components/code.blade.php +++ b/resources/views/components/code.blade.php @@ -6,7 +6,7 @@
class(['text-center flex flex-wrap gap-8 mt-auto']) }}> @foreach(array_filter(explode(' ', trim($message))) as $word)
- @foreach(str_split($word) as $character) + @foreach(mb_str_split($word) as $character)
{{ $letters[strtolower($character)] ?? $character }} From fd27a2b0330292a16ee754c8018d92926042b366 Mon Sep 17 00:00:00 2001 From: Maytrok Date: Sat, 4 Nov 2023 12:01:06 +0100 Subject: [PATCH 2/3] consider upper umlaut --- resources/views/components/code.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/components/code.blade.php b/resources/views/components/code.blade.php index 12d343a..7ebe543 100644 --- a/resources/views/components/code.blade.php +++ b/resources/views/components/code.blade.php @@ -9,7 +9,7 @@ @foreach(mb_str_split($word) as $character)
- {{ $letters[strtolower($character)] ?? $character }} + {{ $letters[mb_strtolower($character)] ?? $character }}
From 496ae68614c5895adc51b7048d207c275ccf3482 Mon Sep 17 00:00:00 2001 From: Maytrok Date: Sat, 4 Nov 2023 13:33:32 +0100 Subject: [PATCH 3/3] Only displays umlauts if they appear in the message --- app/Livewire/CreateCode.php | 24 +++++++++++++++++-- resources/views/components/legend.blade.php | 2 +- .../views/livewire/create-code.blade.php | 2 +- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/app/Livewire/CreateCode.php b/app/Livewire/CreateCode.php index b80ef7f..f688f64 100644 --- a/app/Livewire/CreateCode.php +++ b/app/Livewire/CreateCode.php @@ -8,6 +8,7 @@ class CreateCode extends Component { public string $message; + private array $umlaute = ['ö', 'ä', 'ü', "ß"]; protected array $symbols = [ 'enable', @@ -47,12 +48,31 @@ class CreateCode extends Component public function letters(): array { shuffle($this->symbols); - - return collect([...range('a', 'z'), ...['ö', 'ä', 'ü', "ß"]]) + return collect([...range('a', 'z'), ...$this->umlaute]) ->combine($this->symbols) ->toArray(); } + /** + * Display german umlaut only if present in the message + */ + public function legendLetters(string $message): array + { + + if (count(array_intersect(mb_str_split($message), $this->umlaute)) == 0) { + return array_filter($this->letters, function ($key) { + return !in_array($key, $this->umlaute); + }, ARRAY_FILTER_USE_KEY); + } + + // get uppercase ß + $letters = $this->letters; + $letters['ẞ'] = $letters["ß"]; + unset($letters['ß']); + + return $letters; + } + public function render() { return view('livewire.create-code'); diff --git a/resources/views/components/legend.blade.php b/resources/views/components/legend.blade.php index 2910596..c54a4e3 100644 --- a/resources/views/components/legend.blade.php +++ b/resources/views/components/legend.blade.php @@ -3,7 +3,7 @@
@foreach ($letters as $letter => $symbol)
- {{ ucwords($letter) }} + {{ mb_convert_case($letter, MB_CASE_UPPER) }} {{ $symbol }}
@endforeach diff --git a/resources/views/livewire/create-code.blade.php b/resources/views/livewire/create-code.blade.php index 7892adf..6e3ce31 100644 --- a/resources/views/livewire/create-code.blade.php +++ b/resources/views/livewire/create-code.blade.php @@ -11,6 +11,6 @@ class="bg-white/10 text-white py-2 px-3 rounded-xl w-full"> @if ($message) - + @endif