diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 99b1482538..6b71acb1cf 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -672,6 +672,7 @@ wide: "広い"
narrow: "狭い"
reloadToApplySetting: "設定はページリロード後に反映されます。今すぐリロードしますか?"
showTitlebar: "タイトルバーを表示する"
+clearCache: "キャッシュをクリア"
_aboutMisskey:
about: "Misskeyはsyuiloによって2014年から開発されている、オープンソースのソフトウェアです。"
diff --git a/src/client/init.ts b/src/client/init.ts
index 9683075785..7c3df68c34 100644
--- a/src/client/init.ts
+++ b/src/client/init.ts
@@ -91,10 +91,6 @@ if (_DEV_) {
// タッチデバイスでCSSの:hoverを機能させる
document.addEventListener('touchend', () => {}, { passive: true });
-if (localStorage.theme == null) {
- applyTheme(require('@/themes/l-light.json5'));
-}
-
//#region SEE: https://css-tricks.com/the-trick-to-viewport-units-on-mobile/
// TODO: いつの日にか消したい
const vh = window.innerHeight * 0.01;
@@ -204,7 +200,7 @@ watch(defaultStore.reactiveState.darkMode, (darkMode) => {
const themes = builtinThemes.concat(ColdDeviceStorage.get('themes'));
applyTheme(themes.find(x => x.id === (darkMode ? ColdDeviceStorage.get('darkTheme') : ColdDeviceStorage.get('lightTheme'))));
});
-});
+}, { immediate: localStorage.theme == null });
//#region Sync dark mode
if (ColdDeviceStorage.get('syncDeviceDarkMode')) {
diff --git a/src/client/pages/settings/index.vue b/src/client/pages/settings/index.vue
index 05756716db..aa9fe27164 100644
--- a/src/client/pages/settings/index.vue
+++ b/src/client/pages/settings/index.vue
@@ -27,6 +27,9 @@
API
{{ $ts.other }}
+
+ {{ $ts.clearCache }}
+
{{ $ts.logout }}
@@ -126,6 +129,11 @@ export default defineComponent({
logout: () => {
signout();
},
+ clear: () => {
+ localStorage.removeItem('locale');
+ localStorage.removeItem('theme');
+ location.reload();
+ },
faPalette, faPlug, faUser, faListUl, faLock, faLaugh, faCommentSlash, faMusic, faBell, faCogs, faEllipsisH, faBan, faShareAlt, faLockOpen, faKey, faBoxes, faEnvelope,
};
},