id/common/strings.php

60 lines
1.3 KiB
PHP
Raw Normal View History

2024-06-28 22:41:18 +01:00
<?php
2024-07-03 14:20:33 +01:00
function get_string($key="generic.generic", $substitutes=[]) {
2024-06-28 22:41:18 +01:00
global $LANG;
$key_path = explode('.', $key);
$result = $LANG;
foreach ($key_path as $k) {
if (isset($result[$k])) {
$result = $result[$k];
} else {
return $key;
}
}
2024-07-03 14:20:33 +01:00
if (count($substitutes) > 0) {
foreach ($substitutes as $key => $substitute) {
$re = '/{{('. $key .')}}/';
$subst = $substitute;
$result = preg_replace($re, $subst, $result, 1);
}
}
2024-06-28 22:41:18 +01:00
return $result;
}
2024-07-03 14:20:33 +01:00
function patch_lang($lang="en"): void
{
2024-06-28 22:41:18 +01:00
global $LANG, $DOC_ROOT;
$temp = $LANG;
if (file_exists("$DOC_ROOT/strings/$lang.php")) {
require_once("$DOC_ROOT/strings/$lang.php");
}
function merge_arrays($original, $new) {
foreach ($new as $key => $value) {
if (is_array($value)) {
if (!isset($original[$key])) {
$original[$key] = [];
}
$original[$key] = merge_arrays($original[$key], $value);
} else {
// Replace only if the value is not blank
if ($value !== '') {
$original[$key] = $value;
}
}
}
return $original;
}
$LANG = merge_arrays($temp, $LANG);
}