diff --git a/internal/handlers/account.go b/internal/handlers/account.go index fccf75c..e99019b 100644 --- a/internal/handlers/account.go +++ b/internal/handlers/account.go @@ -3,8 +3,8 @@ package handlers import ( "database/sql" - "git.tijl.dev/tijl/tijl.dev-core/internal/i18n" "git.tijl.dev/tijl/tijl.dev-core/internal/user" + "git.tijl.dev/tijl/tijl.dev-core/modules/i18n" "git.tijl.dev/tijl/tijl.dev-core/modules/web" "github.com/gofiber/fiber/v2" ) diff --git a/internal/handlers/auth.go b/internal/handlers/auth.go index 3140706..404646f 100644 --- a/internal/handlers/auth.go +++ b/internal/handlers/auth.go @@ -3,9 +3,9 @@ package handlers import ( "net/http" - "git.tijl.dev/tijl/tijl.dev-core/internal/i18n" "git.tijl.dev/tijl/tijl.dev-core/internal/oidc" "git.tijl.dev/tijl/tijl.dev-core/internal/user" + "git.tijl.dev/tijl/tijl.dev-core/modules/i18n" "git.tijl.dev/tijl/tijl.dev-core/modules/web" "github.com/gofiber/fiber/v2" ) diff --git a/internal/handlers/blog.go b/internal/handlers/blog.go index 8a6a908..d6fe84d 100644 --- a/internal/handlers/blog.go +++ b/internal/handlers/blog.go @@ -10,7 +10,7 @@ import ( "path/filepath" "time" - "git.tijl.dev/tijl/tijl.dev-core/internal/i18n" + "git.tijl.dev/tijl/tijl.dev-core/modules/i18n" log "git.tijl.dev/tijl/tijl.dev-core/modules/logger" "git.tijl.dev/tijl/tijl.dev-core/modules/web" "github.com/gofiber/fiber/v2" diff --git a/internal/handlers/routes.go b/internal/handlers/routes.go index 5b36426..3496345 100644 --- a/internal/handlers/routes.go +++ b/internal/handlers/routes.go @@ -5,9 +5,8 @@ import ( "net/http" "git.tijl.dev/tijl/tijl.dev-core/internal/config" - "git.tijl.dev/tijl/tijl.dev-core/internal/i18n" "git.tijl.dev/tijl/tijl.dev-core/internal/oidc" - "git.tijl.dev/tijl/tijl.dev-core/internal/user" + "git.tijl.dev/tijl/tijl.dev-core/modules/i18n" "git.tijl.dev/tijl/tijl.dev-core/modules/web" webf "git.tijl.dev/tijl/tijl.dev-core/web" "github.com/gofiber/fiber/v2" @@ -39,10 +38,10 @@ func routes(app *fiber.App) { return c.Render("about", data, "layouts/base") }) app.Get("/services", func(c *fiber.Ctx) error { - _, err := user.GetSession(c) + /*_, err := user.GetSession(c) if err != nil { return c.Next() - } + }*/ data := *web.Common(c) data["Title"] = i18n.Translate(c, "services") return c.Render("services", data, "layouts/base") diff --git a/internal/handlers/settings.go b/internal/handlers/settings.go index ace88e5..a4e6d19 100644 --- a/internal/handlers/settings.go +++ b/internal/handlers/settings.go @@ -1,7 +1,7 @@ package handlers import ( - "git.tijl.dev/tijl/tijl.dev-core/internal/i18n" + "git.tijl.dev/tijl/tijl.dev-core/modules/i18n" "git.tijl.dev/tijl/tijl.dev-core/modules/web" "github.com/gofiber/fiber/v2" ) diff --git a/internal/service/main.go b/internal/service/main.go index 7bb2be7..c4b4540 100644 --- a/internal/service/main.go +++ b/internal/service/main.go @@ -8,10 +8,11 @@ import ( "git.tijl.dev/tijl/tijl.dev-core/internal/assets" "git.tijl.dev/tijl/tijl.dev-core/internal/config" "git.tijl.dev/tijl/tijl.dev-core/internal/handlers" - "git.tijl.dev/tijl/tijl.dev-core/internal/i18n" "git.tijl.dev/tijl/tijl.dev-core/internal/oidc" webinternal "git.tijl.dev/tijl/tijl.dev-core/internal/web" + "git.tijl.dev/tijl/tijl.dev-core/locales" "git.tijl.dev/tijl/tijl.dev-core/modules/db" + "git.tijl.dev/tijl/tijl.dev-core/modules/i18n" "git.tijl.dev/tijl/tijl.dev-core/modules/logger" "git.tijl.dev/tijl/tijl.dev-core/modules/web" webf "git.tijl.dev/tijl/tijl.dev-core/web" @@ -35,7 +36,7 @@ func Listen() { // Load assets assets.Load() // Load translations - i18n.Load() + i18n.RegisterTranslations(locales.Embed, ".") // setup handler handlers.Setup() // setup web diff --git a/internal/web/common.go b/internal/web/common.go index d79c1b2..c8550da 100644 --- a/internal/web/common.go +++ b/internal/web/common.go @@ -1,8 +1,8 @@ package web import ( - "git.tijl.dev/tijl/tijl.dev-core/internal/i18n" "git.tijl.dev/tijl/tijl.dev-core/internal/user" + "git.tijl.dev/tijl/tijl.dev-core/modules/i18n" "git.tijl.dev/tijl/tijl.dev-core/modules/web" "github.com/gofiber/fiber/v2" ) diff --git a/internal/i18n/i18n.go b/modules/i18n/i18n.go similarity index 73% rename from internal/i18n/i18n.go rename to modules/i18n/i18n.go index c30b84f..53d6d25 100644 --- a/internal/i18n/i18n.go +++ b/modules/i18n/i18n.go @@ -1,11 +1,11 @@ package i18n import ( + "embed" "encoding/json" "path/filepath" "strings" - "git.tijl.dev/tijl/tijl.dev-core/locales" log "git.tijl.dev/tijl/tijl.dev-core/modules/logger" "github.com/gofiber/fiber/v2" ) @@ -14,10 +14,13 @@ var translations map[string]map[string]string const DefaultLang = "en" -func Load() { - translations = make(map[string]map[string]string) +func RegisterTranslations(embed embed.FS, location string) { + if translations == nil { + translations = make(map[string]map[string]string) + } + + files, err := embed.ReadDir(location) - files, err := locales.Embed.ReadDir(".") if err != nil { log.Fatal().Err(err) } @@ -33,7 +36,7 @@ func Load() { lang := strings.TrimSuffix(file.Name(), filepath.Ext(file.Name())) - data, err := locales.Embed.ReadFile(filepath.Join(".", file.Name())) + data, err := embed.ReadFile(filepath.Join(location, file.Name())) if err != nil { log.Error().Err(err).Msg("Failed to read file") continue @@ -45,11 +48,16 @@ func Load() { continue } - log.Debug().Str("filename", file.Name()).Msg("i18n.Load: loaded") - translations[lang] = messages - } + if translations[lang] == nil { + translations[lang] = make(map[string]string) + } - log.Info().Msg("loaded translations") + for key, value := range messages { + translations[lang][key] = value + } + + log.Debug().Str("filename", file.Name()).Msg("i18n.RegisterTranslations: loaded") + } } func Translate(c *fiber.Ctx, key string) string { diff --git a/tailwind.config.ts b/tailwind.config.ts index 0ffabe5..232f94f 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -1,6 +1,6 @@ /** @type {import('tailwindcss').Config} */ module.exports = { - content: ["./web/views/**/*.html", "./web/**/*.{js,ts,css}"], + content: ["./internal/**/*.html", "./web/views/**/*.html", "./web/**/*.{js,ts,css}"], theme: { extend: {}, }, diff --git a/web/views/partials/menu.html b/web/views/partials/menu.html index 99c400f..c904841 100644 --- a/web/views/partials/menu.html +++ b/web/views/partials/menu.html @@ -1,5 +1,5 @@