From f5ef155e8b6f3f2202d4145b33c125ee1064324e Mon Sep 17 00:00:00 2001 From: pxpm Date: Mon, 29 Dec 2025 14:10:51 +0000 Subject: [PATCH 1/3] fix file manager languages --- resources/views/elfinder.blade.php | 73 +++++++++++++++++++++--------- src/BackpackElfinderController.php | 13 ++++++ src/FileManagerServiceProvider.php | 2 +- 3 files changed, 66 insertions(+), 22 deletions(-) diff --git a/resources/views/elfinder.blade.php b/resources/views/elfinder.blade.php index 32fa32d..09692f3 100644 --- a/resources/views/elfinder.blade.php +++ b/resources/views/elfinder.blade.php @@ -1,29 +1,62 @@ @extends(backpack_view('blank')) @section('after_scripts') + @php + $elfinderLanguages = [ + 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'es', 'fa', 'fo', 'fr', 'fr_CA', 'he', 'hr', 'hu', 'id', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt_BR', 'ro', 'ru', 'si', 'sk', 'sl', 'sr', 'sv', 'tr', 'ug_CN', 'uk', 'vi', 'zh_CN', 'zh_TW', + ]; + $locales = config('backpack.crud.locales', []); + $elfinderConfiguredLanguages = []; + foreach ($locales as $code => $name) { + if (in_array($code, $elfinderLanguages)) { + $elfinderConfiguredLanguages[$code] = $name; + } + } + // Add English if not present, as it's the fallback + if (!array_key_exists('en', $elfinderConfiguredLanguages)) { + $elfinderConfiguredLanguages['en'] = 'English'; + } - @include('backpack.filemanager::common_scripts') - @include('backpack.filemanager::common_styles') + // Pre-load other configured languages so they are available when switching in UI + foreach ($elfinderConfiguredLanguages as $lang => $name) { + if ($lang !== 'en' && $lang !== $locale) { + try { + \Backpack\Basset\Facades\Basset::basset('bp-elfinder-i18n-'.$lang, false); + } catch (\Throwable $e) {} + } + } + @endphp - - + }); + @endsection @php @@ -46,8 +79,6 @@ @endsection @section('content') -
- @endsection diff --git a/src/BackpackElfinderController.php b/src/BackpackElfinderController.php index a697371..04618f9 100644 --- a/src/BackpackElfinderController.php +++ b/src/BackpackElfinderController.php @@ -4,6 +4,7 @@ use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\Log; +use Backpack\Basset\Facades\Basset; class BackpackElfinderController extends \Barryvdh\Elfinder\ElfinderController { @@ -41,4 +42,16 @@ public function showIndex() ->make('backpack.filemanager::elfinder') ->with($this->getViewVars()); } + + protected function getViewVars() + { + $locale = str_replace("-", "_", $this->app->config->get('app.locale')); + + if (!array_key_exists('bp-elfinder-i18n-'.$locale, Basset::getNamedAssets())) { + $locale = false; + } + + $csrf = true; + return compact('locale', 'csrf'); + } } diff --git a/src/FileManagerServiceProvider.php b/src/FileManagerServiceProvider.php index 8a0d6b7..a8d80fe 100644 --- a/src/FileManagerServiceProvider.php +++ b/src/FileManagerServiceProvider.php @@ -33,7 +33,7 @@ public function boot() // Fallback to package views $this->loadViewsFrom(__DIR__.'/../resources/views', 'backpack.filemanager'); - $crudLanguages = array_keys(config('backpack.crud.languages', [])); + $crudLanguages = array_keys(config('backpack.crud.locales', [])); foreach ($crudLanguages as $language) { if ($language === 'en') { continue; From 72f6c037e381b7099c8820f2b9cc6b5cec51b033 Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Mon, 29 Dec 2025 14:11:02 +0000 Subject: [PATCH 2/3] Apply fixes from StyleCI --- src/BackpackElfinderController.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/BackpackElfinderController.php b/src/BackpackElfinderController.php index 04618f9..2c2236d 100644 --- a/src/BackpackElfinderController.php +++ b/src/BackpackElfinderController.php @@ -2,9 +2,9 @@ namespace Backpack\FileManager; +use Backpack\Basset\Facades\Basset; use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\Log; -use Backpack\Basset\Facades\Basset; class BackpackElfinderController extends \Barryvdh\Elfinder\ElfinderController { @@ -45,13 +45,14 @@ public function showIndex() protected function getViewVars() { - $locale = str_replace("-", "_", $this->app->config->get('app.locale')); + $locale = str_replace('-', '_', $this->app->config->get('app.locale')); - if (!array_key_exists('bp-elfinder-i18n-'.$locale, Basset::getNamedAssets())) { + if (! array_key_exists('bp-elfinder-i18n-'.$locale, Basset::getNamedAssets())) { $locale = false; } $csrf = true; + return compact('locale', 'csrf'); } } From 7ef6999d2ece1c781d3fb87f2d726f75a0661910 Mon Sep 17 00:00:00 2001 From: pxpm Date: Mon, 29 Dec 2025 14:51:48 +0000 Subject: [PATCH 3/3] wip --- resources/views/elfinder.blade.php | 26 +---------------------- resources/views/localization.blade.php | 25 ++++++++++++++++++++++ resources/views/standalonepopup.blade.php | 10 +++++++-- 3 files changed, 34 insertions(+), 27 deletions(-) create mode 100644 resources/views/localization.blade.php diff --git a/resources/views/elfinder.blade.php b/resources/views/elfinder.blade.php index 09692f3..223819f 100644 --- a/resources/views/elfinder.blade.php +++ b/resources/views/elfinder.blade.php @@ -1,31 +1,7 @@ @extends(backpack_view('blank')) @section('after_scripts') - @php - $elfinderLanguages = [ - 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'es', 'fa', 'fo', 'fr', 'fr_CA', 'he', 'hr', 'hu', 'id', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt_BR', 'ro', 'ru', 'si', 'sk', 'sl', 'sr', 'sv', 'tr', 'ug_CN', 'uk', 'vi', 'zh_CN', 'zh_TW', - ]; - $locales = config('backpack.crud.locales', []); - $elfinderConfiguredLanguages = []; - foreach ($locales as $code => $name) { - if (in_array($code, $elfinderLanguages)) { - $elfinderConfiguredLanguages[$code] = $name; - } - } - // Add English if not present, as it's the fallback - if (!array_key_exists('en', $elfinderConfiguredLanguages)) { - $elfinderConfiguredLanguages['en'] = 'English'; - } - - // Pre-load other configured languages so they are available when switching in UI - foreach ($elfinderConfiguredLanguages as $lang => $name) { - if ($lang !== 'en' && $lang !== $locale) { - try { - \Backpack\Basset\Facades\Basset::basset('bp-elfinder-i18n-'.$lang, false); - } catch (\Throwable $e) {} - } - } - @endphp + @include('backpack.filemanager::localization') @include('backpack.filemanager::common_scripts', ['locale' => in_array($locale, array_keys($elfinderConfiguredLanguages)) ? $locale : null]) @include('backpack.filemanager::common_styles') diff --git a/resources/views/localization.blade.php b/resources/views/localization.blade.php new file mode 100644 index 0000000..65c6641 --- /dev/null +++ b/resources/views/localization.blade.php @@ -0,0 +1,25 @@ +@php + $elfinderLanguages = [ + 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'es', 'fa', 'fo', 'fr', 'fr_CA', 'he', 'hr', 'hu', 'id', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt_BR', 'ro', 'ru', 'si', 'sk', 'sl', 'sr', 'sv', 'tr', 'ug_CN', 'uk', 'vi', 'zh_CN', 'zh_TW', + ]; + $locales = config('backpack.crud.locales', []); + $elfinderConfiguredLanguages = []; + foreach ($locales as $code => $name) { + if (in_array($code, $elfinderLanguages)) { + $elfinderConfiguredLanguages[$code] = $name; + } + } + // Add English if not present, as it's the fallback + if (!array_key_exists('en', $elfinderConfiguredLanguages)) { + $elfinderConfiguredLanguages['en'] = 'English'; + } + + // Pre-load other configured languages so they are available when switching in UI + foreach ($elfinderConfiguredLanguages as $lang => $name) { + if ($lang !== 'en' && $lang !== $locale) { + try { + \Backpack\Basset\Facades\Basset::basset('bp-elfinder-i18n-'.$lang, false); + } catch (\Throwable $e) {} + } + } +@endphp diff --git a/resources/views/standalonepopup.blade.php b/resources/views/standalonepopup.blade.php index fd1de79..e2d747f 100644 --- a/resources/views/standalonepopup.blade.php +++ b/resources/views/standalonepopup.blade.php @@ -1,8 +1,8 @@ - - @include('backpack.filemanager::common_scripts') + @include('backpack.filemanager::localization') + @include('backpack.filemanager::common_scripts', ['locale' => in_array($locale, array_keys($elfinderConfiguredLanguages)) ? $locale : null]) @include('backpack.filemanager::common_styles', ['styleBodyElement' => true])