Il giorno mar, 14/05/2013 alle 22.54 +0200, Gollum1 ha scritto:
> Il 14 maggio 2013 21:51, Pietro Battiston <m...@pietrobattiston.it> ha 
> scritto:
> >
> > Se stai chiedendo "come faccio a dire a gettext di guardare in una data
> > cartella?", chiediti "chissà cosa fa la seguente riga di codice?"
> > gettext.install( APP_NAME, 'locale' )
> 
> no, non sto chiedendo questo, questo l'ho capito...
> 
> > Se stai chiedendo "come faccio a sapere qual'è la cartella in cui sono
> > contenute le traduzioni", beh allora dipende da come hai disposto le
> > cose _e_ da dove avvii il programma, ovviamente. Io di solito nei miei
> > programmi metto un file tipo questo, perché funzionano sia quando
> > installati che dalla cartella dei sorgenti:
> > http://www.pietrobattiston.it/gitweb?p=gallery-uploader.git/.git;a=blob;f=galleryuploader_lib/config.py
> > (ignora le righe da 28 a 68).
> 
> Sì, è proprio questo che intendevo... ti ringrazio del tuo esempio...
> 
> mi sono copiato le due parti che mi interessano, e poi me le studio
> con più calma, anche se credo di aver capito come procedere...
> 
> nel mio caso in cui la funzione che avvia la localizzazione si trova
> in un modulo separato, e addiritura in una sua directory separata,
> vuol dire che devo passare la directory del locale come argomento alla
> funzione (visto che sono in due scope diversi, non hanno le stasse
> variabili globali).
> 

Se ho capito quello che dici, non c'entrano gli scope: devi passare la
directory del locale _comunque_ perché è quello che richiede la funzione
locale.bindtextdomain().

> vedo che hai fatto una distinzione di due situazioni diverse, una per
> quando stai sviluppando e una per quando la installi nel sistema.
> 
> Io mi trovo e sto sviluppando per linux, i processi di installazione
> sono fatti da uno script a parte? quindi in qualche modo sa dove
> mettere i tuoi file, le tue librerie, i tuoi locales oppure ogniuno si
> scrive il suo file di installazione (una sorta di makefile presumo)
> dove decide a modo suo dove mettere le cose? nel primo caso, una volta
> scritto il programma, è indipendente dal sistema, se l'installazione è
> demandato ad un installatore standard, a cui passi solo alcuni
> parametri, nel secondo caso, devi scrivere il tuo script di
> installazione per ogni situazione e/o sistema operativo...
> 
> bhe... ora sto forse divagando un po' troppo... per ora mi accontento
> di sistema il locale, in modo che possa funzionare in tutte le
> situazioni dei miei programmini.

Non so dirti quanto siano lecite le mie assunzioni. Io controllo in
[sys.prefix, path.join( sys.prefix, 'local' )] più la cartella corrente,
e mi è sempre bastato.

La "sorta di makefile" di solito si chiama setup.py, e sì, standardizza
parecchio l'installazione.

Ciò detto, non credo proprio che il mio config.py funzionerebbe sotto
Windows, neanche con un'installazione standard. Però non dovrebbe essere
complicato adattarlo.

N.B: la ricerca della cartella "stuff" invece è una convenzione
puramente mia. In generale, non ti aspettare dal mio codice niente di
più di un "works for me". L'ho fatto sempre rispondendo a tre soli
criteri: 1) gira dalla cartella sorgente 2) gira sotto Linux dopo il
classico "python setup.py install" 3) gira quando installato come
pacchetto Debian.

Forse ci sono soluzioni più pulite.

ciao

Pietro

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a