|
@@ -58,8 +58,8 @@
|
|
|
<i class="fa fa-language f16"></i> {{trans('admin.language')}}
|
|
|
</a>
|
|
|
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
|
|
- <a class="dropdown-item" href="javascript:null;" onclick="javascript:switchLanguage('en');" style="padding-left: 10px;">English</a>
|
|
|
- <a class="dropdown-item" href="javascript:null;" onclick="javascript:switchLanguage('zh_CN');" onclick="javascript:switchLanguage('en');" style="padding-left: 10px;">中文</a>
|
|
|
+ <a class="dropdown-item lang-item" href="javascript:void(0);" data-lang="en">English</a>
|
|
|
+ <a class="dropdown-item lang-item" href="javascript:void(0);" data-lang="zh_CN">中文</a>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
@@ -76,21 +76,35 @@
|
|
|
</nav>
|
|
|
@endif
|
|
|
{!! admin_section(Dcat\Admin\Admin::SECTION['NAVBAR_AFTER']) !!}
|
|
|
+
|
|
|
<script>
|
|
|
- function switchLanguage(lang) {
|
|
|
+ document.querySelectorAll('.lang-item').forEach(item => {
|
|
|
+ item.addEventListener('click', function() {
|
|
|
+ const lang = this.getAttribute('data-lang');
|
|
|
+ switchLanguage(lang);
|
|
|
+ });
|
|
|
+ });
|
|
|
|
|
|
- fetch(`/dist/language-switch?lang=${lang}`, {
|
|
|
+ function switchLanguage(lang) {
|
|
|
+ fetch(`/dist/language-switch?lang=${encodeURIComponent(lang)}`, {
|
|
|
method: 'GET'
|
|
|
})
|
|
|
- .then(response => response.json())
|
|
|
+ .then(response => {
|
|
|
+ if (!response.ok) {
|
|
|
+ throw new Error('Network response was not ok');
|
|
|
+ }
|
|
|
+ return response.json();
|
|
|
+ })
|
|
|
.then(data => {
|
|
|
if (data.success) {
|
|
|
- window.location.reload(); // Optional: Reload to fetch updated language
|
|
|
+ window.location.reload();
|
|
|
} else {
|
|
|
- alert(data.error);
|
|
|
+ throw new Error(data.error || 'Language switch failed');
|
|
|
}
|
|
|
})
|
|
|
- .catch(error => console.error('Error:', error));
|
|
|
+ .catch(error => {
|
|
|
+ console.error('Language Switch Error:', error);
|
|
|
+ alert('Failed to switch language. Please try again.');
|
|
|
+ });
|
|
|
}
|
|
|
-
|
|
|
</script>
|