create-berna-stencil 1.0.36 → 1.0.37
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/_tools/res/templates/template.js +18 -22
- package/_tools/res/templates/template.njk +8 -8
- package/_tools/res/templates/template.scss +16 -16
- package/bin/create.js +1 -1
- package/package.json +70 -70
- package/src/404.njk +2 -2
- package/src/api/core/composer.lock +492 -492
- package/src/api/core/vendor/composer/autoload_static.php +10 -10
- package/src/api/core/vendor/composer/installed.json +6 -6
- package/src/api/core/vendor/composer/installed.php +2 -2
- package/src/api/core/vendor/graham-campbell/result-type/LICENSE +21 -21
- package/src/api/core/vendor/graham-campbell/result-type/composer.json +33 -33
- package/src/api/core/vendor/graham-campbell/result-type/src/Error.php +121 -121
- package/src/api/core/vendor/graham-campbell/result-type/src/Result.php +69 -69
- package/src/api/core/vendor/graham-campbell/result-type/src/Success.php +120 -120
- package/src/api/core/vendor/phpoption/phpoption/LICENSE +200 -200
- package/src/api/core/vendor/phpoption/phpoption/composer.json +50 -50
- package/src/api/core/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +175 -175
- package/src/api/core/vendor/phpoption/phpoption/src/PhpOption/None.php +136 -136
- package/src/api/core/vendor/phpoption/phpoption/src/PhpOption/Option.php +434 -434
- package/src/api/core/vendor/phpoption/phpoption/src/PhpOption/Some.php +169 -169
- package/src/api/core/vendor/symfony/polyfill-ctype/Ctype.php +232 -232
- package/src/api/core/vendor/symfony/polyfill-ctype/LICENSE +19 -19
- package/src/api/core/vendor/symfony/polyfill-ctype/README.md +12 -12
- package/src/api/core/vendor/symfony/polyfill-ctype/bootstrap.php +50 -50
- package/src/api/core/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -46
- package/src/api/core/vendor/symfony/polyfill-ctype/composer.json +38 -38
- package/src/api/core/vendor/symfony/polyfill-mbstring/LICENSE +19 -19
- package/src/api/core/vendor/symfony/polyfill-mbstring/Mbstring.php +1077 -1077
- package/src/api/core/vendor/symfony/polyfill-mbstring/README.md +13 -13
- package/src/api/core/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -119
- package/src/api/core/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1397 -1397
- package/src/api/core/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -5
- package/src/api/core/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1489 -1489
- package/src/api/core/vendor/symfony/polyfill-mbstring/bootstrap.php +171 -171
- package/src/api/core/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -167
- package/src/api/core/vendor/symfony/polyfill-mbstring/composer.json +39 -39
- package/src/api/core/vendor/symfony/polyfill-php80/LICENSE +19 -19
- package/src/api/core/vendor/symfony/polyfill-php80/Php80.php +115 -115
- package/src/api/core/vendor/symfony/polyfill-php80/PhpToken.php +106 -106
- package/src/api/core/vendor/symfony/polyfill-php80/README.md +25 -25
- package/src/api/core/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +31 -31
- package/src/api/core/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +16 -16
- package/src/api/core/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +20 -20
- package/src/api/core/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +16 -16
- package/src/api/core/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +16 -16
- package/src/api/core/vendor/symfony/polyfill-php80/bootstrap.php +42 -42
- package/src/api/core/vendor/symfony/polyfill-php80/composer.json +37 -37
- package/src/api/core/vendor/vlucas/phpdotenv/LICENSE +30 -30
- package/src/api/core/vendor/vlucas/phpdotenv/composer.json +60 -60
- package/src/api/core/vendor/vlucas/phpdotenv/src/Dotenv.php +267 -267
- package/src/api/core/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +12 -12
- package/src/api/core/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +12 -12
- package/src/api/core/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +12 -12
- package/src/api/core/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +12 -12
- package/src/api/core/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +12 -12
- package/src/api/core/vendor/vlucas/phpdotenv/src/Loader/Loader.php +48 -48
- package/src/api/core/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +20 -20
- package/src/api/core/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +65 -65
- package/src/api/core/vendor/vlucas/phpdotenv/src/Parser/Entry.php +59 -59
- package/src/api/core/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +299 -299
- package/src/api/core/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +58 -58
- package/src/api/core/vendor/vlucas/phpdotenv/src/Parser/Lines.php +127 -127
- package/src/api/core/vendor/vlucas/phpdotenv/src/Parser/Parser.php +53 -53
- package/src/api/core/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +19 -19
- package/src/api/core/vendor/vlucas/phpdotenv/src/Parser/Value.php +88 -88
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +15 -15
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +89 -89
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +80 -80
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +88 -88
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +85 -85
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +110 -110
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +48 -48
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +64 -64
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +91 -91
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +17 -17
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +104 -104
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +88 -88
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +27 -27
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +107 -107
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +272 -272
- package/src/api/core/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +51 -51
- package/src/api/core/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +44 -44
- package/src/api/core/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +81 -81
- package/src/api/core/vendor/vlucas/phpdotenv/src/Store/FileStore.php +72 -72
- package/src/api/core/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +141 -141
- package/src/api/core/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +17 -17
- package/src/api/core/vendor/vlucas/phpdotenv/src/Store/StringStore.php +37 -37
- package/src/api/core/vendor/vlucas/phpdotenv/src/Util/Regex.php +112 -112
- package/src/api/core/vendor/vlucas/phpdotenv/src/Util/Str.php +108 -108
- package/src/api/core/vendor/vlucas/phpdotenv/src/Validator.php +207 -207
- package/src/components/global/header.njk +2 -6
- package/src/components/welcome.njk +8 -13
- package/src/data/site.json +43 -43
- package/src/js/pages/404.js +0 -3
- package/src/js/pages/homepage.js +0 -6
- package/src/api/core/vendor/graham-campbell/result-type/.gitattributes +0 -9
- package/src/api/core/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +0 -132
- package/src/api/core/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +0 -31
- package/src/api/core/vendor/graham-campbell/result-type/.github/FUNDING.yml +0 -2
- package/src/api/core/vendor/graham-campbell/result-type/.github/SECURITY.md +0 -14
- package/src/api/core/vendor/graham-campbell/result-type/.github/workflows/stale.yml +0 -11
- package/src/api/core/vendor/graham-campbell/result-type/.github/workflows/tests.yml +0 -40
- package/src/api/core/vendor/graham-campbell/result-type/CHANGELOG.md +0 -53
- package/src/api/core/vendor/graham-campbell/result-type/README.md +0 -42
- package/src/api/core/vendor/graham-campbell/result-type/phpunit.xml.dist +0 -13
- package/src/api/core/vendor/graham-campbell/result-type/tests/ResultTest.php +0 -95
- package/src/api/core/vendor/phpoption/phpoption/.gitattributes +0 -13
- package/src/api/core/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +0 -132
- package/src/api/core/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +0 -30
- package/src/api/core/vendor/phpoption/phpoption/.github/FUNDING.yml +0 -2
- package/src/api/core/vendor/phpoption/phpoption/.github/SECURITY.md +0 -14
- package/src/api/core/vendor/phpoption/phpoption/.github/workflows/static.yml +0 -40
- package/src/api/core/vendor/phpoption/phpoption/.github/workflows/tests.yml +0 -40
- package/src/api/core/vendor/phpoption/phpoption/Makefile +0 -17
- package/src/api/core/vendor/phpoption/phpoption/README.md +0 -201
- package/src/api/core/vendor/phpoption/phpoption/phpstan-baseline.neon +0 -44
- package/src/api/core/vendor/phpoption/phpoption/phpstan.neon.dist +0 -7
- package/src/api/core/vendor/phpoption/phpoption/phpunit.xml.dist +0 -13
- package/src/api/core/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +0 -72
- package/src/api/core/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +0 -357
- package/src/api/core/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +0 -153
- package/src/api/core/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +0 -166
- package/src/api/core/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +0 -194
- package/src/api/core/vendor/phpoption/phpoption/tests/bootstrap.php +0 -8
- package/src/api/core/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +0 -8
- package/src/api/core/vendor/vlucas/phpdotenv/.editorconfig +0 -15
- package/src/api/core/vendor/vlucas/phpdotenv/.gitattributes +0 -15
- package/src/api/core/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +0 -132
- package/src/api/core/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +0 -30
- package/src/api/core/vendor/vlucas/phpdotenv/.github/FUNDING.yml +0 -2
- package/src/api/core/vendor/vlucas/phpdotenv/.github/SECURITY.md +0 -14
- package/src/api/core/vendor/vlucas/phpdotenv/.github/workflows/static.yml +0 -40
- package/src/api/core/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +0 -70
- package/src/api/core/vendor/vlucas/phpdotenv/Makefile +0 -17
- package/src/api/core/vendor/vlucas/phpdotenv/README.md +0 -370
- package/src/api/core/vendor/vlucas/phpdotenv/UPGRADING.md +0 -196
- package/src/api/core/vendor/vlucas/phpdotenv/phpstan-baseline.neon +0 -157
- package/src/api/core/vendor/vlucas/phpdotenv/phpstan.neon.dist +0 -7
- package/src/api/core/vendor/vlucas/phpdotenv/phpunit.xml.dist +0 -13
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +0 -387
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +0 -86
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +0 -234
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +0 -40
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +0 -53
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +0 -98
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +0 -57
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +0 -75
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +0 -52
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +0 -75
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +0 -305
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +0 -141
- package/src/api/core/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +0 -479
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +0 -5
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +0 -18
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +0 -33
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +0 -15
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +0 -1
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +0 -1
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +0 -7
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +0 -1
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +0 -17
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +0 -2
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +0 -3
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +0 -14
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +0 -4
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +0 -1
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +0 -15
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +0 -11
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +0 -8
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +0 -2
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +0 -3
- package/src/api/core/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +0 -1
- package/src/api/core/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +0 -15
- package/src/data/lang.json +0 -36
- package/src/js/modules/forms/form.js +0 -45
- package/src/js/modules/langSwitcher.js +0 -69
|
@@ -1 +0,0 @@
|
|
|
1
|
-
MBW="��"
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"require": {
|
|
3
|
-
"php": "^8.5",
|
|
4
|
-
"phpstan/phpstan": "2.1.33",
|
|
5
|
-
"phpstan/extension-installer": "1.4.3",
|
|
6
|
-
"phpstan/phpstan-deprecation-rules": "2.0.3",
|
|
7
|
-
"phpstan/phpstan-strict-rules": "2.0.7"
|
|
8
|
-
},
|
|
9
|
-
"config": {
|
|
10
|
-
"preferred-install": "dist",
|
|
11
|
-
"allow-plugins": {
|
|
12
|
-
"phpstan/extension-installer": true
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
package/src/data/lang.json
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"en": {
|
|
3
|
-
"enLangName": "English",
|
|
4
|
-
"itLangName": "Italian",
|
|
5
|
-
|
|
6
|
-
"error404Message": "Oops! Page not found",
|
|
7
|
-
"error404Return": "Return to homepage",
|
|
8
|
-
|
|
9
|
-
"welcomeSlogan": "The framework you need, simplified",
|
|
10
|
-
|
|
11
|
-
"documentationCardTitle": "Documentation",
|
|
12
|
-
"documentatioCardParagraph": "Everything you need to get started, from setup to advanced topics and customizations",
|
|
13
|
-
"documentationCardLink": "Go to documentation",
|
|
14
|
-
|
|
15
|
-
"githubCardTitle": "Github repository",
|
|
16
|
-
"githubCardParagraph": "Community-driven. Contributions, issues and PRs are welcome.",
|
|
17
|
-
"githubCardLink": "Open the repository"
|
|
18
|
-
},
|
|
19
|
-
"it": {
|
|
20
|
-
"enLangName": "Inglese",
|
|
21
|
-
"itLangName": "Italiano",
|
|
22
|
-
|
|
23
|
-
"error404Message": "Oops! Pagina non trovata",
|
|
24
|
-
"error404Return": "Ritorna alla homepage",
|
|
25
|
-
|
|
26
|
-
"welcomeSlogan": "Il framework di cui hai bisogno, in modo semplice",
|
|
27
|
-
|
|
28
|
-
"documentationCardTitle": "Documentazione",
|
|
29
|
-
"documentatioCardParagraph": "Tutto ciò di cui hai bisogno per iniziare, dalla configurazione agli argomenti avanzati e personalizzazioni",
|
|
30
|
-
"documentationCardLink": "Vai alla documentazione",
|
|
31
|
-
|
|
32
|
-
"githubCardTitle": "Repository Github",
|
|
33
|
-
"githubCardParagraph": "Guidato dalla comunità. Contributi, segnalazioni e PR sono benvenuti.",
|
|
34
|
-
"githubCardLink": "Vai alla repository"
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { showNotification } from "../notification.js";
|
|
2
|
-
import { langKeys, currentLang } from "../langSwitcher.js";
|
|
3
|
-
|
|
4
|
-
//==========================
|
|
5
|
-
// FORM SUBMISSION MODULE
|
|
6
|
-
//==========================
|
|
7
|
-
|
|
8
|
-
export function initFormListener() {
|
|
9
|
-
document.querySelectorAll("form").forEach((form) => {
|
|
10
|
-
form.addEventListener("submit", (e) => {
|
|
11
|
-
e.preventDefault();
|
|
12
|
-
|
|
13
|
-
const lang = langKeys[currentLang].forms;
|
|
14
|
-
|
|
15
|
-
if (!form.checkValidity()) {
|
|
16
|
-
form.classList.add("was-validated");
|
|
17
|
-
showNotification(lang.formInvalidFields, "error");
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
showNotification(lang.emailSending, "info", -1);
|
|
22
|
-
fetch("/php/sendEmail.php", {
|
|
23
|
-
method: "POST",
|
|
24
|
-
body: new FormData(form),
|
|
25
|
-
})
|
|
26
|
-
.then((response) => {
|
|
27
|
-
return response.text();
|
|
28
|
-
})
|
|
29
|
-
.then((data) => {
|
|
30
|
-
if (data.trim() === "success") {
|
|
31
|
-
showNotification(lang.emailSuccess, "success");
|
|
32
|
-
form.reset();
|
|
33
|
-
form.classList.remove("was-validated");
|
|
34
|
-
} else {
|
|
35
|
-
console.error(data);
|
|
36
|
-
showNotification(lang.emailError, "error");
|
|
37
|
-
}
|
|
38
|
-
})
|
|
39
|
-
.catch((error) => {
|
|
40
|
-
console.error(error);
|
|
41
|
-
showNotification(lang.emailError, "error");
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
//==========================
|
|
2
|
-
// LANG-SWITCHER MODULE
|
|
3
|
-
//==========================
|
|
4
|
-
|
|
5
|
-
export let currentLang = null;
|
|
6
|
-
export let langKeys = null;
|
|
7
|
-
|
|
8
|
-
async function loadLangKeys() {
|
|
9
|
-
if (langKeys) return langKeys;
|
|
10
|
-
const response = await fetch("/data/lang.json");
|
|
11
|
-
langKeys = await response.json();
|
|
12
|
-
return langKeys;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export async function initLangSwitcher() {
|
|
16
|
-
const data = await loadLangKeys();
|
|
17
|
-
const availableLangs = Object.keys(data);
|
|
18
|
-
const fallbackLang = document.documentElement.lang || availableLangs[0];
|
|
19
|
-
const initialLang = await getInitialLang(availableLangs, fallbackLang);
|
|
20
|
-
|
|
21
|
-
applyLanguage(initialLang, data);
|
|
22
|
-
|
|
23
|
-
function handleLangChange(value) {
|
|
24
|
-
localStorage.setItem("language", value);
|
|
25
|
-
applyLanguage(value, data);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// Radio buttons
|
|
29
|
-
document.querySelectorAll("input[type='radio'][name='lang-button']").forEach((radio) => {
|
|
30
|
-
if (radio.value === initialLang) radio.checked = true;
|
|
31
|
-
radio.addEventListener("change", () => handleLangChange(radio.value));
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
// Select
|
|
35
|
-
document.querySelectorAll("select#lang-select").forEach((select) => {
|
|
36
|
-
select.value = initialLang;
|
|
37
|
-
select.addEventListener("change", () => handleLangChange(select.value));
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
async function getInitialLang(availableLangs, fallbackLang) {
|
|
42
|
-
if (localStorage.getItem("language")) return localStorage.getItem("language");
|
|
43
|
-
const browserLang = navigator.language.slice(0, 2);
|
|
44
|
-
return availableLangs.includes(browserLang) ? browserLang : fallbackLang;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function getNestedValue(obj, path) {
|
|
48
|
-
return path.split('.').reduce((acc, part) => acc && acc[part], obj);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function applyLanguage(lang, data) {
|
|
52
|
-
currentLang = lang;
|
|
53
|
-
langKeys = data;
|
|
54
|
-
const langData = data[lang];
|
|
55
|
-
|
|
56
|
-
document.querySelectorAll("[data-lang-key]").forEach((element) => {
|
|
57
|
-
const key = element.dataset.langKey;
|
|
58
|
-
const value = getNestedValue(langData, key);
|
|
59
|
-
if (value) element.textContent = value;
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
document.querySelectorAll("[data-lang-placeholder]").forEach((element) => {
|
|
63
|
-
const key = element.dataset.langPlaceholder;
|
|
64
|
-
const value = getNestedValue(langData, key);
|
|
65
|
-
if (value) element.setAttribute("placeholder", value);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
document.documentElement.lang = lang;
|
|
69
|
-
}
|