gitea源码

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. "ga-IE", "Gaeilge",
  13. "nl-NL", "Nederlands",
  14. "lv-LV", "Latviešu",
  15. "ru-RU", "Русский",
  16. "uk-UA", "Українська",
  17. "ja-JP", "日本語",
  18. "es-ES", "Español",
  19. "pt-BR", "Português do Brasil",
  20. "pt-PT", "Português de Portugal",
  21. "pl-PL", "Polski",
  22. "bg-BG", "Български",
  23. "it-IT", "Italiano",
  24. "fi-FI", "Suomi",
  25. "tr-TR", "Türkçe",
  26. "cs-CZ", "Čeština",
  27. "sv-SE", "Svenska",
  28. "ko-KR", "한국어",
  29. "el-GR", "Ελληνικά",
  30. "fa-IR", "فارسی",
  31. "hu-HU", "Magyar nyelv",
  32. "id-ID", "Bahasa Indonesia",
  33. "ml-IN", "മലയാളം",
  34. }
  35. func defaultI18nLangs() (res []string) {
  36. for i := 0; i < len(defaultI18nLangNames); i += 2 {
  37. res = append(res, defaultI18nLangNames[i])
  38. }
  39. return res
  40. }
  41. func defaultI18nNames() (res []string) {
  42. for i := 0; i < len(defaultI18nLangNames); i += 2 {
  43. res = append(res, defaultI18nLangNames[i+1])
  44. }
  45. return res
  46. }
  47. var (
  48. // I18n settings
  49. Langs []string
  50. Names []string
  51. )
  52. func loadI18nFrom(rootCfg ConfigProvider) {
  53. Langs = rootCfg.Section("i18n").Key("LANGS").Strings(",")
  54. if len(Langs) == 0 {
  55. Langs = defaultI18nLangs()
  56. }
  57. Names = rootCfg.Section("i18n").Key("NAMES").Strings(",")
  58. if len(Names) == 0 {
  59. Names = defaultI18nNames()
  60. }
  61. }