I’m looking for people who can translate about 150 terms and some short sentences for my new app QuiQRun! If you can help me, send me a mail to alain.bailleul@pandora.be.
I already have English, Dutch, Italian, French, German, Spanish and Portuguese.
What can I offer?
1. The full version of QuiQRun!
2. A skin in QuiQRun! with your favorite colors
3. Full credit in the apps credits screen
4. Eternal gratitude!
How do I use it in B4A?
The translations are stored in a language file, eg. en-us.lng.
They are stored in a predefined format:
{0000};Scanned
{0001};Scan
{0002};Create
{0003};Setting new skin, one moment...
{0004};Tap to get more info!
{0005};This QRCode is expired!
...
In Basic4Android, It checks if it has a translation, if not it uses the default you put in the GetString function. Here is the snippet I use:
Sub Process_Globals Public LangStrings As Map Public BOM As Int = 65279 ' Byte Order Mark for Windows UTF-8 files End Sub Sub Activity_Create(FirstTime As Boolean) Dim R As Reflector R.Target = R.RunStaticMethod("java.util.Locale", "getDefault", Null, Null) Dim tmpLang As String = R.RunMethod("getLanguage") Select Case tmpLang Case "nl" LoadLanguageFile("nl-be.LNG") Case "fr" LoadLanguageFile("fr-fr.LNG") Case "it" LoadLanguageFile("it-it.LNG") Case "es" LoadLanguageFile("es-es.LNG") Case "de" LoadLanguageFile("de-de.LNG") Case Else LoadLanguageFile("en-us.LNG") End Select ' using it: ToastMessageShow(GetString("{0003}","Setting new skin, one moment..."), true) End Sub Public Sub LoadLanguageFile(setLanguageFile as String) LangStrings.Initialize If File.Exists(File.DirAssets, setLanguageFile) Then Dim txtR As TextReader txtR.Initialize(File.OpenInput(File.DirAssets, setLanguageFile)) Dim line As String line = txtR.ReadLine Do While line Null line = line.Replace(Chr(BOM), "") LangStrings.Put(line.SubString2(0,6), line.SubString(7)) line = txtR.ReadLine Loop txtR.Close End If End Sub Public Sub GetString(iCode As String, iDefault As String) As String If LangStrings.ContainsKey(iCode) Then Return LangStrings.Get(iCode) Else Return iDefault End If End Sub
Thanks!
Alwaysbusy