Salve a tutti, tempo fa vidi un codice che permetteva di riconosce la lingua impostata nel telefono, adesso mi occorre per una mia app ma non lo sto riuscendo a ritrovare, se non ricordo male era davvero breve.
Vi sarei enormemente grato se riusciste a postarmelo.
Sub GetDefaultLanguage As String
Dim r As Reflector
r.Target = r.RunStaticMethod("java.util.Locale", "getDefault", Null, Null)
Dim Language As String
Language = r.RunMethod("getCountry")
r = Null
Return Language
End Sub
Forse la soluzione proposta non è completamente corretta perché viene chiesta la lingua locale e non il paese.
Il primo fa riferimento allo standard ISO 3166, mentre il secondo a quello ISO 639.
Per questo io uso la libreria AHLocale e uso il seguente codice:
B4X:
Dim locale as AHLocale
locale.inizialize
dim lingua as string = locale.EnglishLanguage
'lingua in lingua inglese, se italiano allora "Italian"
Forse la soluzione proposta non è completamente corretta perché viene chiesta la lingua locale e non il paese.
Il primo fa riferimento allo standard ISO 3166, mentre il secondo a quello ISO 639.
Per questo io uso la libreria AHLocale e uso il seguente codice:
B4X:
Dim locale as AHLocale
locale.inizialize
dim lingua as string = locale.EnglishLanguage
'lingua in lingua inglese, se italiano allora "Italian"
Innanzitutto grazie per il tuo interessamento, a me serve stabilire in che lingua far visualizzare l'app (tra quelle che ho inserito), penso che sapere la lingua locale forse sia migliore rispetto al paese, perchè ad esempio se vado in spagna avrei nella mia app la lingua spagnola, invece a me interessa la lingua che parla il possessore del dispositivo; che il 99% dei casi dovrebbe corrispondere con quella parlata del possessore del dispositivo.
Nel caso in cui tu debba localizzare una app puoi utilizzare questo codice:
Crea un module code ( esempio linuge.bas ) , ed inserisci esempio:
B4X:
Sub Process_Globals
' These global variables will be declared once when the application starts.
' These variables can be accessed from all modules.
Dim locale As AHLocale
Dim lingua As String
End Sub
Sub lg_riservato() As String
locale.Initialize
lingua = locale.DisplayLanguage
lingua = lingua.ToLowerCase
Log(lingua)
If lingua = "italiano" Then
Return "RISERVATO"
Else If lingua = "english" Then
Return "RESERVED"
Else If lingua = "русский" Then
Return "Неизвестный"
Else If lingua = "español" Then
Return "RESERVADO"
Else If lingua = "français" Then
Return "Réservé"
Else If lingua = "português" Then
Return "RESERVADO"
Else If lingua = "deutsch" Then
Return "RESERVIERT"
Else
Return "RESERVED"
End If
End Sub
....
Per richiamarlo in altri moduli utilizzerai:
B4X:
fb_attiva.Text = lingue.lg_riservato
Nell'esempio l'utente nel caso in cui abbia impostato il dispositivo in una delle seguenti lingue: inglese, tedesco, russo, spagnolo, portoghese, italiano, francese verrà visualizzato il messaggio nella lingua desiderata.