Skip to content

Conversation

@ovitrif
Copy link
Collaborator

@ovitrif ovitrif commented Jan 20, 2026

Fixes #353
Fixes #380

Summary

  • Complete translations for all 14 supported languages (~6,100 strings total)
  • Extract ~45 tTodo() hardcoded strings and add proper localization keys
  • Fix terminal builds for physical devices

Changes

Translations

All 14 languages now have complete translations (1,243 strings each):

  • French, Czech, Spanish (LatAm), Polish, Portuguese (BR), German, Russian
  • Italian, Dutch, Spanish (Spain), Catalan, Greek, Arabic, Portuguese (PT)

Technical terms preserved in English: Bitcoin, Lightning, Bitkit, etc.

Build Fix

Added "Remove Static Framework Stubs" build phase to fix xcodebuild for physical devices. LDKNodeFFI is a static library - its empty framework structure was causing iOS install errors.

Preview (Transifex Resources Snapshot)

Test plan

  • Verify translations display correctly in app (tested with NL) 🟢
  • Build and run on device from terminal (tested) 🟢
    xcodebuild -project Bitkit.xcodeproj -scheme Bitkit -configuration Debug \
      -destination 'generic/platform=iOS' -derivedDataPath build build
    xcrun devicectl device install app --device $DEVICE_ID build/Build/Products/Debug-iphoneos/Bitkit.app

Final checks:

  • Manually test changing the App language via Settings, without restarting the app ✅
  • Verify in Transifex Dashboard all translations above 0% are at 100% ✅
  • Do a a transifex force push + pull → expect zero changes ✅
  • Run the custom transifex scripts → expect success ✅
    ./scripts/pull-translations.sh
    ./scripts/push-translations.sh

@claude

This comment has been minimized.

@ovitrif ovitrif changed the title Complete translations for all 14 languages + terminal build fix feat: translations Jan 20, 2026
@ovitrif ovitrif requested review from ben-kaufman, jvsena42 and pwltr and removed request for ben-kaufman January 20, 2026 21:13
@claude

This comment has been minimized.

@pwltr
Copy link
Contributor

pwltr commented Jan 21, 2026

Looks good, could you also explain the flow now to update these with the new Transifex setup?

pwltr
pwltr previously approved these changes Jan 21, 2026
@claude

This comment has been minimized.

@ovitrif
Copy link
Collaborator Author

ovitrif commented Jan 22, 2026

@pwltr The translation workflow is now documented in README.md:

Workflow:

  1. Edit EN strings in Bitkit/Resources/Localization/en.lproj/Localizable.strings
  2. Push to Transifex: TX_TOKEN=... tx push --source
  3. Translators work in Transifex UI
  4. Pull translations: ./scripts/pull-translations.sh
  5. Commit the updated files

Notes:

  • Pushing requires Maintainer permissions on Transifex
  • You may need to regenerate your API token if you get 404 errors (stale tokens can cause this)
  • Use TX_TOKEN environment variable for authentication (recommended over .transifexrc)
    • ⚠️ Push ONLY works with TX_TOKEN env var.

@jvsena42

This comment was marked as resolved.

@ovitrif

This comment was marked as resolved.

ovitrif added a commit that referenced this pull request Jan 22, 2026
- Remove _alt suffix from onboarding translation keys (slide0, slide1, slide3)
- Fix corrupted translation entries with missing key names
- Add proper keys for settings__addr and wallet__create_wallet_existing_error

Addresses:
- #379 (comment)
- #379 (comment)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@claude

This comment has been minimized.

@ovitrif

This comment was marked as outdated.

@ovitrif ovitrif requested a review from pwltr January 22, 2026 14:50
@ovitrif ovitrif enabled auto-merge January 22, 2026 14:51
@claude

This comment has been minimized.

pwltr

This comment was marked as resolved.

@ovitrif

This comment was marked as resolved.

@claude

This comment has been minimized.

1 similar comment
@claude

This comment has been minimized.

@ovitrif ovitrif requested a review from pwltr January 22, 2026 19:34
ovitrif added a commit that referenced this pull request Jan 22, 2026
- Remove _alt suffix from onboarding translation keys (slide0, slide1, slide3)
- Fix corrupted translation entries with missing key names
- Add proper keys for settings__addr and wallet__create_wallet_existing_error

Addresses:
- #379 (comment)
- #379 (comment)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@ovitrif

This comment was marked as duplicate.

@ovitrif ovitrif requested a review from piotr-iohk January 22, 2026 19:41
@claude

This comment has been minimized.

@ovitrif ovitrif dismissed pwltr’s stale review January 22, 2026 20:09

can't re-request…

@ovitrif ovitrif disabled auto-merge January 22, 2026 20:32
@ovitrif ovitrif enabled auto-merge January 22, 2026 20:32
@claude

This comment has been minimized.

ovitrif and others added 4 commits January 23, 2026 12:05
- Add "Remove Static Framework Stubs" build phase to remove empty
  LDKNodeFFI.framework from app bundle (it's a static library, not dynamic)
- Update AGENTS.md with working terminal build/install/launch commands

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use existing wallet__activity_transfer_savings_pending key instead of
non-existent wallet__activity_transfer_from_spending_duration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@claude

This comment has been minimized.

@ovitrif
Copy link
Collaborator Author

ovitrif commented Jan 23, 2026

Build issues fixed yesterday but forgot to push, now after doing so all checks pass.

cc @pwltr @jvsena42 @ben-kaufman @piotr-iohk

Need one to review this, focus on functionality, db check in transifex if desired… but I also provided screenshot.

Also check a bit deeper for errors in es-519 translation file and maybe one more random translation.

Thanks in advance 🙏🏻


For reference, this work was done in parallel with the work for Android.
The Android side has 2 merged PRs:

On the iOS side, this PR includes the changes of both.

@jvsena42
Copy link
Member

Testing ...

@jvsena42
Copy link
Member

nit: on Latin america spanish, it is translating "wallet" both to "monedero" and "cartera" instead of picking just one.
Can be polished later

@jvsena42
Copy link
Member

Simulator Screenshot - iPhone 16 - 2026-01-23 at 13 47 58

Receive is not translated

@jvsena42
Copy link
Member

Worked switching between Spanish and Latin-america spanish ✅

Copy link
Member

@jvsena42 jvsena42 left a comment

Choose a reason for hiding this comment

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

LGTM, we can polish on the next Transifex sync

@pwltr pwltr disabled auto-merge January 23, 2026 18:38
@pwltr pwltr enabled auto-merge (squash) January 23, 2026 18:38
@pwltr pwltr merged commit c172e7b into master Jan 23, 2026
9 checks passed
@pwltr pwltr deleted the feat/t10s branch January 23, 2026 19:55
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.

[Bug]: Label on button 'Receive Lightning Funds' [Bug]: Missing translation during onboarding

4 participants