Italian app bilingue

zamb

Active Member
Licensed User
Come anticipato ecco un nuovo quesito relativo ad alcune app bilingue (italiano e inglese) che ho scritto.
Ricavo la lingua di default impostata sul telefono mediante la libreria Reflection e poi se la risposta è IT presento le info in italiano diversamente le presento in inglese.
La mia perplessità riguarda quei paesi dove l'alfabeto è greco, cirillico, arabo, cinese, etc.
In quel caso credo manchino proprio i simboli e di conseguenza credo che le app avrebbero grossi problemi. Corretto?
Non voglio utilizzare librerie di traduzione. Dovrei limitare i paesi destinatari?
Non mi fido a fare una prova impostando una di queste lingue sul telefono per la paura di non riuscire a tornare indietro... 😂

Grazie a tutti
Pier
 
D

Deleted member 103

Guest
Ciao @zamb ,

io scrivo le mie App sempre in 3 lingue, italiano, tedesco e inglese più o meno in questo modo:
B4X:
Sub Language
    Dim lang As String = GetDefaultLanguage
    if lang.StartsWith("it") then
        'italiano
        ...
    else if lang.StartsWith("de") then
        'tedesco
        ...
    else
        'inglese
        ...
    end fi
End Sub

Private Sub GetDefaultLanguage As String
   Dim r As Reflector
   r.Target = r.RunStaticMethod("java.util.Locale", "getDefault", Null, Null)
   Return r.RunMethod("getLanguage")
End Sub
 

zamb

Active Member
Licensed User
Ciao Filippo.
Anche io uso la stessa tecnica. Il tedesco potrebbe intrigarmi ma credo debba essere usato con cautela per via della possibile lunghezza delle parole (ho spazi limitati) e del problema di maneggiare i caratteri speciali.
Ma che mi dici del problema relativo alla installazione ad esempio su telefono con alfabeto cirillico?
Vero è che il tuo codice li esclude all'origine in quanto le opzioni sono 3 fisse ma io vorrei dare le info in inglese qualora la lingua non fosse italiano infatti uso if language = "IT" then.... Else...
Ma mi preoccupano appunto gli alfabeti "strani". Forse limiterò la distribuzione esludendo questi
 

zamb

Active Member
Licensed User
Ok. Vi ringrazio molto per le vostre risposte. Credo comunque che deciderò di limitare la distribuzione ai paesi con alfabeti compatibili oppure di inserire un alert nella presentazione.
Non mi fido dei sistemi di traduzione che traducono frasi semplicemente traducendo ogni singola parola o di sistemi che possono prevedere costi...
Grazie ancora e buon ferragosto a tutti gli stakanovisti della tastiera (me compreso) :)
 

LucaMs

Expert
Licensed User
Longtime User
Io uso B4x-Language che è molto più comodo e facile da usare. ;)
Non lo so, perché non c'è una spiegazione del sw exe (con tanto di dll) che ovviamente non ho installato, essendo tu un noto hacker 🤣.
Ovviamente scherzo.

Nota che la versione di Erel ha due cose utilissime:

1 - proprio l'utilizzo del file Excel. Avere sott'occhio, in un foglio, tutte le voci in colonne, è molto comodo. Puoi vederle-modificarle facilmente e perfino usare Excel stesso per fare modifiche globali, ricerche, ...
Non è un problema usare poi il sw per creare il db sqlite a partire da questo foglio Excel.

2 - importantissimo: la possibilità di inserire dei parametri:
lblHello.Text = loc.LocalizeParams("Hello {1}!", Array(edtName.Text))


Se, come mi sembra di capire, il tuo sw sfrutta Google Translator, questo è un punto a suo favore.
 
D

Deleted member 103

Guest
Se, come mi sembra di capire, il tuo sw sfrutta Google Translator, questo è un punto a suo favore.
Il pulsante "Translate" c'è ancora, ma non funziona più perchè la Api che veniva usata è stata disattivata.

Nota che la versione di Erel ha due cose utilissime:
Quella mia ne ha molti di più! ;)
1. usa direttamente SQLite
2. si possono inserire tutte le lingue che vuoi
3. inserisci tutte le traduzioni
4. il DB si crea in automatico e lo usi direttamente nella App
5. non hai bisogno die Excel
6. quando inserisci un nuovo testo non devi inserirlo in Excel e poi nuovamente riconvertire in SQlite
7. il DB lo lasci nella cartella della App "assert", e quando devi fare alcune modifiche, lo apri direttamente con il mio SW.
8. ...

Non lo so, perché non c'è una spiegazione del sw exe (con tanto di dll) che ovviamente non ho installato
La "dll" non è mia, ma viene fornita da SQLite.
 

LucaMs

Expert
Licensed User
Longtime User
Scusa, caro Filippo, ma non avendolo provato (vedi? Ho fatto bene, la dll non è stata scritta da te e chissà cosa "contiene"), non mi è chiarissima la tua risposta.

Capisco che tu possa agire direttamente sul DB (potresti farlo anche tramite un tool dei tanti) e quindi tu non debba ricrearlo ogni volta che apporti modifiche al file Excel
non hai bisogno die Excel
(chi NON ha Excel alzi la mano!)

ma...

2. si possono inserire tutte le lingue che vuoi
Anche con la versione di Erel, ovviamente (ogni colonna del foglio Excel "sarà" una lingua).


3. inserisci tutte le traduzioni
??? A parte che non l'ho capito, differisce in qualcosa dalla versione di Erel?


4. il DB si crea in automatico e lo usi direttamente nella App
Suppongo che il DB lo crei il tuo exe, stessa cosa che fa la versione di Erel, "convertendo" l'Excel in DB SQLite.


7. il DB lo lasci nella cartella della App "assert", e quando devi fare alcune modifiche, lo apri direttamente con il mio SW.
Stessa cosa con la versione di Erel.
 
Last edited:
D

Deleted member 103

Guest
Chiunque può usare quello che vuole, io uso solo quello che mi sembra più semplice.
Non faccio pubblicità per i miei tools, che metto a disposizione senza chiedere nulla in cambio e non costringo nessuno a usarli.
 

LucaMs

Expert
Licensed User
Longtime User
Chiunque può usare quello che vuole, io uso solo quello che mi sembra più semplice.
Non faccio pubblicità per i miei tools, che metto a disposizione senza chiedere nulla in cambio e non costringo nessuno a usarli.
E certo che non costringi alcuno ad usarli... non potresti, hehehe.

Capisco benissimo e, anzi, mi fa piacere che tu metta a disposizione, perfino gratuitamente, qualche tuo tool.
Penso, però, che forse non hai provato ad usare il "metodo" di Erel, perché non mi sembra meno semplice o "potente", anzi.
 
Top