You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

i18n.go 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package setting
  4. // defaultI18nLangNames must be a slice, we need the order
  5. var defaultI18nLangNames = []string{
  6. "en-US", "English",
  7. "zh-CN", "简体中文",
  8. "zh-HK", "繁體中文(香港)",
  9. "zh-TW", "繁體中文(台灣)",
  10. "de-DE", "Deutsch",
  11. "fr-FR", "Français",
  12. "nl-NL", "Nederlands",
  13. "lv-LV", "Latviešu",
  14. "ru-RU", "Русский",
  15. "uk-UA", "Українська",
  16. "ja-JP", "日本語",
  17. "es-ES", "Español",
  18. "pt-BR", "Português do Brasil",
  19. "pt-PT", "Português de Portugal",
  20. "pl-PL", "Polski",
  21. "bg-BG", "Български",
  22. "it-IT", "Italiano",
  23. "fi-FI", "Suomi",
  24. "tr-TR", "Türkçe",
  25. "cs-CZ", "Čeština",
  26. "sv-SE", "Svenska",
  27. "ko-KR", "한국어",
  28. "el-GR", "Ελληνικά",
  29. "fa-IR", "فارسی",
  30. "hu-HU", "Magyar nyelv",
  31. "id-ID", "Bahasa Indonesia",
  32. "ml-IN", "മലയാളം",
  33. }
  34. func defaultI18nLangs() (res []string) {
  35. for i := 0; i < len(defaultI18nLangNames); i += 2 {
  36. res = append(res, defaultI18nLangNames[i])
  37. }
  38. return res
  39. }
  40. func defaultI18nNames() (res []string) {
  41. for i := 0; i < len(defaultI18nLangNames); i += 2 {
  42. res = append(res, defaultI18nLangNames[i+1])
  43. }
  44. return res
  45. }
  46. var (
  47. // I18n settings
  48. Langs []string
  49. Names []string
  50. )
  51. func loadI18nFrom(rootCfg ConfigProvider) {
  52. Langs = rootCfg.Section("i18n").Key("LANGS").Strings(",")
  53. if len(Langs) == 0 {
  54. Langs = defaultI18nLangs()
  55. }
  56. Names = rootCfg.Section("i18n").Key("NAMES").Strings(",")
  57. if len(Names) == 0 {
  58. Names = defaultI18nNames()
  59. }
  60. }