mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-04 17:38:42 +00:00
42bcf310b4
Backport of https://codeberg.org/forgejo/forgejo/pulls/4576 * Closes #4563 * A followup to my 2024-February investigation in the Localization room * Restore Malayalam and Serbian locales that were deleted in067b0c2664
andf91092453e
. Bulgarian was also deleted, but we already have better Bulgarian translation. * Remove ml-IN from the language selector. It was not usable for 1.5 years, has ~18% completion and was not maintained in those ~1.5 years. It could also have placeholder bugs due to refactors. Restoring files gives the translators a base to work with and makes the project advertised on Weblate homepage for logged in users in the Suggestions tab. Unlike Gitea, we store our current translations directly in the repo and not on a separate platform, so it makes sense to add these files back. Removing selector entry avoids bugs and user confusion. I will make a followup for the documentation. Reviewed-on: #4576 Reviewed-by: twenty-panda <twenty-panda@noreply.codeberg.org> (cherry picked from commite819c1622e
) Co-authored-by: 0ko <0ko@noreply.codeberg.org> Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/4626 Reviewed-by: 0ko <0ko@noreply.codeberg.org> Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org> Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
69 lines
1.6 KiB
Go
69 lines
1.6 KiB
Go
// Copyright 2021 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package setting
|
|
|
|
// defaultI18nLangNames must be a slice, we need the order
|
|
var defaultI18nLangNames = []string{
|
|
"en-US", "English",
|
|
"zh-CN", "简体中文",
|
|
"zh-HK", "繁體中文(香港)",
|
|
"zh-TW", "繁體中文(台灣)",
|
|
"de-DE", "Deutsch",
|
|
"fr-FR", "Français",
|
|
"nl-NL", "Nederlands",
|
|
"lv-LV", "Latviešu",
|
|
"ru-RU", "Русский",
|
|
"uk-UA", "Українська",
|
|
"ja-JP", "日本語",
|
|
"es-ES", "Español",
|
|
"pt-BR", "Português do Brasil",
|
|
"pt-PT", "Português de Portugal",
|
|
"pl-PL", "Polski",
|
|
"bg", "Български",
|
|
"it-IT", "Italiano",
|
|
"fi-FI", "Suomi",
|
|
"fil", "Filipino",
|
|
"eo", "Esperanto",
|
|
"tr-TR", "Türkçe",
|
|
"cs-CZ", "Čeština",
|
|
"sl", "Slovenščina",
|
|
"sv-SE", "Svenska",
|
|
"ko-KR", "한국어",
|
|
"el-GR", "Ελληνικά",
|
|
"fa-IR", "فارسی",
|
|
"hu-HU", "Magyar nyelv",
|
|
"id-ID", "Bahasa Indonesia",
|
|
}
|
|
|
|
func defaultI18nLangs() (res []string) {
|
|
for i := 0; i < len(defaultI18nLangNames); i += 2 {
|
|
res = append(res, defaultI18nLangNames[i])
|
|
}
|
|
return res
|
|
}
|
|
|
|
func defaultI18nNames() (res []string) {
|
|
for i := 0; i < len(defaultI18nLangNames); i += 2 {
|
|
res = append(res, defaultI18nLangNames[i+1])
|
|
}
|
|
return res
|
|
}
|
|
|
|
var (
|
|
// I18n settings
|
|
Langs []string
|
|
Names []string
|
|
)
|
|
|
|
func loadI18nFrom(rootCfg ConfigProvider) {
|
|
Langs = rootCfg.Section("i18n").Key("LANGS").Strings(",")
|
|
if len(Langs) == 0 {
|
|
Langs = defaultI18nLangs()
|
|
}
|
|
Names = rootCfg.Section("i18n").Key("NAMES").Strings(",")
|
|
if len(Names) == 0 {
|
|
Names = defaultI18nNames()
|
|
}
|
|
}
|