website logo
Auteur
avatar
Nicolas2

Forum » » Road map développement » » traduction


Posté : 5 mars 2021 à 15:23 icone du post



function translate($phrase, $args=null) {

$params = (func_num_args() === 2) ? (array)$args : array_slice(func_get_args(), 1);

$tmp = translate_pass1($phrase, $params);

!!!!!include!!!!!("language/lang-mods.php");
return (htmlentities($tmp,ENT_QUOTES|ENT_SUBSTITUTE|ENT_HTML401,cur_charset));
}

function translate_pass1($phrase, $params=null) {
settype($englishname,'string');
switch($phrase) {
case "je suis un phrase avec {0} argements {1}": $tmp="je suis une phrase avec {0} arguments {1}"; break;
case "$englishname": $tmp="$englishname"; break;
default: $tmp=$phrase; break;
}

if (is_array($params))
$locale = language_iso(1,0,0);
return \MessageFormatter::formatMessage($locale, $tmp, $params);
else
return $tmp;


ce qui permet d'éviter d'avoir des tonnes de translate juste pour un mot et ce qui évite ce genre de truc



translate("Désolé, votre mot de passe doit faire au moins").' '.$minpass.' '.translate("caractères")


l'apel a translate si tu a des arguments ce fait



translate("je suis une phrase avec {0} arguments {1}", 5, "!!!");
translate("Désolé, votre mot de passe doit faire au moins {0} caractères", 12);


te donne

je suis une phrase avec 5 arguments !!!
Désolé, votre mot de passe doit faire au moins 12 caractères

et si pas d'argument



translate("je suis une phrase sans argument");


une function plus courte moins long a écrire lol


function __($phrase, $args = null)
{
if (! $phrase) return '';

return translate($phrase, $args);
}

echo __('test pour voir c\'est {0}', 'cool');


test pour voir c'est cool
 Message édité par : Nicolas2 / 05-03-2021 16:47

Cet article provient de Labo NPDS 2015-2024
https://labo.infocapagde.com/viewtopic.php?topic=1480&forum=21