Added language into the build process and rebuilt index

This commit is contained in:
Andrew Collington 2022-07-18 21:21:27 +01:00
parent bedd520711
commit 47ad738329
2 changed files with 126 additions and 5 deletions

View file

@ -9,10 +9,22 @@
* @license MIT, https://acollington.mit-license.org/
*/
$options = getopt('j', ['local-js']);
$options = getopt('jl:', ['local-js', 'lang:']);
$makeJsLocal = (isset($options['j']) || isset($options['local-js']));
$useLanguage = $options['l'] ?? $options['lang'] ?? null;
$languagePack = 'null';
$parentPath = dirname(__DIR__);
if ($useLanguage !== null) {
$useLanguage = preg_replace('/[^a-z_-]/', '', $useLanguage);
$languageFile = __DIR__ . "/_languages/{$useLanguage}.json";
if (!file_exists($languageFile)) {
echo "The '{$useLanguage}' file does not exist - using default English\n\n";
} else {
$languagePack = "<<< EOJSON\n" . file_get_contents($languageFile) . "\nEOJSON";
}
}
if (!file_exists($parentPath . '/node_modules')) {
echo "🐢 Installing node modules\n";
exec('npm install');
@ -28,9 +40,10 @@ $template = trim(file_get_contents(__DIR__ . '/template.phps'));
$jsOutput = trim(file_get_contents(__DIR__ . '/interface.js'));
$cssOutput = trim(file_get_contents(__DIR__ . '/interface.css'));
$phpOutput = trim(implode('', array_slice(file($parentPath . '/src/Opcache/Service.php'), 3)));
$output = str_replace(
['{{JS_OUTPUT}}', '{{CSS_OUTPUT}}', '{{PHP_OUTPUT}}', '{{LANGUAGE_PACK}}'],
[$jsOutput, $cssOutput, $phpOutput, 'null'],
[$jsOutput, $cssOutput, $phpOutput, $languagePack],
$template
);
if ($makeJsLocal) {

114
index.php
View file

@ -40,7 +40,115 @@ $options = [
'jit' => true // show the jit buffer chart/big number
],
// json structure of all text strings used, or null for default
'language_pack' => null
'language_pack' => <<< EOJSON
{
"(unsafe) Collect constants": "(instable) Collecter les constantes",
"++, +=, series of jumps": "++, +=, séries de sauts",
"Adjust used stack": "Ajuster la pile utilisée",
"Ascending": "Croissant",
"Available functions": "Fonctions disponibles",
"blacklist misses": "Ratés mis sur liste noire",
"buffer size": "taille du tampon",
"Cached": "En cache",
"CALL GRAPH optimization": "Optimisation CALL GRAPH",
"CFG based optimization": "Optimisation basée sur CFG",
"Compile all functions on script load": "Compiler toutes les fonctions au chargement du script",
"Compile functions on first execution": "Compiler les fonctions à la première exécution",
"Constant conversion and jumps": "Conversion des constantes et sauts",
"CPU-specific optimization": "Optimisation spécifique au CPU",
"CSE, STRING construction": "Construction CSE, STRING",
"Currently unused": "Actuellement inutilisé",
"DCE (dead code elimination)": "DCE (élimination du code mort)",
"Descending": "Décroissant",
"DFA based optimization": "Optimisation basée sur DFA",
"Directives": "Directives",
"Disable CPU-specific optimization": "Désactiver l'optimisation spécifique au processeur",
"Disable real-time update": "Désactiver la mise à jour en temps réel",
"Do not perform register allocation": "Ne pas effectuer d'allocation de registre",
"Enable real-time update": "Activer la mise à jour en temps réel",
"Enable use of AVX, if the CPU supports it": "Activer l'utilisation d'AVX, si le CPU le prend en charge",
"false": "faux",
"File list pagination": "Pagination de la liste des fichiers",
"force file invalidation": "forcer l'invalidation du fichier",
"free memory": "mémoire libre",
"General info": "Informations générales",
"has been invalidated": "a été invalidé",
"hit rate": "taux de succès",
"hits": "accès",
"Host": "Hôte",
"Ignored": "Ignoré",
"INIT_FCALL_BY_NAME -> DO_FCALL": "INIT_FCALL_BY_NAME -> DO_FCALL",
"Inline functions": "Fonctions inline",
"Inline VM handlers": "Gestionnaires de VM inline",
"interned strings usage": "utilisation des chaînes internées",
"Invalidate all matching files": "Invalider tous les fichiers correspondants",
"jit buffer free": "tampon jit libre",
"jit buffer": "tampon jit",
"keys": "clés",
"Last modified": "Dernière modification",
"last modified": "dernière modification",
"Last used": "Dernière utilisation",
"last used": "dernière utilisation",
"max cached keys": "max de clés en cache",
"Memory consumption": "Consommation mémoire",
"memory usage": "utilisation de la mémoire",
"memory": "mémoire",
"Merge equal constants": "Fusionner les constantes égales",
"Minimal JIT (call standard VM handlers)": "JIT minimal (appel des gestionnaires de VM standard)",
"Next": "Suivant",
"No files have been cached or you have <i>opcache.file_cache_only<\/i> turned on": "Aucun fichier n'a été mis en cache ou vous avez <i>opcache.file_cache_only<\/i> activé",
"No files have been ignored via <i>opcache.blacklist_filename<\/i>": "Aucun fichier n'a été ignoré via <i>opcache.blacklist_filename<\/i>",
"No files have been preloaded <i>opcache.preload<\/i>": "Aucun fichier n'a été préchargé <i>opcache.preload<\/i>",
"No JIT": "Pas de JIT",
"no value": "pas de valeur",
"NOP removal": "Suppression de NOP",
"number of cached files": "nombre de fichiers en cache",
"number of cached keys": "nombre de clés en cache",
"Number of hits": "Nombre d'accès",
"number of hits": "nombre d'accès",
"number of misses": "nombre de ratés",
"number of strings": "nombre de chaînes",
"opcache statistics": "statistiques d'opcache",
"Optimization level": "Niveau d'optimisation",
"Optimize whole script": "Optimiser tout le script",
"Overview": "Vue d'ensemble",
"Path": "Chemin",
"Perform block-local register allocation": "Effectuer l'allocation de registre local de bloc",
"Perform global register allocation": "Effectuer une allocation de registre globale",
"preload memory": "précharger la mémoire",
"Preloaded": "Préchargé",
"Previous": "Précédent",
"Profile functions on first request and compile the hottest functions afterwards": "Profiling des fonctions à la première demande et compilation des fonctions les plus fréquentes par la suite",
"Profile on the fly and compile hot functions": "Profiling à la volée et compiler les fonctions les plus fréquentes",
"Register allocation": "Allocation de registre",
"Remove unused variables": "Supprimer les variables inutilisées",
"Reset cache": "Réinitialiser le cache",
"SCCP (constant propagation)": "SCCP (propagation des constantes)",
"Script": "Script",
"Server Software": "Logiciel serveur",
"Sort order": "Ordre de tri",
"Start typing to filter on script path": "Commencez à taper pour filtrer sur le chemin du script",
"TMP VAR usage": "Utilisation TMP VAR",
"total memory": "mémoire totale",
"Trigger": "Déclencheur",
"true": "vrai",
"Use call graph": "Utiliser le graphe des appels",
"Use tracing JIT. Profile on the fly and compile traces for hot code segments": "Utilisez le suivi JIT. Profiling à la volée et compilation des traces pour les segments de code les plus fréquents",
"Use type inference": "Utiliser l'inférence de type",
"used memory": "mémoire utilisée",
"View manual page": "Voir la page du manuel",
"View {0} manual entry": "Voir la page {0} du manuel",
"wasted memory": "mémoire perdue",
"You have <i>opcache.file_cache_only<\/i> turned on. As a result, the memory information is not available. Statistics and file list may also not be returned by <i>opcache_get_statistics()<\/i>.": "Vous avez <i>opcache.file_cache_only<\/i> activé. Par conséquent, les informations sur la mémoire ne sont pas disponibles. Les statistiques et la liste de fichiers peuvent également ne pas être renvoyées par <i>opcache_get_statistics()<\/i>.",
"{0} files cached": "{0} fichiers mis en cache",
"{0} files cached, {1} showing due to filter '{2}'": "{0} fichiers mis en cache, {1} s'affichent en raison du filtre '{2}'",
"{0} ignore file locations": "{0} ignore les fichiers en fonction de l'emplacement",
"{0} preloaded files": "{0} fichiers préchargés",
"Last reset": "",
"Start time": "",
"never": ""
}
EOJSON
];
/*
@ -394,7 +502,7 @@ class Service
->setTimezone($this->tz)
->format($this->getOption('datetime_format')),
'last_restart_time' => ($status['opcache_statistics']['last_restart_time'] === 0
? 'never'
? $this->txt('never')
: (new DateTimeImmutable("@{$status['opcache_statistics']['last_restart_time']}"))
->setTimezone($this->tz)
->format($this->getOption('datetime_format'))
@ -522,7 +630,7 @@ $opcache = (new Service($options))->handle();
<script type="text/javascript">
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }