Initial commit
Update .gitignore, 403.php, and 60 more files...
This commit is contained in:
2
commons/body-root.php
Normal file
2
commons/body-root.php
Normal file
@@ -0,0 +1,2 @@
|
||||
<?php if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { header('HTTP/1.1 403 Forbidden'); die(); } ?>
|
||||
<div id="body-overlay"></div>
|
7
commons/config.php
Normal file
7
commons/config.php
Normal file
@@ -0,0 +1,7 @@
|
||||
<?php if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { header('HTTP/1.1 403 Forbidden'); die(); } ?>
|
||||
<?php
|
||||
$host = "nibblepoker.lu";
|
||||
$host_uri = "https://nibblepoker.lu";
|
||||
$dir_commons = dirname(__FILE__);
|
||||
$dir_root = realpath($dir_commons . "/../");
|
||||
?>
|
127
commons/content.php
Normal file
127
commons/content.php
Normal file
@@ -0,0 +1,127 @@
|
||||
<?php if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { header('HTTP/1.1 403 Forbidden'); die(); } ?>
|
||||
<?php
|
||||
// TODO: Include lang once
|
||||
|
||||
// This helper requires PHP 8 or newer !
|
||||
|
||||
// Defining constants and enums.
|
||||
const CONTENT_NONE = 0;
|
||||
abstract class ContentType {
|
||||
const NONE = CONTENT_NONE;
|
||||
const BLOG = 1;
|
||||
const PROGRAMMING = 2;
|
||||
const ELECTRONICS = 3;
|
||||
}
|
||||
abstract class ContentDisplayType {
|
||||
const NONE = CONTENT_NONE;
|
||||
const SEARCH = 1;
|
||||
const ARTICLE = 2;
|
||||
const APPLICATION = 3;
|
||||
}
|
||||
abstract class ContentSubType {
|
||||
const NONE = CONTENT_NONE;
|
||||
const PUREBASIC = 1;
|
||||
const PYTHON = 2;
|
||||
const JAVA = 3;
|
||||
const OTHER_LANGUAGE = 4;
|
||||
const APPLICATION = 5;
|
||||
const TOOL = 6;
|
||||
const TUTORIAL = 7;
|
||||
const IOT = 8;
|
||||
const EXPERIMENTS = 9;
|
||||
const HAM = 10;
|
||||
const ALL = 11;
|
||||
const DOCKER = 11;
|
||||
}
|
||||
|
||||
// Preparing default variables.
|
||||
$requested_content_type = ContentType::NONE;
|
||||
$requested_content_display_type = ContentDisplayType::NONE;
|
||||
$requested_content_sub_type = ContentSubType::NONE;
|
||||
$content_has_error = false;
|
||||
$_content_error_message_key = "error.content.none";
|
||||
$content_error_message = "";
|
||||
$was_item_requested = false;
|
||||
|
||||
// Detecting content type requested.
|
||||
$content_requested_url_part = l10n_url_switch(NULL);
|
||||
|
||||
if(str_starts_with($content_requested_url_part, "/blog/")) {
|
||||
$requested_content_type = ContentType::BLOG;
|
||||
} elseif(str_starts_with($content_requested_url_part, "/programming/")) {
|
||||
$requested_content_type = ContentType::PROGRAMMING;
|
||||
} elseif(str_starts_with($content_requested_url_part, "/electronics/")) {
|
||||
$requested_content_type = ContentType::ELECTRONICS;
|
||||
} else {
|
||||
// Failed to detect which category of content was requested.
|
||||
$content_has_error = true;
|
||||
$_content_error_message_key = "error.content.detect.category";
|
||||
goto content_end;
|
||||
}
|
||||
|
||||
// Detecting what kind of item was requested, parsing additional parameters and loading required data.
|
||||
$content_requested_url_part = preg_replace("^\/(blog|programming|electronics)^", "", $content_requested_url_part);
|
||||
if($requested_content_type == ContentType::BLOG) {
|
||||
if(str_starts_with($content_requested_url_part, "/article/")) {
|
||||
$requested_content_display_type = ContentDisplayType::ARTICLE;
|
||||
} else {
|
||||
$requested_content_display_type = ContentDisplayType::SEARCH;
|
||||
}
|
||||
} elseif($requested_content_type == ContentType::PROGRAMMING) {
|
||||
// May be changed later if a specific resource is requested and found.
|
||||
$requested_content_display_type = ContentDisplayType::SEARCH;
|
||||
|
||||
if(str_starts_with($content_requested_url_part, "/applications/")) {
|
||||
$requested_content_sub_type = ContentSubType::APPLICATION;
|
||||
} elseif(str_starts_with($content_requested_url_part, "/tutorials/")) {
|
||||
$requested_content_sub_type = ContentSubType::TUTORIAL;
|
||||
} elseif(str_starts_with($content_requested_url_part, "/tools/")) {
|
||||
$requested_content_sub_type = ContentSubType::TOOL;
|
||||
} elseif(str_starts_with($content_requested_url_part, "/purebasic/")) {
|
||||
$requested_content_sub_type = ContentSubType::PUREBASIC;
|
||||
} elseif(str_starts_with($content_requested_url_part, "/python/")) {
|
||||
$requested_content_sub_type = ContentSubType::PYTHON;
|
||||
} elseif(str_starts_with($content_requested_url_part, "/java/")) {
|
||||
$requested_content_sub_type = ContentSubType::JAVA;
|
||||
} elseif(str_starts_with($content_requested_url_part, "/others/")) {
|
||||
$requested_content_sub_type = ContentSubType::OTHER_LANGUAGE;
|
||||
} elseif(str_starts_with($content_requested_url_part, "/docker/")) {
|
||||
$requested_content_sub_type = ContentSubType::DOCKER;
|
||||
} else {
|
||||
$requested_content_sub_type = ContentSubType::ALL;
|
||||
}
|
||||
} elseif($requested_content_type == ContentType::ELECTRONICS) {
|
||||
// May be changed later if a specific resource is requested and found.
|
||||
$requested_content_display_type = ContentDisplayType::SEARCH;
|
||||
|
||||
if(str_starts_with($content_requested_url_part, "/iot/")) {
|
||||
$requested_content_sub_type = ContentSubType::IOT;
|
||||
} elseif(str_starts_with($content_requested_url_part, "/experiments/")) {
|
||||
$requested_content_sub_type = ContentSubType::EXPERIMENTS;
|
||||
} elseif(str_starts_with($content_requested_url_part, "/ham/")) {
|
||||
$requested_content_sub_type = ContentSubType::HAM;
|
||||
} else {
|
||||
$requested_content_sub_type = ContentSubType::ALL;
|
||||
}
|
||||
}
|
||||
|
||||
if($requested_content_display_type == ContentDisplayType::NONE) {
|
||||
// Failed to detect what kind of content was requested.
|
||||
$content_has_error = true;
|
||||
$_content_error_message_key = "error.content.detect.display";
|
||||
goto content_end;
|
||||
}
|
||||
|
||||
if($requested_content_type != ContentType::BLOG && $requested_content_sub_type == ContentSubType::NONE) {
|
||||
// Failed to detect the subtype of content requested when not a blog post.
|
||||
$content_has_error = true;
|
||||
$_content_error_message_key = "error.content.detect.subtype";
|
||||
goto content_end;
|
||||
}
|
||||
$content_requested_url_part = preg_replace("^\/(java|python|purebasic|others|ham|iot|experiments|applications|tutorials|tools)^", "", $content_requested_url_part);
|
||||
|
||||
// TODO: detect specific resource and parameters, and load data.
|
||||
|
||||
content_end:
|
||||
$content_error_message = localize($_content_error_message_key);
|
||||
?>
|
34
commons/footer.php
Normal file
34
commons/footer.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { header('HTTP/1.1 403 Forbidden'); die(); } ?>
|
||||
<nav class="navbar navbar-fixed-bottom">
|
||||
<div class="navbar-content">
|
||||
<div class="navbar-content">
|
||||
<button id="button-sidebar" class="btn btn-action" type="button">
|
||||
<i class="fa fa-bars" aria-hidden="true"></i><span class="sr-only">Sidebar</span>
|
||||
</button>
|
||||
</div>
|
||||
<!--<div id="copyright-text" class="text-muted ml-15">© Copyright 2020-2021, BOZET Herwin</div>-->
|
||||
</div>
|
||||
<span class="ml-auto">
|
||||
<div id="privacy-footer-link" class="text-muted ml-15">
|
||||
<a href="<?php print(l10n_url_abs('/privacy/')); ?>" class="text-decoration-none">
|
||||
<p class="text-muted font-weight-semi-bold"><?php print(localize('privacy.title')); ?></p>
|
||||
</a>
|
||||
</div>
|
||||
</span>
|
||||
<!--<span class="navbar-brand ml-auto">
|
||||
<a href="<?php echo(l10n_url_switch('en')); ?>">
|
||||
<img src="/resources/Icons8/color/flags/countries/uk.svg" alt="English">
|
||||
</a>
|
||||
<a href="<?php echo(l10n_url_switch('fr')); ?>">
|
||||
<img src="/resources/Icons8/color/flags/countries/france.svg" alt="French">
|
||||
</a>
|
||||
<a href="<?php echo(l10n_url_switch('lb')); ?>">
|
||||
<img src="/resources/Icons8/color/flags/countries/luxembourg.svg" alt="Luxembourgish">
|
||||
</a>
|
||||
</span>-->
|
||||
<a href="<?php print(l10n_url_abs('/')); ?>" class="navbar-brand ml-auto">
|
||||
<span class="navbar-brand ml-auto">
|
||||
<img id="logo-footer" src="/resources/Azias/logos/logov3-test-finalized.svg" alt="logo" draggable="false">
|
||||
</span>
|
||||
</a>
|
||||
</nav>
|
24
commons/header-lang.php
Normal file
24
commons/header-lang.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { header('HTTP/1.1 403 Forbidden'); die(); } ?>
|
||||
<div id="header-lang-menu" class="navbar-content ml-auto">
|
||||
<div class="dropdown with-arrow">
|
||||
<button class="btn" data-toggle="dropdown" type="button" id="navbar-lang-dropdown">
|
||||
<i class="fad fa-language"></i> <?php print(localize("lang.menu.title")); ?>
|
||||
<i class="fa fa-angle-down" aria-hidden="true"></i>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-right w-150" aria-labelledby="navbar-lang-dropdown">
|
||||
<a href="<?php echo(l10n_url_switch('en')); ?>" class="dropdown-item">
|
||||
<?php print(localize("lang.english")); ?>
|
||||
</a>
|
||||
<a href="<?php echo(l10n_url_switch('fr')); ?>" class="dropdown-item">
|
||||
<?php print(localize("lang.french")); ?>
|
||||
</a>
|
||||
<!--<a href="<?php echo(l10n_url_switch('lb')); ?>" class="dropdown-item">
|
||||
<?php print(localize("lang.luxembourgish")); ?>
|
||||
</a>-->
|
||||
<div class="dropdown-divider mt-5 mb-5"></div>
|
||||
<a href="<?php echo(l10n_url_switch(NULL)); ?>" class="dropdown-item">
|
||||
<?php print(localize("lang.automatic")); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
15
commons/headers.php
Normal file
15
commons/headers.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { header('HTTP/1.1 403 Forbidden'); die(); } ?>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<!-- TODO: Change to proper values once finished ! -->
|
||||
<meta content="no-cache, no-store, must-revalidate" http-equiv="Cache-Control">
|
||||
<meta content="no-cache" http-equiv="Pragma">
|
||||
<meta content="0" http-equiv="Expires">
|
||||
<meta name="theme-color" content="#1D2023">
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
||||
<link rel="alternate icon" href="/favicon.ico">
|
||||
<link href="/resources/HalfMoon/1.1.1/css/halfmoon-variables.min.css" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="/resources/FontAwesomePro/5.15.3/css/all.min.css">
|
||||
<link rel="stylesheet" href="/resources/Azias/css/nibblepoker.lu.css">
|
57
commons/langs.php
Normal file
57
commons/langs.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { header('HTTP/1.1 403 Forbidden'); die(); } ?>
|
||||
<?php
|
||||
// This helper requires PHP 8 or newer !
|
||||
|
||||
// Setting the default values.
|
||||
$default_language = "en";
|
||||
$user_language = "en";
|
||||
$user_uri_language = "";
|
||||
|
||||
// Attempting to detect the language through the URI
|
||||
if(str_starts_with($_SERVER['REQUEST_URI'], "/en/")) {
|
||||
$user_language = "en";
|
||||
$user_uri_language = "/".$user_language;
|
||||
} elseif(str_starts_with($_SERVER['REQUEST_URI'], "/fr/")) {
|
||||
$user_language = "fr";
|
||||
$user_uri_language = "/".$user_language;
|
||||
} elseif(str_starts_with($_SERVER['REQUEST_URI'], "/lb/")) {
|
||||
$user_language = "lb";
|
||||
$user_uri_language = "/".$user_language;
|
||||
} else {
|
||||
// Attempting to detect the language through the browser's headers.
|
||||
// TODO: This !
|
||||
$user_uri_language = "";
|
||||
}
|
||||
|
||||
// Reading and parsing the strings.json file
|
||||
$lang_json = file_get_contents(realpath($dir_commons . "/strings.json"));
|
||||
$lang_data = json_decode($lang_json, true);
|
||||
|
||||
// Localizer function
|
||||
function localize($stringKey) {
|
||||
global $user_language, $default_language, $lang_data;
|
||||
if(array_key_exists($stringKey, $lang_data[$user_language])) {
|
||||
return $lang_data[$user_language][$stringKey];
|
||||
} else {
|
||||
if(array_key_exists($stringKey, $lang_data[$default_language])) {
|
||||
return $lang_data[$default_language][$stringKey];
|
||||
} else {
|
||||
return $stringKey;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function l10n_url_abs($url) {
|
||||
global $user_uri_language;
|
||||
return $user_uri_language . $url;
|
||||
}
|
||||
|
||||
function l10n_url_switch($lang) {
|
||||
if(is_null($lang)) {
|
||||
return preg_replace("^\/(lb|lu|fr|en)^", "", $_SERVER['REQUEST_URI']);
|
||||
} else {
|
||||
return "/".$lang.preg_replace("^\/(lb|lu|fr|en)^", "", $_SERVER['REQUEST_URI']);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
86
commons/sidebar.php
Normal file
86
commons/sidebar.php
Normal file
@@ -0,0 +1,86 @@
|
||||
<?php if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { header('HTTP/1.1 403 Forbidden'); die(); } ?>
|
||||
<div class="sidebar">
|
||||
<div class="sidebar-menu font-weight-bold">
|
||||
<a href="<?php print(l10n_url_abs('/')); ?>" class="sidebar-brand no-select">
|
||||
<img id="logo-sidebar" src="/resources/Azias/logos/logov3-test-finalized.svg" alt="logo" draggable="false">
|
||||
</a>
|
||||
<h4 class="text-center quantum ucase font-size-28 text-muted">N<span class="text-super-muted">ibble</span> P<span class="text-super-muted">oker</span></h4>
|
||||
<div class="sidebar-divider"></div>
|
||||
<a id="sbl-home" href="<?php print(l10n_url_abs('/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-home" aria-hidden="true"></i></span>
|
||||
<?php print(localize("home.title.nav")); ?>
|
||||
</a>
|
||||
<a id="sbl-blog" href="<?php print(l10n_url_abs('/blog/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-rss-square"></i></span>
|
||||
<?php print(localize("blog.title")); ?>
|
||||
</a>
|
||||
<div class="sidebar-divider"></div>
|
||||
<a id="sbl-programming" href="<?php print(l10n_url_abs('/programming/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-code"></i></span>
|
||||
<?php print(localize("programming.title")); ?>
|
||||
</a>
|
||||
<div class="ml-20">
|
||||
<a id="sbl-purebasic" href="<?php print(l10n_url_abs('/programming/purebasic/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-microchip"></i></span>
|
||||
<?php print(localize("programming.purebasic.title")); ?>
|
||||
</a>
|
||||
<a id="sbl-python" href="<?php print(l10n_url_abs('/programming/python/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fab fa-python"></i></span>
|
||||
<?php print(localize("programming.python.title")); ?>
|
||||
</a>
|
||||
<!--<a id="sbl-others" href="<?php print(l10n_url_abs('/programming/others/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-ellipsis-h"></i></span>
|
||||
<?php print(localize("programming.others.title")); ?>
|
||||
</a>-->
|
||||
<a id="sbl-docker" href="<?php print(l10n_url_abs('/programming/docker/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fab fa-docker"></i></span>
|
||||
<?php print(localize("programming.docker.title")); ?>
|
||||
</a>
|
||||
<div class="sidebar-divider"></div>
|
||||
<a id="sbl-projects-apps" href="<?php print(l10n_url_abs('/programming/applications/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-browser"></i></span>
|
||||
<?php print(localize("programming.apps.title")); ?>
|
||||
</a>
|
||||
<a id="sbl-projects-tutorials" href="<?php print(l10n_url_abs('/programming/tutorials/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-books"></i></span>
|
||||
<?php print(localize("programming.tutorials.title")); ?>
|
||||
</a>
|
||||
<a id="sbl-projects-tools" href="<?php print(l10n_url_abs('/programming/tools/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-tools"></i></span>
|
||||
<?php print(localize("programming.tools.title")); ?>
|
||||
</a>
|
||||
</div>
|
||||
<!--<div class="sidebar-divider"></div>
|
||||
<a id="sbl-electronics" href="<?php print(l10n_url_abs('/electronics/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-microchip"></i></span>
|
||||
<?php print(localize("electronics.title")); ?>
|
||||
</a>
|
||||
<div class="ml-20">
|
||||
<a id="sbl-iot" href="<?php print(l10n_url_abs('/electronics/iot/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-house-signal"></i></span>
|
||||
<?php print(localize("electronics.iot.title")); ?>
|
||||
</a>
|
||||
<a id="sbl-elec-misc" href="<?php print(l10n_url_abs('/electronics/experiments/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-flask"></i></span>
|
||||
<?php print(localize("electronics.experiments.title")); ?>
|
||||
</a>
|
||||
<a id="sbl-ham" href="<?php print(l10n_url_abs('/electronics/ham/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-broadcast-tower"></i></span>
|
||||
<?php print(localize("electronics.ham.title")); ?>
|
||||
</a>
|
||||
</div>-->
|
||||
<div class="sidebar-divider"></div>
|
||||
<a id="sbl-links" href="<?php print(l10n_url_abs('/links/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-link"></i></span>
|
||||
<?php print(localize("links.title")); ?>
|
||||
</a>
|
||||
<a id="sbl-about" href="<?php print(l10n_url_abs('/about/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-user"></i></span>
|
||||
<?php print(localize("about.title")); ?>
|
||||
</a>
|
||||
<a id="sbl-contact" href="<?php print(l10n_url_abs('/contact/')); ?>" class="sidebar-link sidebar-link-with-icon">
|
||||
<span class="sidebar-icon"><i class="fad fa-mailbox"></i></span>
|
||||
<?php print(localize("contact.title")); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
126
commons/strings.json
Normal file
126
commons/strings.json
Normal file
@@ -0,0 +1,126 @@
|
||||
{
|
||||
"_note": "You really are a nosy one, aren't you ?",
|
||||
"en": {
|
||||
"home.title.nav": "Home",
|
||||
"home.title.header": "Homepage",
|
||||
"home.intro.meta.description": "${home.intro.meta.description}",
|
||||
"home.intro.title": "Welcome",
|
||||
"home.intro.text.1": "This website contains a collection of my personal work through blog posts, software releases and other forms of media, all of which is accessible for free and under open-source friendly licenses.",
|
||||
"home.intro.text.2": "If you wish to contact me, you can do so through the contact form linked in the sidebar or via the email address present on that page.",
|
||||
"blog.title": "Blog",
|
||||
"programming.title": "Programming",
|
||||
"programming.java.title": "Java",
|
||||
"programming.purebasic.title": "PureBasic",
|
||||
"programming.python.title": "Python",
|
||||
"programming.others.title": "Others",
|
||||
"programming.docker.title": "Docker",
|
||||
"programming.apps.title": "Applications",
|
||||
"programming.tutorials.title": "Tutorials",
|
||||
"programming.tools.title": "Tools",
|
||||
"electronics.title": "Electronics",
|
||||
"electronics.iot.title": "IoT",
|
||||
"electronics.experiments.title": "Experiments",
|
||||
"electronics.ham.title": "HAM",
|
||||
"links.title": "Links",
|
||||
"links.visit.button": "Visit",
|
||||
"about.title": "About",
|
||||
"contact.title": "Contact",
|
||||
"lang.menu.title": "Language",
|
||||
"lang.current": "English",
|
||||
"lang.automatic": "Automatic",
|
||||
"lang.english": "English",
|
||||
"lang.french": "French",
|
||||
"lang.luxembourgish": "Luxembourgish",
|
||||
"privacy.title": "Privacy policy",
|
||||
"privacy.introduction.title": "Introduction",
|
||||
"privacy.introduction.text.1": "This privacy policy is written in accordance with the 12th and 13th articles of the GDPR.",
|
||||
"privacy.introduction.text.2": "If you wish to consult it, you can do so on the following websites:",
|
||||
"privacy.data.title": "What data do we collect ?",
|
||||
"privacy.data.text.1": "This website, does not collect any personal data, be it through access logs, cookies or any third-party services.",
|
||||
"privacy.update.title": "Changes to our privacy policy",
|
||||
"privacy.update.text.1": "The content of this privacy policy was written and last updated on the 4th of December 2021.",
|
||||
"privacy.update.text.2": "In the event of a change to our privacy policy, you will be informed explicitly, and a copy of previous versions of the policy will be available on this page.",
|
||||
"privacy.contact.title": "How to contact us ?",
|
||||
"privacy.contact.text.1": "If you wish to contact us for more information regarding our privacy policy, please contact us via the form included on the contact page, or at the following email address:",
|
||||
"privacy.complaint.title": "How to contact the appropriate authorities ?",
|
||||
"privacy.complaint.text.1": "Should you wish to report a complaint or if you feel that our privacy policy has not addressed your concern in a satisfactory manner, you may contact your national Data Protection Authority (DPA).",
|
||||
"privacy.complaint.text.2": "More information on this procedure can be found on the following websites:",
|
||||
"error.common.details.title": "Error details",
|
||||
"error.4xx.title": "HTTP client error",
|
||||
"error.4xx.text": "${error.4xx.text}",
|
||||
"error.4xx.button.back": "Go back",
|
||||
"error.403.title": "403 Error",
|
||||
"error.403.description": "Access to the requested resource is forbidden !",
|
||||
"error.404.title": "404 Error",
|
||||
"error.404.description": "The requested resource couldn't be found on the server !",
|
||||
|
||||
"error.content.none": "No explicit error was encountered.",
|
||||
"error.content.detect.category": "Failed to detect which category of content you requested.",
|
||||
"error.content.detect.display": "Failed to detect if you requested the category's search page or a specific one.",
|
||||
"error.content.detect.subtype": "Failed to detect the sub-type of content you requested."
|
||||
},
|
||||
"fr": {
|
||||
"home.title.nav": "Accueil",
|
||||
"home.title.header": "Page d'accueil",
|
||||
"home.intro.meta.description": "${home.intro.meta.description}",
|
||||
"home.intro.title": "Bienvenue",
|
||||
"home.intro.text.1": "Ce site internet contient une collection de mon travail personnel dans le domaine de l'informatique, le tout étant rendu accessible par le biais d'articles de blog, ? et ?, le tout sous une licence ouverte et en open source.",
|
||||
"home.intro.text.2": "Si vous désirez me contacter, vous pouvez le faire via le formulaire de contact dans la page prévu à cet effet qui est liée dans le menu latéral ou via l'adresse email présente sur cette page.",
|
||||
"blog.title": "Blog",
|
||||
"programming.title": "Programmation",
|
||||
"programming.java.title": "Java",
|
||||
"programming.purebasic.title": "PureBasic",
|
||||
"programming.python.title": "Python",
|
||||
"programming.others.title": "Autres",
|
||||
"programming.docker.title": "Docker",
|
||||
"programming.apps.title": "Applications",
|
||||
"programming.tutorials.title": "Tutoriels",
|
||||
"programming.tools.title": "Outils",
|
||||
"electronics.title": "Électronique",
|
||||
"electronics.iot.title": "IoT",
|
||||
"electronics.experiments.title": "Expériences",
|
||||
"electronics.ham.title": "HAM",
|
||||
"links.title": "Liens",
|
||||
"links.visit.button": "Visiter",
|
||||
"about.title": "À-propos",
|
||||
"contact.title": "Contact",
|
||||
"lang.menu.title": "Langue",
|
||||
"lang.current": "Français",
|
||||
"lang.automatic": "Automatique",
|
||||
"lang.english": "Anglais",
|
||||
"lang.french": "Français",
|
||||
"lang.luxembourgish": "Luxembourgeois",
|
||||
"privacy.title": "Politique de confidentialité",
|
||||
"privacy.introduction.title": "Introduction",
|
||||
"privacy.introduction.text.1": "La politique de confidentialité ci-présente a été écrite en accord avec les articles 12 et 13 de la RGPD.",
|
||||
"privacy.introduction.text.2": "Si vous souhaitez consulter le texte officiel en question, vous pouvez le faire sur les sites internet suivants :",
|
||||
"privacy.data.title": "Quelles données sont collectées ?",
|
||||
"privacy.data.text.1": "Ce site web ne collecte aucune donnée personnelle, que ce soit au travers des journaux d'évènements sur nos serveurs, des cookies ou via quelconque autre tiers parti.",
|
||||
"privacy.update.title": "Changements à notre politique de confidentialité",
|
||||
"privacy.update.text.1": "Le contenu de notre politique de confidentialité a été écrit et modifié pour la dernière fois le 4 décembre 2021.",
|
||||
"privacy.update.text.2": "En cas de changement, vous serez clairement informé et une copie des anciennes versions de notre politique sera disponible sur cette page.",
|
||||
"privacy.contact.title": "Comment nous contacter ?",
|
||||
"privacy.contact.text.1": "Si vous souhaitez nous contacter afin d'obtenir plus d'informations concernant notre politique de confidentialité, nous vous recommandons d'utiliser le formulaire présent sur la page de contact, ou par courriel à l'adresse suivante:",
|
||||
"privacy.complaint.title": "Comment contacter les autorités compétentes ?",
|
||||
"privacy.complaint.text.1": "Dans l'éventualité où vous souhaiteriez déposer une plainte pour une quelconque raison en rapport avec notre politique de confidentialité, veuillez vous adresser à l'autorité nationale de protection des données (DPA).",
|
||||
"privacy.complaint.text.2": "Les informations concernant cette procédure peuvent être trouvées sur les sites internet suivants:",
|
||||
"error.common.details.title": "Détails de l'erreur",
|
||||
"error.4xx.title": "Erreur du client HTTP",
|
||||
"error.4xx.text": "${error.4xx.text}",
|
||||
"error.4xx.button.back": "Retourner en arrière",
|
||||
"error.403.title": "Erreur 403",
|
||||
"error.403.description": "L'accès à la ressource demandée est interdit !",
|
||||
"error.404.title": "Erreur 404",
|
||||
"error.404.description": "La ressource demandée est introuvable sur le serveur !",
|
||||
|
||||
"error.content.none": "Aucune erreur précise n'a été détectée.",
|
||||
"error.content.detect.category": "Impossibilité de détecter la catégorie de contenu demandée.",
|
||||
"error.content.detect.display": "Impossibilité de détecter si une recherche ou page spécifique était demandée.",
|
||||
"error.content.detect.subtype": "Impossibilité de détecter le sous-type de contenu demandé."
|
||||
},
|
||||
"lb": {
|
||||
"home.title.nav": "Doheem",
|
||||
"lang.current": "Luxembourgish",
|
||||
"home.intro.title": "Wëllkomm op <i>NibblePoker.lu</i> !"
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user