Language update

This commit is contained in:
Egor Guslyancev 2024-04-24 14:23:20 -03:00
parent a6af7d38d4
commit c400b3433f
GPG Key ID: D7E709AA465A55F9
1 changed files with 75 additions and 11 deletions

86
user.js
View File

@ -1,7 +1,7 @@
// ==UserScript==
// @name Sorryops
// @namespace https://git.disroot.org/electromagneticcyclone/sorryops
// @version 20240422.1
// @version 20240424.1
// @description Skip the half of the fun!
// @icon https://orioks.miet.ru/favicon.ico
// @author electromagneticcyclone & angelbeautifull
@ -19,48 +19,100 @@
// @updateURL https://update.greasyfork.org/scripts/481036/Sorryops.meta.js
// ==/UserScript==
var all_labels = {
en: {
l: "English",
settings_title: "Settings",
script_language: "Language",
auto_answer: "Auto answer",
display_answer: "Display answer near variant",
register_keyboard_keys: "Register hotkeys",
copy_answers: "Copy results to the clipboard",
append_question_number: "Show question numbers in the final report",
accumulator_enable: "Accumulate test results in one field",
accumulator_prefix: "Accumulated results prefix (test number)",
auto_continue: "Auto continue (DANGEROUS!!! Will be disabled after an hour. Press `d` to disable)",
auto_restart: "Auto restart (DANGEROUS!!! Will be disabled after an hour. Press `d` to disable. Make sure you have infinite attempts)",
},
ru: {
l: "Русский",
settings_title: "Настройки",
script_language: "Язык",
auto_answer: "Автоответчик",
display_answer: "Отображать ответ рядом с вариантом",
register_keyboard_keys: "Горячие клавиши",
copy_answers: "Копировать результаты в буфер обмена",
append_question_number: "Отображать номер вопроса в финальном отчёте",
accumulator_enable: "Собирать отчёты в одно поле",
accumulator_prefix: "Префикс перенесённого отчёта (номер теста)",
auto_continue: "Автопродолжение (ОПАСНО!!! Отключается через час. Нажмите `d`, чтобы остановить)",
auto_restart: "Автоперезапуск (ОПАСНО!!! Отключается через час. Нажмите `d`, чтобы остановить. Убедитесь, что количество попыток неограничено)",
},
};
var labels = all_labels[(() => {
var lang = GM_getValue('language', "-");
if (!lang || (lang == "-")) {
lang = navigator.language || navigator.userLanguage;
}
for (var l in all_labels) {
if (lang.includes(l)) {
return l;
}
}
})()];
if (labels == undefined) {
labels = all_labels.ru;
}
var config = new GM_config({
id: 'config',
title: 'Script Settings',
title: labels.settings_title,
fields: {
script_language: {
label: labels.script_language,
type: 'select',
options: [ '-', all_labels.en.l, all_labels.ru.l ],
default: '-',
},
auto_answer: {
label: "Auto answer",
label: labels.auto_answer,
type: 'select',
options: [ 'No', 'First', 'Random' ],
default: 'No',
},
display_answer: {
label: "Display answer near variant",
label: labels.display_answer,
type: 'checkbox',
default: true,
},
register_keyboard_keys: {
label: "Continue by pressing Enter",
label: labels.register_keyboard_keys,
type: 'checkbox',
default: true,
},
copy_answers: {
label: "Copy answers to the clipboard",
label: labels.copy_answers,
type: 'checkbox',
default: false,
},
append_question_number: {
label: "Show question numbers in the final report",
label: labels.append_question_number,
type: 'checkbox',
default: true,
},
accumulator_enable: {
label: "Accumulate test results in one field",
label: labels.accumulator_enable,
type: 'checkbox',
default: false,
},
accumulator_prefix: {
label: "Accumulated results prefix (test number)",
label: labels.accumulator_prefix,
type: 'text',
default: "",
},
auto_continue: {
label: "Auto continue (DANGEROUS!!! Will be disabled after an hour. Press `d` to disable)",
label: labels.auto_continue,
type: 'checkbox',
default: false,
},
@ -69,7 +121,7 @@ var config = new GM_config({
default: 0,
},
auto_restart: {
label: "Auto restart (DANGEROUS!!! Will be disabled after an hour. Press `d` to disable. Make sure you have infinite attempts)",
label: labels.auto_restart,
type: 'checkbox',
default: false,
},
@ -86,6 +138,17 @@ var config = new GM_config({
if (this.get('accumulator_enable') == false) {
GM_setValue('accumulated_answers', "");
}
switch (this.get('script_language')) {
case all_labels.en.l:
GM_setValue('language', "en");
break;
case all_labels.ru.l:
GM_setValue('language', "ru");
break;
default:
GM_setValue('language', "-");
break;
}
},
save: function(forgotten) {
this.set('auto_continue_time', Date.now());
@ -94,6 +157,7 @@ var config = new GM_config({
this.set('auto_continue', false);
alert("Can't automatically continue without answer.");
}
this.init();
},
},
});