add cyrillic and make latin/unknown be just the fallback, not compete against other scripts in the identification race.

This commit is contained in:
fiatjaf
2023-12-27 20:57:40 -03:00
parent 1a154f57e9
commit a500e7bb79
3 changed files with 19 additions and 13 deletions

View File

@@ -27,7 +27,7 @@ import (
) )
const ( const (
nSupportedScripts = 13 nSupportedScripts = 14
scaleShift = 6 scaleShift = 6
) )
@@ -35,6 +35,7 @@ var (
supportedScripts = [nSupportedScripts]language.Script{ supportedScripts = [nSupportedScripts]language.Script{
language.Unknown, language.Unknown,
language.Latin, language.Latin,
language.Cyrillic,
language.Hiragana, language.Hiragana,
language.Katakana, language.Katakana,
language.Hebrew, language.Hebrew,
@@ -56,6 +57,7 @@ var (
defaultLanguageMap = [nSupportedScripts]language.Language{ defaultLanguageMap = [nSupportedScripts]language.Language{
"en-us", "en-us",
"en-us", "en-us",
"ru",
"ja", "ja",
"ja", "ja",
"he", "he",
@@ -74,6 +76,7 @@ var (
di.DirectionLTR, di.DirectionLTR,
di.DirectionLTR, di.DirectionLTR,
di.DirectionLTR, di.DirectionLTR,
di.DirectionLTR,
di.DirectionRTL, di.DirectionRTL,
di.DirectionLTR, di.DirectionLTR,
di.DirectionRTL, di.DirectionRTL,
@@ -139,16 +142,17 @@ func initializeImageDrawingStuff() error {
} }
fontMap[0] = loadFont("fonts/NotoSans.ttf") fontMap[0] = loadFont("fonts/NotoSans.ttf")
fontMap[1] = fontMap[0] fontMap[1] = fontMap[0]
fontMap[2] = loadFont("fonts/NotoSansJP.ttf") fontMap[2] = fontMap[0]
fontMap[3] = fontMap[1] fontMap[3] = loadFont("fonts/NotoSansJP.ttf")
fontMap[4] = loadFont("fonts/NotoSansHebrew.ttf") fontMap[4] = fontMap[3]
fontMap[5] = loadFont("fonts/NotoSansThai.ttf") fontMap[5] = loadFont("fonts/NotoSansHebrew.ttf")
fontMap[6] = loadFont("fonts/NotoSansArabic.ttf") fontMap[6] = loadFont("fonts/NotoSansThai.ttf")
fontMap[7] = loadFont("fonts/NotoSansDevanagari.ttf") fontMap[7] = loadFont("fonts/NotoSansArabic.ttf")
fontMap[8] = loadFont("fonts/NotoSansBengali.ttf") fontMap[8] = loadFont("fonts/NotoSansDevanagari.ttf")
fontMap[9] = loadFont("fonts/NotoSansJavanese.ttf") fontMap[9] = loadFont("fonts/NotoSansBengali.ttf")
fontMap[10] = loadFont("fonts/NotoSansSC.ttf") fontMap[10] = loadFont("fonts/NotoSansJavanese.ttf")
fontMap[11] = loadFont("fonts/NotoSansKR.ttf") fontMap[11] = loadFont("fonts/NotoSansSC.ttf")
fontMap[12] = loadFont("fonts/NotoSansKR.ttf")
emojiFace = loadFont("fonts/NotoEmoji.ttf") emojiFace = loadFont("fonts/NotoEmoji.ttf")
// shaper stuff // shaper stuff
@@ -228,7 +232,8 @@ func getLanguageAndScriptAndDirectionAndFont(paragraph []rune) (
goto gotScriptIndex goto gotScriptIndex
} }
} }
idx = maxIndex(ranking[:]) idx = maxIndex(ranking[2:] /* skip Unknown and Latin because they are the default */)
idx += 2 // add back the skipped indexes (if maxIndex returns -1 this will default us to 1, latin)
gotScriptIndex: gotScriptIndex:
script = supportedScripts[idx] script = supportedScripts[idx]

View File

@@ -10,3 +10,4 @@ naddr1qqwyummnw3ez64r9vd5z64m9v44kc7fdxgcryvedxycj6vfeqgszak7w562dzerznp222fvrgk
nevent1qqsy05v33j3w6klkfhy6taud0d7g7n6e7z9mt0z20aenqfam3lzywrcpzpmhxue69uhnzdps9enrw73wd9hsyg9vxs9ql7jgtz0f3tu9wa65220gck0hl5gs7x7gxtgw34xy60gc2vg30mg0 nevent1qqsy05v33j3w6klkfhy6taud0d7g7n6e7z9mt0z20aenqfam3lzywrcpzpmhxue69uhnzdps9enrw73wd9hsyg9vxs9ql7jgtz0f3tu9wa65220gck0hl5gs7x7gxtgw34xy60gc2vg30mg0
nevent1qqszl72lntw6qdx2dc0fet9yrjpxlvh98ww7w3egm5ey5h0dwwzjg2gpzpmhxue69uhnzdps9enrw73wd9hsygyxl5wgpsraaw7r6xffxaajf49lvk594ung4u2umg4veez5manshc4w8pdp nevent1qqszl72lntw6qdx2dc0fet9yrjpxlvh98ww7w3egm5ey5h0dwwzjg2gpzpmhxue69uhnzdps9enrw73wd9hsygyxl5wgpsraaw7r6xffxaajf49lvk594ung4u2umg4veez5manshc4w8pdp
nevent1qqsyxahlr82z786vyhg0u2ycx46wrwwz5tap66udeffxle7phduthmspzpmhxue69uhnzdps9enrw73wd9hsygpcrk7vwyuw4wd8r6q5c4ur0jwky06qxmkqys80xq3nq6z0lj9n3u9zd3r4 nevent1qqsyxahlr82z786vyhg0u2ycx46wrwwz5tap66udeffxle7phduthmspzpmhxue69uhnzdps9enrw73wd9hsygpcrk7vwyuw4wd8r6q5c4ur0jwky06qxmkqys80xq3nq6z0lj9n3u9zd3r4
nevent1qqstj4gq2q9utuazaagzx0cd0n3jlm97p2084rfrvw2f8ytfa8ec2qgpp4mhxue69uhhjctzw5hx6egzypmezxyxju0727078e8epkwu06gle46g2rwzs5mgrll3we2tyxqfzuwew5q

View File

@@ -506,7 +506,7 @@ func isntRealRelay(url string) bool {
} }
func maxIndex(slice []int) int { func maxIndex(slice []int) int {
maxIndex := 0 maxIndex := -1
maxVal := 0 maxVal := 0
for i, val := range slice { for i, val := range slice {
if val > maxVal { if val > maxVal {