codigo actual del servidor, con avances de joan
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header row gutters-5">
|
||||
<div class="col text-center text-md-left">
|
||||
<h5 class="mb-md-0 h6">{{ $language->name }}</h5>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<form class="" id="sort_keys" action="" method="GET">
|
||||
<div class="input-group input-group-sm">
|
||||
<input type="text" class="form-control" id="search" name="search"@isset($sort_search) value="{{ $sort_search }}" @endisset placeholder="{{ translate('Type key & Enter') }}">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<form class="form-horizontal" action="{{ route('app-translations.store') }}" method="POST">
|
||||
@csrf
|
||||
<input type="hidden" name="id" value="{{ $language->id }}">
|
||||
<div class="card-body">
|
||||
<table class="table table-striped table-bordered demo-dt-basic" id="tranlation-table" cellspacing="0" width="100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th width="30%">{{translate('Key')}}</th>
|
||||
<th width="30%">{{translate('Default Value')}}</th>
|
||||
<th width="30%">{{translate('Translated Value')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($lang_keys as $key => $translation)
|
||||
<tr>
|
||||
<td>{{ ($key+1) + ($lang_keys->currentPage() - 1)*$lang_keys->perPage() }}</td>
|
||||
<td>{{ $translation->lang_key }}</td>
|
||||
<td class="key">{{ $translation->lang_value }}</td>
|
||||
<td>
|
||||
<input type="text" class="form-control value" style="width:100%" name="values[{{ $translation->lang_key }}]" @if (($traslate_lang = \App\Models\AppTranslation::where('lang', $language->app_lang_code)->where('lang_key', $translation->lang_key)->latest()->first()) != null)
|
||||
value="{{ $traslate_lang->lang_value }}"
|
||||
@endif>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="aiz-pagination">
|
||||
{{ $lang_keys->appends(request()->input())->links() }}
|
||||
</div>
|
||||
|
||||
<div class="form-group mb-0 text-right">
|
||||
<button type="button" class="btn btn-primary" onclick="copyTranslation()">{{ translate('Copy Translations') }}</button>
|
||||
<button type="submit" class="btn btn-primary">{{translate('Save')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@section('script')
|
||||
<script type="text/javascript">
|
||||
//translate in one click
|
||||
function copyTranslation() {
|
||||
$('#tranlation-table > tbody > tr').each(function (index, tr) {
|
||||
$(tr).find('.value').val($(tr).find('.key').text());
|
||||
});
|
||||
}
|
||||
|
||||
function sort_keys(el){
|
||||
$('#sort_keys').submit();
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
@@ -0,0 +1,59 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mx-auto">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{translate('Language Information')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form class="form-horizontal" action="{{ route('languages.store') }}" method="POST" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-3">
|
||||
<label class="col-from-label">{{ translate('Name') }}</label>
|
||||
</div>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" name="name" placeholder="{{ translate('Name') }}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-3">
|
||||
<label class="col-from-label">{{ translate('Code') }}</label>
|
||||
</div>
|
||||
<div class="col-lg-9">
|
||||
@php
|
||||
$languagesArray = \App\Models\Language::pluck('code')->toarray();
|
||||
@endphp
|
||||
<select class="form-control aiz-selectpicker mb-2 mb-md-0" name="code" data-live-search="true" >
|
||||
@foreach(\File::files(base_path('public/assets/img/flags')) as $path)
|
||||
|
||||
@if(!in_array(pathinfo($path)['filename'],$languagesArray))
|
||||
|
||||
<option value="{{ pathinfo($path)['filename'] }}" data-content="<div class=''><img src='{{ static_asset('assets/img/flags/'.pathinfo($path)['filename'].'.png') }}' class='mr-2'><span>{{ strtoupper(pathinfo($path)['filename']) }}</span></div>"></option>
|
||||
|
||||
@endif
|
||||
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-3">
|
||||
<label class="control-label">{{ translate('Flutter App Lang Code') }}</label>
|
||||
<code><a target="_blank" href="https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">{{ translate("Links for ISO 639-1 codes")}}</a></code>
|
||||
</div>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" name="app_lang_code" placeholder="{{ translate('Put ISO 639-1 code for your language') }}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-0 text-right">
|
||||
<button type="submit" class="btn btn-sm btn-primary">{{translate('Save')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,68 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="aiz-titlebar text-left mt-2 mb-3">
|
||||
<h5 class="mb-0 h6">{{translate('Language Information')}}</h5>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6 mx-auto">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{translate('update Language Info')}}</h5>
|
||||
</div>
|
||||
<div class="card-body p-0">
|
||||
<form class="p-4" action="{{ route('languages.update', $language->id) }}" method="POST">
|
||||
@csrf
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-3">
|
||||
<label class="control-label">{{ translate('Name') }}</label>
|
||||
</div>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" name="name" placeholder="{{ translate('Name') }}" value="{{ $language->name }}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-3">
|
||||
<label class="control-label">{{ translate('Code') }}</label>
|
||||
</div>
|
||||
<div class="col-lg-9">
|
||||
@php
|
||||
$languagesArray = \App\Models\Language::pluck('code')->toarray();
|
||||
if (($key = array_search($language->code, $languagesArray)) !== false) {
|
||||
unset($languagesArray[$key]);
|
||||
}
|
||||
@endphp
|
||||
<select class="form-control aiz-selectpicker mb-2 mb-md-0" name="code" data-live-search="true" >
|
||||
@foreach(\File::files(base_path('public/assets/img/flags')) as $path)
|
||||
@if(!in_array(pathinfo($path)['filename'],$languagesArray))
|
||||
<option
|
||||
value="{{ pathinfo($path)['filename'] }}"
|
||||
@if($language->code == pathinfo($path)['filename']) selected @endif data-content="<div class=''><img src='{{ static_asset('assets/img/flags/'.pathinfo($path)['filename'].'.png') }}' class='mr-2'><span>{{ strtoupper(pathinfo($path)['filename']) }}</span></div>"
|
||||
>
|
||||
</option>
|
||||
@endif
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-3">
|
||||
<label class="control-label">{{ translate('Flutter App Lang Code') }}</label>
|
||||
<code><a target="_blank" href="https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">{{ translate("Links for ISO 639-1 codes")}}</a></code>
|
||||
</div>
|
||||
<div class="col-lg-9">
|
||||
<input type="text" class="form-control" name="app_lang_code" placeholder="{{ translate('Put ISO 639-1 code for your language') }}" value="{{ $language->app_lang_code }}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-0 text-right">
|
||||
<button type="submit" class="btn btn-sm btn-primary">{{translate('Save')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,189 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{ translate('Default Language') }}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form class="form-horizontal" action="{{ route('env_key_update.update') }}" method="POST">
|
||||
@csrf
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-3">
|
||||
<label class="col-from-label">{{ translate('Default Language') }}</label>
|
||||
</div>
|
||||
<input type="hidden" name="types[]" value="DEFAULT_LANGUAGE">
|
||||
<div class="col-lg-6">
|
||||
<select class="form-control aiz-selectpicker" name="DEFAULT_LANGUAGE" data-selected="{{ env('DEFAULT_LANGUAGE') }}">
|
||||
@foreach (\App\Models\Language::where('status', 1)->get() as $key => $language)
|
||||
<option value="{{ $language->code }}" @if(env('DEFAULT_LANGUAGE') == $language->code) selected @endif>
|
||||
{{ $language->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<button type="submit" class="btn btn-info">{{translate('Save')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{ translate('Import App Translations') }}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form class="form-horizontal" action="{{ route('app-translations.import') }}" method="POST" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="form-group row">
|
||||
<div class="col-lg-3">
|
||||
<label class="col-from-label">{{ translate('English Trasnlation File') }}</label>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="custom-file">
|
||||
<label class="custom-file-label">
|
||||
<input type="file" id="lang_file" name="lang_file" class="custom-file-input" required>
|
||||
<span class="custom-file-name">{{ translate('Choose app_en.arb file') }}</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<button type="submit" class="btn btn-info">{{translate('Import')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="aiz-titlebar text-left mt-2 mb-3">
|
||||
<div class="align-items-center">
|
||||
<div class="text-md-right">
|
||||
<a href="{{ route('languages.create') }}" class="btn btn-circle btn-info">
|
||||
<span>{{translate('Add New Language')}}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{translate('Language')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table aiz-table mb-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-breakpoints="lg">#</th>
|
||||
<th>{{translate('Name')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Code')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('Flutter App Lang Code')}}</th>
|
||||
<th data-breakpoints="lg">{{translate('RTL')}}</th>
|
||||
<th>{{translate('Status')}}</th>
|
||||
<th class="text-right" width="15%">{{translate('Options')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$i = 1;
|
||||
@endphp
|
||||
@foreach ($languages as $key => $language)
|
||||
<tr>
|
||||
<td>{{ ($key+1) + ($languages->currentPage() - 1)*$languages->perPage() }}</td>
|
||||
<td>{{ $language->name }}</td>
|
||||
<td>{{ $language->code }}</td>
|
||||
<td>{{ $language->app_lang_code }}</td>
|
||||
<td><label class="aiz-switch aiz-switch-success mb-0">
|
||||
<input onchange="update_rtl_status(this)" value="{{ $language->id }}" type="checkbox" @if($language->rtl == 1) checked @endif>
|
||||
<span class="slider round"></span></label>
|
||||
</td>
|
||||
<td><label class="aiz-switch aiz-switch-success mb-0">
|
||||
<input onchange="update_status(this)" value="{{ $language->id }}" type="checkbox" @if($language->status == 1) checked @endif>
|
||||
<span class="slider round"></span></label>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<a class="btn btn-soft-info btn-icon btn-circle btn-sm" href="{{route('languages.show', $language->id)}}" title="{{ translate('Translation') }}">
|
||||
<i class="las la-language"></i>
|
||||
</a>
|
||||
<a class="btn btn-soft-warning btn-icon btn-circle btn-sm" href="{{route('app-translations.show', $language->id)}}" title="{{ translate('App Translation') }}">
|
||||
<i class="las la-language"></i>
|
||||
</a>
|
||||
<a class="btn btn-soft-success btn-icon btn-circle btn-sm" href="{{route('app-translations.export', $language->id)}}" title="{{ translate('arb File Export') }}" download>
|
||||
<i class="las la-download"></i>
|
||||
</a>
|
||||
<a class="btn btn-soft-primary btn-icon btn-circle btn-sm" href="{{route('languages.edit', $language->id)}}" title="{{ translate('Edit') }}">
|
||||
<i class="las la-edit"></i>
|
||||
</a>
|
||||
@if($language->code != 'en')
|
||||
<a href="#" class="btn btn-soft-danger btn-icon btn-circle btn-sm confirm-delete" data-href="{{route('languages.destroy', $language->id)}}" title="{{ translate('Delete') }}">
|
||||
<i class="las la-trash"></i>
|
||||
</a>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@php
|
||||
$i++;
|
||||
@endphp
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="aiz-pagination">
|
||||
{{ $languages->appends(request()->input())->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@section('modal')
|
||||
@include('modals.delete_modal')
|
||||
@endsection
|
||||
|
||||
|
||||
@section('script')
|
||||
<script type="text/javascript">
|
||||
function update_rtl_status(el){
|
||||
if(el.checked){
|
||||
var status = 1;
|
||||
}
|
||||
else{
|
||||
var status = 0;
|
||||
}
|
||||
$.post('{{ route('languages.update_rtl_status') }}', {_token:'{{ csrf_token() }}', id:el.value, status:status}, function(data){
|
||||
if(data == 1){
|
||||
location.reload();
|
||||
}
|
||||
else{
|
||||
AIZ.plugins.notify('danger', '{{ translate('Something went wrong') }}');
|
||||
}
|
||||
});
|
||||
}
|
||||
function update_status(el){
|
||||
if(el.checked){
|
||||
var status = 1;
|
||||
}
|
||||
else{
|
||||
var status = 0;
|
||||
}
|
||||
$.post('{{ route('languages.update-status') }}', {
|
||||
_token : '{{ csrf_token() }}',
|
||||
id : el.value,
|
||||
status : status
|
||||
}, function(data) {
|
||||
if(data == 1) {
|
||||
location.reload();
|
||||
}
|
||||
else {
|
||||
AIZ.plugins.notify('danger', '{{ translate('Something went wrong') }}');
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
@@ -0,0 +1,71 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header row gutters-5">
|
||||
<div class="col text-center text-md-left">
|
||||
<h5 class="mb-md-0 h6">{{ $language->name }}</h5>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<form class="" id="sort_keys" action="" method="GET">
|
||||
<div class="input-group input-group-sm">
|
||||
<input type="text" class="form-control" id="search" name="search"@isset($sort_search) value="{{ $sort_search }}" @endisset placeholder="{{ translate('Type key & Enter') }}">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<form class="form-horizontal" action="{{ route('languages.key_value_store') }}" method="POST">
|
||||
@csrf
|
||||
<input type="hidden" name="id" value="{{ $language->id }}">
|
||||
<div class="card-body">
|
||||
<table class="table table-striped table-bordered demo-dt-basic" id="tranlation-table" cellspacing="0" width="100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th width="45%">{{translate('Key')}}</th>
|
||||
<th width="45%">{{translate('Value')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($lang_keys as $key => $translation)
|
||||
<tr>
|
||||
<td>{{ ($key+1) + ($lang_keys->currentPage() - 1)*$lang_keys->perPage() }}</td>
|
||||
<td class="key">{{ $translation->lang_value }}</td>
|
||||
<td>
|
||||
<input type="text" class="form-control value" style="width:100%" name="values[{{ $translation->lang_key }}]" @if (($traslate_lang = \App\Models\Translation::where('lang', $language->code)->where('lang_key', $translation->lang_key)->latest()->first()) != null)
|
||||
value="{{ $traslate_lang->lang_value }}"
|
||||
@endif>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="aiz-pagination">
|
||||
{{ $lang_keys->appends(request()->input())->links() }}
|
||||
</div>
|
||||
|
||||
<div class="form-group mb-0 text-right">
|
||||
<button type="button" class="btn btn-primary" onclick="copyTranslation()">{{ translate('Copy Translations') }}</button>
|
||||
<button type="submit" class="btn btn-primary">{{translate('Save')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@section('script')
|
||||
<script type="text/javascript">
|
||||
//translate in one click
|
||||
function copyTranslation() {
|
||||
$('#tranlation-table > tbody > tr').each(function (index, tr) {
|
||||
$(tr).find('.value').val($(tr).find('.key').text());
|
||||
});
|
||||
}
|
||||
|
||||
function sort_keys(el){
|
||||
$('#sort_keys').submit();
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user