Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2017
    Messaggi
    27

    Array o define in sito multilingua

    Salve, vorrei chiedervi se secondo voi in un sito multi lingua, dove le varie traduzioni sono salvate nei file it.php, en.php ect, se mi conviene usare:

    Codice PHP:
    $lang = array(
        
    'TRADUZIONE 1' => 'testo',
        
    'TRADUZIONE 2' => 'Testo'
    oppure

    Codice PHP:
    define ("TRADUZIONE 1" "testo");
    define ("TRADUZIONE 2","testo"); 
    Io credo che sia indifferente, ma forse per logica bisognerebbe usare le costanti visto che il testo una volta tradotto rimane quello?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,727
    Non è detto che resti costante, esistono anche traduzioni con testo dinamico.
    Un esempio:
    "Hai x nuovi messaggi"
    dove x può essere un numero qualsiasi.

    con l'array puoi sostituire dinamicamente x col numero che ti serve, con le costanti invece, in questo caso, sei costretto a concatenare 3 stringhe.
    Più in generale con le costanti dovrai spezzare la stringa ogni volta che c'è un valore dinamico.

    Io userei l'array.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2019
    residenza
    Sicilia
    Messaggi
    68
    Usa gli array!

    Eventualmente fatti restituire l'array delle traduzioni con return, quindi nello script dove includi il file delle traduzioni usa require() e assegni il valore ritornato ad una variabile.

    Es. file translations.php

    Codice PHP:
    return [
        
    'traduzione 1' => 'testo1',
        
    'traduzione 2' => 'testo2'

    nello script dove ti servono le traduzioni

    Codice PHP:
    $translations = require('path-to-translations/translations.php'); 

  4. #4
    Mi sembra che le due cose non siano affatto alternative:

    define("TRANSLATIONS",array("gotnfriends"="Hai %1$s amici"));

    sprintf(TRANSLATIONS["gotnfriends"],$numeroamici);

    Ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.