[I18N] Allow custom repo size format
Following https://codeberg.org/forgejo/forgejo/pulls/2528#issuecomment-1721846 - simplify the code - allow to have custom format in translations - provide proper Russian translation because test depends on it
This commit is contained in:
parent
7e575603ee
commit
2f38c2220f
4 changed files with 6 additions and 11 deletions
|
@ -234,6 +234,7 @@ type SizeDetail struct {
|
|||
}
|
||||
|
||||
// SizeDetails forms a struct with various size details about repository
|
||||
// Note: SizeDetailsString below expects it to have 2 entries
|
||||
func (repo *Repository) SizeDetails() []SizeDetail {
|
||||
sizeDetails := []SizeDetail{
|
||||
{
|
||||
|
@ -250,16 +251,8 @@ func (repo *Repository) SizeDetails() []SizeDetail {
|
|||
|
||||
// SizeDetailsString returns a concatenation of all repository size details as a string
|
||||
func (repo *Repository) SizeDetailsString(locale translation.Locale) string {
|
||||
var str strings.Builder
|
||||
sizeDetails := repo.SizeDetails()
|
||||
for i, detail := range sizeDetails {
|
||||
if i > 0 {
|
||||
// TODO: use semicolon if decimal point of user localization is a comma
|
||||
str.WriteString(", ")
|
||||
}
|
||||
str.WriteString(fmt.Sprintf("%s: %s", detail.Name, locale.TrSize(detail.Size)))
|
||||
}
|
||||
return str.String()
|
||||
return locale.TrString("repo.size_format", sizeDetails[0].Name, locale.TrSize(sizeDetails[0].Size), sizeDetails[1].Name, locale.TrSize(sizeDetails[1].Size))
|
||||
}
|
||||
|
||||
func (repo *Repository) LogString() string {
|
||||
|
|
|
@ -1011,6 +1011,7 @@ owner_helper = Some organizations may not show up in the dropdown due to a maxim
|
|||
repo_name = Repository name
|
||||
repo_name_helper = Good repository names use short, memorable and unique keywords.
|
||||
repo_size = Repository Size
|
||||
size_format = %[1]s: %[2]s, %[3]s: %[4]s
|
||||
template = Template
|
||||
template_select = Select a template.
|
||||
template_helper = Make repository a template
|
||||
|
|
|
@ -993,6 +993,7 @@ owner_helper=Некоторые организации могут не отоб
|
|||
repo_name=Название репозитория
|
||||
repo_name_helper=Лучшие названия репозиториев состоят из коротких, легко запоминаемых и уникальных ключевых слов.
|
||||
repo_size=Размер репозитория
|
||||
size_format = `%[1]s: %[2]s; %[3]s: %[4]s`
|
||||
template=Шаблон
|
||||
template_select=Выбрать шаблон.
|
||||
template_helper=Сделать репозиторий шаблоном
|
||||
|
@ -3773,4 +3774,4 @@ keyword_search_unavailable = Поиск по ключевым словам не
|
|||
match_tooltip = Включать только результаты, точно соответствующие запросу
|
||||
code_search_unavailable = Поиск по коду сейчас недоступен. Уточните подробности у администратора.
|
||||
runner_kind = Поиск раннеров...
|
||||
code_search_by_git_grep = Эти результаты получены через «git grep». Результатов может быть больше, если администратор сервера включит индексатор кода.
|
||||
code_search_by_git_grep = Эти результаты получены через «git grep». Результатов может быть больше, если администратор сервера включит индексатор кода.
|
||||
|
|
|
@ -87,7 +87,7 @@ func TestDataSizeTranslation(t *testing.T) {
|
|||
fullSize, exists := repo.Attr("data-tooltip-content")
|
||||
assert.True(t, exists)
|
||||
fullSize = noDigits.ReplaceAllString(fullSize, "")
|
||||
assert.Equal(t, "git: КиБ, lfs: Б", fullSize)
|
||||
assert.Equal(t, "git: КиБ; lfs: Б", fullSize)
|
||||
|
||||
// Check if file sizes are correclty translated
|
||||
testFileSizeTranslated(t, session, path.Join(testUser, testRepoName, "src/branch/main/137byteFile.txt"), "137 Б")
|
||||
|
|
Loading…
Reference in a new issue