Autore Topic: Problema con le traduzioni  (Letto 948 volte)

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Problema con le traduzioni
« il: 03 Maggio 2013, 23:00:09 »
Utilizzando la funzione System.language riesco a cambiare la lingua alla mia applicazione
dichiaro all'apertura quale lingua voglio utilizzare
Codice: gambas [Seleziona]
System.language="en_US.UTF_8"


il problema è che mi traduce solo le stringhe che metto tra parentesi ("Ciao") e non i testi degli oggetti, per esempio i pulsanti
nonostante che nella traduzione abbia inserito la frase giusta
se però dichiaro il testo all'apertura del form
Codice: gambas [Seleziona]
button1.text=("Prova") 


allora viene regolarmente tradotto
Quale può essere il problema?

Edit:
come suggeritomi tempo fa sto prendendo ispirazione dal programma PGDesigner
 che però non funziona, probabilmente perchè convertito da Gambas2
« Ultima modifica: 03 Maggio 2013, 23:18:04 da Akrobaticone »
"e il naufragar m'è dolce in questo mar"

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Problema con le traduzioni
« Risposta #1 il: 04 Maggio 2013, 10:08:23 »
mi rispondo da solo e correggetemi se sbaglio
è necessario partire con un modulo di avvio con la funzione main e lì verificare e cambiare la lingua

"e il naufragar m'è dolce in questo mar"

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Problema con le traduzioni
« Risposta #2 il: 07 Maggio 2013, 14:02:48 »
E' necessario se vai a gestire il tuo oggetto Application. Non è necessario inserire il codice in un modulo main, ma è necessario che da questo modulo tu acceda ad Application e, tramite metodi derivati, inserire apposito codice per condizionare le impostazioni di avvio dell'applicazione.

La modifica della lingua può avvenire solo in fase di startup, ovvero dall'applicazione stessa, durante la fase di avvio del programma.
Questo non è possibile con applicazioni costruite direttamente su una Form, in quanto viene avviata la Application di default, che carica le impostazioni che si trova al momento sul sistema.

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Problema con le traduzioni
« Risposta #3 il: 07 Maggio 2013, 14:11:00 »
Faccio un po fatica a seguirti
La prova che ho fatto è questa

Codice: gambas [Seleziona]
public sub main()

system.application="it_IT.UTF_8"
Fmain.show

End sub

naturalmente c'è dell'altro , ma il concetto è questo
eventualmente posterò il programma completo

Vorrei però capire meglio ciò che mi hai spiegato
Riesci a farmi un esempio?

"e il naufragar m'è dolce in questo mar"

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Problema con le traduzioni
« Risposta #4 il: 07 Maggio 2013, 14:40:03 »
Nel tuo esempio, utilizzi un modulo per chiamare la form principale (lo diventa di fatto dato che è la prima che viene aperta).
Spero tu sappia che gambas avvia la classe Application di sottobanco se questa non ne viene dichiarata una propria, derivata da quella fornita da gambas.
Per poter effettuare modifiche sull'applicazione, che siano relative allo startup della stessa (ovvero tutti i processi e le impostazioni che l'applicazione carica una volta sola alla sua partenza), queste devono essere fatte prima che parta effettivamente, e che lanci form o processi applicativi vari.
In pratica, usando sempre un modulo, devi anche crearti una xyzApplication, inherit Application, e utilizzi i metodi forniti dalla classe (eventualmente ne crei di nuovi per ottimizzare il codice), per condizionarne l'avvio, lo shutdown e, eventualmente la gestione delle form e degli eventi (cosa che ho pesantemente esplosa nel mio progetto pgDesigner3).
Nel tua classe derivata, puoi anche andarti a leggere un file di configurazione, in modo che l'avvio possa diventare dinamico e manutenibile dall'utente, o da condizioni particolari a tua scelta.

Ricordo che la classe Application, anche se statica, può essere subclassata da classi specializzate. Ovviamente poi, qualsiasi riferimento implementato deve essere fatto alla tua classe, e non su quella gambas. La tua classe specializzata si porta ovviamente dietro tutti i metodi e le proprietà della classe Application di gambas, che deve essere sempre e comunque referenziata.

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Problema con le traduzioni
« Risposta #5 il: 07 Maggio 2013, 22:20:59 »
vediamo se ho capito
Gambas all'avvio istanzia  per prima la classe  application che rimane attiva per tutta la durata del programma
se creo una sottoclasse derivata da questa e la inserisco in un modulo all'avvio, nella stessa posso creare metodi che mi permettono  ad esempio di cambiare la lingua, prima che il resto dell'applicazione sia partita
sto entrando in concetti che ho trascurato sino ad ora e confesso che ho qualche difficoltà.

dove posso scaricare il tuo progetto PgDesigner3?
ho scaricato il 2 dal quale ho preso qualche spunto
se non mi sbaglio proprio li nel modulo di avvio c'era una funzione per scegliere la lingua
"e il naufragar m'è dolce in questo mar"

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Problema con le traduzioni
« Risposta #6 il: 08 Maggio 2013, 11:30:52 »
Sì, nella versione 2, utilizzavo il modulo per fare le impostazioni iniziali.
Nella versione 3 ho spostato tutto nella classe pgApplication, e il modulo chiama solo un paio di metodi di questa: inizializzazione e run.
I sorgenti li trovi sempre sul repository su sourceforge.net.

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Problema con le traduzioni
« Risposta #7 il: 08 Maggio 2013, 12:31:37 »
penso di essere imbranato io, ma su sourgeforge trovo solo il due
non è che mi dai il link giusto?
"e il naufragar m'è dolce in questo mar"

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Problema con le traduzioni
« Risposta #8 il: 11 Maggio 2013, 12:39:51 »
Purtroppo continuo a non trovare PGDesigner3
Mi puoi aiutare?
"e il naufragar m'è dolce in questo mar"

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Problema con le traduzioni
« Risposta #9 il: 21 Maggio 2013, 14:02:50 »
Basta cercare su sf.net il programma "pgdesigner", quindi andare su "Code" e sotto "Branch" posizionarsi nella cartella "3.0-alpha".
Ad ogni modo il link è "http://sourceforge.net/p/pgdesigner/code/HEAD/tree/pgdesigner/branches/3.0-alpha/" dal browser e dal sito di sf.net.