@@ -47,6 +47,8 @@ import (
47
47
"code.gitea.io/gitea/modules/timeutil"
48
48
"code.gitea.io/gitea/modules/util"
49
49
"code.gitea.io/gitea/services/gitdiff"
50
+ "golang.org/x/text/language"
51
+ "golang.org/x/text/message"
50
52
51
53
"github.com/editorconfig/editorconfig-core-go/v2"
52
54
)
@@ -170,6 +172,7 @@ func NewFuncMap() []template.FuncMap {
170
172
"RenderEmojiPlain" : emoji .ReplaceAliases ,
171
173
"ReactionToEmoji" : ReactionToEmoji ,
172
174
"RenderNote" : RenderNote ,
175
+ "RenderNumber" : RenderNumber ,
173
176
"RenderMarkdownToHtml" : func (input string ) template.HTML {
174
177
output , err := markdown .RenderString (& markup.RenderContext {
175
178
URLPrefix : setting .AppSubURL ,
@@ -782,6 +785,13 @@ func RenderCodeBlock(htmlEscapedTextToRender template.HTML) template.HTML {
782
785
return template .HTML (htmlWithCodeTags )
783
786
}
784
787
788
+ // RenderNumber render any number according to the given language code (e.g. 1234 -> 1,234)
789
+ // Should RenderNumber, JsPrettyNumber, and CountFmt coexist on this codebase? RenderNumber is server-rendered and localized
790
+ func RenderNumber (number int64 , languageCode string ) template.HTML {
791
+ formatter := message .NewPrinter (language .MustParse (languageCode ))
792
+ return template .HTML (formatter .Sprintf ("%d" , number ))
793
+ }
794
+
785
795
// RenderIssueTitle renders issue/pull title with defined post processors
786
796
func RenderIssueTitle (ctx context.Context , text , urlPrefix string , metas map [string ]string ) template.HTML {
787
797
renderedText , err := markup .RenderIssueTitle (& markup.RenderContext {
0 commit comments