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