Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [gettext] Non funziona, dove sbaglio?

    Sto ormai impazzendo da 2 giorni e non riesco a venirne a capo...
    Ho seguito questo tutorial di HTML.it (http://php.html.it/articoli/leggi/17...onalizzazione/)

    Ho letto migliaia di articoli ma NIENTE!
    [list=1][*]Le pagine php si trovano insieme ad una cartella chiamata "LOCALE"[*]nella cartella "LOCALE" ci sono "it_IT", "en_US"[*]in ognuna delle cartelle c'è una cartella "LC_MESSAGES", la quale a sua volta contiene messages.po e messages.mo[*]tutte le cartelle e i relativi file *.mo e *.po hanno i permessi di lettura per Apache[*]il modulo per PHP di gettext è installato e attivo[/list=1]

    Allego qui di seguito un esempio che comunque non mi funziona:
    Codice PHP:
        bindtextdomain("messages""/var/www/sito/LOCALE");
    setlocale(LC_ALL"it_IT");
    textdomain("messages");

    echo 
    _("test message, if works, I'll see this phrase in italian!"); 
    ma la frase resta in inglese...
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    posta il risultato di:

    Codice PHP:
    var_dump(bindtextdomain("messages""/var/www/sito/LOCALE"));
    var_dump(setlocale(LC_ALL"it_IT")); 
    ed incolla il contenuto di entrambi i messages.po (bastano solo le 2 righe da ciascun file che descrivono la frase che stai testando).

    e mostra il commando con il quale compili i *.mo

  3. #3
    Originariamente inviato da bubi1
    posta il risultato di:

    Codice PHP:
    var_dump(bindtextdomain("messages""/var/www/sito/LOCALE"));
    var_dump(setlocale(LC_ALL"it_IT")); 
    string(30) "/var/www/administration/LOCALE"
    bool(false)
    ed incolla il contenuto di entrambi i messages.po (bastano solo le 2 righe da ciascun file che descrivono la frase che stai testando).
    LOCALE/it_IT/LC_MESSAGES/messages.po:

    # SOME DESCRIPTIVE TITLE.
    # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
    # This file is distributed under the same license as the PACKAGE package.
    # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
    #
    #, fuzzy
    msgid ""
    msgstr ""
    "Project-Id-Version: PACKAGE VERSION\n"
    "Report-Msgid-Bugs-To: \n"
    "POT-Creation-Date: 2010-01-12 20:57+0000\n"
    "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    "Language-Team: LANGUAGE <LL@li.org>\n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=CHARSET\n"
    "Content-Transfer-Encoding: 8bit\n"

    #: ../../../login.php:19
    msgid "test message, if works, I'll see this phrase in italian!"
    msgstr "messaggio di test, se funziona, vedro' questa frase in italiano!"

    --------------------------------------------------------

    LOCALE/en_US/LC_MESSAGES/messages.po:

    # SOME DESCRIPTIVE TITLE.
    # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
    # This file is distributed under the same license as the PACKAGE package.
    # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
    #
    #, fuzzy
    msgid ""
    msgstr ""
    "Project-Id-Version: PACKAGE VERSION\n"
    "Report-Msgid-Bugs-To: \n"
    "POT-Creation-Date: 2010-01-12 20:57+0000\n"
    "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    "Language-Team: LANGUAGE <LL@li.org>\n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=CHARSET\n"
    "Content-Transfer-Encoding: 8bit\n"

    #: ../../../login.php:19
    msgid "test message, if works, I'll see this phrase in italian!"
    msgstr ""


    e mostra il commando con il quale compili i *.mo
    msgfmt messages.po
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    var_dump(setlocale(LC_ALL, "it_IT"));
    ....
    bool(false)
    e' questo il problema.


    Prova anche:
    var_dump(setlocale(LC_ALL, "it"));
    var_dump(setlocale(LC_ALL, "it.iso88591"));
    var_dump(setlocale(LC_ALL, "it.iso885915@euro"));
    var_dump(setlocale(LC_ALL, "it.utf8"));

    Se tutti ti danno false, e' evidente che sul tuo sistema manca il locale italiano. Per vedere che locales supporta il tuo sistema, fai nella shell "locale -a"
    Se manca il locale, lo puoi installare con il tuo package manager.

  5. #5
    Originariamente inviato da bubi1
    e' questo il problema.


    Prova anche:
    var_dump(setlocale(LC_ALL, "it"));
    var_dump(setlocale(LC_ALL, "it.iso88591"));
    var_dump(setlocale(LC_ALL, "it.iso885915@euro"));
    var_dump(setlocale(LC_ALL, "it.utf8"));

    Se tutti ti danno false, e' evidente che sul tuo sistema manca il locale italiano. Per vedere che locales supporta il tuo sistema, fai nella shell "locale -a"
    Se manca il locale, lo puoi installare con il tuo package manager.
    ma quindi... se realizzo un sito web con 200 lingue, affinché funzioni dovrò assicurarmi che sul server sul quale gira devono essere installate tutte quelle lingue??? mi sembra strano...
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  6. #6
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Originariamente inviato da hacker_nait
    ma quindi... se realizzo un sito web con 200 lingue, affinché funzioni dovrò assicurarmi che sul server sul quale gira devono essere installate tutte quelle lingue??? mi sembra strano...
    che ci vuoi fare, e' un mondo ingiusto...

    ps: ovviamente nessuno ti impedisce di usare un metodo di localizzazione che non sia dipendente dal sistema.

    pps: c'e' anche da dire che se nessun locale tra quelli elencati sopra ti funziona, il tuo server e' un eccezione che io non ho mai incontrato..

    ppps: cacchio, ho sbagliato. Nel elenco ho inserito locales errati, me ne sono appena accorto.
    Dovrebbe essere una di queste:
    it
    it_IT
    it_IT@euro
    it_IT.iso88591
    it_IT.iso885915@euro
    it_IT.utf8

    dovresti fare un "locale -a|grep it" per vedere cosa c'e' effettivamente.

  7. #7
    Originariamente inviato da bubi1
    che ci vuoi fare, e' un mondo ingiusto...

    ps: ovviamente nessuno ti impedisce di usare un metodo di localizzazione che non sia dipendente dal sistema.
    e come installo una nuova localizzazione (sto su debian)?
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  8. #8
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Originariamente inviato da hacker_nait
    e come installo una nuova localizzazione (sto su debian)?
    Ho usato per poco e tanto tempo fa debian, quindi non saprei dirti. Cerca su google o chiedi nel forum linux.

    Ma prima di tutto guarda i miei ps di sopra, e fai una prova con i locales che ti ho ripostato - credo che dovresti averne almeno uno di loro..

  9. #9
    Ciao Avete risolto poi? Io ho lo stesso problema .
    VI pregoooooooo

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    143
    locale -a
    apt-cache search locale italian
    sudo apt-get install language-support-it

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.