feat(i18n): Comprehensive internationalization of frontend components and pages

Translate all hardcoded English strings to use i18n translation keys:

Components:
- TransactionDetailModal: payment details, refunds, technical info
- ConnectOnboarding/ConnectOnboardingEmbed: Stripe Connect setup
- StripeApiKeysForm: API key management
- DomainPurchase: domain registration flow
- Sidebar: navigation labels
- Schedule/Sidebar, PendingSidebar: scheduler UI
- MasqueradeBanner: masquerade status
- Dashboard widgets: metrics, capacity, customers, tickets
- Marketing: PricingTable, PluginShowcase, BenefitsSection
- ConfirmationModal, ServiceList: common UI

Pages:
- Staff: invitation flow, role management
- Customers: form placeholders
- Payments: transactions, payouts, billing
- BookingSettings: URL and redirect configuration
- TrialExpired: upgrade prompts and features
- PlatformSettings, PlatformBusinesses: admin UI
- HelpApiDocs: API documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-03 21:40:54 -05:00
parent 902582f4ba
commit c7f241b30a
34 changed files with 1313 additions and 592 deletions

View File

@@ -1131,13 +1131,9 @@ my $response = $ua->get('${SANDBOX_URL}/services/',
<AlertCircle size={20} className="text-yellow-600 dark:text-yellow-400 flex-shrink-0 mt-0.5" />
<div>
<h3 className="text-sm font-semibold text-yellow-800 dark:text-yellow-200">
No Test Tokens Found
{t('help.api.noTestTokensFound')}
</h3>
<p className="text-sm text-yellow-700 dark:text-yellow-300 mt-1">
Create a <strong>test/sandbox</strong> API token in your Settings to see personalized code examples with your actual token.
Make sure to check the "Sandbox Mode" option when creating the token.
The examples below use placeholder tokens.
</p>
<p className="text-sm text-yellow-700 dark:text-yellow-300 mt-1" dangerouslySetInnerHTML={{ __html: t('help.api.noTestTokensMessage') }} />
</div>
</div>
</div>
@@ -1150,10 +1146,10 @@ my $response = $ua->get('${SANDBOX_URL}/services/',
<AlertCircle size={20} className="text-red-600 dark:text-red-400 flex-shrink-0 mt-0.5" />
<div>
<h3 className="text-sm font-semibold text-red-800 dark:text-red-200">
Error Loading Tokens
{t('help.api.errorLoadingTokens')}
</h3>
<p className="text-sm text-red-700 dark:text-red-300 mt-1">
Failed to load API tokens. Please check your connection and try refreshing the page.
{t('help.api.errorLoadingTokensMessage')}
</p>
</div>
</div>