No, aspetta, io con `str_replace()` non faccio, uso Symfony come framework e JMSTranslationBundle per gestire le traduzioni, quindi il procedimento è completamente diverso.
Però, nel tuo caso, il metodo migliore è usare [del]`str_replace()`[/del] gli array.
Dunque, hai un file PHP del tipo
codice:
// it.php
$translations = [
'home_page.welcome' => 'Benvenuto nel mio sito web'
];
Nella tua pagina, invece, hai qualcosa del tipo:
codice:
...
<h1><?php echo $translations['home_page.welcome']</h1>
...
Usare un array ti permette di preparare la tua pagina ad accettare qualunque tipo di sorgente.
Per esempio, in questo momento scrivi il file a mano, ma domani potresti voler gestire tutto da pannello di controllo. Usare gli array ti permette di avere la pagina pronta: anzichè importare il file delle traduzioni, semplicemente esegui una query sul database e lo passi alla pagina. E non le interessa se la sorgente dell'array è un file o il database: le interessa solo che ci sia un array che si chiama `$translations` che contiene la chiave `home_page.welcome`.
Con `str_replace()`, invece, fai in questo modo:
codice:
$str = '<h1>home_page.welcome</h1>';
foreach ($translations as $transKey => $trans) {
$str = str_replace($transKey, $trans, $str);
}
echo $str;
Molto dipende da come hai strutturato la pagina e il codice.
Poi puoi anche migliorare l'uso di str_replace eliminando il foreach, ma il concetto è questo.