diff --git a/.github/workflows/pull-compliance.yml b/.github/workflows/pull-compliance.yml index f6720bf2f6d9d..a1b0f760c890d 100644 --- a/.github/workflows/pull-compliance.yml +++ b/.github/workflows/pull-compliance.yml @@ -178,6 +178,16 @@ jobs: GOOS: linux GOARCH: 386 + i18n-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version-file: go.mod + check-latest: true + - run: make i18n-check + docs: if: needs.files-changed.outputs.docs == 'true' || needs.files-changed.outputs.actions == 'true' needs: files-changed diff --git a/Makefile b/Makefile index 6a3fa60e495ce..df59ac98a8ff2 100644 --- a/Makefile +++ b/Makefile @@ -898,6 +898,16 @@ update-translations: mv ./translations/*.ini ./options/locale/ rmdir ./translations +.PHONY: i18n-backport +i18n-backport: + @echo "Backport translations ..." + $(GO) run tools/i18n/backport.go + +.PHONY: i18n-check +i18n-check: + @echo "Checking unused translations..." + $(GO) run tools/i18n/check.go + .PHONY: generate-gitignore generate-gitignore: ## update gitignore files $(GO) run build/generate-gitignores.go diff --git a/models/actions/runner.go b/models/actions/runner.go index 81d4249ae0b85..6e98f15f5d05a 100644 --- a/models/actions/runner.go +++ b/models/actions/runner.go @@ -114,6 +114,7 @@ func (r *ActionRunner) StatusName() string { } func (r *ActionRunner) StatusLocaleName(lang translation.Locale) string { + // i18n-check: actions.runners.status.* return lang.TrString("actions.runners.status." + r.StatusName()) } diff --git a/models/actions/status.go b/models/actions/status.go index 2b1d70613c71b..895fd52fb36de 100644 --- a/models/actions/status.go +++ b/models/actions/status.go @@ -43,6 +43,7 @@ func (s Status) String() string { // LocaleString returns the locale string name of the Status func (s Status) LocaleString(lang translation.Locale) string { + // i18n-check: actions.status.* return lang.TrString("actions.status." + s.String()) } diff --git a/models/git/commit_status.go b/models/git/commit_status.go index f85e1b15e5600..7f2f7d4030991 100644 --- a/models/git/commit_status.go +++ b/models/git/commit_status.go @@ -206,6 +206,7 @@ func (status *CommitStatus) APIURL(ctx context.Context) string { // LocaleString returns the locale string name of the Status func (status *CommitStatus) LocaleString(lang translation.Locale) string { + // i18n-check: repo.commitstatus.* return lang.TrString("repo.commitstatus." + status.State.String()) } diff --git a/models/issues/comment.go b/models/issues/comment.go index 9bef96d0ddfcc..9d2cdb0bfe71e 100644 --- a/models/issues/comment.go +++ b/models/issues/comment.go @@ -225,11 +225,13 @@ const ( // LocaleString returns the locale string name of the role func (r RoleInRepo) LocaleString(lang translation.Locale) string { + // i18n-check: repo.issues.role.* return lang.TrString("repo.issues.role." + string(r)) } // LocaleHelper returns the locale tooltip of the role func (r RoleInRepo) LocaleHelper(lang translation.Locale) string { + // i18n-check: repo.issues.role.*_helper return lang.TrString("repo.issues.role." + string(r) + "_helper") } diff --git a/modules/auth/password/password.go b/modules/auth/password/password.go index a1e101dd621cb..e0781cbf96f6e 100644 --- a/modules/auth/password/password.go +++ b/modules/auth/password/password.go @@ -128,6 +128,7 @@ func BuildComplexityError(locale translation.Locale) template.HTML { buffer.WriteString("