Initial commit: Pireon Admin — headless admin panel and public API

Laravel 13 + Filament 5 admin panel and REST API for a non-profit developer
collective, backed by the Pireon OAuth identity server. The public site is a
separate, server-rendered application consuming /api/public/v1.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-19 17:55:27 +02:00
commit 3897113313
534 changed files with 64050 additions and 0 deletions

64
config/locales.php Normal file
View File

@@ -0,0 +1,64 @@
<?php
declare(strict_types=1);
return [
/*
|--------------------------------------------------------------------------
| Supported locales
|--------------------------------------------------------------------------
|
| Drives three things at once: the panel's language switcher, the
| Accept-Language negotiation for the REST API, and the set of tabs the
| translatable form fields render for content authors.
|
| The key is the locale code stored in translatable JSON columns and in
| users.locale. Keep it in sync with the identity server (es/en/ca).
|
*/
'supported' => [
'es' => [
'name' => 'Español',
'native' => 'Español',
'flag' => '🇪🇸',
'regional' => 'es_ES',
'direction' => 'ltr',
],
'en' => [
'name' => 'English',
'native' => 'English',
'flag' => '🇬🇧',
'regional' => 'en_GB',
'direction' => 'ltr',
],
'ca' => [
'name' => 'Catalan',
'native' => 'Català',
'flag' => '🏳️',
'regional' => 'ca_ES',
'direction' => 'ltr',
],
],
/*
| Locale used when nothing else resolves, and the one whose value is shown
| when a translatable field has no translation for the active locale.
*/
'default' => env('APP_LOCALE', 'es'),
'fallback' => env('APP_FALLBACK_LOCALE', 'es'),
/*
| Query parameter that switches locale for a single request, e.g.
| /api/v1/pages?lang=ca. Also accepted on panel routes.
*/
'query_parameter' => 'lang',
/*
| Session key holding the locale a signed-in visitor picked from the
| switcher; it outranks Accept-Language but not an explicit ?lang=.
*/
'session_key' => 'app_locale',
];