1
0
Fork 0
forked from forgejo/forgejo

Refactor locale&string&template related code (#29165)

Clarify when "string" should be used (and be escaped), and when
"template.HTML" should be used (no need to escape)

And help PRs like  #29059 , to render the error messages correctly.

(cherry picked from commit f3eb835886031df7a562abc123c3f6011c81eca8)

Conflicts:
	modules/web/middleware/binding.go
	routers/web/feed/convert.go
	tests/integration/branches_test.go
	tests/integration/repo_branch_test.go
	trivial context conflicts
This commit is contained in:
wxiaoguang 2024-02-15 05:48:45 +08:00 committed by Earl Warren
parent d565d85160
commit 65248945c9
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
78 changed files with 359 additions and 286 deletions

View file

@ -3,7 +3,10 @@
package translation
import "fmt"
import (
"fmt"
"html/template"
)
// MockLocale provides a mocked locale without any translations
type MockLocale struct{}
@ -14,12 +17,16 @@ func (l MockLocale) Language() string {
return "en"
}
func (l MockLocale) Tr(s string, _ ...any) string {
func (l MockLocale) TrString(s string, _ ...any) string {
return s
}
func (l MockLocale) TrN(_cnt any, key1, _keyN string, _args ...any) string {
return key1
func (l MockLocale) Tr(s string, a ...any) template.HTML {
return template.HTML(s)
}
func (l MockLocale) TrN(cnt any, key1, keyN string, args ...any) template.HTML {
return template.HTML(key1)
}
func (l MockLocale) PrettyNumber(v any) string {