Skip to content

feat: note the Claude subscription tradeoffs and translate the remaining strings - #2020

Merged
datlechin merged 3 commits into
mainfrom
feat/claude-subscription-tradeoffs-and-translations
Aug 5, 2026
Merged

feat: note the Claude subscription tradeoffs and translate the remaining strings#2020
datlechin merged 3 commits into
mainfrom
feat/claude-subscription-tradeoffs-and-translations

Conversation

@datlechin

Copy link
Copy Markdown
Member

Three pieces of housekeeping from one session, one commit each.

Translate the strings that still showed in English

442 keys in the Mac catalog carried no tr, vi, zh-Hans, or zh-Hant at all, and 20 keys in the iOS catalog carried none of the three languages it ships. Both catalogs now cover every translatable key.

Terminology follows what the catalogs already use (Sütun/Cột//欄位 for column, Eklenti/Plugin/插件/外掛, Salt okunur/Chỉ đọc/只读/唯讀). Technical terms stay in English per CLAUDE.md: COMMENT, (NULL), %@_name, Application Default Credentials, Kerberos Principal, Cloud SQL Auth Proxy, and the plan names Starter and Team. The 20 iOS strings that also exist on Mac reuse the Mac wording verbatim, so the two apps read the same.

Every translation was checked against its source key for format specifiers: same specifier types, and positional markers whenever a key carries two or more. Turkish reorders arguments in several strings (%2$lld ifadeden %1$lld tanesi uygulandı), which is exactly why those need positions.

The catalogs were rewritten with a serializer that reproduces Xcode's formatting byte for byte, verified by round-tripping both files before any edit, so the diff is only the added localizations. Key order still matches localizedStandardCompare, which is what Xcode sorts by.

This commit also carries 10 extractionState flag flips that were already in the working tree from Xcode's own extraction. Translations on those entries are untouched.

Show the tradeoffs of running chat on a Claude subscription

The Claude Agent provider runs Anthropic's claude binary with your Claude Code login. The settings sheet said it "bills against your Claude subscription" and left it there. Whether your subscription's terms allow another app to drive that CLI as a chat backend is a question only Anthropic's terms and the user can answer, and the sheet gave them nothing to answer it with.

ClaudeAgentDisclosure now carries five notes, rendered as a Tradeoffs section under the status row, two cautions first and three details after:

  • TablePro runs claude in headless mode. Claude Code is built for you to use directly, not as a backend for other apps, so this path can break with any Claude Code release.
  • Your subscription is governed by Anthropic's Consumer Terms and Usage Policy. Read them and decide whether this use fits. TablePro cannot grant rights under them.
  • Replies count against your Claude subscription limits, shared with claude.ai and your own Claude Code sessions.
  • Prompts, schema, and query text reach Anthropic under your consumer plan and its privacy settings, not the API's commercial terms.
  • ANTHROPIC_API_KEY and ANTHROPIC_AUTH_TOKEN are removed from the tool's environment, so replies always draw on the subscription.

The last one was the least visible and the most worth saying: ClaudeAgentCLI strips both variables so the CLI cannot fall back to API billing. ignoredAPIKeyNoteMatchesBehaviour asserts the note and the environment stripping stay in sync, so the copy cannot drift from the code.

The footer points at the metered alternative, the Claude provider with an API key. The provider is not gated behind an acknowledgement and the stripping is unchanged; both are behaviour changes beyond disclosure.

The notes live in Core/AI/ClaudeAgent/ and render through a small ClaudeAgentDisclosureSection, which keeps AIProviderDetailSheet (999 lines, near the 1200 warning) from growing.

Simplify the unreleased changelog entries

Same 15 entries, same reference IDs, shorter lines. The restated tails, the five-item list of New Connection entry points, and the duplicated explanations are gone. Numbers that carry the behaviour change stay (the MCP export 50,000 to 500 drop).

Verification

check result
build, Debug, -skipPackagePluginValidation succeeds
swiftlint lint --strict, project wide clean
ClaudeAgentDisclosureTests, ClaudeAgentCLITests, ClaudeAgentRegistrationTests 10 cases pass
catalog coverage 3512/3512 Mac keys and 364/364 iOS keys carry every language
format specifiers 462 keys checked, 0 mismatches
prose check on the diff no em dashes, no banned words

The Tradeoffs section itself has not been looked at in a running app; it is a static Section of Label rows in an existing Form.

@mintlify

mintlify Bot commented Aug 5, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
TablePro 🟢 Ready View Preview Aug 5, 2026, 3:44 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@datlechin
datlechin merged commit e465dda into main Aug 5, 2026
4 checks passed
@datlechin
datlechin deleted the feat/claude-subscription-tradeoffs-and-translations branch August 5, 2026 03:46
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.

1 participant