Translation on php finished

This commit is contained in:
Nicolas Hordé 2021-01-03 14:17:40 +01:00
parent 4b77c534cc
commit ed15b416a9
8 changed files with 79 additions and 80 deletions

View File

@ -43,6 +43,7 @@ define('LOG_FILE', 'log.txt');
define('ACCESS_IP', ''); define('ACCESS_IP', '');
define('HISTORY_FILE', 'history.txt'); define('HISTORY_FILE', 'history.txt');
define('MAX_HISTORY_FILES', 5); define('MAX_HISTORY_FILES', 5);
define('LANG', 'en');
``` ```
**NOTE**: **NOTE**:

View File

@ -102,7 +102,7 @@ else if (isset($_POST['action']))
case 'search': case 'search':
$results=searchstr(CONTENT_DIR,$_POST['search']); $results=searchstr(CONTENT_DIR,$_POST['search']);
//print_r($results); //print_r($results);
$content="<h1>Résultats de recherche</h1><p>Il y a ".$results['totalFiles']." occurence(s) trouvée(s):</p>"; $content=sprintf($LANG['FOUND'],$results['totalFiles']);
foreach($results['files'] as $key => $value) foreach($results['files'] as $key => $value)
$content.='<p class="filefound"><a href="'.$key.'">'.$key.'</a></p><p class="textfound">'.$value.'</p>'; $content.='<p class="filefound"><a href="'.$key.'">'.$key.'</a></p><p class="textfound">'.$value.'</p>';
if ($_POST['type']=="js") if ($_POST['type']=="js")
@ -155,7 +155,7 @@ else
</head> </head>
<body> <body>
<div id="head" class=""> <div id="head" class="">
<span id="forkongithub"><a href="https://github.com/dahut87/MarkDoc">Fork me on GitHub</a></span> <span id="forkongithub"><a href="https://github.com/dahut87/MarkDoc"><?php print($LANG['FORK']); ?></a></span>
<nav class="navbar fixed-top navbar-expand-md <?php print(($_SESSION['md_admin'] == true)?"navbar-custom":"bg-dark navbar-dark"); ?>"> <nav class="navbar fixed-top navbar-expand-md <?php print(($_SESSION['md_admin'] == true)?"navbar-custom":"bg-dark navbar-dark"); ?>">
<a class="navbar-brand" href="/index.md"><i class="fas <?php echo ICON; ?>"></i>&nbsp;<?php echo TITLE; ?></a> <a class="navbar-brand" href="/index.md"><i class="fas <?php echo ICON; ?>"></i>&nbsp;<?php echo TITLE; ?></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
@ -164,7 +164,7 @@ else
<div class="collapse navbar-collapse" id="navbarSupportedContent"> <div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto"> <ul class="navbar-nav mr-auto">
<li class="nav-item dropdown"> <li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="javascript:void(0)" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" role="button">Menu</a> <a class="nav-link dropdown-toggle" href="javascript:void(0)" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" role="button"><?php print($LANG['MENU']); ?></a>
<div class="dropdown-menu"> <div class="dropdown-menu">
<?php <?php
print(getnav()); print(getnav());
@ -173,22 +173,22 @@ else
</li> </li>
<?php <?php
print(($_SESSION['md_admin'] == true)?'<li class="nav-item dropdown"> print(($_SESSION['md_admin'] == true)?'<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="javascript:void(0)" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" role="button">Admin</a> <a class="nav-link dropdown-toggle" href="javascript:void(0)" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" role="button">'.$LANG['ADMIN'].'</a>
<div class="dropdown-menu"> <div class="dropdown-menu">
<a class="dropdown-item" href=":CONFIG">Configuration</a> <a class="dropdown-item" href=":CONFIG">'.$LANG['CONFIG'].'</a>
<a class="dropdown-item" href=":PASSWORD">Mot de passe</a> <a class="dropdown-item" href=":PASSWORD">'.$LANG['PASSWORD'].'</a>
<hr> <hr>
<a class="dropdown-item" href="https://'.$_SERVER['SERVER_NAME'].'?logout">Se déconnecter</a> <a class="dropdown-item" href="https://'.$_SERVER['SERVER_NAME'].'?logout">'.$LANG['LOGOUT'].'</a>
</div></li>':'<li class="nav-item"><a class="nav-link " href=":ADMIN">Admin</a></li>'); </div></li>':'<li class="nav-item"><a class="nav-link " href=":ADMIN">'.$LANG['ADMIN'].'</a></li>');
?> ?>
<li class="nav-item"><a class="nav-link " href="/apropos.md">A propos</a></li> <li class="nav-item"><a class="nav-link " href="<?php print($LANG['ABOUTMD'].'">'.$LANG['ABOUT']); ?></a></li>
</ul> </ul>
<form class="form-inline" id="form" name="form" action="/index.php" method="POST"> <form class="form-inline" id="form" name="form" action="/index.php" method="POST">
<input type="hidden" id="action" name="action" value="search"/> <input type="hidden" id="action" name="action" value="search"/>
<?php print(($_SESSION['md_admin'] == true)?'<input class="btn btn-outline-light" my-2 my-sm-0" value="Voir" name="voir" id="voir" type="submit"/>&nbsp;&nbsp;<input class="btn btn-outline-light" my-2 my-sm-0" value="Sauver" name="save" id="save" type="button"/>&nbsp;&nbsp;':''); ?> <?php print(($_SESSION['md_admin'] == true)?'<input class="btn btn-outline-light" my-2 my-sm-0" value="'.$LANG['VIEW'].'" name="voir" id="voir" type="submit"/>&nbsp;&nbsp;<input class="btn btn-outline-light" my-2 my-sm-0" value="'.$LANG['SAVE'].'" name="save" id="save" type="button"/>&nbsp;&nbsp;':''); ?>
<input class="btn <?php print(($_SESSION['md_admin'] == true)?"btn-outline-light":"btn-outline-info"); ?> my-2 my-sm-0" value="TOC" name="toc" id="toc" type="button"/>&nbsp;&nbsp; <input class="btn <?php print(($_SESSION['md_admin'] == true)?"btn-outline-light":"btn-outline-info"); ?> my-2 my-sm-0" value="<?php print($LANG['TOC']); ?>" name="toc" id="toc" type="button" style="display: none;"/>&nbsp;&nbsp;
<input class="form-control mr-sm-2" type="text" id="search" name="search"/> <input class="form-control mr-sm-2" type="text" id="search" name="search"/>
<input class="btn <?php print(($_SESSION['md_admin'] == true)?"btn-outline-light":"btn-outline-info"); ?> my-2 my-sm-0" value="Chercher" name="submit" id="submit" type="submit"/> <input class="btn <?php print(($_SESSION['md_admin'] == true)?"btn-outline-light":"btn-outline-info"); ?> my-2 my-sm-0" value="<?php print($LANG['SEARCH']); ?>" name="submit" id="submit" type="submit"/>
</form> </form>
</div> </div>
</nav> </nav>
@ -204,7 +204,7 @@ print(($_SESSION['md_admin'] == true)?'<li class="nav-item dropdown">
print($content); print($content);
?><br><br> ?><br><br>
</div> </div>
<div id="image" class="imagepreview"><img></div><div id="editor"><textarea data-file="" class="form-control"></textarea></div> <div id="image" class="imagepreview" style="display: none;"><img></div><div id="editor" style="display: none;"><textarea data-file="" class="form-control"></textarea></div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -48,7 +48,7 @@ $(function(){
search($("#search").val()); search($("#search").val());
}); });
$("input[name=toc]").click(function(e) { $("input[name=toc]").hover(function(e) {
e.preventDefault(); e.preventDefault();
tocshow(); tocshow();
}); });

View File

@ -182,7 +182,7 @@ $(function(){
search($("#search").val()); search($("#search").val());
}); });
$("input[name=toc]").click(function(e) { $("input[name=toc]").hover(function(e) {
e.preventDefault(); e.preventDefault();
tocshow(); tocshow();
}); });

View File

@ -2,17 +2,20 @@
"MENU": "Menu", "MENU": "Menu",
"HOME" : "Home", "HOME" : "Home",
"GLOSSARY" : "Glossary", "GLOSSARY" : "Glossary",
"MARKDOC" : "About MarKdoc", "MARKDOC" : "About MarkDoc",
"ABOUTMARKDOC" : "# MarkDoc\r\n\r\n**PHP Markdown-based documentation management system, Free &amp; OpenSource :heart_eyes: for easily create your documentation website**\r\n \r\nThis website is heavily formated with markdown format !\r\n```\r\n __ __ _ _____ \r\n | \\\/ | | | | __ \\ \r\n | \\ \/ | __ _ _ __| | _| | | | ___ ___ \r\n | |\\\/| |\/ _` | '__| |\/ \/ | | |\/ _ \\ \/ __|\r\n | | | | (_| | | | <| |__| | (_) | (__ \r\n |_| |_|\\__,_|_| |_|\\_\\_____\/ \\___\/ \\___|\r\n``` \r\n\r\n![gplV3](https:\/\/www.gnu.org\/graphics\/gplv3-127x51.png) Sous licence GPLv3 [Licence](\/special\/gpl-3.0.md) - *Sources downloadables on [GitHub](https:\/\/github.com\/dahut87\/MarkDoc)*\r\n \r\nBased on Pheditor \"PHP file editor\" released under MIT license\r\n \r\n *Specials thanks to Hamid Samak*\r\n \r\n Made in 2020 by Nicolas H.\r\n \r\n---\r\n \r\nFor more informations, visit the demo website running MarkDoc engine at : [https:\/\/markdoc.palon.fr](https:\/\/markdoc.palon.fr)",
"ADMIN" : "Admin", "ADMIN" : "Admin",
"ABOUT" : "About...", "ABOUT" : "About...",
"ABOUTMD" : "about.md",
"SEARCH" : "Search", "SEARCH" : "Search",
"VIEW" : "View", "VIEW" : "View",
"TOC" : "Toc",
"SAVE" : "Save", "SAVE" : "Save",
"LOGIN" : "Login", "LOGIN" : "Login",
"NOPASS" : "No password is given !", "NOPASS" : "No password is given !",
"ALREADYLOG" : "You're already connected !", "ALREADYLOG" : "You're already connected !",
"BADPASS" : "The password is incorrect !", "BADPASS" : "The password is incorrect !",
"FOUND" : "<h1>Search results</h1><p>There is %s results :</p>", "FOUND" : "<h1>Search results</h1><p>There is(are) %d results for this search:</p>",
"404" : "Error 404: file not found !", "404" : "Error 404: file not found !",
"404X2" : "Error 404 on searching customized 404 error file !", "404X2" : "Error 404 on searching customized 404 error file !",
"CONFIG" : "Configuration", "CONFIG" : "Configuration",
@ -22,5 +25,11 @@
"AJAXERROR" : "Ajax error when loading data !", "AJAXERROR" : "Ajax error when loading data !",
"SELECTERROR" : "Error when selecting item.", "SELECTERROR" : "Error when selecting item.",
"NOTCODED" : "Fonction is not yet implemented.", "NOTCODED" : "Fonction is not yet implemented.",
"BLOCKIP" : "This IP address is blocked due to unsuccessful login attempts." "BLOCKIP" : "This IP address is blocked due to unsuccessful login attempts.",
"NOIP": "Your IP address is not allowed to access this page.",
"FORK": "Fork me on GitHub",
"CREATED": "File created.",
"SAVED": "Filed saved.",
"PROTECTED": "File is protected.",
"INDETERMINED": "Indeterminated Error."
} }

View File

@ -2,17 +2,20 @@
"MENU": "Menu", "MENU": "Menu",
"HOME" : "Accueil", "HOME" : "Accueil",
"GLOSSARY" : "Glossaire", "GLOSSARY" : "Glossaire",
"MARKDOC" : "A propos de MarKdoc", "MARKDOC" : "A propos de MarkDoc",
"ABOUTMARKDOC" : "# MarkDoc\r\n\r\n**Syst\u00E8me de gestion de documents Mardown \u00E9crits en PHP, Gratuit &amp; OpenSource :heart_eyes: afin de facilement cr\u00E9er vos sites internet de documentation**\r\n \r\nCe site est lourdement format\u00E9 au format Markdown !\r\n```\r\n __ __ _ _____ \r\n | \\\/ | | | | __ \\ \r\n | \\ \/ | __ _ _ __| | _| | | | ___ ___ \r\n | |\\\/| |\/ _` | '__| |\/ \/ | | |\/ _ \\ \/ __|\r\n | | | | (_| | | | <| |__| | (_) | (__ \r\n |_| |_|\\__,_|_| |_|\\_\\_____\/ \\___\/ \\___|\r\n``` \r\n \r\n![gplV3](https:\/\/www.gnu.org\/graphics\/gplv3-127x51.png) Sous licence GPLv3 [Licence](\/special\/gpl-3.0.md) - *Sources t\u00E9l\u00E9chargeables sur [GitHub](https:\/\/github.com\/dahut87\/MarkDoc)*\r\n \r\nBas\u00E9 sur Pheditor \"PHP file editor\" sous licence MIT\r\n \r\n*Merci \u00E0 Hamid Samak*\r\n \r\nR\u00E9alis\u00E9 en 2020 par Nicolas H.\r\n \r\n---\r\n \r\nPour plus d'informations, visitez le site internet de d\u00E9monstration \u00E0 l'url suivante : [https:\/\/markdoc.palon.fr](https:\/\/markdoc.palon.fr)",
"ADMIN" : "Admin", "ADMIN" : "Admin",
"ABOUT" : "A propos", "ABOUT" : "A propos",
"SEARCH" : "Rechercher", "ABOUTMD" : "apropos.md",
"SEARCH" : "Chercher",
"VIEW" : "Voir", "VIEW" : "Voir",
"TOC" : "TDM",
"SAVE" : "Sauver", "SAVE" : "Sauver",
"LOGIN" : "Se connecter", "LOGIN" : "Se connecter",
"NOPASS" : "Aucun mot de passe n'a été saisi !", "NOPASS" : "Aucun mot de passe n'a été saisi !",
"ALREADYLOG" : "Vous êtes déjà connecté !", "ALREADYLOG" : "Vous êtes déjà connecté !",
"BADPASS" : "Le mot de passe est incorrect !", "BADPASS" : "Le mot de passe est incorrect !",
"FOUND" : "<h1>Résultats de recherche</h1><p>Il y a %s occurence(s) trouvée(s):</p>", "FOUND" : "<h1>Résultats de recherche</h1><p>Il y a %d occurence(s) trouvée(s):</p>",
"404" : "Erreur 404: fichier non trouvé !", "404" : "Erreur 404: fichier non trouvé !",
"404X2" : "Erreur 404 sur fichier 404 personnalisé !", "404X2" : "Erreur 404 sur fichier 404 personnalisé !",
"CONFIG" : "Configuration", "CONFIG" : "Configuration",
@ -22,5 +25,11 @@
"AJAXERROR" : "Erreur ajax durant chargement !", "AJAXERROR" : "Erreur ajax durant chargement !",
"SELECTERROR" : "Erreur de selection.", "SELECTERROR" : "Erreur de selection.",
"NOTCODED" : "La fonction n'est pas implementée.", "NOTCODED" : "La fonction n'est pas implementée.",
"BLOCKIP" : "Cette adresse IP est bloquée à cause de trop de tentatives de connexion non réussies." "BLOCKIP" : "Cette adresse IP est bloquée à cause de trop de tentatives de connexion non réussies.",
"NOIP": "Cette adresse IP n'est pas autorisée à consulter cette page.",
"FORK": "Fork moi sur GitHub",
"CREATED": "Fichier créé.",
"SAVED": "Fichier enregistré.",
"PROTECTED": "Fichier protégé.",
"INDETERMINED": "Erreur indéterminée."
} }

View File

@ -11,19 +11,21 @@
function testip() function testip()
{ {
global $LANG;
if (empty(ACCESS_IP) === false && ACCESS_IP != $_SERVER['REMOTE_ADDR']) if (empty(ACCESS_IP) === false && ACCESS_IP != $_SERVER['REMOTE_ADDR'])
die('Your IP address is not allowed to access this page.'); die($LANG['NOIP']);
} }
function logprotect() function logprotect()
{ {
global $LANG;
if (file_exists(LOG_DIR)) { if (file_exists(LOG_DIR)) {
$log = unserialize(file_get_contents(LOG_DIR)); $log = unserialize(file_get_contents(LOG_DIR));
if (empty($log)) { if (empty($log)) {
$log = []; $log = [];
} }
if (isset($log[$_SERVER['REMOTE_ADDR']]) && $log[$_SERVER['REMOTE_ADDR']]['num'] > 3 && time() - $log[$_SERVER['REMOTE_ADDR']]['time'] < 86400) { if (isset($log[$_SERVER['REMOTE_ADDR']]) && $log[$_SERVER['REMOTE_ADDR']]['num'] > 3 && time() - $log[$_SERVER['REMOTE_ADDR']]['time'] < 86400) {
die('This IP address is blocked due to unsuccessful login attempts.'); die($LANG['BLOCKIP']);
} }
foreach ($log as $key => $value) { foreach ($log as $key => $value) {
if (time() - $value['time'] > 86400) { if (time() - $value['time'] > 86400) {
@ -50,59 +52,34 @@ function redirect($address = null)
function specialurl($url) function specialurl($url)
{ {
switch ($url) { global $LANG;
switch ($url)
{
case ':APROPOS': case ':APROPOS':
$content = '# MarkDoc $content = $LANG['ABOUTMARKDOC'];
**PHP Markdown-based documentation management system, Free &amp; OpenSource :heart_eyes: for easily create your documentation website**
This website is heavily formated with markdown format !
```
__ __ _ _____
| \/ | | | | __ \
| \ / | __ _ _ __| | _| | | | ___ ___
| |\/| |/ _` | \'__| |/ / | | |/ _ \ / __|
| | | | (_| | | | <| |__| | (_) | (__
|_| |_|\__,_|_| |_|\_\_____/ \___/ \___|
```
![gplV3](https://www.gnu.org/graphics/gplv3-127x51.png) Sous licence GPLv3 [Licence](/special/gpl-3.0.md) - *Sources downloadables on [GitHub](https://github.com/dahut87/MarkDoc)*
Based on Pheditor "PHP file editor" released under MIT license
*Specials thanks to Hamid Samak*
Made in 2020 by Nicolas H.
---
For more informations, visit the demo website running MarkDoc engine at : [https://markdoc.palon.fr](https://markdoc.palon.fr)';
$extra = new ParsedownExtraplus(); $extra = new ParsedownExtraplus();
print($extra->text($content)); print($extra->text($content));
exit; exit;
case ':ADMIN': case ':ADMIN':
if (isset($_SESSION['md_admin']) === false || $_SESSION['md_admin'] !== true) if (isset($_SESSION['md_admin']) === false || $_SESSION['md_admin'] !== true)
$content = '<form method="post"><div style="text-align:center"><h1></h1>' . (isset($error) ? '<p style="color:#dd0000">' . $error . '</p>' : null) . '<input id="mdsimple_password" name="md_password" type="password" value="" placeholder="Password&hellip;" tabindex="1"><br><br><input type="hidden" id="action" name="action" value="ident"><input type="submit" value="Login" tabindex="2"></div></form><script type="text/javascript">$("#md_password").focus();</script>'; $content = '<form method="post"><div style="text-align:center"><h1></h1>' . (isset($error) ? '<p style="color:#dd0000">' . $error . '</p>' : null) . '<input id="mdsimple_password" name="md_password" type="password" value="" placeholder="Password&hellip;" tabindex="1"><br><br><input type="hidden" id="action" name="action" value="ident"><input type="submit" value="'.$LANG['LOGIN'].'" tabindex="2"></div></form><script type="text/javascript">$("#md_password").focus();</script>';
else else
$content = "<h1>Vous êtes déjà logué !</h1>"; $content = '<h1>'.$LANG['ALREADYLOG'].'</h1>';
print($content); print($content);
exit; exit;
case ':SITEMAP': case ':SITEMAP':
$content="<h1>Plan de site</h1>"; $content='<h1>'.$LANG['SITEMAP'].'</h1>';
foreach(plan(CONTENT_DIR) as $file) foreach(plan(CONTENT_DIR) as $file)
$content.='<p class="fileletter"><a href="'.$file.'">'.$file.'</a></p>' ; $content.='<p class="fileletter"><a href="'.$file.'">'.$file.'</a></p>' ;
return $content; return $content;
case ':GLOSSAIRE': case ':GLOSSAIRE':
$content="<h1>Glossaire</h1>"; $content='<h1>'.$LANG['GLOSSARY'].'</h1>';
foreach(glossary(CONTENT_DIR) as $letter => $files) foreach(glossary(CONTENT_DIR) as $letter => $files)
{ {
$content.='<p class="letter">'.$letter.'</p>'; $content.='<p class="letter">'.$letter.'</p>';
foreach($files as $file) foreach($files as $file)
$content.='<p class="fileletter"><a href="'.$file.'">'.$file.'</a></p>' ; $content.='<p class="fileletter"><a href="'.$file.'">'.$file.'</a></p>' ;
} }
return $content;
case ':GLOSSAIRE':
return $content; return $content;
} }
} }
@ -220,27 +197,29 @@ function history($file)
function setcontent($url,$data) function setcontent($url,$data)
{ {
global $LANG;
$file = CONTENT_DIR.$url; $file = CONTENT_DIR.$url;
if (!file_exists($file)) if (!file_exists($file))
{ {
file_put_contents($file, $data); file_put_contents($file, $data);
$content='success|Fichier créé.'; $content='success|'.$LANG['CREATED'];
} }
else if (is_writable($file)) else if (is_writable($file))
{ {
file_put_contents($file, $data); file_put_contents($file, $data);
history($file); history($file);
$content='success|Fichier enregistré.'; $content='success|'.$LANG['SAVED'];
} }
else if (!is_writable($file)) else if (!is_writable($file))
$content='danger|Fichier protégé.'; $content='danger|'.$LANG['PROTECTED'];
else else
$content='danger|Erreur indéterminée.'; $content='danger|'.$LANG['INDETERMINED'];
return $content; return $content;
} }
function getcontent($url,$md=true) function getcontent($url,$md=true)
{ {
global $LANG;
$file = CONTENT_DIR.$url; $file = CONTENT_DIR.$url;
if (file_exists($file)) if (file_exists($file))
$content=file_get_contents($file); $content=file_get_contents($file);
@ -250,7 +229,7 @@ function getcontent($url,$md=true)
if (file_exists(CONTENT_DIR . "special/404.md")) if (file_exists(CONTENT_DIR . "special/404.md"))
$content=getcontent("special/404.md"); $content=getcontent("special/404.md");
else else
$content="** Erreur 404 sur erreur 404 : pas de fichier 404.md**"; $content='**'.$LANG['404X2'].'**';
} }
if ($md==true) if ($md==true)
{ {
@ -295,6 +274,7 @@ function filesJSON($path,$all,$first=true)
function getnav() function getnav()
{ {
global $LANG;
$menu=getcontent("special/nav.md"); $menu=getcontent("special/nav.md");
$menuitems=explode("\n",$menu); $menuitems=explode("\n",$menu);
$data=""; $data="";
@ -304,6 +284,6 @@ function getnav()
$a = new SimpleXMLElement($item); $a = new SimpleXMLElement($item);
$data.='<a class="dropdown-item" href="'.$a['href'].'">'.$a[0].'</a>'; $data.='<a class="dropdown-item" href="'.$a['href'].'">'.$a[0].'</a>';
} }
$data.='<a class="dropdown-item" href=":APROPOS">Sur MarkDoc...</a>'; $data.='<a class="dropdown-item" href=":APROPOS">'.$LANG['MARKDOC'].'</a>';
return $data; return $data;
} }