Italian Riconoscimento lingua telefono

lock255

Well-Known Member
Licensed User
Longtime User
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.

Grazie a tutti
 

LucaMs

Expert
Licensed User
Longtime User
B4X:
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
 

lock255

Well-Known Member
Licensed User
Longtime User
Perfetto mi hai salvato, come sempre!

PS: purtroppo in questi giorni la connessione nella mia zona è out.. quindi sono limitato anche nelle ricerca delle informazioni che mi occorrono.
 

Giovanni Passali

Member
Licensed User
Longtime User
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"
 

lock255

Well-Known Member
Licensed User
Longtime User
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.
 

MarcoRome

Expert
Licensed User
Longtime User
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.
 
Top