Skip to content

Commit 1b127c0

Browse files
committed
translation list added
1 parent a1bb3e6 commit 1b127c0

5 files changed

Lines changed: 68 additions & 2 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?php
2+
3+
namespace Fintech\Core\Commands;
4+
5+
use Fintech\Core\Traits\HasCoreSetting;
6+
use Illuminate\Console\Command;
7+
use Illuminate\Support\Facades\Artisan;
8+
use Throwable;
9+
use function Laravel\Prompts\search;
10+
11+
/**
12+
* Class InstallCommand
13+
*/
14+
class GenerateLangFileCommand extends Command
15+
{
16+
use HasCoreSetting;
17+
18+
public $signature = 'core:generate-lang-file';
19+
public $description = 'Generate language JSON files.';
20+
private string $module = 'Core';
21+
22+
/**
23+
* @throws Throwable
24+
*/
25+
public function handle(): int
26+
{
27+
try {
28+
29+
30+
return self::SUCCESS;
31+
32+
}catch (Throwable $e){
33+
34+
$this->error($e->getMessage());
35+
36+
return self::FAILURE;
37+
}
38+
}
39+
}

src/Http/Requests/IndexTranslationRequest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public function rules(): array
3333
'sort' => ['string', 'nullable', 'min:2', 'max:255'],
3434
'dir' => ['string', 'min:3', 'max:4'],
3535
'trashed' => ['boolean', 'nullable'],
36+
'locale' => ['string', 'nullable', 'min:2', 'max:10'],
3637
];
3738
}
3839

src/Http/Resources/TranslationCollection.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class TranslationCollection extends ResourceCollection
1616
*/
1717
public function toArray($request)
1818
{
19-
return parent::toArray($request);
19+
return $this->collection->map(fn ($item) => new TranslationResource($item));
2020
}
2121

2222
/**

src/Http/Resources/TranslationResource.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
use Illuminate\Http\Resources\Json\JsonResource;
66

7+
/**
8+
* @method string|null getTranslation(string $code)
9+
*/
710
class TranslationResource extends JsonResource
811
{
912
/**
@@ -14,6 +17,14 @@ class TranslationResource extends JsonResource
1417
*/
1518
public function toArray($request)
1619
{
17-
return parent::toArray($request);
20+
return [
21+
'id' => $this->getKey(),
22+
'key' => $this->key ?? null,
23+
'locale' => $this->getTranslation($request->input('locale', config('app.locale'))),
24+
'created_at' => $this->created_at ?? null,
25+
'updated_at' => $this->updated_at ?? null,
26+
'deleted_at' => $this->deleted_at ?? null,
27+
'restored_at' => $this->restored_at ?? null,
28+
];
1829
}
1930
}

src/Models/Translation.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Fintech\Core\Abstracts\BaseModel;
66
use Fintech\Core\Traits\Audits\BlameableTrait;
7+
use Illuminate\Database\Eloquent\Casts\Attribute;
78
use Illuminate\Database\Eloquent\SoftDeletes;
89
use OwenIt\Auditing\Contracts\Auditable;
910

@@ -33,6 +34,13 @@ class Translation extends BaseModel implements Auditable
3334
|--------------------------------------------------------------------------
3435
*/
3536

37+
public function getTranslation(string $lang = 'en'): ?string
38+
{
39+
$locales = $this->locale ?? [];
40+
41+
return $locales[$lang] ?? null;
42+
}
43+
3644
/*
3745
|--------------------------------------------------------------------------
3846
| RELATIONS
@@ -51,6 +59,13 @@ class Translation extends BaseModel implements Auditable
5159
|--------------------------------------------------------------------------
5260
*/
5361

62+
// public function locale(): Attribute
63+
// {
64+
// return Attribute::make(
65+
// get: fn() => set: fn() =>
66+
// );
67+
// }
68+
5469
/*
5570
|--------------------------------------------------------------------------
5671
| MUTATORS

0 commit comments

Comments
 (0)