Internationalization

AFFiNE's frontend localization package lives at packages/frontend/i18n. English source messages are maintained in src/resources/en.json; product code consumes them through the package APIs instead of duplicating user-facing strings.

Use the i18n package guide for key and API usage. Its develop-branch automation and manual translation-sync commands are legacy and are not present in the current package scripts or workflows. Do not run copied sync commands or use translation-platform tokens without a maintainer-confirmed procedure.

For a pull request, include the source-language change, update call sites, and run the relevant lint and type checks. Confirm with a maintainer whether localized resources should be updated in the same pull request or handled separately; do not assume automation will complete them.