fixed translations in opensearch.xml
1
init.go
|
@ -65,6 +65,7 @@ func main() {
|
|||
// Start automatic update checker, not used now
|
||||
//go checkForUpdates()
|
||||
|
||||
InitializeLanguage("en") // Initialize language before generating OpenSearch
|
||||
generateOpenSearchXML(config)
|
||||
|
||||
go startNodeClient()
|
||||
|
|
3
lang.go
|
@ -14,7 +14,7 @@ func InitializeLanguage(siteLanguage string) {
|
|||
translationsDir := "lang"
|
||||
localeDir := filepath.Join(translationsDir, siteLanguage, "LC_MESSAGES")
|
||||
if _, err := os.Stat(localeDir); os.IsNotExist(err) {
|
||||
printWarn("Translation directory for language '%s' does not exist. Using default.", siteLanguage)
|
||||
printWarn("Translation directory for language '%s' not found. Defaulting to English.", siteLanguage)
|
||||
siteLanguage = "en" // Use default language if not found
|
||||
localeDir = filepath.Join(translationsDir, siteLanguage, "LC_MESSAGES")
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ func InitializeLanguage(siteLanguage string) {
|
|||
// Translate wraps gotext.Get and returns a translated string based on the given key.
|
||||
func Translate(key string, params ...interface{}) string {
|
||||
if translations == nil {
|
||||
printWarn("Translation failed for key '%s'. This may occur if Translate is called before initializing language settings or if the key is missing.", key)
|
||||
return key // Fallback if translations are not initialized
|
||||
}
|
||||
return translations.Get(key, params...)
|
||||
|
|
|
@ -40,6 +40,9 @@ msgstr "Site Language"
|
|||
msgid "search_language"
|
||||
msgstr "Search Language"
|
||||
|
||||
msgid "any_language"
|
||||
msgstr "Any Language"
|
||||
|
||||
msgid "no_results"
|
||||
msgstr "No results found for '%s'. Try different keywords."
|
||||
|
||||
|
@ -189,3 +192,12 @@ msgstr "You are within "
|
|||
|
||||
msgid "meters_from_point"
|
||||
msgstr "meters from this point"
|
||||
|
||||
msgid "opensearch_shortname"
|
||||
msgstr "QGato Search"
|
||||
|
||||
msgid "opensearch_description"
|
||||
msgstr "QGato - A Privacy-Focused Search Engine"
|
||||
|
||||
msgid "opensearch_tags"
|
||||
msgstr "search, qgato, spitfire"
|
|
@ -40,6 +40,9 @@ msgstr "Język strony"
|
|||
msgid "search_language"
|
||||
msgstr "Język wyszukiwania"
|
||||
|
||||
msgid "any_language"
|
||||
msgstr "Dowolny język"
|
||||
|
||||
msgid "no_results"
|
||||
msgstr "Nie znaleziono wyników dla '%s'. Spróbuj innych słów kluczowych."
|
||||
|
||||
|
@ -189,3 +192,12 @@ msgstr "Znajdujesz się w odległości "
|
|||
|
||||
msgid "meters_from_point"
|
||||
msgstr "metrów od tego punktu"
|
||||
|
||||
msgid "opensearch_shortname"
|
||||
msgstr "Wyszukiwarka QGato"
|
||||
|
||||
msgid "opensearch_description"
|
||||
msgstr "QGato - Prywatna wyszukiwarka internetowa"
|
||||
|
||||
msgid "opensearch_tags"
|
||||
msgstr "wyszukiwarka, qgato, spitfire"
|
7
main.go
|
@ -109,6 +109,13 @@ func handleSearch(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
InitializeLanguage(settings.SiteLanguage)
|
||||
|
||||
// Translate the "Any Language" option after initialization
|
||||
for i, option := range languageOptions {
|
||||
if option.Code == "" {
|
||||
languageOptions[i].Name = Translate("any_language")
|
||||
}
|
||||
}
|
||||
|
||||
if query == "" {
|
||||
data := struct {
|
||||
LanguageOptions []LanguageOption
|
||||
|
|
|
@ -21,13 +21,14 @@ type URL struct {
|
|||
}
|
||||
|
||||
func generateOpenSearchXML(config Config) {
|
||||
baseURL := addProtocol(config.Domain)
|
||||
// Ensure that language is initialized in `main` before calling this function
|
||||
|
||||
baseURL := addProtocol(config.Domain)
|
||||
opensearch := OpenSearchDescription{
|
||||
Xmlns: "http://a9.com/-/spec/opensearch/1.1/",
|
||||
ShortName: "QGato",
|
||||
Description: "QGato search engine",
|
||||
Tags: "search, spitfire, qgato",
|
||||
ShortName: Translate("opensearch_shortname"),
|
||||
Description: Translate("opensearch_description"),
|
||||
Tags: Translate("opensearch_tags"),
|
||||
URLs: []URL{
|
||||
{
|
||||
Type: "text/html",
|
||||
|
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 12 KiB |