-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpopup.js
More file actions
60 lines (54 loc) · 2.44 KB
/
popup.js
File metadata and controls
60 lines (54 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Function to apply translations using Chrome's built-in i18n API
function applyTranslations() {
// data-i18n 속성을 가진 모든 요소의 텍스트를 자동으로 채웁니다.
const i18nElements = document.querySelectorAll('[data-i18n]');
i18nElements.forEach(elem => {
const key = elem.getAttribute('data-i18n');
elem.textContent = chrome.i18n.getMessage(key);
});
// 언어 설정 레이블에만 특별한 규칙을 적용합니다.
const langLabel = document.getElementById('language-label');
if (langLabel) {
langLabel.innerHTML = `🌐 ${chrome.i18n.getMessage('languageLabel')} (Language)`;
}
}
document.addEventListener('DOMContentLoaded', () => {
// 팝업이 열리자마자 번역을 적용합니다.
applyTranslations();
const languageSelect = document.getElementById('language-select');
const minOptionsInput = document.getElementById('min-options');
const defaultSortSelect = document.getElementById('default-sort');
const caseSensitiveCheckbox = document.getElementById('case-sensitive');
const saveButton = document.getElementById('save-button');
const statusMessage = document.getElementById('status-message');
// 저장된 설정 값을 불러옵니다.
chrome.storage.sync.get({
language: 'auto',
minOptions: 5,
defaultSort: 'asc',
caseSensitive: false
}, (data) => {
languageSelect.value = data.language;
minOptionsInput.value = data.minOptions;
defaultSortSelect.value = data.defaultSort;
caseSensitiveCheckbox.checked = data.caseSensitive;
});
// 설정을 저장합니다.
saveButton.addEventListener('click', () => {
const settingsToSave = {
language: languageSelect.value,
minOptions: parseInt(minOptionsInput.value, 10),
defaultSort: defaultSortSelect.value,
caseSensitive: caseSensitiveCheckbox.checked
};
if (!isNaN(settingsToSave.minOptions) && settingsToSave.minOptions >= 0) {
chrome.storage.sync.set(settingsToSave, () => {
statusMessage.textContent = chrome.i18n.getMessage('saveSuccess');
setTimeout(() => { statusMessage.textContent = ''; }, 1500);
});
} else {
statusMessage.textContent = chrome.i18n.getMessage('saveError');
setTimeout(() => { statusMessage.textContent = ''; }, 1500);
}
});
});