Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125

    gettext , file .mo file .po , translation table

    allora ....mi piacerebbe mettere un po di chiarezza su questo argomento e penso che a qualcuno prima o poi interessi. Per farlo pero' ho bisogno dell'aiuto di tutti.... Diciamo che per ora ho solo domande....speriamo di aver risposte.

    In pratica, anche guardando i post di ieri, sono riuscito ad abilitare il modulo gettext, e nella mia pagina php ho scitto il seguente codice(preso da php.net) :
    codice:
    // Set language to German
    setlocale(LC_ALL, 'de_DE');
    
    // Specify location of translation tables
    bindtextdomain("myPHPApp", "./locale");
    
    // Choose domain
    textdomain("myPHPApp");
    
    // Translation is looking for in ./locale/de_DE/LC_MESSAGES/myPHPApp.mo now
    
    // Print a test message
    echo gettext("Welcome to My PHP Application");
    
    // Or use the alias _() for gettext()
    echo _("Have a nice day");

    Quello che non mi torna e' : dove sta questa translation tables??? la devo creare io ? cos'e' un file .mo ?
    navigando ho visto che come standard si usano file .po che contengono tutte le traduzioni. Come posso sfruttare un file.po? dove lo metto? e nel codice e' bindtextdomain che dice dove sta questo file?

    Spero che qualcuno con un buon cuore e una gran passione per la programmazione mi aiuti a capirci meglio....
    Ricordo che gettext e' praticamente uno standard usato da molti linguaggi e sarebbe veramente interessante approfondire l'argomento....o no?


    grazie a quanti leggeranno questo post.

    ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    up raga.....

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    nessuno?
    up

  4. #4
    la devi creare tu e poi la devi compilare

    la traslation table contiene semplicemente qualcosa del tipo

    Welcome to My PHP Application=Benvenuto alla mia applicazione PHP
    Have a nice day=Buona Giornata

    ovviamente ci sta anche altro, ma siccome gettext è una cosa standard di unix dai tempi dei tempi cercando su google gettext troverai milioni d'informazioni sulla cosa

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    ho trovato tante cose ma nulla per php...
    non e' che potresti dirmi come modificare questo codice calcolando che ho gia pronto un file .po ma non so dove metterlo?

    grazie
    <?php

    // Set language to German
    setlocale(LC_ALL, 'it_IT');

    // Specify location of translation tables
    bindtextdomain("??????", ????????????");

    // Choose domain
    textdomain("??????????");



    // Print a test message
    gettext(" consists of a");

    // Or use the alias _() for gettext()
    echo _("Have a nice day");
    ?>

  6. #6
    Originariamente inviato da stiffa
    ho trovato tante cose ma nulla per php...
    non e' che potresti dirmi come modificare questo codice calcolando che ho gia pronto un file .po ma non so dove metterlo?

    grazie
    <?php

    // Set language to German
    setlocale(LC_ALL, 'it_IT');

    // Specify location of translation tables
    bindtextdomain("??????", ????????????");

    // Choose domain
    textdomain("??????????");



    // Print a test message
    gettext(" consists of a");

    // Or use the alias _() for gettext()
    echo _("Have a nice day");
    ?>
    se tu avessi guardato quelle cose che non erano per php avresti capito tante cose ......

    qui c'è il manuale di gettext che non solo ti spiega come funziona e su quale principio si basa ma ti spiega anche come creare la tabella di conversione e come compilarla
    http://www.gnu.org/software/gettext/...o/gettext.html

    per finire ... nella pagina del manuale di php ci sono svariati e svariati esempi tra i commenti
    http://it2.php.net/gettext

    oltre che li ci stanno anche le singole pagine con le spiegazioni specifiche di ogni comando

  7. #7
    dai un'occhiata a : http://php.html.it/articoli/leggi/17...la-libreria-d/

    anche se contiene qualche inesattezza: ricordati infatti di specificare anche il charset (nel mio caso UTF-8):
    Codice PHP:
    if ($HTTP_COOKIE_VARS["lang"]=="en_GB.UTF-8"//controllo in un cookie se la lingua è l'inglese
        
    $locale $HTTP_COOKIE_VARS["lang"];
    else 
    $locale "it_IT.UTF-8"//se il cookie non contiene l'inglese il valore di default è l'italiano
    $domain "messages";
    putenv("LC_ALL=$locale"); //setto la variabile d'ambiente che gettext prende in considerazione per cercare i file .mo
    //echo getenv("LC_ALL"); //questa istruzione stampa la variabile che indica la lingua corrente
    setlocale(LC_ALL$locale); //setto la variabile d'ambiente che gettext prende in considerazione
    bindtextdomain("$domain""locale");
    textdomain("$domain");
    bind_textdomain_codeset("$domain"'UTF-8'); //indica la codifica dei file di traduzione 

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 © 2025 vBulletin Solutions, Inc. All rights reserved.