add languages

This commit is contained in:
Benjamin Takats
2022-12-18 22:03:13 +01:00
parent 2f531cbb85
commit 271cc0a4e8

View File

@@ -12,16 +12,13 @@ class LanguageController extends Controller
{
/**
* Display a listing of the resource.
* @return \Illuminate\Http\Response
* @return \Illuminate\Http\JsonResponse
*/
public function index(Request $request)
{
return Language::query()
$array = Language::query()
->select('id', 'name', 'language')
->orderBy('name')
->with([
'translations:value,language_id',
])
->when(
$request->search,
fn(Builder $query) => $query
@@ -34,18 +31,26 @@ class LanguageController extends Controller
fn(Builder $query) => $query->limit(10)
)
->get()
->map(function (Language $language) {
$translated = $language->translations->whereNotNull('value')
->map(function ($language) {
$language->translatedCount = Translation::query()
->where('language_id', $language['id'])
->whereNotNull('value')
->where('value', '<>', '')
->count();
$toTranslate = Translation::query()
->where('language_id', $language->id)
$language->toTranslate = Translation::query()
->where('language_id', $language['id'])
->count();
$language->name = $language->name ? trans($language->name) : $language->language;
$language->description = $language->language === 'en' ? '100% translated' : round($translated / $toTranslate * 100).'% translated';
return $language;
});
})
->toArray();
foreach ($array as &$item) {
$item['translated'] = __($item['name']);
$item['description'] = $item['language'] === 'en'
? __('100% translated')
: round($item['translatedCount'] / $item['toTranslate'] * 100).__('% translated');
}
return response()->json($array);
}
/**