-
Notifications
You must be signed in to change notification settings - Fork 0
/
TransLangToJs.php
48 lines (32 loc) · 1.2 KB
/
TransLangToJs.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\File;
class TransLangToJs extends Command
{
protected $languages = [
'ar',
'en',
];
protected $signature = 'lang:run';
protected $description = 'Translate Language Folder From PHP To JS';
public function handle()
{
$this->output->progressStart(count($this->languages));
foreach ($this->languages as $lang) {
app()->setLocale($lang);
$path = lang_path($lang);
$collection = collect(File::allFiles($path))->flatMap(function ($file, $lang) {
return [($translation = $file->getBasename('.php')) => trans($translation, array(), null, $lang)];
});
$jsonFile = File::get(lang_path($lang . '.json'));
foreach (json_decode($jsonFile) as $key => $value) {
$collection->put($key, $value);
}
$data = 'export default ' . json_encode($collection->toArray());
file_put_contents(resource_path("js/Locale/{$lang}.js"), $data);
$this->output->progressAdvance();
}
$this->output->progressFinish();
}
}