Browse Source

Add lang-id stub to generate id lang file for config(['app.locale' => 'id'])

tags/0.1.5^0 0.1.5
Nafies Luthfi 8 years ago
parent
commit
18dd17ef79
  1. 12
      src/Generators/LangFileGenerator.php
  2. 30
      src/stubs/lang-id.stub
  3. 44
      tests/Generators/LangGeneratorTest.php

12
src/Generators/LangFileGenerator.php

@ -26,7 +26,15 @@ class LangFileGenerator extends BaseGenerator
*/
protected function getContent()
{
$stub = $this->files->get(__DIR__.'/../stubs/lang.stub');
$locale = config('app.locale');
$langStubPath = __DIR__.'/../stubs/lang-'.$locale.'.stub';
if ($this->files->exists($langStubPath)) {
$stub = $this->files->get($langStubPath);
} else {
$stub = $this->files->get(__DIR__.'/../stubs/lang.stub');
}
$displayModelName = ucwords(str_replace('_', ' ', snake_case($this->modelNames['model_name'])));
@ -47,7 +55,7 @@ class LangFileGenerator extends BaseGenerator
*/
private function createAppLangFile($langPath)
{
if ( ! $this->files->exists($langPath.'/app.php')) {
if (!$this->files->exists($langPath.'/app.php')) {
$this->generateFile($langPath.'/app.php', $this->getAppLangFileContent());
$this->command->info('lang/app.php generated.');
}

30
src/stubs/lang-id.stub

@ -0,0 +1,30 @@
<?php
return [
// Labels
'master' => 'Master',
'list' => 'Daftar Master',
'search' => 'Cari Master',
'detail' => 'Detail Master',
'not_found' => 'Master tidak ditemukan',
'empty' => 'Belum ada Master',
'back_to_show' => 'Kembali ke detail Master',
'back_to_index' => 'Kembali ke daftar Master',
// Actions
'create' => 'Input Master Baru',
'created' => 'Input Master baru telah berhasil.',
'show' => 'Lihat Detail Master',
'edit' => 'Edit Master',
'update' => 'Update Master',
'updated' => 'Update data Master telah berhasil.',
'delete' => 'Hapus Master',
'delete_confirm' => 'Anda yakin akan menghapus Master ini?',
'deleted' => 'Hapus data Master telah berhasil.',
'undeleted' => 'Data Master gagal dihapus.',
'undeleteable' => 'Data Master tidak dapat dihapus.',
// Attributes
'name' => 'Nama Master',
'description' => 'Deskripsi Master',
];

44
tests/Generators/LangGeneratorTest.php

@ -50,6 +50,50 @@ return [
}
/** @test */
public function it_creates_correct_model_lang_content_based_on_locale_config()
{
config(['app.locale' => 'id']);
$this->artisan('make:crud', ['name' => $this->model_name, '--no-interaction' => true]);
$locale = config('app.locale');
$langPath = resource_path('lang/'.$locale.'/'.$this->lang_name.'.php');
$displayModelName = ucwords(str_replace('_', ' ', snake_case($this->model_name)));
$this->assertFileExists($langPath);
$langFileContent = "<?php
return [
// Labels
'{$this->lang_name}' => '{$displayModelName}',
'list' => 'Daftar {$displayModelName}',
'search' => 'Cari {$displayModelName}',
'detail' => 'Detail {$displayModelName}',
'not_found' => '{$displayModelName} tidak ditemukan',
'empty' => 'Belum ada {$displayModelName}',
'back_to_show' => 'Kembali ke detail {$displayModelName}',
'back_to_index' => 'Kembali ke daftar {$displayModelName}',
// Actions
'create' => 'Input {$displayModelName} Baru',
'created' => 'Input {$displayModelName} baru telah berhasil.',
'show' => 'Lihat Detail {$displayModelName}',
'edit' => 'Edit {$displayModelName}',
'update' => 'Update {$displayModelName}',
'updated' => 'Update data {$displayModelName} telah berhasil.',
'delete' => 'Hapus {$displayModelName}',
'delete_confirm' => 'Anda yakin akan menghapus {$displayModelName} ini?',
'deleted' => 'Hapus data {$displayModelName} telah berhasil.',
'undeleted' => 'Data {$displayModelName} gagal dihapus.',
'undeleteable' => 'Data {$displayModelName} tidak dapat dihapus.',
// Attributes
'name' => 'Nama {$displayModelName}',
'description' => 'Deskripsi {$displayModelName}',
];
";
$this->assertEquals($langFileContent, file_get_contents($langPath));
}
/** @test */
public function it_creates_app_lang_if_it_doesnt_exists()
{
$this->artisan('make:crud', ['name' => $this->model_name, '--no-interaction' => true]);

Loading…
Cancel
Save