Skip to content

Commit

Permalink
language added
Browse files Browse the repository at this point in the history
  • Loading branch information
sudippalash committed Aug 9, 2022
1 parent df1a557 commit c125c5b
Show file tree
Hide file tree
Showing 7 changed files with 98 additions and 41 deletions.
49 changes: 37 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
## lang-maker comes to Laravel
## lang-maker

[![Latest Version on Packagist][ico-version]][link-packagist]
[![Software License][ico-license]](LICENSE.md)
[![Total Downloads][ico-downloads]][link-downloads]


`lang-maker` is a simple file handling package of `Laravel` that provides variety of options to deal with languages.
`lang-maker` is a simple language handling package of `Laravel` that provides to create and modify your project's lang folder.

## Install

Expand All @@ -15,15 +15,13 @@ Via Composer
composer require sudippalash/lang-maker
```

#### Publish config file
You can publish the config file with:

You will need to publish config file to add `lang-maker` global path.

```
php artisan vendor:publish --provider="Sudip\LangMaker\Providers\AppServiceProvider" --tag=lang-maker
```bash
php artisan vendor:publish --provider="Sudip\LangMaker\Providers\AppServiceProvider" --tag=config
```

In `config/lang-maker.php` config file you should set `lang-maker` global path.
This is the contents of the published config file `config/lang-maker.php`:

```php
return [
Expand Down Expand Up @@ -56,11 +54,11 @@ In `config/lang-maker.php` config file you should set `lang-maker` global path.
|
| Provide a route name for language route. Example: user.language
| Provide a prefix name for language url. Example: user/language
| If language route use any middleware then provide it or leave empty array. Example: ['auth ']
| If language route use any middleware then provide it or leave empty array. Example: ['auth ']
*/

'route_name' => 'user.language',
'route_prefix' => 'user/language',
'route_name' => 'user.languages',
'route_prefix' => 'user/languages',
'middleware' => [],

/*
Expand All @@ -71,7 +69,7 @@ In `config/lang-maker.php` config file you should set `lang-maker` global path.
| specify the file names (without extension) in array which you want to ignore to modify or leave it blank array
*/

'ignore_lang_file' => [], //['validation', 'pagination']
'ignore_lang_file' => ['validation'],

/*
|--------------------------------------------------------------------------
Expand All @@ -84,6 +82,18 @@ In `config/lang-maker.php` config file you should set `lang-maker` global path.

'bootstrap_v' => 4,

/*
|--------------------------------------------------------------------------
| Flash Messages
|--------------------------------------------------------------------------
|
| After Save/Update flash message session key name
|
*/

'flash_success' => 'success',
'flash_error' => 'error',


/*
|--------------------------------------------------------------------------
Expand All @@ -98,10 +108,25 @@ In `config/lang-maker.php` config file you should set `lang-maker` global path.
'card' => null,
'input' => null,
'btn' => null,
'link' => null,
],
];
```

Optionally, you can publish the lang using

```bash
php artisan vendor:publish --provider="Sudip\LangMaker\Providers\AppServiceProvider" --tag=lang
```

## Usage

You should copy the below line and paste in your project menu section

```bash
<a href="{{ route(config('lang-maker.route_name')) }}">{{ trans('lang-maker::sp_lang_maker.language') }}</a>
```

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
Expand Down
17 changes: 15 additions & 2 deletions config/lang-maker.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
| If language route use any middleware then provide it or leave empty array. Example: ['auth ']
*/

'route_name' => 'admin.language',
'route_prefix' => 'admin/language',
'route_name' => 'user.languages',
'route_prefix' => 'user/languages',
'middleware' => [],

/*
Expand All @@ -58,6 +58,18 @@

'bootstrap_v' => 4,

/*
|--------------------------------------------------------------------------
| Flash Messages
|--------------------------------------------------------------------------
|
| After Save/Update flash message session key name
|
*/

'flash_success' => 'success',
'flash_error' => 'error',


/*
|--------------------------------------------------------------------------
Expand All @@ -72,5 +84,6 @@
'card' => null,
'input' => null,
'btn' => null,
'link' => null,
],
];
6 changes: 3 additions & 3 deletions src/Http/Controllers/LanguageController.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public function index($currantLang = 'en')

$cssClass = $this->cssGenerate();

$blade = config('lang-maker.bootstrap_v') == 3 ? 'langmake::index-3' : 'langmake::index';
$blade = config('lang-maker.bootstrap_v') == 3 ? 'lang-maker::index-3' : 'lang-maker::index';

return view($blade, compact('languages', 'currantLang', 'jsonFileArray', 'pageArray', 'cssClass'));
}
Expand Down Expand Up @@ -76,7 +76,7 @@ public function store(Request $request)
$fileSystem = new Filesystem();
$fileSystem->copyDirectory($langDir . "en", $dir . "/");

return redirect()->route(config('lang-maker.route_name'), [$langCode])->with('success', __('Language Created Successfully!'));
return redirect()->route(config('lang-maker.route_name'), [$langCode])->with(config('lang-maker.flash_success'), trans('lang-maker::sp_lang_maker.create_message'));
}

public function update(Request $request, $currantLang)
Expand Down Expand Up @@ -108,6 +108,6 @@ public function update(Request $request, $currantLang)
}
}

return redirect()->route(config('lang-maker.route_name'), [$currantLang])->with('success', __('Language Save Successfully!'));
return redirect()->route(config('lang-maker.route_name'), [$currantLang])->with(config('lang-maker.flash_success'), trans('lang-maker::sp_lang_maker.update_message'));
}
}
12 changes: 9 additions & 3 deletions src/Providers/AppServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,18 @@ public function register()
);
}


public function boot()
{
$this->loadViewsFrom(__DIR__ . '/../views', 'langmake');
$this->loadViewsFrom(__DIR__ . '/../resources/views', 'lang-maker');

$this->loadTranslationsFrom(__DIR__ . '/../resources/lang', 'lang-maker');

$this->publishes([
__DIR__ . '/../../config/lang-maker.php' => config_path('lang-maker.php'),
], 'lang-maker');
], 'config');

$this->publishes([
__DIR__.'/../resources/lang' => resource_path('lang/vendor/lang-maker'),
], 'lang');
}
}
25 changes: 12 additions & 13 deletions src/Traits/LangUtility.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,20 @@ public function buildArray($fileData)
public function cssGenerate()
{
$cssClass = config('lang-maker.css');
if (!isset($cssClass['container']) && $cssClass['container'] == null) {
$cssClass['container'] = 'container-fluid';
}

if (!isset($cssClass['card']) && $cssClass['card'] == null) {
$cssClass['card'] = 'card';
}

if (!isset($cssClass['input']) && $cssClass['input'] == null) {
$cssClass['input'] = 'form-control';
}
$cssClass['container'] = isset($cssClass['container']) ? $cssClass['container'] : 'container-fluid';

$cssClass['card'] = isset($cssClass['card']) ? $cssClass['card'] : 'card';

$cssClass['input'] = isset($cssClass['input']) ? $cssClass['input'] : 'form-control';

$cssClass['btn'] = isset($cssClass['btn']) ? $cssClass['btn'] : 'btn-secondary';

$cssClass['table'] = isset($cssClass['table']) ? $cssClass['table'] : null;

$cssClass['table_action_col_width'] = isset($cssClass['table_action_col_width']) ? $cssClass['table_action_col_width'] : null;

if (!isset($cssClass['btn']) && $cssClass['btn'] == null) {
$cssClass['btn'] = 'btn-secondary';
}
$cssClass['link'] = isset($cssClass['link']) ? $cssClass['link'] : 'nav-link';

return $cssClass;
}
Expand Down
14 changes: 14 additions & 0 deletions src/resources/lang/en/sp_lang_maker.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

return [
'language' => 'Language',
'json' => 'JSON',
'language_create' => 'Create New Language',
'language_code' => 'Language Code',

'create' => 'Create',
'save' => 'Save',

'create_message' => 'Language Created Successfully!',
'update_message' => 'Language Updated Successfully!',
];
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<div class="{{ $cssClass['card'] }}">
<div class="card-header">
<div class="d-flex justify-content-between">
<h4 class="m-0">Language</h4>
<h4 class="m-0">{{ trans('lang-maker::sp_lang_maker.language') }}</h4>
<div class="d-flex">
<div class="dropdown">
<button class="btn {{ $cssClass['btn'] }} dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Expand All @@ -18,7 +18,7 @@
</div>
</div>

<button type="button" class="btn {{ $cssClass['btn'] }} ml-3" data-toggle="modal" data-target="#createModal">Create</button>
<button type="button" class="btn {{ $cssClass['btn'] }} ml-3" data-toggle="modal" data-target="#createModal">{{ trans('lang-maker::sp_lang_maker.create') }}</button>
</div>
</div>
</div>
Expand All @@ -31,14 +31,14 @@
<div class="col-12 col-sm-4 col-md-3 col-lg-2" style="border-right: 1px solid #f5f5f5;">
<div class="nav flex-column nav-pills" id="v-pills-tab">
@if(!empty($jsonFileArray))
<a class="nav-link active" data-toggle="pill" href="#v-pills-json">JSON</a>
<a class="{{ $cssClass['link'] }} active" data-toggle="pill" href="#v-pills-json">{{ trans('lang-maker::sp_lang_maker.json') }}</a>
@endif

@php
$x = 0;
@endphp
@foreach($pageArray as $fileName => $fileValue)
<a class="nav-link{{ (empty($jsonFileArray) && $x == 0) ? ' active' : null }}" data-toggle="pill" href="#v-pills-{{ $fileName }}">{{ucfirst($fileName)}}</a>
<a class="{{ $cssClass['link'] }}{{ (empty($jsonFileArray) && $x == 0) ? ' active' : null }}" data-toggle="pill" href="#v-pills-{{ $fileName }}">{{ucfirst($fileName)}}</a>
@php
$x++;
@endphp
Expand Down Expand Up @@ -131,7 +131,7 @@
</div>

<div class="col-md-12 text-right">
<button class="btn {{ $cssClass['btn'] }}" type="submit">{{ __('Save Changes')}}</button>
<button class="btn {{ $cssClass['btn'] }}" type="submit">{{ trans('lang-maker::sp_lang_maker.save') }}</button>
</div>
</div>
</form>
Expand All @@ -145,19 +145,19 @@

<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="createModalLabel">Create New Language</h5>
<h5 class="modal-title" id="createModalLabel">{{ trans('lang-maker::sp_lang_maker.language_create') }}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="code" class="col-form-label">Language Code</label>
<label for="code" class="col-form-label">{{ trans('lang-maker::sp_lang_maker.language_code') }}</label>
<input type="text" class="{{ $cssClass['input'] }}" id="code" name="code" required>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn {{ $cssClass['btn'] }}">Create</button>
<button type="submit" class="btn {{ $cssClass['btn'] }}">{{ trans('lang-maker::sp_lang_maker.save') }}</button>
</div>
</div>
</form>
Expand Down

0 comments on commit c125c5b

Please sign in to comment.