Skip to content

Clarify translatable copy for i18n rules - #774

Merged
celdrake merged 1 commit into
flightctl:mainfrom
celdrake:clarify-translatable-strings
Aug 26, 2026
Merged

Clarify translatable copy for i18n rules#774
celdrake merged 1 commit into
flightctl:mainfrom
celdrake:clarify-translatable-strings

Conversation

@celdrake

@celdrake celdrake commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Coderabbit produces false positives for several use cases of the "All user-visible strings must use t()" rule:

  • "-" is used in the UI as a UX design token for missing/empty values. This should never vary between locales, therefore it should not be identified as a translatable string.
  • constructs such as (<appName>), where appName is a variable. This is not a translatable string, but rather a construct that should be displayed as-is regardless of the locale.
  • Configuration or code snippets in a certain programming language or software tool. Example: the cloud-init code snippet used by default in the form for creating new VM apps. This is not a translatable string.

Summary

  • Updated .coderabbit.yaml i18n guidance and compliance checks.
  • Excluded locale-independent "-" tokens, variable-based values such as (<appName>), and literal code or configuration snippets from translation findings.
  • This change affects review and CI configuration only.
  • It does not change shared UI components, platform-specific app code, the Go auth proxy, container builds, or E2E tests.
  • No cross-cutting runtime impact is expected.

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

This pull request changes a CodeRabbit configuration file. Because it comes from a fork or its author is not a repository collaborator, reviews use only the configuration from the target branch. The proposed configuration will take effect after it is merged.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 5ba7dce8-a667-4200-92e6-9d6b39deeb97

📥 Commits

Reviewing files that changed from the base of the PR and between 5a36446 and 38aecdd.

📒 Files selected for processing (1)
  • .coderabbit.yaml

Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review.


Walkthrough

The pull request updates .coderabbit.yaml so i18n guidance and compliance checks target localizable copy. Dynamic or system values, fixed UX tokens, and code or configuration snippets are excluded.

Changes

Internationalization guidance

Layer / File(s) Summary
Align i18n guidance and compliance checks
.coderabbit.yaml
The review guidance and compliance checker now exclude dynamic or system values, fixed UX tokens, and code or configuration snippets from untranslated-copy findings.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 38aec

This is a localized configuration clarification for translatable-copy rules, with no actionable merge-blocking risk remaining beyond normal checks and review.

Suggested reviewers: adalton

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: clarifying which copy is translatable under the i18n rules.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
No-Hardcoded-Secrets ✅ Passed PASS — The pull request changes only .coderabbit.yaml i18n guidance. The added examples and prose contain no hardcoded API key, token, password, private key, credential, credential-bearing URL, or v…
No-Weak-Crypto ✅ Passed PASS. The PR changes only .coderabbit.yaml and updates i18n review instructions. The diff introduces no cryptographic code, weak algorithm usage, custom crypto implementation, or secret/token compar…
No-Injection-Vectors ✅ Passed PASS — The pull request changes only .coderabbit.yaml review guidance. The added i18n examples and exclusions introduce no executable code and no eval/exec, dangerouslySetInnerHTML, `os.system…
Container-Privileges ✅ Passed PASS. The pull request changes only .coderabbit.yaml. The diff adds i18n review guidance and updates the i18n compliance check. It does not add or modify a container/Kubernetes manifest, container s…
No-Sensitive-Data-In-Logs ✅ Passed PASS. The pull request changes only .coderabbit.yaml review guidance. The diff adds i18n exclusions and changes no application code, logging calls, log fields, or runtime behavior. It introduces no …
Resource-Leaks ✅ Passed PASS: The pull request changes only .coderabbit.yaml (+21/-4). No Go file under proxy/ changed, so the pull request does not introduce or alter any file, HTTP response body, network connection, or…
Unchecked-Errors ✅ Passed PASS — The pull request changes only .coderabbit.yaml. It changes i18n guidance and does not modify any proxy/*.go file. The unchecked-errors rule is identical in the base and PR revisions. Ther…
Ai-Attribution ✅ Passed AI use is disclosed: the PR mentions CodeRabbit, and the changed commit includes the acceptable trailer Made-with: Cursor. The PR range contains no Co-Authored-By trailer for an AI tool.
Generated-Files-Not-Hand-Edited ✅ Passed PASS. The pull-request commit changes only .coderabbit.yaml. The diff contains no edits under libs/types/models/**, libs/types/alpha/models/**, libs/types/imagebuilder/models/**, or `libs/i18n…
I18n-Compliance ✅ Passed PASS. The pull request changes only .coderabbit.yaml; the parent-to-HEAD diff contains no .tsx files or TSX code. Therefore, it introduces no unwrapped user-visible string or variable-key t() ca…
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

Full details: No-Hardcoded-Secrets

Explanation

PASS — The pull request changes only .coderabbit.yaml i18n guidance. The added examples and prose contain no hardcoded API key, token, password, private key, credential, credential-bearing URL, or variable assignment with a secret literal. No base64-like string longer than 32 characters appears in the added content. The words “tokens” and “API data” are descriptive guidance, not secret values.

Full details: No-Weak-Crypto

Explanation

PASS. The PR changes only .coderabbit.yaml and updates i18n review instructions. The diff introduces no cryptographic code, weak algorithm usage, custom crypto implementation, or secret/token comparison. Existing mentions of MD5, SHA1, DES, and related terms are unchanged configuration guidance, not crypto usage.

Full details: No-Injection-Vectors

Explanation

PASS — The pull request changes only .coderabbit.yaml review guidance. The added i18n examples and exclusions introduce no executable code and no eval/exec, dangerouslySetInnerHTML, os.system, exec.Command, or yaml.load usage. Existing yaml.load calls are in unchanged source files, so they are not caused by this pull request.

Full details: Container-Privileges

Explanation

PASS. The pull request changes only .coderabbit.yaml. The diff adds i18n review guidance and updates the i18n compliance check. It does not add or modify a container/Kubernetes manifest, container security context, capability list, process setting, or privilege setting. The privilege terms appear only in the existing check instructions, not as deployment configuration.

Full details: No-Sensitive-Data-In-Logs

Explanation

PASS. The pull request changes only .coderabbit.yaml review guidance. The diff adds i18n exclusions and changes no application code, logging calls, log fields, or runtime behavior. It introduces no path that can expose passwords, tokens, API keys, PII, session IDs, hostnames, or customer data through logs.

Full details: Resource-Leaks

Explanation

PASS: The pull request changes only .coderabbit.yaml (+21/-4). No Go file under proxy/ changed, so the pull request does not introduce or alter any file, HTTP response body, network connection, or goroutine lifecycle covered by this check.

Full details: Unchecked-Errors

Explanation

PASS — The pull request changes only .coderabbit.yaml. It changes i18n guidance and does not modify any proxy/*.go file. The unchecked-errors rule is identical in the base and PR revisions. Therefore, the pull request introduces no unchecked or swallowed Go error return.

Full details: Generated-Files-Not-Hand-Edited

Explanation

PASS. The pull-request commit changes only .coderabbit.yaml. The diff contains no edits under libs/types/models/**, libs/types/alpha/models/**, libs/types/imagebuilder/models/**, or libs/i18n/locales/en/translation.json.

Full details: I18n-Compliance

Explanation

PASS. The pull request changes only .coderabbit.yaml; the parent-to-HEAD diff contains no .tsx files or TSX code. Therefore, it introduces no unwrapped user-visible string or variable-key t() call under this check. The updated guidance still requires hardcoded translation keys.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@celdrake
celdrake merged commit 7a103e5 into flightctl:main Aug 26, 2026
10 checks passed
@celdrake
celdrake deleted the clarify-translatable-strings branch August 26, 2026 06:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants