This commit is contained in:
48
main.go
48
main.go
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"html/template"
|
||||
@@ -30,13 +31,51 @@ func getenv(k, d string) string {
|
||||
return d
|
||||
}
|
||||
|
||||
// Funktion zur Deserialisierung und Umwandlung in map[string]map[string]string
|
||||
func loadTranslationsFromFile(filename string) (map[string]map[string]string, error) {
|
||||
// Dateiinhalt lesen
|
||||
fileData, err := os.ReadFile(filename)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("fehler beim lesen der datei: %w", err)
|
||||
}
|
||||
|
||||
var translationFile TranslationFile
|
||||
|
||||
// Deserialisierung des JSON in die Struktur
|
||||
if err := json.Unmarshal(fileData, &translationFile); err != nil {
|
||||
return nil, fmt.Errorf("fehler beim deserialisieren der json-daten: %w", err)
|
||||
}
|
||||
|
||||
// Umwandlung der Struktur in eine Map
|
||||
result := make(map[string]map[string]string)
|
||||
for _, trans := range translationFile.Translations {
|
||||
result[trans.Language] = trans.Messages
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// Die Struktur für die Übersetzungen.
|
||||
type TranslationsStruct struct {
|
||||
Language string `json:"language"`
|
||||
Messages map[string]string `json:"messages"`
|
||||
}
|
||||
|
||||
// Temporäre Struktur zur Deserialisierung.
|
||||
type TranslationFile struct {
|
||||
Translations []TranslationsStruct `json:"translations"`
|
||||
}
|
||||
|
||||
// Globale Variable für die Übersetzungen
|
||||
var translations map[string]map[string]string
|
||||
|
||||
const page = `<!doctype html>
|
||||
<html lang="de"><head>
|
||||
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>Discord Webposter (mit Subscribers)</title>
|
||||
<style>
|
||||
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:2rem}
|
||||
.wrap{max-width:900px;margin:0 auto}
|
||||
.wrap{max-width:1200px;margin:0 auto}
|
||||
.grid{display:grid;gap:1rem}
|
||||
.two{grid-template-columns:1fr;gap:1rem}
|
||||
@media(min-width:900px){.two{grid-template-columns:2fr 1fr}}
|
||||
@@ -127,6 +166,7 @@ func main() {
|
||||
if token == "" || appID == "" {
|
||||
log.Fatal("Bitte DISCORD_TOKEN und APPLICATION_ID setzen.")
|
||||
}
|
||||
translations, _ = loadTranslationsFromFile(getenv("TRANSLATIONS_FILE", "/tempsrc/language.json"))
|
||||
httpAddr := getenv("HTTP_ADDR", ":8080")
|
||||
dbPath := getenv("DB_PATH", "./subs.db")
|
||||
|
||||
@@ -204,8 +244,8 @@ func onGuildCreate(s *discordgo.Session, g *discordgo.GuildCreate) {
|
||||
}
|
||||
|
||||
embed := &discordgo.MessageEmbed{
|
||||
Title: "👋 Willkommen!",
|
||||
Description: "Ich kann dir Updates per DM schicken.\n\n• Tippe `/subscribe` oder\n• klicke den Button unten, um eine DM mit mir zu starten.",
|
||||
Title: "👋 Willkommen!", //translations[getLanguage(guildID)]["response.adduser.error.user"]
|
||||
Description: "Ich kann dir Updates per DM schicken.\n\n• Tippe `/subscribe` oder\n• klicke den Button unten, um eine DM mit mir zu starten.", //translations[getLanguage(guildID)]["response.adduser.error.user"]
|
||||
Color: 0x5865F2,
|
||||
}
|
||||
|
||||
@@ -214,7 +254,7 @@ func onGuildCreate(s *discordgo.Session, g *discordgo.GuildCreate) {
|
||||
Components: []discordgo.MessageComponent{
|
||||
discordgo.Button{
|
||||
CustomID: "start_dm",
|
||||
Label: "DM starten",
|
||||
Label: "DM starten", //translations[getLanguage(guildID)]["response.adduser.error.user"]
|
||||
Style: discordgo.PrimaryButton,
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user