language.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package tool
  2. import (
  3. "database/sql"
  4. "log"
  5. "os"
  6. "path/filepath"
  7. )
  8. var global_lang_data = map[string]string{}
  9. func Get_language(db *sql.DB, data string, safe bool) string {
  10. language := "ko-KR"
  11. QueryRow_DB(
  12. db,
  13. "select data from other where name = 'language'",
  14. []any{ &language },
  15. )
  16. if _, ok := global_lang_data[language + "_" + data]; ok {
  17. if safe {
  18. return global_lang_data[language + "_" + data]
  19. } else {
  20. return HTML_escape(global_lang_data[language + "_" + data])
  21. }
  22. } else {
  23. file, err := os.Open(filepath.Join("..", "lang", language + ".json"))
  24. if err != nil {
  25. panic(err)
  26. }
  27. defer file.Close()
  28. lang_data := map[string]string{}
  29. decoder := json.NewDecoder(file)
  30. if err := decoder.Decode(&lang_data); err != nil {
  31. panic(err)
  32. }
  33. for k, v := range lang_data {
  34. global_lang_data[language + "_" + k] = v
  35. }
  36. if _, ok := lang_data[data]; ok {
  37. if safe {
  38. return lang_data[data]
  39. } else {
  40. return HTML_escape(lang_data[data])
  41. }
  42. } else {
  43. log.Default().Println(data + " (" + language + ")")
  44. return data + " (" + language + ")"
  45. }
  46. }
  47. }