browser-extension-settings 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/common.ts +1 -1
- package/lib/messages/de.ts +1 -0
- package/lib/messages/en.ts +1 -0
- package/lib/messages/es.ts +1 -0
- package/lib/messages/fr.ts +2 -1
- package/lib/messages/index.ts +48 -20
- package/lib/messages/it.ts +2 -1
- package/lib/messages/ja.ts +1 -0
- package/lib/messages/ko.ts +2 -1
- package/lib/messages/pt.ts +1 -0
- package/lib/messages/ru.ts +1 -0
- package/lib/messages/vi.ts +1 -0
- package/lib/messages/zh-cn.ts +2 -1
- package/lib/messages/zh-hk.ts +2 -1
- package/lib/messages/zh-tw.ts +2 -1
- package/lib/settings.ts +85 -40
- package/package.json +2 -2
package/lib/common.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const besVersion =
|
|
1
|
+
export const besVersion = 62
|
|
2
2
|
export const openButton = `<svg viewBox="0 0 60.2601318359375 84.8134765625" version="1.1" xmlns="http://www.w3.org/2000/svg" class=" glyph-box" style="height: 9.62969px; width: 6.84191px;"><g transform="matrix(1 0 0 1 -6.194965820312518 77.63671875)"><path d="M66.4551-35.2539C66.4551-36.4746 65.9668-37.5977 65.0391-38.4766L26.3672-76.3672C25.4883-77.1973 24.4141-77.6367 23.1445-77.6367C20.6543-77.6367 18.7012-75.7324 18.7012-73.1934C18.7012-71.9727 19.1895-70.8496 19.9707-70.0195L55.5176-35.2539L19.9707-0.488281C19.1895 0.341797 18.7012 1.41602 18.7012 2.68555C18.7012 5.22461 20.6543 7.12891 23.1445 7.12891C24.4141 7.12891 25.4883 6.68945 26.3672 5.81055L65.0391-32.0312C65.9668-32.959 66.4551-34.0332 66.4551-35.2539Z"></path></g></svg>`
|
|
3
3
|
export const openInNewTabButton = `<svg viewBox="0 0 72.127685546875 72.2177734375" version="1.1" xmlns="http://www.w3.org/2000/svg" class=" glyph-box" style="height: 8.19958px; width: 8.18935px;"><g transform="matrix(1 0 0 1 -12.451127929687573 71.3388671875)"><path d="M84.5703-17.334L84.5215-66.4551C84.5215-69.2383 82.7148-71.1914 79.7852-71.1914L30.6641-71.1914C27.9297-71.1914 26.0742-69.0918 26.0742-66.748C26.0742-64.4043 28.1738-62.4023 30.4688-62.4023L47.4609-62.4023L71.2891-63.1836L62.207-55.2246L13.8184-6.73828C12.9395-5.85938 12.4512-4.73633 12.4512-3.66211C12.4512-1.31836 14.5508 0.878906 16.9922 0.878906C18.1152 0.878906 19.1895 0.488281 20.0684-0.439453L68.5547-48.877L76.6113-58.0078L75.7324-35.2051L75.7324-17.1387C75.7324-14.8438 77.7344-12.6953 80.127-12.6953C82.4707-12.6953 84.5703-14.6973 84.5703-17.334Z"></path></g></svg>`
|
|
4
4
|
export const settingButton = `<svg viewBox="0 0 16 16" version="1.1">
|
package/lib/messages/de.ts
CHANGED
|
@@ -2,6 +2,7 @@ export const messages = {
|
|
|
2
2
|
"settings.title": "Einstellungen",
|
|
3
3
|
"settings.otherExtensions": "Andere Erweiterungen",
|
|
4
4
|
"settings.locale": "Sprache",
|
|
5
|
+
"settings.systemLanguage": "Systemsprache",
|
|
5
6
|
"settings.displaySettingsButtonInSideMenu": "Einstellungsschaltfläche im Seitenmenü anzeigen",
|
|
6
7
|
"settings.menu.settings": "⚙️ Einstellungen",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ UTags - Benutzer-Tags zu Links hinzufügen",
|
package/lib/messages/en.ts
CHANGED
|
@@ -2,6 +2,7 @@ const messages = {
|
|
|
2
2
|
"settings.title": "Settings",
|
|
3
3
|
"settings.otherExtensions": "Other Extensions",
|
|
4
4
|
"settings.locale": "Language",
|
|
5
|
+
"settings.systemLanguage": "System Language",
|
|
5
6
|
"settings.displaySettingsButtonInSideMenu": "Display Settings Button in Side Menu",
|
|
6
7
|
"settings.menu.settings": "⚙️ Settings",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ UTags - Add usertags to links",
|
package/lib/messages/es.ts
CHANGED
|
@@ -2,6 +2,7 @@ export const messages = {
|
|
|
2
2
|
"settings.title": "Configuración",
|
|
3
3
|
"settings.otherExtensions": "Otras extensiones",
|
|
4
4
|
"settings.locale": "Idioma",
|
|
5
|
+
"settings.systemLanguage": "Idioma del sistema",
|
|
5
6
|
"settings.displaySettingsButtonInSideMenu": "Mostrar botón de configuración en el menú lateral",
|
|
6
7
|
"settings.menu.settings": "⚙️ Configuración",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ UTags - Agregar etiquetas de usuario a los enlaces",
|
package/lib/messages/fr.ts
CHANGED
|
@@ -2,7 +2,8 @@ export const messages = {
|
|
|
2
2
|
"settings.title": "Paramètres",
|
|
3
3
|
"settings.otherExtensions": "Autres extensions",
|
|
4
4
|
"settings.locale": "Langue",
|
|
5
|
-
"settings.
|
|
5
|
+
"settings.systemLanguage": "Langue du système",
|
|
6
|
+
"settings.displaySettingsButtonInSideMenu": "Afficher le bouton de paramètres dans le menu latéral",
|
|
6
7
|
"settings.menu.settings": "⚙️ Paramètres",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ UTags - Ajouter des balises utilisateur aux liens",
|
|
8
9
|
"settings.extensions.links-helper.title": "🔗 Assistant de liens",
|
package/lib/messages/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { initAvailableLocales, initI18n,
|
|
1
|
+
import { initAvailableLocales, initI18n, getPrefferedLocale } from "browser-extension-i18n"
|
|
2
2
|
import messagesEn from "./en.js"
|
|
3
3
|
import messagesZh from "./zh-cn.js"
|
|
4
4
|
import messagesZhHk from "./zh-hk.js"
|
|
@@ -15,42 +15,70 @@ import messagesVi from "./vi.js"
|
|
|
15
15
|
|
|
16
16
|
const localeMap = {
|
|
17
17
|
en: messagesEn,
|
|
18
|
-
"en-
|
|
18
|
+
"en-us": messagesEn,
|
|
19
19
|
zh: messagesZh,
|
|
20
|
-
"zh-
|
|
21
|
-
"zh-
|
|
22
|
-
"zh-
|
|
20
|
+
"zh-cn": messagesZh,
|
|
21
|
+
"zh-hk": messagesZhHk,
|
|
22
|
+
"zh-tw": messagesZhTw,
|
|
23
23
|
ru: messagesRu,
|
|
24
|
-
"ru-
|
|
24
|
+
"ru-ru": messagesRu,
|
|
25
25
|
ko: messagesKo,
|
|
26
|
-
"ko-
|
|
26
|
+
"ko-kr": messagesKo,
|
|
27
27
|
ja: messagesJa,
|
|
28
|
-
"ja-
|
|
28
|
+
"ja-jp": messagesJa,
|
|
29
29
|
fr: messagesFr,
|
|
30
|
-
"fr-
|
|
30
|
+
"fr-fr": messagesFr,
|
|
31
31
|
de: messagesDe,
|
|
32
|
-
"de-
|
|
32
|
+
"de-de": messagesDe,
|
|
33
33
|
it: messagesIt,
|
|
34
|
-
"it-
|
|
34
|
+
"it-it": messagesIt,
|
|
35
35
|
es: messagesEs,
|
|
36
|
-
"es-
|
|
36
|
+
"es-es": messagesEs,
|
|
37
37
|
pt: messagesPt,
|
|
38
|
-
"pt-
|
|
39
|
-
"pt-
|
|
38
|
+
"pt-pt": messagesPt,
|
|
39
|
+
"pt-br": messagesPt,
|
|
40
40
|
vi: messagesVi,
|
|
41
|
-
"vi-
|
|
41
|
+
"vi-vn": messagesVi,
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Language display names for each locale code
|
|
45
|
+
export const localeNames = {
|
|
46
|
+
en: "English",
|
|
47
|
+
"en-us": "English (US)",
|
|
48
|
+
zh: "中文",
|
|
49
|
+
"zh-cn": "中文 (简体)",
|
|
50
|
+
"zh-hk": "中文 (香港)",
|
|
51
|
+
"zh-tw": "中文 (台灣)",
|
|
52
|
+
ru: "Русский",
|
|
53
|
+
"ru-ru": "Русский",
|
|
54
|
+
ko: "한국어",
|
|
55
|
+
"ko-kr": "한국어",
|
|
56
|
+
ja: "日本語",
|
|
57
|
+
"ja-jp": "日本語",
|
|
58
|
+
fr: "Français",
|
|
59
|
+
"fr-fr": "Français",
|
|
60
|
+
de: "Deutsch",
|
|
61
|
+
"de-de": "Deutsch",
|
|
62
|
+
it: "Italiano",
|
|
63
|
+
"it-it": "Italiano",
|
|
64
|
+
es: "Español",
|
|
65
|
+
"es-es": "Español",
|
|
66
|
+
pt: "Português",
|
|
67
|
+
"pt-pt": "Português",
|
|
68
|
+
"pt-br": "Português (Brasil)",
|
|
69
|
+
vi: "Tiếng Việt",
|
|
70
|
+
"vi-vn": "Tiếng Việt",
|
|
42
71
|
}
|
|
43
72
|
|
|
44
73
|
const locales = Object.keys(localeMap)
|
|
45
74
|
|
|
46
75
|
initAvailableLocales(locales)
|
|
47
76
|
|
|
48
|
-
|
|
49
|
-
console.log("[settings] prefferedLocale:", prefferedLocale)
|
|
77
|
+
console.log("[settings] prefferedLocale:", getPrefferedLocale())
|
|
50
78
|
// eslint-disable-next-line import/no-mutable-exports
|
|
51
|
-
export let i = initI18n(localeMap,
|
|
79
|
+
export let i = initI18n(localeMap, getPrefferedLocale())
|
|
52
80
|
|
|
53
81
|
export function resetI18n(locale?: string) {
|
|
54
|
-
console.log("[settings] prefferedLocale:",
|
|
55
|
-
i = initI18n(localeMap, locale ||
|
|
82
|
+
console.log("[settings] prefferedLocale:", getPrefferedLocale(), "locale:", locale)
|
|
83
|
+
i = initI18n(localeMap, locale || getPrefferedLocale())
|
|
56
84
|
}
|
package/lib/messages/it.ts
CHANGED
|
@@ -2,7 +2,8 @@ export const messages = {
|
|
|
2
2
|
"settings.title": "Impostazioni",
|
|
3
3
|
"settings.otherExtensions": "Altre estensioni",
|
|
4
4
|
"settings.locale": "Lingua",
|
|
5
|
-
"settings.
|
|
5
|
+
"settings.systemLanguage": "Lingua del sistema",
|
|
6
|
+
"settings.displaySettingsButtonInSideMenu": "Mostra pulsante impostazioni nel menu laterale",
|
|
6
7
|
"settings.menu.settings": "⚙️ Impostazioni",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ UTags - Aggiungi tag utente ai collegamenti",
|
|
8
9
|
"settings.extensions.links-helper.title": "🔗 Assistente collegamenti",
|
package/lib/messages/ja.ts
CHANGED
|
@@ -2,6 +2,7 @@ export const messages = {
|
|
|
2
2
|
"settings.title": "設定",
|
|
3
3
|
"settings.otherExtensions": "その他の拡張機能",
|
|
4
4
|
"settings.locale": "言語",
|
|
5
|
+
"settings.systemLanguage": "システム言語",
|
|
5
6
|
"settings.displaySettingsButtonInSideMenu": "サイドメニューに設定ボタンを表示",
|
|
6
7
|
"settings.menu.settings": "⚙️ 設定",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ UTags - リンクにユーザータグを追加",
|
package/lib/messages/ko.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export const messages = {
|
|
2
2
|
"settings.title": "설정",
|
|
3
|
-
"settings.otherExtensions": "
|
|
3
|
+
"settings.otherExtensions": "기타 확장 프로그램",
|
|
4
4
|
"settings.locale": "언어",
|
|
5
|
+
"settings.systemLanguage": "시스템 언어",
|
|
5
6
|
"settings.displaySettingsButtonInSideMenu": "사이드 메뉴에 설정 버튼 표시",
|
|
6
7
|
"settings.menu.settings": "⚙️ 설정",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ UTags - 링크에 사용자 태그 추가",
|
package/lib/messages/pt.ts
CHANGED
|
@@ -2,6 +2,7 @@ export const messages = {
|
|
|
2
2
|
"settings.title": "Configurações",
|
|
3
3
|
"settings.otherExtensions": "Outras extensões",
|
|
4
4
|
"settings.locale": "Idioma",
|
|
5
|
+
"settings.systemLanguage": "Idioma do sistema",
|
|
5
6
|
"settings.displaySettingsButtonInSideMenu": "Exibir botão de configurações no menu lateral",
|
|
6
7
|
"settings.menu.settings": "⚙️ Configurações",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ UTags - Adicionar tags de usuário aos links",
|
package/lib/messages/ru.ts
CHANGED
|
@@ -2,6 +2,7 @@ export const messages = {
|
|
|
2
2
|
"settings.title": "Настройки",
|
|
3
3
|
"settings.otherExtensions": "Другие расширения",
|
|
4
4
|
"settings.locale": "Язык",
|
|
5
|
+
"settings.systemLanguage": "Системный язык",
|
|
5
6
|
"settings.displaySettingsButtonInSideMenu": "Показать кнопку настроек в боковом меню",
|
|
6
7
|
"settings.menu.settings": "⚙️ Настройки",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ UTags - Добавить пользовательские теги к ссылкам",
|
package/lib/messages/vi.ts
CHANGED
|
@@ -2,6 +2,7 @@ export const messages = {
|
|
|
2
2
|
"settings.title": "Cài đặt",
|
|
3
3
|
"settings.otherExtensions": "Tiện ích mở rộng khác",
|
|
4
4
|
"settings.locale": "Ngôn ngữ",
|
|
5
|
+
"settings.systemLanguage": "Ngôn ngữ hệ thống",
|
|
5
6
|
"settings.displaySettingsButtonInSideMenu": "Hiển thị nút cài đặt trong menu bên",
|
|
6
7
|
"settings.menu.settings": "⚙️ Cài đặt",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ UTags - Thêm thẻ người dùng vào liên kết",
|
package/lib/messages/zh-cn.ts
CHANGED
|
@@ -2,7 +2,8 @@ export const messages = {
|
|
|
2
2
|
"settings.title": "设置",
|
|
3
3
|
"settings.otherExtensions": "其他扩展",
|
|
4
4
|
"settings.locale": "语言",
|
|
5
|
-
"settings.
|
|
5
|
+
"settings.systemLanguage": "系统语言",
|
|
6
|
+
"settings.displaySettingsButtonInSideMenu": "在侧边菜单中显示设置按钮",
|
|
6
7
|
"settings.menu.settings": "⚙️ 设置",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ 小鱼标签 (UTags) - 为链接添加用户标签",
|
|
8
9
|
"settings.extensions.links-helper.title": "🔗 链接助手",
|
package/lib/messages/zh-hk.ts
CHANGED
|
@@ -2,7 +2,8 @@ export const messages = {
|
|
|
2
2
|
"settings.title": "設定",
|
|
3
3
|
"settings.otherExtensions": "其他擴充功能",
|
|
4
4
|
"settings.locale": "語言",
|
|
5
|
-
"settings.
|
|
5
|
+
"settings.systemLanguage": "系統語言",
|
|
6
|
+
"settings.displaySettingsButtonInSideMenu": "在側邊選單中顯示設定按鈕",
|
|
6
7
|
"settings.menu.settings": "⚙️ 設定",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ 小魚標籤 (UTags) - 為連結添加用戶標籤",
|
|
8
9
|
"settings.extensions.links-helper.title": "🔗 連結助手",
|
package/lib/messages/zh-tw.ts
CHANGED
|
@@ -2,7 +2,8 @@ export const messages = {
|
|
|
2
2
|
"settings.title": "設定",
|
|
3
3
|
"settings.otherExtensions": "其他擴充功能",
|
|
4
4
|
"settings.locale": "語言",
|
|
5
|
-
"settings.
|
|
5
|
+
"settings.systemLanguage": "系統語言",
|
|
6
|
+
"settings.displaySettingsButtonInSideMenu": "在側邊選單中顯示設定按鈕",
|
|
6
7
|
"settings.menu.settings": "⚙️ 設定",
|
|
7
8
|
"settings.extensions.utags.title": "🏷️ 小魚標籤 (UTags) - 為連結新增使用者標籤",
|
|
8
9
|
"settings.extensions.links-helper.title": "🔗 連結助手",
|
package/lib/settings.ts
CHANGED
|
@@ -17,7 +17,12 @@ import {
|
|
|
17
17
|
runWhenDomReady,
|
|
18
18
|
runWhenHeadExists,
|
|
19
19
|
} from "browser-extension-utils"
|
|
20
|
+
// @ts-expect-error - data-text import for build system
|
|
20
21
|
import styleText from "data-text:./style.scss"
|
|
22
|
+
import {
|
|
23
|
+
initAvailableLocales,
|
|
24
|
+
getPrefferedLocale,
|
|
25
|
+
} from "browser-extension-i18n"
|
|
21
26
|
import { createSwitchOption } from "./switch.js"
|
|
22
27
|
import {
|
|
23
28
|
createExtensionList,
|
|
@@ -27,7 +32,15 @@ import {
|
|
|
27
32
|
deactiveExtensionList,
|
|
28
33
|
} from "./extension-list.js"
|
|
29
34
|
import { besVersion, settingButton } from "./common.js"
|
|
30
|
-
import { i,
|
|
35
|
+
import { i, resetI18n, localeNames } from "./messages/index.js"
|
|
36
|
+
|
|
37
|
+
// Declare GM global variable for userscript environment
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
39
|
+
declare const GM:
|
|
40
|
+
| {
|
|
41
|
+
registerMenuCommand?: (name: string, function_: () => void) => void
|
|
42
|
+
}
|
|
43
|
+
| undefined
|
|
31
44
|
|
|
32
45
|
const prefix = "browser_extension_settings_"
|
|
33
46
|
|
|
@@ -36,12 +49,13 @@ type SettingsOptions = {
|
|
|
36
49
|
title: string
|
|
37
50
|
footer?: string
|
|
38
51
|
settingsTable?: SettingsTable
|
|
52
|
+
availableLocales?: readonly string[]
|
|
39
53
|
onValueChange?: () => void
|
|
40
54
|
onViewUpdate?: (settingsMainView: HTMLElement) => void
|
|
41
55
|
relatedExtensions?: RelatedExtension[]
|
|
42
56
|
}
|
|
43
57
|
|
|
44
|
-
type SettingsTable = Record<
|
|
58
|
+
export type SettingsTable = Record<
|
|
45
59
|
string,
|
|
46
60
|
| SettingsSwitchItem
|
|
47
61
|
| SettingsInputItem
|
|
@@ -337,13 +351,13 @@ function createSettingsElement() {
|
|
|
337
351
|
class: `${prefix}main thin_scrollbar`,
|
|
338
352
|
})
|
|
339
353
|
|
|
340
|
-
addElement(settingsMain, "a", {
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
})
|
|
354
|
+
// addElement(settingsMain, "a", {
|
|
355
|
+
// textContent: i("settings.title"),
|
|
356
|
+
// class: "navigation_go_previous",
|
|
357
|
+
// onclick() {
|
|
358
|
+
// activeExtensionList()
|
|
359
|
+
// },
|
|
360
|
+
// })
|
|
347
361
|
|
|
348
362
|
if (settingsOptions.title) {
|
|
349
363
|
addElement(settingsMain, "h2", { textContent: settingsOptions.title })
|
|
@@ -577,30 +591,26 @@ function addCommonSettings(settingsTable: SettingsTable) {
|
|
|
577
591
|
settingsTable.locale = {
|
|
578
592
|
title: i("settings.locale"),
|
|
579
593
|
type: "select",
|
|
580
|
-
defaultValue:
|
|
581
|
-
options: {
|
|
582
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
583
|
-
English: "en",
|
|
584
|
-
中文: "zh",
|
|
585
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
586
|
-
Русский: "ru",
|
|
587
|
-
},
|
|
594
|
+
defaultValue: "",
|
|
595
|
+
options: {},
|
|
588
596
|
group: ++maxGroup,
|
|
589
597
|
} as SettingsSelectItem
|
|
590
598
|
|
|
591
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
592
|
-
settingsTable.displaySettingsButtonInSideMenu = {
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
} as SettingsSwitchItem
|
|
599
|
+
// // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
600
|
+
// settingsTable.displaySettingsButtonInSideMenu = {
|
|
601
|
+
// title: i("settings.displaySettingsButtonInSideMenu"),
|
|
602
|
+
// defaultValue: !(
|
|
603
|
+
// typeof GM === "object" && typeof GM?.registerMenuCommand === "function"
|
|
604
|
+
// ),
|
|
605
|
+
// group: ++maxGroup,
|
|
606
|
+
// } as SettingsSwitchItem
|
|
599
607
|
}
|
|
600
608
|
|
|
601
609
|
function handleShowSettingsUrl() {
|
|
602
|
-
|
|
610
|
+
const hashString = `#!show-settings-${settingsOptions.id}`
|
|
611
|
+
if (location.hash === hashString) {
|
|
603
612
|
setTimeout(showSettings, 100)
|
|
613
|
+
history.replaceState({}, "", location.href.replace(hashString, ""))
|
|
604
614
|
}
|
|
605
615
|
}
|
|
606
616
|
|
|
@@ -613,51 +623,86 @@ export async function showSettings() {
|
|
|
613
623
|
|
|
614
624
|
addEventListener(document, "click", onDocumentClick, true)
|
|
615
625
|
addEventListener(document, "keydown", onDocumentKeyDown, true)
|
|
616
|
-
activeExtension(settingsOptions.id)
|
|
617
|
-
deactiveExtensionList()
|
|
626
|
+
// activeExtension(settingsOptions.id)
|
|
627
|
+
// deactiveExtensionList()
|
|
618
628
|
}
|
|
619
629
|
|
|
620
|
-
|
|
630
|
+
let lastLocale: string | undefined
|
|
631
|
+
|
|
632
|
+
// Reset settings UI on init and locale change
|
|
633
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
634
|
+
const resetSettingsUI = (optionsProvider: () => SettingsOptions) => {
|
|
635
|
+
lastLocale =
|
|
636
|
+
(getSettingsValue("locale") as string | undefined) || getPrefferedLocale()
|
|
637
|
+
resetI18n(lastLocale)
|
|
638
|
+
|
|
639
|
+
const options = optionsProvider()
|
|
621
640
|
settingsOptions = options
|
|
622
641
|
settingsTable = options.settingsTable || {}
|
|
623
642
|
addCommonSettings(settingsTable)
|
|
643
|
+
const availableLocales = options.availableLocales
|
|
644
|
+
if (availableLocales?.length) {
|
|
645
|
+
initAvailableLocales(availableLocales)
|
|
646
|
+
const localeSelect = settingsTable.locale as SettingsSelectItem
|
|
647
|
+
localeSelect.options = {
|
|
648
|
+
[i("settings.systemLanguage")]: "",
|
|
649
|
+
}
|
|
650
|
+
for (const locale of availableLocales) {
|
|
651
|
+
// Use language display name from localeNames, fallback to locale code if not found
|
|
652
|
+
const lowerCaseLocale = locale.toLowerCase()
|
|
653
|
+
const displayName =
|
|
654
|
+
localeNames[lowerCaseLocale as keyof typeof localeNames] || locale
|
|
655
|
+
localeSelect.options[displayName] = locale
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
// runWhenDomReady(() => {
|
|
660
|
+
// initExtensionList()
|
|
661
|
+
// addSideMenu()
|
|
662
|
+
// })
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
export const initSettings = async (optionsProvider: () => SettingsOptions) => {
|
|
624
666
|
addValueChangeListener(storageKey, async () => {
|
|
625
667
|
settings = await getSettings()
|
|
626
668
|
// console.log(JSON.stringify(settings, null, 2))
|
|
627
669
|
await updateOptions()
|
|
628
|
-
addSideMenu()
|
|
670
|
+
// addSideMenu()
|
|
629
671
|
|
|
630
672
|
const newLocale =
|
|
631
|
-
(getSettingsValue("locale") as string | undefined) ||
|
|
673
|
+
(getSettingsValue("locale") as string | undefined) || getPrefferedLocale()
|
|
632
674
|
console.log("lastLocale:", lastLocale, "newLocale:", newLocale)
|
|
633
675
|
if (lastLocale !== newLocale) {
|
|
634
676
|
const isShown = isSettingsShown()
|
|
635
677
|
destroySettings()
|
|
636
678
|
resetI18n(newLocale)
|
|
637
679
|
lastLocale = newLocale
|
|
680
|
+
|
|
681
|
+
setTimeout(() => {
|
|
682
|
+
resetSettingsUI(optionsProvider)
|
|
683
|
+
}, 50)
|
|
684
|
+
|
|
638
685
|
if (isShown) {
|
|
639
686
|
setTimeout(showSettings, 100)
|
|
640
687
|
}
|
|
641
688
|
}
|
|
642
689
|
|
|
643
|
-
if (typeof
|
|
644
|
-
|
|
690
|
+
if (typeof settingsOptions.onValueChange === "function") {
|
|
691
|
+
settingsOptions.onValueChange()
|
|
645
692
|
}
|
|
646
693
|
})
|
|
647
694
|
|
|
648
695
|
settings = await getSettings()
|
|
649
696
|
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
697
|
+
resetSettingsUI(optionsProvider)
|
|
698
|
+
// Wait until extension intialized
|
|
699
|
+
setTimeout(() => {
|
|
700
|
+
resetSettingsUI(optionsProvider)
|
|
701
|
+
}, 50)
|
|
653
702
|
|
|
654
703
|
runWhenHeadExists(() => {
|
|
655
704
|
addStyle(getSettingsStyle())
|
|
656
705
|
})
|
|
657
|
-
runWhenDomReady(() => {
|
|
658
|
-
initExtensionList()
|
|
659
|
-
addSideMenu()
|
|
660
|
-
})
|
|
661
706
|
|
|
662
707
|
registerMenuCommand(i("settings.menu.settings"), showSettings, "o")
|
|
663
708
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "browser-extension-settings",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.2",
|
|
4
4
|
"description": "Settings module for developing browser extensions and userscripts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.ts",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"homepage": "https://github.com/utags/browser-extension-settings#readme",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"browser-extension-i18n": "^0.1.
|
|
33
|
+
"browser-extension-i18n": "^0.1.3",
|
|
34
34
|
"browser-extension-storage": "^0.1.2",
|
|
35
35
|
"browser-extension-utils": "^0.2.0"
|
|
36
36
|
},
|