Files
wx_wherigo/libs/wxWidgets-3.3.1/misc/languages/data/windows/win_genlocaletable.lua
2026-02-14 09:47:24 +01:00

376 lines
20 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- Assign script arguments and check validity
-- Data source:
-- File generated by utility app from Windows data
codeFileName = "windows/win-locale-table-win.txt"
function scriptmap()
-- mapping script id to script name
-- needs to be updated manually, if new scripts are encountered
return {
["Arab"] = "arabic",
["Adlm"] = "adlam",
["Beng"] = "bengali",
["Cakm"] = "chakma",
["Cans"] = "canadian_aboriginal",
["Cher"] = "cherokee",
["Cyrl"] = "cyrillic",
["Deva"] = "devanagari",
["Guru"] = "gurmukhi",
["Java"] = "javanese",
["Latn"] = "latin",
["Mong"] = "mongolian",
["Olck"] = "ol_chiki",
["Tfng"] = "tifinagh",
["Vaii"] = "vai"
}
end
function initmap()
-- mapping locale id to wx language identifier
return {
["ar_AE"] = "wxLANGUAGE_ARABIC_UAE",
["bn_IN"] = "wxLANGUAGE_BANGLA_INDIA",
["ca_ES@valencia"] = "wxLANGUAGE_VALENCIAN",
["chr@cherokee"] = "wxLANGUAGE_CHEROKEE_CHEROKEE",
["chr_US@cherokee"] = "wxLANGUAGE_CHEROKEE_US",
["cy_GB"] = "wxLANGUAGE_WELSH_UK",
["de_AT"] = "wxLANGUAGE_GERMAN_AUSTRIAN",
["de_CH"] = "wxLANGUAGE_GERMAN_SWISS",
["en_IE"] = "wxLANGUAGE_ENGLISH_EIRE",
["en_TT"] = "wxLANGUAGE_ENGLISH_TRINIDAD",
["en_GB"] = "wxLANGUAGE_ENGLISH_UK",
["en_US"] = "wxLANGUAGE_ENGLISH_US",
["es_MX"] = "wxLANGUAGE_SPANISH_MEXICAN",
["es_US"] = "wxLANGUAGE_SPANISH_US",
["ff"] = "wxLANGUAGE_FULAH",
["fo"] = "wxLANGUAGE_FAEROESE",
["fo_DK"] = "wxLANGUAGE_FAEROESE_DENMARK",
["fo_FO"] = "wxLANGUAGE_FAEROESE_FAROE_ISLANDS",
["fr_BE"] = "wxLANGUAGE_FRENCH_BELGIAN",
["fr_CA"] = "wxLANGUAGE_FRENCH_CANADIAN",
["fr_CH"] = "wxLANGUAGE_FRENCH_SWISS",
["fy"] = "wxLANGUAGE_FRISIAN",
["fy_NL"] = "wxLANGUAGE_FRISIAN_NETHERLANDS",
["gd"] = "wxLANGUAGE_SCOTS_GAELIC",
["gd_GB"] = "wxLANGUAGE_SCOTS_GAELIC_UK",
["haw_US"] = "wxLANGUAGE_HAWAIIAN_US",
["it_CH"] = "wxLANGUAGE_ITALIAN_SWISS",
["jv@latin"] = "wxLANGUAGE_JAVANESE_LATIN",
["jv_ID@latin"] = "wxLANGUAGE_JAVANESE_LATIN_INDONESIA",
["kr"] = "wxLANGUAGE_KANURI",
["ku@arabic"] = "wxLANGUAGE_CENTRAL_KURDISH_ARABIC",
["ku_IQ@arabic"] = "wxLANGUAGE_CENTRAL_KURDISH_ARABIC_IRAQ",
["kw_GB"] = "wxLANGUAGE_CORNISH_UK",
["ky"] = "wxLANGUAGE_KIRGHIZ",
["ky_KG"] = "wxLANGUAGE_KIRGHIZ_KYRGYZSTAN",
["lkt_US"] = "wxLANGUAGE_LAKOTA_US",
["lo"] = "wxLANGUAGE_LAOTHIAN",
["lo_LA"] = "wxLANGUAGE_LAOTHIAN_LAOS",
["mni"] = "wxLANGUAGE_MANIPURI",
["mni@bengali"] = "wxLANGUAGE_MANIPURI_BENGALI",
["mni_IN"] = "wxLANGUAGE_MANIPURI_INDIA",
["mn@cyrillic"] = "wxLANGUAGE_MONGOLIAN_CYRILLIC",
["mn@mongolian"] = "wxLANGUAGE_MONGOLIAN_TRADITIONAL",
["mn_CN@mongolian"] = "wxLANGUAGE_MONGOLIAN_TRADITIONAL_CHINA",
["mn_MN@mongolian"] = "wxLANGUAGE_MONGOLIAN_TRADITIONAL_MONGOLIA",
["nl_BE"] = "wxLANGUAGE_DUTCH_BELGIAN",
["pa@arabic"] = "wxLANGUAGE_PUNJABI_ARABIC",
["pa@gurmukhi"] = "wxLANGUAGE_PUNJABI_GURMUKHI",
["pt_BR"] = "wxLANGUAGE_PORTUGUESE_BRAZILIAN",
["quc@latin"] = "wxLANGUAGE_KICHE_LATIN",
["rm"] = "wxLANGUAGE_RHAETO_ROMANCE",
["rm_CH"] = "wxLANGUAGE_RHAETO_ROMANCE_SWITZERLAND",
["rn"] = "wxLANGUAGE_KIRUNDI",
["rn_BI"] = "wxLANGUAGE_KIRUNDI_BURUNDI",
["sd@arabic"] = "wxLANGUAGE_SINDHI_ARABIC",
["se"] = "wxLANGUAGE_SAMI",
["se_FI"] = "wxLANGUAGE_SAMI_FINLAND",
["se_NO"] = "wxLANGUAGE_SAMI_NORWAY",
["se_SE"] = "wxLANGUAGE_SAMI_SWEDEN",
["sg"] = "wxLANGUAGE_SANGHO",
["sg_CF"] = "wxLANGUAGE_SANGHO_CENTRAL_AFRICAN_REPUBLIC",
["si"] = "wxLANGUAGE_SINHALESE",
["si_LK"] = "wxLANGUAGE_SINHALESE_SRI_LANKA",
["sw"] = "wxLANGUAGE_SWAHILI",
["sw_CD"] = "wxLANGUAGE_SWAHILI_CONGO_DRC",
["sw_KE"] = "wxLANGUAGE_SWAHILI_KENYA",
["sw_TZ"] = "wxLANGUAGE_SWAHILI_TANZANIA",
["sw_UG"] = "wxLANGUAGE_SWAHILI_UGANDA",
["to"] = "wxLANGUAGE_TONGA",
["to_TO"] = "wxLANGUAGE_TONGA_TONGA",
["ts"] = "wxLANGUAGE_TSONGA",
["ts_ZA"] = "wxLANGUAGE_TSONGA_SOUTH_AFRICA",
["ug"] = "wxLANGUAGE_UIGHUR",
["ug_CN"] = "wxLANGUAGE_UIGHUR_CHINA",
["xh"] = "wxLANGUAGE_XHOSA",
["xh_ZA"] = "wxLANGUAGE_XHOSA_SOUTH_AFRICA",
["zu"] = "wxLANGUAGE_ZULU",
["zu_ZA"] = "wxLANGUAGE_ZULU_SOUTH_AFRICA",
["zh@Hans"] = "wxLANGUAGE_CHINESE_SIMPLIFIED_EXPLICIT",
["zh@Hant"] = "wxLANGUAGE_CHINESE_TRADITIONAL_EXPLICIT",
["zh_CN"] = "wxLANGUAGE_CHINESE_CHINA",
["zh_HK"] = "wxLANGUAGE_CHINESE_HONGKONG",
["zh_HK@Hans"] = "wxLANGUAGE_CHINESE_SIMPLIFIED_HONGKONG",
["zh_MO"] = "wxLANGUAGE_CHINESE_MACAO",
["zh_MO@Hans"] = "wxLANGUAGE_CHINESE_SIMPLIFIED_MACAO",
["zh_SG"] = "wxLANGUAGE_CHINESE_SINGAPORE",
["zh_TW"] = "wxLANGUAGE_CHINESE_TAIWAN"
}
end
--?? ["kr@latin"] = "wxLANGUAGE_KANURI_LATIN",
--?? ["mn_MN"] = "wxLANGUAGE_MONGOLIAN_MONGOLIA",
function split(str, character)
result = {}
index = 1
for s in string.gmatch(str .. character, "(.-)"..character) do
result[index] = s
index = index + 1
end
return result
end
function string.tohex(str)
return (str:gsub('.', function (c)
cbyte = string.byte(c)
if cbyte >= 20 and cbyte < 127 then
return c
else
return string.format('\\%03o', string.byte(c))
end
end))
end
function string.fromhex(str)
return (str:gsub('..', function (cc)
return tonumber(cc, 16)
end))
end
script2alias = scriptmap();
locid2wxid = initmap()
fo1 = io.open('temp/win_loadlocaletable.sql','w')
fo1:write('-- List of locales supported by Windows\n-- Date: ' .. os.date("%Y-%m-%d %H:%M") .. '\n\n')
fo1:write('-- Data source: MSDN\n\n')
fo1:write("create table if not exists win_localetable (locid char, wxlocid char, wxname char, wxlocidold char, wxnameold char, englishdisplay char, englishlanguage char, englishcountry char, scripts char, country3 char, script4 char, currency char, layout char, idlang char, idsublang char, nativedisplay char, nativelanguage char, nativecountry char, nativedisplayhex char, nativelanguagehex char, nativecountryhex char, primary key (locid));\n")
fo1:write('delete from win_localetable;\nbegin;\n')
count = 0
for line in io.lines(codeFileName) do
rem = string.sub(line,1,1)
if rem ~= "#" then
values = split(line, "|")
-- Column names and descriptions
-- 1 LOCALE_SNAME, // Tag identifying the locale
-- 2 LOCALE_SENGLISHDISPLAYNAME, // English locale name (example: "German (Germany)"
-- 3 LOCALE_SENGLISHLANGUAGENAME, // English language name
-- 4 LOCALE_SENGLISHCOUNTRYNAME, // English country name
-- 5 LOCALE_SSCRIPTS, // List of scripts
-- LOCALE_SISOCTRYNAME2
-- 6 LOCALE_SINTLSYMBOL, // Currency symbol ISO
-- 7 LOCALE_IREADINGLAYOUT, // Layout direction 0=LTR, 1=RTL, 2=TTB-RTL or LTR, 3=TTB-LTR
-- 8 LOCALE_ILANGUAGE, // Numeric language code
-- 9 LOCALE_SNATIVEDISPLAYNAME, // Native locale name (example: "Deutsch (Deutschland)"
-- 10 LOCALE_SNATIVELANGUAGENAME, // Native language name
-- 11 LOCALE_SNATIVECOUNTRYNAME // Native country name
locid = values[1]
-- Extract language, script, and region
sep1, sep2 = string.find(locid, "-")
if sep1 ~= nil then
lcid = string.sub(locid, 1, sep1-1)
ccid = string.sub(locid, sep2+1)
sep1, sep2 = string.find(ccid, "-")
if sep1 ~= nil then
script = string.sub(ccid, 1, sep1-1)
if #script < 4 then
temp = script
script = string.sub(ccid, sep2+1)
ccid = temp
else
ccid = string.sub(ccid, sep2+1)
end
else
if #ccid >= 4 then
script = ccid
ccid = ""
else
script = ""
end
end
else
lcid = locid
script = ""
ccid = ""
end
ENGLISHDISPLAYNAME = values[2]
ENGLISHDISPLAYNAME = ENGLISHDISPLAYNAME:gsub("&", "and")
ENGLISHDISPLAYNAME = ENGLISHDISPLAYNAME:gsub("'", "''")
ENGLISHDISPLAYNAMEHEX = string.tohex(ENGLISHDISPLAYNAME)
if ENGLISHDISPLAYNAME ~= ENGLISHDISPLAYNAMEHEX then
print(' +++ Warning: ' .. locid .. ' - Display name contains non-ASCII characters')
end
ENGLISHLANGUAGENAME = values[3]
ENGLISHLANGUAGENAME = ENGLISHLANGUAGENAME:gsub("'", "''")
ENGLISHCOUNTRYNAME = values[4]
ENGLISHCOUNTRYNAME = ENGLISHCOUNTRYNAME:gsub("'", "''")
ENGLISHCOUNTRYNAME = ENGLISHCOUNTRYNAME:gsub("&", "and")
SCRIPTS = values[5]
if SCRIPTS ~= nil and #SCRIPTS > 4 then
local b = string.find(SCRIPTS, ';')
script4 = string.sub(SCRIPTS,1,b-1)
else
scripts4 = ''
end
COUNTRY3 = values[6]
CURRENCY = values[7]
LAYOUT = values[8]
if LAYOUT ~= '1' then
LAYOUT = 'LTR'
else
LAYOUT = 'RTL'
end
LCID = values[9]
lcidnum = tonumber('0x'..LCID)
lcidnum = lcidnum % 65536
divisor = 1024
idlang = lcidnum % divisor
idsublang = (lcidnum - idlang) / divisor
idlang = string.format("0x%02x", idlang)
idsublang = string.format("0x%02x", idsublang)
-- Clean up names
-- Replace single apostroph by 2 apostrophes (SQL requirement)
NATIVEDISPLAYNAME = values[10]
NATIVEDISPLAYNAME = NATIVEDISPLAYNAME:gsub("'", "''")
NATIVEDISPLAYNAMEHEX = string.tohex(NATIVEDISPLAYNAME)
NATIVELANGUAGENAME = values[11]
NATIVELANGUAGENAME = NATIVELANGUAGENAME:gsub("'", "''")
NATIVELANGUAGENAMEHEX = string.tohex(NATIVELANGUAGENAME)
NATIVECOUNTRYNAME = values[12]
NATIVECOUNTRYNAME = NATIVECOUNTRYNAME:gsub("'", "''")
NATIVECOUNTRYNAMEHEX = string.tohex(NATIVECOUNTRYNAME)
-- Replace common characters with accents by the base character
-- Needed to generate pure ASCII identifier for wxLANGUAGE symbols
ENGLISHLANGUAGENAMEASC = ENGLISHLANGUAGENAME
ENGLISHLANGUAGENAMEASC = ENGLISHLANGUAGENAMEASC:gsub("é", "e")
ENGLISHLANGUAGENAMEASC = ENGLISHLANGUAGENAMEASC:gsub("ô", "o")
ENGLISHLANGUAGENAMEASC = ENGLISHLANGUAGENAMEASC:gsub("", "")
ENGLISHLANGUAGENAMEASC = ENGLISHLANGUAGENAMEASC:gsub("'", "")
ENGLISHLANGUAGENAMEASC = ENGLISHLANGUAGENAMEASC:gsub("-", "_")
ENGLISHLANGUAGENAMEASC = ENGLISHLANGUAGENAMEASC:gsub("å", "a")
ENGLISHLANGUAGENAMEASC = ENGLISHLANGUAGENAMEASC:gsub("ç", "c")
ENGLISHLANGUAGENAMEASC = ENGLISHLANGUAGENAMEASC:gsub("ã", "a")
ENGLISHLANGUAGENAMEASC = ENGLISHLANGUAGENAMEASC:gsub("Å", "A")
ENGLISHLANGUAGENAMEASC = ENGLISHLANGUAGENAMEASC:gsub("ü", "u")
ENGLISHLANGUAGENAMEASC = ENGLISHLANGUAGENAMEASC:gsub("ʼ", "")
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAME
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAMEASC:gsub("é", "e")
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAMEASC:gsub("ô", "o")
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAMEASC:gsub("", "")
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAMEASC:gsub("'", "")
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAMEASC:gsub("%.", "")
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAMEASC:gsub("-", "_")
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAMEASC:gsub("å", "a")
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAMEASC:gsub("ç", "c")
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAMEASC:gsub("ã", "a")
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAMEASC:gsub("Å", "A")
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAMEASC:gsub("ü", "u")
ENGLISHCOUNTRYNAMEASC = ENGLISHCOUNTRYNAMEASC:gsub("í", "i")
-- Generate wxLANGUAGE symbol
locidnew = lcid
WXNAME = 'wxLANGUAGE_' .. string.upper(ENGLISHLANGUAGENAMEASC)
if #ccid > 0 then
locidnew = locidnew .. '_' .. ccid
WXNAME = WXNAME .. '_' .. string.upper(ENGLISHCOUNTRYNAMEASC)
end
-- Append script alias to locale identifier
if #script > 0 then
mappedscript = script2alias[script]
if mappedscript ~= nil then
scriptold = script
script = mappedscript
else
mappedscript = 'n/a'
end
locidnew = locidnew .. '@' .. script
-- print('-- New script: ' .. script .. ' - ' .. mappedscript .. ' ' .. locidnew)
end
-- Replace blank characters by underscore
-- Remove parentheses and commas
WXNAME = WXNAME:gsub(" ", "_")
WXNAME = WXNAME:gsub("%(", "")
WXNAME = WXNAME:gsub("%)", "")
WXNAME = WXNAME:gsub("%,", "")
-- Force specific wxLANGUAGE name for listed locale ids (compatibility with prior wxWidgets versions)
mappedwxname = locid2wxid[locidnew]
if mappedwxname ~= nil then
WXNAME = mappedwxname
else
mappedwxname = 'n/a'
end
-- print('-- ' .. locidnew .. ' ' .. WXNAME .. ' ' .. mappedwxname)
-- Force columnar output by appending blank characters
SWXNAME = string.format("%-55s", WXNAME)
slocid = string.format("%-14s", locidnew)
sidlang = string.format("%-4s", idlang)
sidsublang = string.format("%-4s", idsublang)
fo1:write("insert into win_localetable values ('" .. locid .. "', '" .. locidnew .. "', '" .. WXNAME .. "', '-', '-', '" .. string.tohex(ENGLISHDISPLAYNAME) .. "', '" .. string.tohex(ENGLISHLANGUAGENAME) .. "', '" .. string.tohex(ENGLISHCOUNTRYNAME) .. "', '" .. SCRIPTS .. "', '" .. COUNTRY3 .. "', '" .. script4 .. "', '" .. CURRENCY .. "', '" .. LAYOUT .. "', '" .. sidlang .. "', '" .. sidsublang .. "', '" .. NATIVEDISPLAYNAME .. "', '" .. NATIVELANGUAGENAME .. "', '" .. NATIVECOUNTRYNAME .. "', '" .. NATIVEDISPLAYNAMEHEX .. "', '" .. NATIVELANGUAGENAMEHEX .. "', '" .. NATIVECOUNTRYNAMEHEX .. "');\n")
count = count + 1
end
end
-- Add manually entries for compatibility with prior wxWidgets versions
fo1:write("insert or ignore into win_localetable values ('ab', 'ab', 'wxLANGUAGE_ABKHAZIAN', '-', '-', 'Abkhazian', 'Abkhazian', '', '', '', '', '', 'LTR', '-', '-', 'аҧсуа бызшәа', 'аҧсуа бызшәа', '', '" .. string.tohex('аҧсуа бызшәа') .. "', '" .. string.tohex('аҧсуа бызшәа') .. "', '');\n")
fo1:write("insert or ignore into win_localetable values ('ay', 'ay', 'wxLANGUAGE_AYMARA', '-', '-', 'Aymara', 'Aymara', '', '', '', '', '', 'LTR', '-', '-', 'Aymara', 'Aymara', '', 'Aymara', 'Aymara', '');\n")
fo1:write("insert or ignore into win_localetable values ('bh', 'bh', 'wxLANGUAGE_BIHARI', '-', '-', 'Bihari', 'Bihari', '', '', '', '', '', 'LTR', '-', '-', 'Bihari', 'Bihari', '', 'Bihari', 'Bihari', '');\n")
fo1:write("insert or ignore into win_localetable values ('bi', 'bi', 'wxLANGUAGE_BISLAMA', '-', '-', 'Bislama', 'Bislama', '', '', '', '', '', 'LTR', '-', '-', 'Bislama', 'Bislama', 'Vanuatu', 'Bislama', 'Bislama', 'Vanuatu');\n")
fo1:write("insert or ignore into win_localetable values ('en-CB', 'en_CB', 'wxLANGUAGE_ENGLISH_CARIBBEAN_CB', '-', '-', 'English (Caribbean)', 'English (Caribbean)', '', '', '', '', '', 'LTR', '0x09', '0x09', 'English (Caribbean)', 'English (Caribbean)', '', 'English (Caribbean)', 'English (Caribbean)', '');\n")
fo1:write("insert or ignore into win_localetable values ('fj', 'fj', 'wxLANGUAGE_FIJI', '-', '-', 'Fiji', 'Fiji', '', '', '', '', '', 'LTR', '-', '-', 'Na Vosa Vakaviti', 'Na Vosa Vakaviti', '', 'Na Vosa Vakaviti', 'Na Vosa Vakaviti', '');\n")
fo1:write("insert or ignore into win_localetable values ('ie', 'ie', 'wxLANGUAGE_INTERLINGUE', '-', '-', 'Interlingue', 'Interlingue', '', '', '', '', '', 'LTR', '-', '-', 'Interlingue', 'Interlingue', '', 'Interlingue', 'Interlingue', '');\n")
fo1:write("insert or ignore into win_localetable values ('ik', 'ik', 'wxLANGUAGE_INUPIAK', '-', '-', 'Inupiak', 'Inupiak', '', '', '', '', '', 'LTR', '-', '-', 'Inupiaq', 'Inupiaq', '', 'Inupiaq', 'Inupiaq', '');\n")
fo1:write("insert or ignore into win_localetable values ('ks-IN', 'ks_IN', 'wxLANGUAGE_KASHMIRI_INDIA', '-', '-', 'Kashmiri (India)', 'Kashmiri', 'India', '', '', '', '', 'RTL', '0x00', '0x04', 'کشور (بھارت)', 'کٲشُر', 'ہِندوستان', '" .. string.tohex('کشور (بھارت)') .."', '" .. string.tohex('کٲشُر') .."', '" .. string.tohex('ہِندوستان') .."');\n")
fo1:write("insert or ignore into win_localetable values ('ku-TR', 'ku_TR', 'wxLANGUAGE_KURDISH', '-', '-', 'Kurdish', 'Kurdish', '', '', '', '', '', 'LTR', '-', '-', 'Kurdî', 'Kurdî', '', '" .. string.tohex('Kurdî') .. "', '" .. string.tohex('Kurdî') .. "', '');\n")
fo1:write("insert or ignore into win_localetable values ('la-001', 'la_001', 'wxLANGUAGE_LATIN_WORLD', '-', '-', 'Latin (World)', 'Latin', 'World', '', '', '', '', 'LTR', '0x76', '0x01', 'Latina (World)', 'Latina', 'World', 'Latina (Mundus)', 'Latina', 'Mundus');\n")
fo1:write("insert or ignore into win_localetable values ('mo', 'mo', 'wxLANGUAGE_MOLDAVIAN', '-', '-', 'Moldavian', 'Moldavian', '', '', '', '', '', 'LTR', '-', '-', 'лимба молдовеняскэ', 'лимба молдовеняскэ', '', '" .. string.tohex('лимба молдовеняскэ') .. "', '" .. string.tohex('лимба молдовеняскэ') .. "', '');\n")
fo1:write("insert or ignore into win_localetable values ('na', 'na', 'wxLANGUAGE_NAURU', '-', '-', 'Nauru', 'Nauru', 'Nauru', '', '', '', '', 'LTR', '-', '-', 'Nauru', 'Nauru', 'Nauru', 'Nauru', 'Nauru', 'Nauru');\n")
fo1:write("insert or ignore into win_localetable values ('qu', 'qu', 'wxLANGUAGE_QUECHUA_MACRO', '-', '-', 'Quechua', 'Quechua', '', '', '', '', '', 'LTR', '-', '-', 'Qhichwa', 'Qhichwa', '', 'Qhichwa', 'Qhichwa', '');\n")
fo1:write("insert or ignore into win_localetable values ('sm', 'sm', 'wxLANGUAGE_SAMOAN', '-', '-', 'Samoan', 'Samoan', '', '', '', '', '', 'LTR', '-', '-', 'Samoa', 'Samoa', 'Samoa', 'Samoa', 'Samoa', 'Samoa');\n")
fo1:write("insert or ignore into win_localetable values ('sr-RS', 'sr_RS', 'wxLANGUAGE_SERBIAN_SERBIA', '-', '-', 'Serbian (Serbia)', 'Serbian', 'Serbia', '', '', '', '', 'LTR', '0x1a', '0x01', 'srpski (Srbija)', 'srpski', 'Srbija', 'srpski (Srbija)', 'srpski', 'Srbija');\n")
fo1:write("insert or ignore into win_localetable values ('sr-YU', 'sr_YU', 'wxLANGUAGE_SERBIAN_YU', '-', '-', 'Serbian', 'Serbian', '', '', '', '', '', 'LTR', '0x1a', '0x01', 'srpski', 'srpski', 'Srbija', 'srpski', 'srpski', 'Srbija');\n")
fo1:write("insert or ignore into win_localetable values ('sr-Cyrl-YU', 'sr_YU@cyrillic', 'wxLANGUAGE_SERBIAN_CYRILLIC_YU', '-', '-', 'Serbian (Cyrillic)', 'Serbian (Cyrillic)', '', 'Cyrl;', '', '', '', 'LTR', '0x1a', '0x03', 'српски (Србија)', 'српски', 'Србија', '" .. string.tohex('српски (Србија)') .. "', '" .. string.tohex('српски') .. "', '" .. string.tohex('Србија') .. "');\n")
fo1:write("insert or ignore into win_localetable values ('sr-Latn-YU', 'sr_YU@latin', 'wxLANGUAGE_SERBIAN_LATIN_YU', '-', '-', 'Serbian (Latin)', 'Serbian (Latin)', '', 'Latn;', '', '', '', 'LTR', '0x1a', '0x02', 'srpski (latinica)', 'srpski', 'Srbija', 'srpski (latinica)', 'srpski', 'Srbija');\n")
fo1:write("insert or ignore into win_localetable values ('sh', 'sh', 'wxLANGUAGE_SERBO_CROATIAN', '-', '-', 'Serbo-Croatian', 'Serbo-Croatian', '', '', '', '', '', 'LTR', '-', '-', 'srpskohrvatski', 'srpskohrvatski', '', 'srpskohrvatski', 'srpskohrvatski', '');\n")
fo1:write("insert or ignore into win_localetable values ('tl', 'tl', 'wxLANGUAGE_TAGALOG', '-', '-', 'Tagalog', 'Tagalog', '', 'Latn;', 'PHL', '', '', 'LTR', '-', '-', 'Tagalog', 'Tagalog', '', 'Tagalog', 'Tagalog', '');\n")
fo1:write("insert or ignore into win_localetable values ('tl-PH', 'tl_PH', 'wxLANGUAGE_TAGALOG_PHILIPPINES', '-', '-', 'Tagalog (Philippines)', 'Tagalog', 'Philippines', 'Latn;', 'PHL', '', '', 'LTR', '-', '-', 'Tagalog (Pilipinas)', 'Tagalog', 'Pilipinas', 'Tagalog (Pilipinas)', 'Tagalog', 'Pilipinas');\n")
fo1:write("insert or ignore into win_localetable values ('tw', 'tw', 'wxLANGUAGE_TWI', '-', '-', 'Twi', 'Twi', '', '', '', '', '', 'LTR', '-', '-', 'Twi', 'Twi', 'Ghana', 'Twi', 'Twi', 'Ghana');\n")
fo1:write("insert or ignore into win_localetable values ('za', 'za', 'wxLANGUAGE_ZHUANG', '-', '-', 'Zhuang', 'Zhuang', '', '', '', '', '', 'LTR', '-', '-', 'Zhuang', 'Zhuang', 'China', 'Zhuang', 'Zhuang', 'China');\n")
-- Update count to reflect manual entries (needs to be updated, if entries are added or removed)
count = count + 24
print(" Number of locales = " .. count)
fo1:write('commit;\n')
fo1:close()