Merge pull request 'Fix localization of release/tag counters on releases page' (#3938) from 0ko/forgejo:i18n-release-page into forgejo

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/3938
This commit is contained in:
Earl Warren 2024-05-29 22:06:22 +00:00
commit b1e04a89be
4 changed files with 22 additions and 10 deletions

View file

@ -1231,22 +1231,22 @@ clear_ref = `Clear current reference`
filter_branch_and_tag = Filter branch or tag filter_branch_and_tag = Filter branch or tag
find_tag = Find tag find_tag = Find tag
branches = Branches branches = Branches
tag = Tag
tags = Tags tags = Tags
issues = Issues issues = Issues
pulls = Pull requests pulls = Pull requests
project_board = Projects project_board = Projects
packages = Packages packages = Packages
actions = Actions actions = Actions
release = Release
releases = Releases
labels = Labels labels = Labels
milestones = Milestones
org_labels_desc = Organization level labels that can be used with <strong>all repositories</strong> under this organization org_labels_desc = Organization level labels that can be used with <strong>all repositories</strong> under this organization
org_labels_desc_manage = manage org_labels_desc_manage = manage
milestones = Milestones
commits = Commits commits = Commits
commit = Commit commit = Commit
release = Release
releases = Releases
tag = Tag
n_commit_one=%s commit n_commit_one=%s commit
n_commit_few=%s commits n_commit_few=%s commits
@ -1254,6 +1254,8 @@ n_branch_one=%s branch
n_branch_few=%s branches n_branch_few=%s branches
n_tag_one=%s tag n_tag_one=%s tag
n_tag_few=%s tags n_tag_few=%s tags
n_release_one = %s release
n_release_few = %s releases
released_this = released this released_this = released this
file.title = %s at %s file.title = %s at %s

View file

@ -5,9 +5,9 @@
<div class="tw-flex"> <div class="tw-flex">
<div class="tw-flex-1 tw-flex tw-items-center"> <div class="tw-flex-1 tw-flex tw-items-center">
<h2 class="ui compact small menu small-menu-items"> <h2 class="ui compact small menu small-menu-items">
<a class="{{if and .PageIsReleaseList (not .PageIsSingleTag)}}active {{end}}item" href="{{.RepoLink}}/releases">{{ctx.Locale.PrettyNumber .NumReleases}} {{ctx.Locale.TrN .NumReleases "repo.release" "repo.releases"}}</a> <a class="{{if and .PageIsReleaseList (not .PageIsSingleTag)}}active {{end}}item" href="{{.RepoLink}}/releases">{{ctx.Locale.TrN .NumReleases "repo.n_release_one" "repo.n_release_few" (ctx.Locale.PrettyNumber .NumReleases)}}</a>
{{if $canReadCode}} {{if $canReadCode}}
<a class="{{if or .PageIsTagList .PageIsSingleTag}}active {{end}}item" href="{{.RepoLink}}/tags">{{ctx.Locale.PrettyNumber .NumTags}} {{ctx.Locale.TrN .NumTags "repo.tag" "repo.tags"}}</a> <a class="{{if or .PageIsTagList .PageIsSingleTag}}active {{end}}item" href="{{.RepoLink}}/tags">{{ctx.Locale.TrN .NumTags "repo.n_tag_one" "repo.n_tag_few" (ctx.Locale.PrettyNumber .NumTags)}}</a>
{{end}} {{end}}
</h2> </h2>
</div> </div>

View file

@ -1,4 +1,5 @@
// Copyright 2017 The Gitea Authors. All rights reserved. // Copyright 2017 The Gitea Authors. All rights reserved.
// Copyright 2024 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
package integration package integration
@ -6,6 +7,7 @@ package integration
import ( import (
"fmt" "fmt"
"net/http" "net/http"
"strconv"
"testing" "testing"
"time" "time"
@ -66,6 +68,13 @@ func checkLatestReleaseAndCount(t *testing.T, session *TestSession, repoURL, ver
titleText := htmlDoc.doc.Find("#release-list > li .detail h4 a").First().Text() titleText := htmlDoc.doc.Find("#release-list > li .detail h4 a").First().Text()
assert.EqualValues(t, version, titleText) assert.EqualValues(t, version, titleText)
// Check release count in the counter on the Release/Tag switch, as well as that the tab is highlighted
if count < 10 { // Only check values less than 10, should be enough attempts before this test cracks
// 10 is the pagination limit, but the counter can have more than that
releaseTab := htmlDoc.doc.Find(".repository.releases .ui.compact.menu a.active.item[href$='/releases']")
assert.Contains(t, releaseTab.Text(), strconv.Itoa(count)+" release") // Could be "1 release" or "4 releases"
}
releaseList := htmlDoc.doc.Find("#release-list > li") releaseList := htmlDoc.doc.Find("#release-list > li")
assert.EqualValues(t, count, releaseList.Length()) assert.EqualValues(t, count, releaseList.Length())
} }
@ -77,7 +86,7 @@ func TestViewReleases(t *testing.T) {
req := NewRequest(t, "GET", "/user2/repo1/releases") req := NewRequest(t, "GET", "/user2/repo1/releases")
session.MakeRequest(t, req, http.StatusOK) session.MakeRequest(t, req, http.StatusOK)
// if CI is to slow this test fail, so lets wait a bit // if CI is too slow this test fail, so lets wait a bit
time.Sleep(time.Millisecond * 100) time.Sleep(time.Millisecond * 100)
} }

View file

@ -50,12 +50,13 @@ func TestTagViewWithoutRelease(t *testing.T) {
req := NewRequestf(t, "GET", "/%s/releases/tag/no-release", repo.FullName()) req := NewRequestf(t, "GET", "/%s/releases/tag/no-release", repo.FullName())
resp := MakeRequest(t, req, http.StatusOK) resp := MakeRequest(t, req, http.StatusOK)
// Test that the tags sub-menu is active // Test that the tags sub-menu is active and has a counter
htmlDoc := NewHTMLParser(t, resp.Body) htmlDoc := NewHTMLParser(t, resp.Body)
htmlDoc.AssertElement(t, ".small-menu-items .active.item[href*='/tags']", true) tagsTab := htmlDoc.Find(".small-menu-items .active.item[href$='/tags']")
assert.Contains(t, tagsTab.Text(), "4 tags")
// Test that the release sub-menu isn't active // Test that the release sub-menu isn't active
releaseLink := htmlDoc.Find(".small-menu-items .item[href*='/releases']") releaseLink := htmlDoc.Find(".small-menu-items .item[href$='/releases']")
assert.False(t, releaseLink.HasClass("active")) assert.False(t, releaseLink.HasClass("active"))
// Test that the title is displayed // Test that the title is displayed