[I18N] Injected updated time in translation string (#3837)
Hello, It is more idiomatic to put the date/time before the action in Mandarin (in this context). To achieve this, instead of having the time following the string that's passed to the translating function, I added it as a parameter so that one can reference it and reorder the sentence for better translatability. Only Traditional Chinese has been changed at the time of opening this PR, as this is more of a proof of concept and I would like to have feedbacks on whether this is a good solution or is there a better alternative. Thank you and have a nice day :) Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/3837 Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org> Reviewed-by: 0ko <0ko@noreply.codeberg.org> Co-authored-by: Léana 江 <leana.jiang+git@icloud.com> Co-committed-by: Léana 江 <leana.jiang+git@icloud.com>
This commit is contained in:
parent
bcd2e64a93
commit
3561cc710b
33 changed files with 104 additions and 33 deletions
71
tests/integration/last_updated_time_test.go
Normal file
71
tests/integration/last_updated_time_test.go
Normal file
|
@ -0,0 +1,71 @@
|
|||
package integration
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"path"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/PuerkitoBio/goquery"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestRepoLastUpdatedTime(t *testing.T) {
|
||||
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
||||
user := "user2"
|
||||
session := loginUser(t, user)
|
||||
|
||||
req := NewRequest(t, "GET", path.Join("explore", "repos"))
|
||||
resp := session.MakeRequest(t, req, http.StatusOK)
|
||||
doc := NewHTMLParser(t, resp.Body)
|
||||
node := doc.doc.Find(".flex-item-body").First()
|
||||
|
||||
{
|
||||
buf := ""
|
||||
findTextNonNested(t, node, &buf)
|
||||
assert.Equal(t, "Updated", strings.TrimSpace(buf))
|
||||
}
|
||||
|
||||
// Relative time should be present as a descendent
|
||||
{
|
||||
relativeTime := node.Find("relative-time").Text()
|
||||
assert.Equal(t, true, strings.HasPrefix(relativeTime, "19")) // ~1970, might underflow with timezone
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestBranchLastUpdatedTime(t *testing.T) {
|
||||
onGiteaRun(t, func(t *testing.T, u *url.URL) {
|
||||
user := "user2"
|
||||
repo := "repo1"
|
||||
session := loginUser(t, user)
|
||||
|
||||
req := NewRequest(t, "GET", path.Join(user, repo, "branches"))
|
||||
resp := session.MakeRequest(t, req, http.StatusOK)
|
||||
doc := NewHTMLParser(t, resp.Body)
|
||||
node := doc.doc.Find("p:has(span.commit-message)")
|
||||
|
||||
{
|
||||
buf := ""
|
||||
findTextNonNested(t, node, &buf)
|
||||
assert.Equal(t, true, strings.Contains(buf, "Updated"))
|
||||
}
|
||||
|
||||
{
|
||||
relativeTime := node.Find("relative-time").Text()
|
||||
assert.Equal(t, true, strings.HasPrefix(relativeTime, "2017"))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Find all text that are direct descendents
|
||||
func findTextNonNested(t *testing.T, n *goquery.Selection, buf *string) {
|
||||
t.Helper()
|
||||
|
||||
n.Contents().Each(func(i int, s *goquery.Selection) {
|
||||
if goquery.NodeName(s) == "#text" {
|
||||
*buf += s.Text()
|
||||
}
|
||||
})
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue