Pagina 1 di 1

Curiosità su variabili di testo

Inviato: 19/04/2006, 20:11
da semolino
Sappiamo che i testi sono scritti nei file della lingua.
Nelle pagine i testi vengono richiamati in questo modo:

<?php echo PULL_DOWN_DEFAULT; ?>

e nel file della lingua c'è

define('PULL_DOWN_DEFAULT', 'Selezionare');

Se provo a fare in un nuovo file che definisce

define('PROVA', 'xxxx');
a video ottengo
PROVA e no xxxx

Come mai?
Di solito le variabili non si stampano con echo $variabile?

Re: Curiosità su variabili di testo

Inviato: 19/04/2006, 22:54
da Bass
semolino ha scritto: Come mai?
Di solito le variabili non si stampano con echo $variabile?
Hai rimandato il nuovo file a un suo file di lingua?

'iao

Sergio

Inviato: 20/04/2006, 1:06
da semolino
In testa alla nuova pagina io faccio l'include del nuovo faile di lingua.
Ma non me li in terpreta... :(
Strano, però.

Inviato: 20/04/2006, 18:59
da gioborza
hai aperto e chiuso correttamente i tag php?

<? ........?>

Inviato: 21/04/2006, 0:50
da semolino
Dunque ho questa situazione:
un file italian.php che contiene
define('TITLE', 'MioSito.it');
define('FOOTER', 'cxcxcxc');

un file index.php che è cosi:
include('includes/languages/ialian.php');
...
<title><?php echo TITLE; ?></title>
...
<?php require('footer.php'); ?> (che contiene)
<?php echo FOOTER; ?>

Quello che ottengo è
TITLE
FOOTER
invece di
MioSito
cxcxcxcx

Proprio non capisco.
Guardando il codice di osc ho trovato questo, centra qualcosa?

Codice: Seleziona tutto

if (!tep_session_is_registered('language') || isset($HTTP_GET_VARS['language'])) {
    if (!tep_session_is_registered('language')) {
      tep_session_register('language');
      tep_session_register('languages_id');
    }

    include(DIR_WS_CLASSES . 'language.php');
    $lng = new language();

    if (isset($HTTP_GET_VARS['language']) && tep_not_null($HTTP_GET_VARS['language'])) {
      $lng->set_language($HTTP_GET_VARS['language']);
    } else {
      $lng->get_browser_language();
    }

    $language = $lng->language['directory'];
    $languages_id = $lng->language['id'];
  }

// include the language translations
  require(DIR_WS_LANGUAGES . $language . '.php');

Inviato: 21/04/2006, 8:09
da gioborza
il tuo italian.php deve iniziare e finire con <?php ......e....?>
così:
<?php
define('TITLE', 'MioSito.it');
define('FOOTER', 'cxcxcxc');
?>

Stessa cosa per l'index.php ...apri e chiudi i tag..attenzione nell'include dell'index hai scritto "ialian" e non Italian!!!

prova!

Inviato: 21/04/2006, 9:42
da semolino
Ma porca miseria!!!!! Era solo colpa dell'italian scritto male!!!
Per il consiglio che mi hai dato di aprire e chiudere con <?php ?>... lo so :lol:
Non l'ho riportato nell'esempio, ma grazie lo stesso.

Funziona!!
Come posso fare per far riconoscere al sistema la lingua e includere i diversi file?
Sto creando una sezione del sito che funziona parallelamente al osc, guindi vorrei utilizzare gli stessi criteri.

Inviato: 21/04/2006, 10:45
da gioborza
Ciao, da buon ex programmatore di vari linguaggi ti posso dare un consiglio, soprattutto quando stai lavorando da molte ore, si fa oltre mezzanotte (come nel caso del tuo post!) e, leggi e rileggi, una cosa che hai fatto centomila volte ti sembra giusta ma non vuole funzionare: vattene a dormire o in alternativa prenditi un caffè e soprattutto un po' d'aria, dopo tutto ti sembrerà più chiaro ed evidente!
Io la chiamo tecnica dell'ossigeno........

ciao ciao

Inviato: 22/04/2006, 13:45
da semolino
Hai ragione!!! :lol:
Mi puoi dare un consiglio di come comportarmi con le lingue? Il modo più semplice per capire che lingua includere? Devo salvarle in sessioni?

Inviato: 22/04/2006, 21:00
da gioborza
Ciao, non ho ben capito cosa vuoi fare con le lingue ma la gestione di base dell'osc mi sembra già più che completa.
Se intendi dire quali lingue installare invece, quello devi stabilirlo in base al contenuto del tuo sito ed al target di riferimento........

ciaociao

Inviato: 22/04/2006, 21:20
da semolino
Ora ti spiego bene, forse l'ho scritto a spizzichi nelle varie risposte.
Praticamente sto realizzando una parte del sito che è in parallelo con l'osc. Ovviamente anche per questa parte do' la possibilità di scegliere le lingue. Mi piacerebbe utilizzare lo stesso metodo per capire che lingua tilizzare per poter aggiungere un file nella cartella italian/ , english/, ecc che contiene le definizioni di testo che servono a questa parte del sito.

Vorrei capire in che modo il sistema capisce che lingua includere (ovviamente parlo del codice contenuto nelle pagine di osc) in modo da poterlo studiare e capire come intervenire sulla mia nuova parte.

Inviato: 22/04/2006, 21:30
da gioborza
Osc salva tutta una serie di variabili nel db nella tabella sessions tra cui la veriabile della lingua di default e quella eventualmente selezionata sucessivamente e poi immagino che le usi per la gestione delle pagine.
In ogni caso mi sembra una gestione di variabili globali o comunque molto simili. In realtà non ho mai approfondito ma spero che non rilegga il db ogni volta che gli serve una di quelle variabili!

Inviato: 23/04/2006, 12:22
da semolino
Già, non sarebbe l'ideale...
Se quacluno sa dirmi qualcosa di più è ben accetto :wink:

Inviato: 23/04/2006, 12:31
da Bass
semolino ha scritto: Se quacluno sa dirmi qualcosa di più è ben accetto :wink:
E' una sola variabile $language che viene impostata o tramite cookie o tramite la lingua di default. Poi in ogni file viene richiamato il file di lngua corretto tramite questa riga (es. per product_info.php)

Codice: Seleziona tutto

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PRODUCT_INFO);
'iao

Sergio