Il 15 ottobre 2013 23:32, Valerio Maggio <valerio.mag...@gmail.com> ha scritto: > > Gollum1 <gollum1.smeag...@gmail.com> wrote: > >> print(_("\t'%s': unknown mode.") % line_args['mode'], file=sys.stderr) >> >> tutte le righe che sono in questa forma mi vengono segnalate come: >> >> "Unresolved reference '_' >> >> a quanto ho capito, la funzione "_" è iniettata dal modulo gettext, a >> runtime, quindi non esiste in realtà una definizione della stessa nel >> codice... > > A dirti il vero, io personalmente non riscontro questo comportamento. > Di solito, utilizzo l'alias di "_" per la funzione gettext_lazy di Django, > alias che definisco in maniera esplicita a monte con un "from > django.utils.translation import gettext_lazy as _". > > Non ho capito, invece, se nel tuo caso questo alias sia o meno esplicito nel > codice con modalità simili alle mia. > Tuttavia, se il problema dovesse persistere, allora potrebbe trattarsi > *davvero* di una limitazione del motore di inferenza di PyCharm (nella > versione 2.7, ad esempio, si aveva un errore simile con nose.tools). > In questo caso, il workaround consigliato è quello di "sopprimere le > notifiche" per quella classe di messaggi. > Maggiori dettagli qui: http://youtrack.jetbrains.com/issue/PY-7614
in realtà il codice per la localizzazione, l'ho estrapolato confrontando alcuni script presi in rete, con le nozioni che mi sono state passate da un utente qui in lista parecchio tempo fa (il progetto è stato fermo per lungo tempo, chissa che ora non stia superando il mio "blocco dello scrittore/coder")... Il codice in oggetto è il seguente: import gettext def my_gettext(s): # per wrappare un problema di argparse (usato nello stesso modulo) che non mi permette di localizzare alcune stringhe return _(s) gettext.gettext = my_gettext def InitI18n(APP_NAME, locale_path=sys.path[0]) -> object: #noto ora questo -> object, lo ha inserito pycharm. """Initialize th I18N stuff: load modules, set environments etc... @rtype : object """ """Da rivedere per la gestione di diversi S.O""" locale_path = os.path.realpath(os.path.join(locale_path, "locale")) if not 'LANG' in os.environ: locale_path = os.path.realpath(os.path.join(locale_path, "locale")) #if os.path.exists(path.join(locale_path): #LOCALE_DIR = path.join(locale_path, 'locale' ) #else: #for directory in [sys.prefix, path.join( sys.prefix, 'local' )]: #installed_root_dir = path.join( directory, 'share' ) #if path.exists( path.join( installed_root_dir, 'gallery-uploader', 'stuff', 'gallery.svg' ) ): #LOCALE_DIR = path.join( installed_root_dir, 'locale' ) #if not STUFF_DIR: #STUFF_DIR = path.join( installed_root_dir, 'gallery-uploader', 'stuff' ) #break if not 'LANG' in os.environ: import sys if sys.platform == "darwin": # On Macintosh you have to get preferred language from OS import subprocess pp = subprocess.Popen( [ 'defaults', 'read', '-g', 'AppleLocale' ], stdout = subprocess.PIPE ) os.environ[ 'LANG' ] = pp.communicate()[ 0 ].strip() else: # On other OS get defaults loc, cp = locale.getdefaultlocale() os.environ[ 'LANG' ] = loc if cp: os.environ[ 'LANG' ] += "." + cp # Set the default locale for LC_CTYPE locale.setlocale( locale.LC_CTYPE, '' ) # Initialize gettext engine to look for localised messages in 'locale' # subdirectory of current working directory import gettext gettext.install( APP_NAME, locale_path ) come si può vedere non è specificata da nessuna parte la funzione "_" quindi pycharm ha ragione a indicarmelo come non definito, però a runtime è inserito dal modulo gettext.install, infatti poi la funzione viene eseguita correttamente... scusate il codice ancora un po' sporco, ma lo sto riprendendo in mano ora dopo lungo tempo di sonnambulismo... Byez -- Gollum1 Tesssssoro, dov'é il mio tessssoro... _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python