[Gfoss] plugin python per QGis e QtCreator e Linguist

Ciao a tutti,

sto cercando di tradurre il mio plugin e fino alla creazione di un progetto con qt creator (sbirciando il plugin Gdal Tools) ci arrivo [1].

con il comando lupdate genero i files .ts, li traduco, e con lrelease genero i .qm.

A questo punto cambio la lingua a qgis… en per esempio…apro il mio plugin ma non vedo aggiornamenti nella lingua…

Mi manca un passaggio?? Suggerimenti???

Chiedo a Giuseppe Sucameli un aiutino!!!

Grazie

Ciaooo!!

Quando lancio lupdate pyarchinit.pro ricevo un sfilza di questi messaggi:

ers/mac/.qgis/python/plugins/pyarchinit/init.py:3: Unterminated C++ string

/Users/mac/.qgis/python/plugins/pyarchinit/init.py:21: Unterminated C++ string

/Users/mac/.qgis/python/plugins/pyarchinit/pyarchinitConfigDialog.py:3: Unterminated C++ string

/Users/mac/.qgis/python/plugins/pyarchinit/pyarchinitConfigDialog.py:21: Unterminated C++ string

/Users/mac/.qgis/python/plugins/pyarchinit/pyarchinitConfigDialog.py:37: Unterminated C++ character

Quando lancio lrelease pyarchinit.pro ottengo:

iMac-di-Mac-OsX:pyarchinit mac$ lrelease pyarchinit.pro
Updating ‘/Users/mac/.qgis/python/plugins/pyarchinit/i18n/pyarchinit_plugin_en_US.qm’…
Generated 1 translation(s) (1 finished and 0 unfinished)

Ignored 512 untranslated source text(s)
Updating ‘/Users/mac/.qgis/python/plugins/pyarchinit/i18n/pyarchinit_plugin_it_IT.qm’…
Generated 1 translation(s) (1 finished and 0 unfinished)

Ignored 512 untranslated source text(s)

Generated 0 translation(s) (0 finished and 0 unfinished)

Ignored 513 untranslated source text(s)

[1]

SOURCES = init.py
imageViewer_ui.py
pyarchinit_Gis_Time_controller.py
pyarchinit_Individui.py
pyarchinit_Inv_Materiali_mainapp.py
pyarchinit_Periodizzazione_mainapp.py
pyarchinit_plugin.py
pyarchinit_Site_mainapp.py
pyarchinit_Struttura_mainapp.py
pyarchinit_Tafonomia_mainapp.py
pyarchinit_Upd_mainapp.py
pyarchinit_US_mainapp.py
pyarchinit_pyarchinit_US.py
pyarchinitConfigDialog.py
pyarchinitInfoDialog.py
sortpanelmain.py
modules/gui/info.py
modules/gui/pyarchinit_image_viewer_dialog.py
modules/gui/pyarchinit_individui_ui.py
modules/gui/pyarchinit_inventario_reperti_ui.py
modules/gui/pyarchinit_Periodo_fase_ui.py
modules/gui/pyarchinit_Site_ui.py
modules/gui/pyarchinit_Struttura_ui.py
modules/gui/pyarchinit_Tafonomia_ui.py
modules/gui/pyarchinit_US_ui.py
modules/gui/sort_panel_ui.py
modules/gui/Ui_pyarchinitConfig.py
modules/gui/Ui_UpdValues.py

FORMS = modules/gui/info.ui
modules/gui/pyarchinit_image_viewer_dialog.ui
modules/gui/pyarchinit_individui_ui.ui
modules/gui/pyarchinit_inventario_reperti_ui.ui
modules/gui/pyarchinit_Periodo_fase_ui.ui
modules/gui/pyarchinit_Site_ui.ui
modules/gui/pyarchinit_Struttura_ui.ui
modules/gui/pyarchinit_Tafonomia_ui.ui
modules/gui/pyarchinit_US_ui.ui
modules/gui/sort_panel_ui.ui
modules/gui/Ui_pyarchinitConfig.ui
modules/gui/Ui_UpdValues.ui

TRANSLATIONS = i18n/pyarchinit_plugin_it_IT.ts
i18n/pyarchinit_plugin_en_US.ts

Ciao Luca,

2011/8/26 Luca Mandolesi <mandoluca@gmail.com>:

apro il mio plugin ma non vedo aggiornamenti nella lingua.....
Mi manca un passaggio?? Suggerimenti???
Chiedo a Giuseppe Sucameli un aiutino!!!

trovi tutto quello che ti serve proprio nel plugin GdalTools.
Se guardi all'interno del file GdalTools.py troverai delle righe di codice
che impostano il traduttore nella lingua corretta, basterà adattarle alle
tue esigenze.

Quando lancio lupdate pyarchinit.pro ricevo un sfilza di questi messaggi:
ers/mac/.qgis/python/plugins/pyarchinit/__init__.py:3: Unterminated C++
string

poiché il codice è in python,
così come utilizzi pyuic per i file .ui e pyrrc per i file .rc,
allo stesso modo devi usare pylupdate invece che lupdate :wink:

Saluti!

--
Giuseppe Sucameli

Allora…

Ho generato i file .ts con pylupdate4…

ho aperto con Linguist quello per l’inglese e ho cambiato il testo di una label… di una mia interfaccia per schedare le Strutture archeologiche

poi ho lanciato lrelease

Nel file pyarchinit_plugin.py che è quello che carica tutto il plugin, ho inserito il pezzo di codice (preso da GdalTools e riadattato) subito dopo il def init(self.iface) [0]

Quando però do inglese come lingua a Qgis non cambia nulla…

Mi manca ancora qualche passaggio…ma quale?

Grazie anticipatamente per a pazienza.

Luca

[0]
class PyArchInitPlugin:
def init(self, iface):
self.iface = iface
try:
self.QgisVersion = unicode( QGis.QGIS_VERSION_INT )
except:
self.QgisVersion = unicode( QGis.qgisVersion )[ 0 ]

if QGis.QGIS_VERSION[0:3] < “1.5”:

For i18n support

userPluginPath = QFileInfo( QgsApplication.qgisUserDbFilePath() ).path() + “/python/plugins/pyarchinit”
systemPluginPath = QgsApplication.prefixPath() + “/python/plugins/pyarchinit”

overrideLocale = QSettings().value( “locale/overrideFlag”, QVariant( False ) ).toBool()
if not overrideLocale:
localeFullName = QLocale.system().name()
else:
localeFullName = QSettings().value( “locale/userLocale”, QVariant( “” ) ).toString()

if QFileInfo( userPluginPath ).exists():
translationPath = userPluginPath + “/i18n/pyarchinit_” + localeFullName + “.qm”
else:
translationPath = systemPluginPath + “/i18n/pyarchinit_” + localeFullName + “.qm”

self.localePath = translationPath
if QFileInfo( self.localePath ).exists():
self.translator = QTranslator()
self.translator.load( self.localePath )
QCoreApplication.installTranslator( self.translator )

def initGui(self):

On Aug 27, 2011, at 10:48 AM, Luca Mandolesi <mandoluca@gmail.com> wrote:

Quando però do inglese come lingua a Qgis non cambia nulla.....

Mi manca ancora qualche passaggio....ma quale?

class PyArchInitPlugin:
  def __init__(self, iface):
    self.iface = iface

fin qui ok.

Le righe seguenti

    try:
      self.QgisVersion = unicode( QGis.QGIS_VERSION_INT )
    except:
      self.QgisVersion = unicode( QGis.qgisVersion )[ 0 ]

    if QGis.QGIS_VERSION[0:3] < "1.5":

fino a qui invece sono un problema perché come puoi notare il controllo if è verificato solo se la versione di qgis è minore di 1.5.

Questo controllo è stato aggiunto quando GdalTools è stato inserito in trunk per mantenere una sola versione del codice funzionante con tutte le versioni di QGis.

Il resto va bene.
Ciao!

      # For i18n support
      userPluginPath = QFileInfo( QgsApplication.qgisUserDbFilePath() ).path() + "/python/plugins/pyarchinit"
      systemPluginPath = QgsApplication.prefixPath() + "/python/plugins/pyarchinit"

      overrideLocale = QSettings().value( "locale/overrideFlag", QVariant( False ) ).toBool()
      if not overrideLocale:
      localeFullName = QLocale.system().name()
      else:
      localeFullName = QSettings().value( "locale/userLocale", QVariant( "" ) ).toString()

      if QFileInfo( userPluginPath ).exists():
      translationPath = userPluginPath + "/i18n/pyarchinit_" + localeFullName + ".qm"
      else:
      translationPath = systemPluginPath + "/i18n/pyarchinit_" + localeFullName + ".qm"

      self.localePath = translationPath
      if QFileInfo( self.localePath ).exists():
      self.translator = QTranslator()
      self.translator.load( self.localePath )
      QCoreApplication.installTranslator( self.translator )

  def initGui(self):
               ........

Perfetto, grazie Giuseppe, funziona a meraviglia.

Una domanda: con Linguist ci traduco i valori che io inserisco nelle gui. Tuttavia ho dei valori che passo alla gui dai miei file main; per esempio nell’interfaccia che manda al db i dati, una label informa l’utente se è in modalità ‘usa’ oppure ‘trova’ o in ‘inserimento nuovo record’:

self.label_status.setText(‘Usa’) oppure self.label_status.setText(‘Trova’) ecc ecc…

Con linguist si possono tradurre anche valori presenti nei singoli file python del plugin o è necessario crearsi un sistemino apposta di traduzione?