This commit is contained in:
@@ -381,11 +381,11 @@ func rankSearchResults(query string, results []services.SearchResult) []services
|
|||||||
}
|
}
|
||||||
switch result.Source {
|
switch result.Source {
|
||||||
case "Google Video":
|
case "Google Video":
|
||||||
score += 2
|
score += 1
|
||||||
case "Envato":
|
case "Envato":
|
||||||
score += 5
|
score += 7
|
||||||
case "Artgrid":
|
case "Artgrid":
|
||||||
score += 5
|
score += 7
|
||||||
}
|
}
|
||||||
scored = append(scored, scoredResult{item: result, score: score})
|
scored = append(scored, scoredResult{item: result, score: score})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -212,6 +212,9 @@ func (g *GeminiService) TranslateQuery(query string) string {
|
|||||||
if translated, err := g.translateViaGoogle(query); err == nil && translated != "" {
|
if translated, err := g.translateViaGoogle(query); err == nil && translated != "" {
|
||||||
return translated
|
return translated
|
||||||
}
|
}
|
||||||
|
if translated := translateKoreanMediaTerms(query); translated != "" && !strings.EqualFold(translated, strings.TrimSpace(query)) {
|
||||||
|
return translated
|
||||||
|
}
|
||||||
return strings.TrimSpace(query)
|
return strings.TrimSpace(query)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -519,6 +522,40 @@ func looksMostlyASCII(text string) bool {
|
|||||||
return ascii >= len(runes)*8/10
|
return ascii >= len(runes)*8/10
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func translateKoreanMediaTerms(query string) string {
|
||||||
|
replacements := map[string]string{
|
||||||
|
"숲속": "forest",
|
||||||
|
"숲": "forest",
|
||||||
|
"다정한": "affectionate",
|
||||||
|
"커플": "couple",
|
||||||
|
"도시": "city",
|
||||||
|
"야경": "night city",
|
||||||
|
"거리": "street",
|
||||||
|
"골목": "alley",
|
||||||
|
"바다": "ocean",
|
||||||
|
"해변": "beach",
|
||||||
|
"노을": "sunset",
|
||||||
|
"자연": "nature",
|
||||||
|
"비": "rain",
|
||||||
|
"눈": "snow",
|
||||||
|
"드론": "drone",
|
||||||
|
"항공샷": "aerial shot",
|
||||||
|
"사람들": "people",
|
||||||
|
"인파": "crowd",
|
||||||
|
"행복한": "happy",
|
||||||
|
"연인": "lovers",
|
||||||
|
"공원": "park",
|
||||||
|
"산": "mountain",
|
||||||
|
}
|
||||||
|
|
||||||
|
translated := strings.TrimSpace(query)
|
||||||
|
for korean, english := range replacements {
|
||||||
|
translated = strings.ReplaceAll(translated, korean, english)
|
||||||
|
}
|
||||||
|
translated = strings.Join(strings.Fields(translated), " ")
|
||||||
|
return strings.TrimSpace(translated)
|
||||||
|
}
|
||||||
|
|
||||||
func (g *GeminiService) translateViaGoogle(query string) (string, error) {
|
func (g *GeminiService) translateViaGoogle(query string) (string, error) {
|
||||||
endpoint := "https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=en&dt=t&q=" + neturl.QueryEscape(query)
|
endpoint := "https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=en&dt=t&q=" + neturl.QueryEscape(query)
|
||||||
resp, err := g.Client.Get(endpoint)
|
resp, err := g.Client.Get(endpoint)
|
||||||
|
|||||||
Reference in New Issue
Block a user