Platforms to show: All Mac Windows Linux Cross-Platform
Required plugins for this example: MBS Util Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Util/Locale/Locale
This example is the version from Fri, 13th Dec 2012.
Project "Locale.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
Control List Inherits Listbox
ControlInstance List Inherits Listbox
End Control
EventHandler Sub Open()
// default
dim xx as LocaleMBS = LocaleMBS.Locale
// German
dim DE as LocaleMBS = LocaleMBS.Locale("DE_DE") // works on Mac
if DE = nil then DE = LocaleMBS.Locale("de_DE") // works on Mac
if DE = nil then DE = LocaleMBS.Locale("de_DE.UTF8") // works on Linux
if DE = nil then DE = LocaleMBS.Locale("German") // works on Windows
// French
dim FR as LocaleMBS = LocaleMBS.Locale("FR_FR") // works on Mac
if FR = nil then FR = LocaleMBS.Locale("fr_FR") // works on Mac
if FR = nil then FR = LocaleMBS.Locale("fr_FR.UTF8")
if FR = nil then FR = LocaleMBS.Locale("French") // Works on Windows
if FR = nil then FR = LocaleMBS.Locale("fr")
// US American
dim US as LocaleMBS = LocaleMBS.Locale("EN_US") // works on Mac
if US = nil then US = LocaleMBS.Locale("en_US") // works on Mac
if US = nil then US = LocaleMBS.Locale("en_US.UTF8") // works on Linux
if US = nil then US = LocaleMBS.Locale("us") // Works on Windows
// British
dim GB as LocaleMBS = LocaleMBS.Locale("EN_GB") // works on Mac
if GB = nil then GB = LocaleMBS.Locale("en_GB") // works on Mac
if GB = nil then GB = LocaleMBS.Locale("en_GB.UTF8") // works on Linux
if GB = nil then GB = LocaleMBS.Locale("english") // works on Windows
// Japan
dim JP as LocaleMBS = LocaleMBS.Locale("JA_JP") // works on Mac
if JP = nil then JP = LocaleMBS.Locale("ja_JP") // works on Mac
if JP = nil then JP = LocaleMBS.Locale("ja_JP.UTF8")
if JP = nil then JP = LocaleMBS.Locale("Japanese")
if JP = nil then JP = LocaleMBS.Locale("ja")
List.AddRow "Name"
List.AddRow "DecimalPoint"
List.AddRow "ThousandsSep"
List.AddRow "Grouping"
List.AddRow "IntCurrSymbol"
List.AddRow "CurrencySymbol"
List.AddRow "monDecimalPoint"
List.AddRow "monThousandsSep"
List.AddRow "monGrouping"
List.AddRow "PositiveSign"
List.AddRow "NegativeSign"
List.AddRow "IntFracDigits"
List.AddRow "FracDigits"
List.AddRow "PosCSPrecedes"
List.AddRow "PosSepBySpace"
List.AddRow "NegCSPrecedes"
List.AddRow "NegSepBySpace"
List.AddRow "PosSignPosition"
List.AddRow "NegSignPosition"
List.AddRow "IntPosCSPrecedes"
List.AddRow "IntNegCSPrecedes"
List.AddRow "IntPosSepBySpace"
List.AddRow "IntNegSepBySpace"
List.AddRow "IntPosSignPosition"
List.AddRow "IntNegSignPosition"
'MsgBox EncodeHex(xx.monGrouping)
if xx<>Nil then
row = 0
column = 1
AddCell xx.Name
AddCell xx.DecimalPoint
AddCell xx.ThousandsSep
AddCell g(xx.Grouping)
AddCell xx.IntCurrSymbol
AddCell xx.CurrencySymbol
AddCell xx.monDecimalPoint
AddCell xx.monThousandsSep
AddCell g(xx.monGrouping)
AddCell xx.PositiveSign
AddCell xx.NegativeSign
AddCell s(xx.IntFracDigits)
AddCell s(xx.FracDigits)
AddCell str(xx.PosCSPrecedes)
AddCell str(xx.PosSepBySpace)
AddCell str(xx.NegCSPrecedes)
AddCell str(xx.NegSepBySpace)
AddCell s(xx.PosSignPosition)
AddCell s(xx.NegSignPosition)
AddCell s(xx.IntPosCSPrecedes)
AddCell s(xx.IntNegCSPrecedes)
AddCell s(xx.IntPosSepBySpace)
AddCell s(xx.IntNegSepBySpace)
AddCell s(xx.IntPosSignPosition)
AddCell s(xx.IntNegSignPosition)
end if
if us<>Nil then
row = 0
column = 2
AddCell us.Name
AddCell us.DecimalPoint
AddCell us.ThousandsSep
AddCell g(us.Grouping)
AddCell us.IntCurrSymbol
AddCell us.CurrencySymbol
AddCell us.monDecimalPoint
AddCell us.monThousandsSep
AddCell g(us.monGrouping)
AddCell us.PositiveSign
AddCell us.NegativeSign
AddCell s(us.IntFracDigits)
AddCell s(us.FracDigits)
AddCell str(us.PosCSPrecedes)
AddCell str(us.PosSepBySpace)
AddCell str(us.NegCSPrecedes)
AddCell str(us.NegSepBySpace)
AddCell s(us.PosSignPosition)
AddCell s(us.NegSignPosition)
AddCell s(us.IntPosCSPrecedes)
AddCell s(us.IntNegCSPrecedes)
AddCell s(us.IntPosSepBySpace)
AddCell s(us.IntNegSepBySpace)
AddCell s(us.IntPosSignPosition)
AddCell s(us.IntNegSignPosition)
end if
if gb<>Nil then
row = 0
column = 3
AddCell gb.Name
AddCell gb.DecimalPoint
AddCell gb.ThousandsSep
AddCell g(gb.Grouping)
AddCell gb.IntCurrSymbol
AddCell gb.CurrencySymbol
AddCell gb.monDecimalPoint
AddCell gb.monThousandsSep
AddCell g(gb.monGrouping)
AddCell gb.PositiveSign
AddCell gb.NegativeSign
AddCell s(gb.IntFracDigits)
AddCell s(gb.FracDigits)
AddCell str(gb.PosCSPrecedes)
AddCell str(gb.PosSepBySpace)
AddCell str(gb.NegCSPrecedes)
AddCell str(gb.NegSepBySpace)
AddCell s(gb.PosSignPosition)
AddCell s(gb.NegSignPosition)
AddCell s(gb.IntPosCSPrecedes)
AddCell s(gb.IntNegCSPrecedes)
AddCell s(gb.IntPosSepBySpace)
AddCell s(gb.IntNegSepBySpace)
AddCell s(gb.IntPosSignPosition)
AddCell s(gb.IntNegSignPosition)
end if
if fr<>Nil then
row = 0
column = 5
AddCell fr.Name
AddCell fr.DecimalPoint
AddCell fr.ThousandsSep
AddCell g(fr.Grouping)
AddCell fr.IntCurrSymbol
AddCell fr.CurrencySymbol
AddCell fr.monDecimalPoint
AddCell fr.monThousandsSep
AddCell g(fr.monGrouping)
AddCell fr.PositiveSign
AddCell fr.NegativeSign
AddCell s(fr.IntFracDigits)
AddCell s(fr.FracDigits)
AddCell str(fr.PosCSPrecedes)
AddCell str(fr.PosSepBySpace)
AddCell str(fr.NegCSPrecedes)
AddCell str(fr.NegSepBySpace)
AddCell s(fr.PosSignPosition)
AddCell s(fr.NegSignPosition)
AddCell s(fr.IntPosCSPrecedes)
AddCell s(fr.IntNegCSPrecedes)
AddCell s(fr.IntPosSepBySpace)
AddCell s(fr.IntNegSepBySpace)
AddCell s(fr.IntPosSignPosition)
AddCell s(fr.IntNegSignPosition)
end if
if de<>Nil then
row = 0
column = 4
AddCell de.Name
AddCell de.DecimalPoint
AddCell de.ThousandsSep
AddCell g(de.Grouping)
AddCell de.IntCurrSymbol
AddCell de.CurrencySymbol
AddCell de.monDecimalPoint
AddCell de.monThousandsSep
AddCell g(de.monGrouping)
AddCell de.PositiveSign
AddCell de.NegativeSign
AddCell s(de.IntFracDigits)
AddCell s(de.FracDigits)
AddCell str(de.PosCSPrecedes)
AddCell str(de.PosSepBySpace)
AddCell str(de.NegCSPrecedes)
AddCell str(de.NegSepBySpace)
AddCell s(de.PosSignPosition)
AddCell s(de.NegSignPosition)
AddCell s(de.IntPosCSPrecedes)
AddCell s(de.IntNegCSPrecedes)
AddCell s(de.IntPosSepBySpace)
AddCell s(de.IntNegSepBySpace)
AddCell s(de.IntPosSignPosition)
AddCell s(de.IntNegSignPosition)
end if
if jp<>Nil then
row = 0
column = 6
AddCell jp.Name
AddCell jp.DecimalPoint
AddCell jp.ThousandsSep
AddCell g(jp.Grouping)
AddCell jp.IntCurrSymbol
AddCell jp.CurrencySymbol
AddCell jp.monDecimalPoint
AddCell jp.monThousandsSep
AddCell g(jp.monGrouping)
AddCell jp.PositiveSign
AddCell jp.NegativeSign
AddCell s(jp.IntFracDigits)
AddCell s(jp.FracDigits)
AddCell str(jp.PosCSPrecedes)
AddCell str(jp.PosSepBySpace)
AddCell str(jp.NegCSPrecedes)
AddCell str(jp.NegSepBySpace)
AddCell s(jp.PosSignPosition)
AddCell s(jp.NegSignPosition)
AddCell s(jp.IntPosCSPrecedes)
AddCell s(jp.IntNegCSPrecedes)
AddCell s(jp.IntPosSepBySpace)
AddCell s(jp.IntNegSepBySpace)
AddCell s(jp.IntPosSignPosition)
AddCell s(jp.IntNegSignPosition)
end if
End EventHandler
Sub AddCell(s as string)
list.Cell(row,column) = s
row = row + 1
End Sub
Function S(x as integer) As string
if x = 127 then
Return "undefined"
else
Return str(x)
end if
End Function
Function g(s as string) As string
// decode grouping
dim groupings() as string
dim l as integer = lenb(s)
for i as integer = 1 to l
dim ch as string = midb(s,i,1)
dim n as integer = ascb(ch)
if n = 127 then
groupings.Append "end"
Return Join(groupings, " ")
end if
groupings.Append str(n)
next
groupings.Append "repeat"
Return Join(groupings, " ")
End Function
Property column As Integer
Property row As Integer
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
End Project
The items on this page are in the following plugins: MBS Util Plugin.