Italian Conoscere system it o en

ivanomonti

Expert
Licensed User
Longtime User
Ciao a tutta la ML, come faccio a sapere se il dispositivo (system) e in lingua italiana o americana o diversa da italiana.

MI serve per creare una classe messaggi in lingua italiano e inglese poi più avanti altre lingue spagnolo, tedesco, francese e magari cinese e japponese, arabo e via discorrendo.

Grazie.
 

Dominex

Active Member
Licensed User
Longtime User
Prova ad usare la libreria AHLocale.

B4X:
Sub Process_Globals      
   Dim Locale As AHLocale
End Sub

Sub Activity_Create(FirstTime As Boolean)
   If FirstTime = True Then
      Locale.Initialize
      Select Locale.Language
         Case "it"
         'Lingua italiana
         Case "en"
         'Lingua inglese
      End Select
   End If
End Sub
 

ivanomonti

Expert
Licensed User
Longtime User
Prova ad usare la libreria AHLocale.

B4X:
Sub Process_Globals      
   Dim Locale As AHLocale
End Sub

Sub Activity_Create(FirstTime As Boolean)
   If FirstTime = True Then
      Locale.Initialize
      Select Locale.Language
         Case "it"
         'Lingua italiana
         Case "en"
         'Lingua inglese
      End Select
   End If
End Sub

Grazie sei sempre una grande risorsa :)
 

worm

Member
Licensed User
Longtime User
Ciao,
per i miei programmi uso il seguente codice:

B4X:
Sub Process_Globals        
    Dim Locale As AHLocale
   Dim Texts(10) As String 
End Sub

Sub Activity_Create(FirstTime As Boolean)
   LoadTexts
End Sub

' load translations
Sub LoadTexts
   Dim fileName As String = "it.txt" ' default language, must exist!!
   Dim Reader As TextReader
   Dim i As Int = 0

   If Locale.Initialized = False Then
      ' if not initialized, initialize
      Locale.Initialize
      Log("Locale initialized")
      ' set the language
      If Locale.Language <> "" Then
         ' set language file
         fileName = Locale.language & ".txt"
      End If      

      ' check if file exist
      If File.Exists(File.DirAssets, fileName) = False Then
         fileName = "it.txt"
         Log("load default language: it")
      End If
   End If

   ' initialize reader
   Reader.Initialize(File.OpenInput(File.DirAssets, fileName))

   ' read each line of file
   Texts(i) = Reader.ReadLine
   Do While Texts(i) <> Null
      i = i + 1
      Texts(i) = Reader.ReadLine   
   Loop

   Reader.Close
   Log("Load Text ok " & fileName)
End Sub

Ogni riga del file di testo contiene una frase o parola usata nel programma, e la puoi richiamare nel codice usando per esempio
B4X:
mylabel.Text = Texts(x)
dove x corrisponde alla riga.
 

ivanomonti

Expert
Licensed User
Longtime User
Ciao,
per i miei programmi uso il seguente codice:

B4X:
Sub Process_Globals        
    Dim Locale As AHLocale
   Dim Texts(10) As String 
End Sub

Sub Activity_Create(FirstTime As Boolean)
   LoadTexts
End Sub

' load translations
Sub LoadTexts
   Dim fileName As String = "it.txt" ' default language, must exist!!
   Dim Reader As TextReader
   Dim i As Int = 0

   If Locale.Initialized = False Then
      ' if not initialized, initialize
      Locale.Initialize
      Log("Locale initialized")
      ' set the language
      If Locale.Language <> "" Then
         ' set language file
         fileName = Locale.language & ".txt"
      End If      

      ' check if file exist
      If File.Exists(File.DirAssets, fileName) = False Then
         fileName = "it.txt"
         Log("load default language: it")
      End If
   End If

   ' initialize reader
   Reader.Initialize(File.OpenInput(File.DirAssets, fileName))

   ' read each line of file
   Texts(i) = Reader.ReadLine
   Do While Texts(i) <> Null
      i = i + 1
      Texts(i) = Reader.ReadLine   
   Loop

   Reader.Close
   Log("Load Text ok " & fileName)
End Sub

Ogni riga del file di testo contiene una frase o parola usata nel programma, e la puoi richiamare nel codice usando per esempio
B4X:
mylabel.Text = Texts(x)
dove x corrisponde alla riga.

Grazie tengo presente, bello vedere questa attività di scambio, al momento ho fatto tutto tenendo presente la prima risposta.
 
Top