Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add translation key rule to gotemplate linter #4657

Conversation

pkong-ds
Copy link
Contributor

@pkong-ds pkong-ds commented Aug 26, 2024

ref DEV-1907

@louischan-oursky Seems unable to reuse code in pkg/util/template/validation.go inside devtools/.

I plan to duplicate the template validation into devtools/gotemplatetranslationlinter/validation.go. Any thoughts?

@louischan-oursky
Copy link
Collaborator

No need to reuse the code there.

@pkong-ds pkong-ds force-pushed the dev-1787-categorize-the-keys-in-translation-sheet branch 3 times, most recently from e8a557c to 3a5e8e7 Compare August 27, 2024 12:54
@pkong-ds pkong-ds force-pushed the dev-1787-categorize-the-keys-in-translation-sheet branch from 3a5e8e7 to abb3d08 Compare August 28, 2024 07:47
@pkong-ds pkong-ds changed the title [WIP] Add gotemplatetranslationlinter Add gotemplatetranslationlinter Aug 28, 2024
@pkong-ds
Copy link
Contributor Author

pkong-ds commented Aug 28, 2024

@louischan-oursky this should be ready for review. can checkout my branch and try make lint-translation-keys

Notes

  1. variable translation key is not supported yet (e.g. {{ $.Translations.RenderText $variant_label_key nil }})
  2. pipe translation key is not supported yet (e.g. {{ include (printf "v2-oauth-branding-%s" .provider_type) nil }})

Current lint output

expand me
go run ./devtools/gotemplatelinter --path ./resources/authgear/templates/en/web --ignore-rules indentation --ignore-rules finalNewline
.
.
.
resources/authgear/templates/en/web/__tutorial.html:9:18: invalid template name: invalid translation key: "tutorial-settings" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflow_enter_password.html:9:15: invalid template name: invalid translation key: "enter-additional-password-page-title-reauth" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflow_enter_password.html:11:15: invalid template name: invalid translation key: "enter-additional-password-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflow_enter_password.html:15:15: invalid template name: invalid translation key: "enter-password-page-title-reauth" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflow_enter_password.html:17:15: invalid template name: invalid translation key: "enter-password-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflow_enter_password.html:25:15: invalid template name: invalid translation key: "enter-password-page-tips-additional-password-reauth" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflow_enter_password.html:27:15: invalid template name: invalid translation key: "enter-password-page-tips-password-reauth" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflow_enter_password.html:50:72: invalid template name: invalid translation key: "create-device-token-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflow_enter_password.html:57:202: invalid template name: invalid translation key: "forgot-password-button-label--enter-password-page" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflow_enter_password.html:68:13: invalid template name: invalid translation key: "next-button-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__phone_input.html:61:39: invalid template name: invalid translation key: "v2-search-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__phone_input.html:107:22: invalid template name: invalid translation key: "v2-no-results-found" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_page.html:8:18: invalid template name: invalid translation key: "v2-csrf-error-header" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_page.html:12:18: invalid template name: invalid translation key: "v2-csrf-error-message" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_page.html:13:79: invalid template name: invalid translation key: "v2-csrf-error-see-instructions" -- please follow format: `v2.page.my-page.default.my-descriptor`
1154 errors found
exit status 1
make: *** [lint-translation-keys] Error 1

@pkong-ds pkong-ds changed the title Add gotemplatetranslationlinter Add translation key rule to gotemplate linter Aug 28, 2024
@pkong-ds pkong-ds force-pushed the dev-1787-categorize-the-keys-in-translation-sheet branch from abb3d08 to 7e8ee8a Compare August 28, 2024 07:53
@pkong-ds pkong-ds force-pushed the dev-1787-categorize-the-keys-in-translation-sheet branch from 7e8ee8a to bea25db Compare August 28, 2024 19:14
@pkong-ds
Copy link
Contributor Author

Updated as authflowv2 keys only

@louischan-oursky louischan-oursky self-requested a review August 29, 2024 03:39
@louischan-oursky louischan-oursky self-assigned this Aug 29, 2024
Copy link
Collaborator

@louischan-oursky louischan-oursky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

resources/authgear/templates/en/web/authflowv2/terminate_other_sessions.html:14:43: invalid template name: invalid translation key: "v2-confirm-terminate-other-sessions-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/terminate_other_sessions.html:15:48: invalid template name: invalid translation key: "v2-confirm-terminate-other-sessions-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/terminate_other_sessions.html:34:20: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/terminate_other_sessions.html:43:20: invalid template name: invalid translation key: "v2-confirm-terminate-other-sessions-cancel-button-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_recovery_code.html:14:20: invalid template name: invalid translation key: "v2-enter-recovery-code-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_recovery_code.html:19:22: invalid template name: invalid translation key: "v2-enter-recovery-code-description-reauth" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_recovery_code.html:21:22: invalid template name: invalid translation key: "v2-enter-recovery-code-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_recovery_code.html:58:33: invalid template name: invalid translation key: "enter-recovery-code-placeholder" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_recovery_code.html:78:20: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password_otp.html:14:20: invalid template name: invalid translation key: "v2-forgot-password-otp-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password_otp.html:18:22: invalid template name: invalid translation key: "v2-forgot-password-otp-description--whatsapp" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password_otp.html:20:22: invalid template name: invalid translation key: "v2-forgot-password-otp-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/login.html:62:18: invalid 2nd arg of `translate`: invalid translation key: "app.name" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/login.html:70:22: invalid template name: invalid translation key: "v2-login-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/login.html:76:22: invalid template name: invalid translation key: "v2-login-subtitle" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/login.html:153:39: invalid template name: invalid translation key: "v2-placeholder-login-id" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/login.html:184:21: invalid template name: invalid translation key: "v2-button-label-login" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/login.html:191:20: invalid template name: invalid translation key: "v2-login-switch-to-signup" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/login.html:211:26: invalid template name: invalid translation key: "v2-continue-with-text-login-id" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/login.html:222:26: invalid template name: invalid translation key: "v2-continue-with-phone" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/login.html:276:34: invalid template name: invalid translation key: "v2-ldap-branding" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/login.html:301:30: invalid template name: invalid translation key: "v2-continue-with-passkey" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/settings_layout.html:3:14: invalid template name: invalid translation key: "widget" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_totp.html:6:41: invalid template name: invalid translation key: "v2-setup-totp-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_totp.html:8:47: invalid template name: invalid translation key: "v2-setup-totp-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_totp.html:25:19: invalid template name: invalid translation key: "setup-totp-raw-secret" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_totp.html:34:20: invalid template name: invalid translation key: "copy-button-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_totp.html:42:18: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__base_page_frame.html:43:12: invalid template name: invalid translation key: "page-frame-content" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__page_frame.html:12:18: invalid template name: invalid translation key: "page-content" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/reset_password.html:26:16: invalid template name: invalid translation key: "v2-reset-password-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/reset_password.html:29:14: invalid template name: invalid translation key: "v2-reset-password-page-subtitle" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/reset_password.html:69:14: invalid template name: invalid translation key: "v2-reset-password-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__phone_input.html:61:39: invalid template name: invalid translation key: "v2-search-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__phone_input.html:107:22: invalid template name: invalid translation key: "v2-no-results-found" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/ldap_login.html:15:20: invalid template name: invalid translation key: "v2-ldap-branding" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/ldap_login.html:56:33: invalid template name: invalid translation key: "v2-placeholder-login-id" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/ldap_login.html:84:18: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/verify_bot_protection.html:16:18: invalid template name: invalid translation key: "v2-verify-bot-protection-header" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/verify_bot_protection.html:25:18: invalid template name: invalid translation key: "v2-verify-bot-protection-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/verify_bot_protection.html:43:18: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_linking.html:7:20: invalid template name: invalid translation key: "v2-account-linking-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_linking.html:10:20: invalid template name: invalid translation key: "v2-account-linking-subtitle--login-and-link" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_linking.html:41:30: invalid template name: invalid translation key: "v2-account-linking-by-email" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_linking.html:58:30: invalid template name: invalid translation key: "v2-account-linking-by-phone" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_linking.html:75:30: invalid template name: invalid translation key: "v2-account-linking-by-username" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_oob_otp.html:17:20: invalid template name: invalid translation key: "v2-oob-otp-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_oob_otp.html:22:24: invalid template name: invalid translation key: "v2-oob-otp-page-subtitle-reauth--whatsapp" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_oob_otp.html:24:24: invalid template name: invalid translation key: "v2-oob-otp-page-subtitle--whatsapp" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_oob_otp.html:28:24: invalid template name: invalid translation key: "v2-oob-otp-page-subtitle-reauth" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_oob_otp.html:30:24: invalid template name: invalid translation key: "v2-oob-otp-page-subtitle" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:181:18: invalid template name: invalid translation key: "v2-forgot-password-send-via-phone" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:189:18: invalid template name: invalid translation key: "v2-forgot-password-send-via-email" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:32:45: invalid template name: invalid translation key: "v2-forgot-password-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:35:24: invalid template name: invalid translation key: "v2-forgot-password-description--input-phone" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:37:24: invalid template name: invalid translation key: "v2-forgot-password-description--input-email" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:70:41: invalid template name: invalid translation key: "v2-placeholder-email" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:103:26: invalid template name: invalid translation key: "v2-button-label-send" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:109:30: invalid template name: invalid translation key: "__forgot_password_alternative" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:122:22: invalid template name: invalid translation key: "v2-forgot-password-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:126:24: invalid template name: invalid translation key: "v2-forgot-password-description--send-phone" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:128:24: invalid template name: invalid translation key: "v2-forgot-password-description--send-email" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:158:24: invalid template name: invalid translation key: "v2-button-label-send" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password.html:165:26: invalid template name: invalid translation key: "__forgot_password_alternative" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/layout.html:5:14: invalid template name: invalid translation key: "widget" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_totp_verify.html:14:20: invalid template name: invalid translation key: "v2-setup-totp-verify-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_totp_verify.html:17:20: invalid template name: invalid translation key: "v2-setup-totp-verify-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_totp_verify.html:64:20: invalid template name: invalid translation key: "v2-setup-totp-verify-rescan-button-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/use_passkey.html:8:20: invalid template name: invalid translation key: "v2-use-passkey-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/use_passkey.html:12:22: invalid template name: invalid translation key: "v2-use-passkey-description-reauth" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/use_passkey.html:14:22: invalid template name: invalid translation key: "v2-use-passkey-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/use_passkey.html:41:20: invalid template name: invalid translation key: "v2-use-passkey-action" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__csrf_error_page_layout.html:28:18: invalid template name: invalid translation key: "page-content" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__toc_pp_footer.html:22:14: invalid template name: invalid translation key: "v2-toc-pp-footer" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__toc_pp_footer.html:23:54: invalid 2nd arg of `.Translations.RenderText`: invalid translation key: "terms-of-service-link" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__toc_pp_footer.html:24:53: invalid 2nd arg of `.Translations.RenderText`: invalid translation key: "privacy-policy-link" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/prompt_create_passkey.html:10:20: invalid template name: invalid translation key: "v2-prompt-create-passkey-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/prompt_create_passkey.html:13:20: invalid template name: invalid translation key: "v2-prompt-create-passkey-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/prompt_create_passkey.html:33:20: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/prompt_create_passkey.html:48:22: invalid template name: invalid translation key: "v2-prompt-create-passkey-skip" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/select_account.html:11:20: invalid template name: invalid translation key: "v2-select-account-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/select_account.html:13:24: invalid 2nd arg of `translate`: invalid translation key: "app.name" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/select_account.html:14:20: invalid template name: invalid translation key: "v2-select-account-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/select_account.html:18:18: invalid template name: invalid translation key: "v2-select-account-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/select_account.html:37:18: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/select_account.html:46:18: invalid template name: invalid translation key: "v2-select-account-use-another-account" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:40:18: invalid 2nd arg of `translate`: invalid translation key: "app.name" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:49:24: invalid template name: invalid translation key: "v2-signup-login-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:54:24: invalid template name: invalid translation key: "v2-signup-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:62:24: invalid template name: invalid translation key: "v2-signup-login-subtitle" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:67:24: invalid template name: invalid translation key: "v2-signup-subtitle" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:138:37: invalid template name: invalid translation key: "v2-placeholder-login-id" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:168:19: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:175:18: invalid template name: invalid translation key: "v2-signup-switch-to-login" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:189:28: invalid template name: invalid translation key: "v2-signup-signup-with-email" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:198:28: invalid template name: invalid translation key: "v2-signup-signup-with-username" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:207:28: invalid template name: invalid translation key: "v2-signup-signup-with-phone" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:261:32: invalid template name: invalid translation key: "v2-ldap-branding" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/signup.html:287:28: invalid template name: invalid translation key: "v2-continue-with-passkey" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__dialog.html:9:14: invalid template name: invalid translation key: "dialog-attr" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_input.html:28:29: invalid template name: invalid translation key: "v2-placeholder-password" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_input.html:30:29: invalid template name: invalid translation key: "v2-placeholder-new-password" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_input.html:32:29: invalid template name: invalid translation key: "v2-placeholder-confirm-password" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_input.html:44:23: invalid template name: invalid translation key: "show-password-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_input.html:55:23: invalid template name: invalid translation key: "hide-password-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__otp_input.html:98:16: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_policy.html:8:18: invalid template name: invalid translation key: "v2-password-policy-strength" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_policy.html:14:18: invalid template name: invalid translation key: "v2-password-policy-minimum-length" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_policy.html:20:18: invalid template name: invalid translation key: "v2-password-policy-uppercase" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_policy.html:26:18: invalid template name: invalid translation key: "v2-password-policy-lowercase" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_policy.html:32:18: invalid template name: invalid translation key: "v2-password-policy-alphabet" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_policy.html:38:18: invalid template name: invalid translation key: "v2-password-policy-digit" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_policy.html:44:18: invalid template name: invalid translation key: "v2-password-policy-symbol" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_status.html:8:20: invalid template name: invalid translation key: "v2-error-disabled-user-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_status.html:14:26: invalid template name: invalid translation key: "v2-error-disabled-user-subtitle" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_status.html:16:26: invalid template name: invalid translation key: "v2-error-disabled-user-reason" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_status.html:18:26: invalid template name: invalid translation key: "v2-error-disabled-user-subtitle" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_status.html:23:24: invalid template name: invalid translation key: "v2-error-deactivated-user" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_status.html:27:24: invalid template name: invalid translation key: "v2-error-scheduled-deletion-by-admin" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_status.html:31:24: invalid template name: invalid translation key: "v2-error-scheduled-deletion-by-end-user" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/account_status.html:40:18: invalid template name: invalid translation key: "v2-account-status-return-button-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/oob_otp_link.html:15:20: invalid template name: invalid translation key: "v2-login-link-otp-matched-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/oob_otp_link.html:19:20: invalid template name: invalid translation key: "v2-login-link-otp-matched-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/oob_otp_link.html:43:20: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/oob_otp_link.html:55:16: invalid template name: invalid translation key: "v2-login-link-otp-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/oob_otp_link.html:60:18: invalid template name: invalid translation key: "v2-login-link-otp-invalid-code-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/oob_otp_link.html:63:20: invalid template name: invalid translation key: "v2-login-link-otp-initial-description-reauth" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/oob_otp_link.html:65:20: invalid template name: invalid translation key: "v2-login-link-otp-initial-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/oob_otp_link.html:98:46: invalid template name: invalid translation key: "v2-login-link-otp-resend-button-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/oob_otp_link.html:99:51: invalid template name: invalid translation key: "v2-login-link-otp-resend-button-label--unit" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/oob_otp_link.html:102:18: invalid template name: invalid translation key: "v2-login-link-otp-resend-button-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:25:22: invalid template name: invalid translation key: "v2-enter-recovery-code-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:52:20: invalid template name: invalid translation key: "v2-setup-password-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:56:20: invalid template name: invalid translation key: "v2-setup-secondary-password-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:60:20: invalid template name: invalid translation key: "v2-setup-totp-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:65:22: invalid template name: invalid translation key: "v2-setup-oob-otp-without-verification" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:68:24: invalid template name: invalid translation key: "v2-setup-email-otp-code-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:71:24: invalid template name: invalid translation key: "v2-setup-email-otp-link-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:78:22: invalid template name: invalid translation key: "v2-setup-oob-otp-without-verification" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:81:24: invalid template name: invalid translation key: "v2-setup-email-otp-code-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:84:24: invalid template name: invalid translation key: "v2-setup-email-otp-link-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:91:22: invalid template name: invalid translation key: "v2-setup-oob-otp-without-verification" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:95:24: invalid template name: invalid translation key: "v2-setup-phone-otp-sms-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:99:24: invalid template name: invalid translation key: "v2-setup-phone-otp-whatsapp-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:106:22: invalid template name: invalid translation key: "v2-setup-oob-otp-without-verification" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:110:24: invalid template name: invalid translation key: "v2-setup-phone-otp-sms-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:114:24: invalid template name: invalid translation key: "v2-setup-phone-otp-whatsapp-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:123:20: invalid template name: invalid translation key: "v2-enter-password-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:127:20: invalid template name: invalid translation key: "v2-enter-secondary-password-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:131:20: invalid template name: invalid translation key: "v2-use-passkey-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:135:20: invalid template name: invalid translation key: "v2-enter-totp-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:140:20: invalid template name: invalid translation key: "v2-enter-email-otp-code-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:144:20: invalid template name: invalid translation key: "v2-use-email-otp-link-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:150:20: invalid template name: invalid translation key: "v2-enter-phone-otp-sms-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:154:20: invalid template name: invalid translation key: "v2-enter-phone-otp-whatsapp-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:162:20: invalid template name: invalid translation key: "v2-enter-phone-otp-sms-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__authflow_branch.html:166:20: invalid template name: invalid translation key: "v2-enter-phone-otp-whatsapp-instead" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__bot_protection_widget.html:11:14: invalid template name: invalid translation key: "v2-bot-protection-noscript" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:23:22: invalid template name: invalid translation key: "v2-error-password-policy-violated" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:27:22: invalid template name: invalid translation key: "v2-error-password-policy-disallowed-keywords" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:33:26: invalid template name: invalid translation key: "v2-error-password-policy-reuse" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:50:26: invalid template name: invalid translation key: "error-login-id-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:53:30: invalid template name: invalid translation key: "error-password-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:55:30: invalid template name: invalid translation key: "error-oob-otp-code-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:57:30: invalid template name: invalid translation key: "error-totp-code-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:59:30: invalid template name: invalid translation key: "error-verification-code-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:61:30: invalid template name: invalid translation key: "error-recovery-code-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:63:30: invalid template name: invalid translation key: "error-old-password-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:65:30: invalid template name: invalid translation key: "error-new-password-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:67:30: invalid template name: invalid translation key: "error-confirm-password-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:69:30: invalid template name: invalid translation key: "error-email-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:71:30: invalid template name: invalid translation key: "error-phone-number-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:74:30: invalid template name: invalid translation key: "error-email-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:76:30: invalid template name: invalid translation key: "error-phone-number-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:79:30: invalid template name: invalid translation key: "v2-error-bot-protection-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:87:30: invalid template name: invalid translation key: "v2-error-phone-number-format" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:89:30: invalid template name: invalid translation key: "v2-error-invalid-email" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:91:30: invalid template name: invalid translation key: "error-invalid-username" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:93:30: invalid template name: invalid translation key: "error-totp-code-format" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:95:30: invalid template name: invalid translation key: "error-oob-otp-code-format" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:97:30: invalid template name: invalid translation key: "error-verification-code-format" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:99:30: invalid template name: invalid translation key: "error-recovery-code-format" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:101:30: invalid template name: invalid translation key: "error-uri-format" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:107:24: invalid template name: invalid translation key: "error-max-length" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:111:30: invalid template name: invalid translation key: "error-email-not-allowed" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:113:30: invalid template name: invalid translation key: "error-username-not-allowed" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:115:30: invalid template name: invalid translation key: "error-phone-number-not-allowed" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:121:24: invalid template name: invalid translation key: "error-type" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:124:28: invalid template name: invalid translation key: "error-minimum" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:126:28: invalid template name: invalid translation key: "error-maximum" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:134:18: invalid template name: invalid translation key: "authflowv2/__error_account" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:137:20: invalid template name: invalid translation key: "v2-error-invalid-credentials" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:141:26: invalid template name: invalid translation key: "v2-error-invalid-credentials" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:143:26: invalid template name: invalid translation key: "v2-error-password-reset-failed-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:146:24: invalid template name: invalid translation key: "v2-error-new-password-typo" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:150:28: invalid template name: invalid translation key: "error-email-required-github" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:152:28: invalid template name: invalid translation key: "error-developer-email-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:155:26: invalid template name: invalid translation key: "error-developer-email-required" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:160:26: invalid template name: invalid translation key: "error-remove-last-identity" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:162:26: invalid template name: invalid translation key: "error-remove-last-primary-authenticator" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:164:26: invalid template name: invalid translation key: "error-remove-last-secondary-authenticator" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:166:20: invalid template name: invalid translation key: "authflowv2/__error_account" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:169:22: invalid template name: invalid translation key: "error-duplicated-authenticator" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:173:26: invalid template name: invalid translation key: "error-developer-reauthentication" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:175:26: invalid template name: invalid translation key: "error-no-authenticator" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:181:20: invalid template name: invalid translation key: "v2-error-verification-code-invalid" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:185:26: invalid template name: invalid translation key: "error-sms-send-limit-exceeded" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:187:26: invalid template name: invalid translation key: "error-sms-send-limit-exceeded" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:189:26: invalid template name: invalid translation key: "error-sms-send-limit-exceeded" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:191:26: invalid template name: invalid translation key: "error-rate-limited" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:196:24: invalid template name: invalid translation key: "error-usage-limit-exceeded" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:200:8: invalid template name: invalid translation key: "oob-otp-sms-is-not-supported-with-customer-support" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:201:31: invalid 2nd arg of `$.Translations.RenderText`: invalid translation key: "customer-support-link" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:202:40: invalid template name: invalid translation key: "oob-otp-sms-is-not-supported" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:211:8: invalid template name: invalid translation key: "error-webhook-pre-signup-disallowed" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:212:8: invalid template name: invalid translation key: "error-webhook-disallowed" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:218:24: invalid template name: invalid translation key: "error-webhook-invalid-response" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:220:24: invalid template name: invalid translation key: "error-webhook-delivery-timeout" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:223:20: invalid template name: invalid translation key: "error-invalid-web3-network" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:227:24: invalid template name: invalid translation key: "error-invalid-whatsapp-user" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:229:24: invalid template name: invalid translation key: "error-no-available-whatsapp-client" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:233:26: invalid template name: invalid translation key: "v2-error-password-change-password-reused" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:238:24: invalid template name: invalid translation key: "v2-error-unexpected-user" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:240:24: invalid template name: invalid translation key: "v2-error-bot-protection-verification-failed" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:242:24: invalid template name: invalid translation key: "error-unknown" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:271:22: invalid template name: invalid translation key: "v2-error-account-not-found" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:284:18: invalid template name: invalid translation key: "v2-error-account-conflict" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:286:20: invalid template name: invalid translation key: "v2-error-suggestion-account-conflict-oauth" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__error.html:288:20: invalid template name: invalid translation key: "v2-error-suggestion-account-conflict-login-id" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__device_token_checkbox.html:17:62: invalid template name: invalid translation key: "v2-create-device-token-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__divider.html:7:13: invalid template name: invalid translation key: "v2-or-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__forgot_password_alternatives.html:22:20: invalid template name: invalid translation key: "v2-forgot-password-alternatives--sms-otp" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__forgot_password_alternatives.html:26:20: invalid template name: invalid translation key: "v2-forgot-password-alternatives--whatsapp-otp" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__lockout.html:18:22: invalid template name: invalid translation key: "v2-lockout-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__lockout.html:21:22: invalid template name: invalid translation key: "v2-lockout-subtitle" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__lockout.html:34:48: invalid template name: invalid translation key: "v2-lockout-retry-button-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__lockout.html:35:53: invalid template name: invalid translation key: "v2-lockout-retry-button-label--unit" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_totp.html:14:20: invalid template name: invalid translation key: "v2-enter-totp-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_totp.html:18:22: invalid template name: invalid translation key: "v2-enter-totp-description-reauth" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_totp.html:20:22: invalid template name: invalid translation key: "v2-enter-totp-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/view_recovery_code.html:7:18: invalid template name: invalid translation key: "recovery-code-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/view_recovery_code.html:10:18: invalid template name: invalid translation key: "recovery-code-storage-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/view_recovery_code.html:44:22: invalid template name: invalid translation key: "download-button-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/view_recovery_code.html:55:20: invalid template name: invalid translation key: "copy-button-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/view_recovery_code.html:68:16: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__alert_message.html:9:41: invalid template name: invalid translation key: "v2-error-server" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__alert_message.html:10:42: invalid template name: invalid translation key: "v2-error-network" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__alert_message.html:11:42: invalid template name: invalid translation key: "v2-error-passkey-not-supported" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__alert_message.html:12:53: invalid template name: invalid translation key: "v2-error-invalid-passkey-or-not-supported" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__alert_message.html:13:31: invalid template name: invalid translation key: "v2-error-no-passkey" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__alert_message.html:14:38: invalid template name: invalid translation key: "v2-error-passkey-duplicate" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__alert_message.html:15:46: invalid template name: invalid translation key: "v2-error-bot-protection-cloudflare" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__alert_message.html:16:48: invalid template name: invalid translation key: "v2-error-bot-protection-recaptcha-v2" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__bot_protection_dialog.html:20:20: invalid template name: invalid translation key: "v2-verify-bot-protection-header" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__bot_protection_dialog.html:23:20: invalid template name: invalid translation key: "v2-verify-bot-protection-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_password.html:17:20: invalid template name: invalid translation key: "v2-enter-additional-password-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_password.html:19:20: invalid template name: invalid translation key: "v2-enter-password-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_password.html:83:18: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/enter_password.html:88:181: invalid template name: invalid translation key: "forgot-password-button-label--enter-password-page" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/create_password.html:9:16: invalid template name: invalid translation key: "v2-create-password-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/create_password.html:53:18: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_page.html:8:18: invalid template name: invalid translation key: "v2-csrf-error-header" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_page.html:12:18: invalid template name: invalid translation key: "v2-csrf-error-message" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_page.html:13:79: invalid template name: invalid translation key: "v2-csrf-error-see-instructions" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/verify_login_link.html:4:18: invalid 2nd arg of `translate`: invalid translation key: "app.name" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/verify_login_link.html:17:20: invalid template name: invalid translation key: "v2-verify-login-link-approved-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/verify_login_link.html:20:20: invalid template name: invalid translation key: "v2-verify-login-link-approved-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/verify_login_link.html:41:43: invalid template name: invalid translation key: "v2-verify-login-link-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/verify_login_link.html:42:48: invalid template name: invalid translation key: "v2-verify-login-link-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/verify_login_link.html:57:20: invalid template name: invalid translation key: "v2-verify-login-link-approve" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__settings_page_frame.html:46:18: invalid template name: invalid translation key: "page-content" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/change_password.html:11:18: invalid template name: invalid translation key: "v2-change-password-expiry-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/change_password.html:13:18: invalid template name: invalid translation key: "v2-change-password-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/change_password.html:18:18: invalid template name: invalid translation key: "v2-change-password-expiry-page-subtitle" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/change_password.html:20:18: invalid template name: invalid translation key: "v2-change-password-page-subtitle" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/change_password.html:61:14: invalid template name: invalid translation key: "v2-update-button-label" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password_link_sent.html:14:20: invalid template name: invalid translation key: "v2-forgot-password-link-sent-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password_link_sent.html:17:20: invalid template name: invalid translation key: "v2-forgot-password-link-sent-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password_link_sent.html:40:48: invalid template name: invalid translation key: "v2-forgot-password-link-sent-resend" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/forgot_password_link_sent.html:43:20: invalid template name: invalid translation key: "v2-forgot-password-link-sent-resend" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_oob_otp.html:19:20: invalid template name: invalid translation key: "v2-setup-oob-otp-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_oob_otp.html:24:24: invalid template name: invalid translation key: "v2-setup-oob-otp-page-subtitle--whatsapp" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_oob_otp.html:26:24: invalid template name: invalid translation key: "v2-setup-oob-otp-page-subtitle--sms" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_oob_otp.html:30:22: invalid template name: invalid translation key: "v2-setup-oob-otp-page-subtitle--email" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_oob_otp.html:80:33: invalid template name: invalid translation key: "v2-placeholder-email" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/setup_oob_otp.html:96:19: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/wechat.html:15:18: invalid template name: invalid translation key: "v2-wechat-auth-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/wechat.html:18:18: invalid template name: invalid translation key: "v2-wechat-auth-page-app-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/wechat.html:46:16: invalid template name: invalid translation key: "v2-wechat-auth-page-open-app" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/wechat.html:57:16: invalid template name: invalid translation key: "v2-wechat-auth-page-proceed" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/wechat.html:69:18: invalid template name: invalid translation key: "v2-wechat-auth-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/wechat.html:72:18: invalid template name: invalid translation key: "v2-wechat-auth-page-with-qr-code-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__html_head.html:4:19: invalid template name: invalid translation key: "app.name" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:11:16: invalid template name: invalid translation key: "v2-csrf-error-instruction-header" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:16:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-ios-step1" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:17:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-ios-step2" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:18:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-ios-step3" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:25:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-chrome-desktop-step1" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:26:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-chrome-desktop-step2" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:27:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-chrome-desktop-step3" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:28:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-chrome-desktop-step4" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:33:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-android-step1" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:34:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-android-step2" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:35:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-android-step3" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:36:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-android-step4" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:43:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-samsung-step1" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:44:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-samsung-step2" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:45:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-samsung-step3" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:46:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-samsung-step4" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:47:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-samsung-step5" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:48:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-samsung-step6" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:55:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-default-step1" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:56:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-default-step2" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/csrf_error_instruction.html:57:20: invalid template name: invalid translation key: "v2-csrf-error-instruction-default-step3" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/change_password_success.html:14:18: invalid template name: invalid translation key: "v2-change-password-success-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/change_password_success.html:16:46: invalid template name: invalid translation key: "v2-change-password-success-page-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/change_password_success.html:33:20: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/reset_password_success.html:6:18: invalid template name: invalid translation key: "v2-reset-password-success-page-title" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/reset_password_success.html:8:46: invalid template name: invalid translation key: "v2-reset-password-success-page-description" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/reset_password_success.html:21:20: invalid template name: invalid translation key: "v2-button-label-continue" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__new_password_field.html:15:76: invalid template name: invalid translation key: "v2-error-new-password-typo" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_strength_meter.html:9:27: invalid template name: invalid translation key: "v2-password-policy-password-strength-meter-1" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_strength_meter.html:10:27: invalid template name: invalid translation key: "v2-password-policy-password-strength-meter-1" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_strength_meter.html:11:27: invalid template name: invalid translation key: "v2-password-policy-password-strength-meter-2" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_strength_meter.html:12:27: invalid template name: invalid translation key: "v2-password-policy-password-strength-meter-3" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_strength_meter.html:13:27: invalid template name: invalid translation key: "v2-password-policy-password-strength-meter-4" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_strength_meter.html:14:27: invalid template name: invalid translation key: "v2-password-policy-password-strength-meter-5" -- please follow format: `v2.page.my-page.default.my-descriptor`
resources/authgear/templates/en/web/authflowv2/__password_strength_meter.html:17:127: invalid template name: invalid translation key: "v2-password-policy-password-strength-meter-1" -- please follow format: `v2.page.my-page.default.my-descriptor`
328 errors found
exit status 1

This is the error I got when I run it.


There is a invalid template name in the message. This is unnecessary. Let's see if you can remove it.


The Please follow ... looks like noise. Please remove it.


resources/authgear/templates/en/web/authflowv2/forgot_password.html:109:30: invalid template name: invalid translation key: "__forgot_password_alternative" -- please follow format: `v2.page.my-page.default.my-descriptor`

For legitimate usage like the following. We are going to reuse .make-lint-expect to ignore.

devtools/gotemplatelinter/final_newline_rule.go Outdated Show resolved Hide resolved
devtools/gotemplatelinter/translation_key_rule.go Outdated Show resolved Hide resolved
devtools/gotemplatelinter/flags.go Outdated Show resolved Hide resolved

func ParseFlags() Flags {
var path string
flag.StringVar(&path, "path", "", "path to go templates htmls")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

path should remain the arguments, not flags. It is because they are the primary input to this command.

Copy link
Contributor Author

@pkong-ds pkong-ds Aug 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with you. But seems golang flag pkg will

expected:
  go run ./mylinter path --ignore-rule rule-1 --ignore-rule rule-2
got:
  go run ./mylinter --ignore-rule rule-1 --ignore-rule rule-2 path

Do you think bottom one is acceptable? IMO no, so I googled a bit and it led me to this workaround, which I am going to implement. Please advise if otherwise~

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need to work around. You invoke the command in command -flag1 flag1value -flag2 flagvalue2 arg1 arg2

},
Path: path,
Rules: rules,
Path: flags.Path,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bonus: Make the linter to support os.Args[1:] instead of os.Args[1]

@louischan-oursky
Copy link
Collaborator

variable translation key is not supported yet (e.g. {{ $.Translations.RenderText $variant_label_key nil }})

pipe translation key is not supported yet (e.g. {{ include (printf "v2-oauth-branding-%s" .provider_type) nil }})

For these two, what are the blockers?

@pkong-ds

This comment was marked as outdated.

@pkong-ds
Copy link
Contributor Author

pkong-ds commented Aug 29, 2024

Updated, thanks!
As per offline discussion, the variable and pipe node will not supported. Will just print the entire node as err msg

@pkong-ds
Copy link
Contributor Author

pkong-ds commented Aug 29, 2024

Wait @louischan-oursky I think I missed below features. Add in this PR or next?

  1. check used key exist in resources/authgear/templates/en/translation.json
  2. check all keys in resources/authgear/templates/en/translation.json are used

@louischan-oursky
Copy link
Collaborator

This PR should address Point 1. For Point 2, can leave it for later.

@pkong-ds
Copy link
Contributor Author

Added check key is defined. Thanks 🙏

@pkong-ds
Copy link
Contributor Author

Updated, thanks!

The success condition is (.MatchString || .MatchString), so the negation
is !(.MatchString || .Matching) => (!.MatchString && !.MatchString)
@louischan-oursky louischan-oursky self-requested a review August 29, 2024 13:10
@louischan-oursky louischan-oursky merged commit 04abd73 into authgear:main Aug 29, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants