mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-06 11:48:24 +00:00
Strings moved from res/values/ into composeResources/values/ kept Android's escaping, which Compose does not interpret the same way, so the login screen rendered `Don\'t have a Nostr account?` with a literal backslash and the terms line showed stray quotes. Compose 1.11.1 handleSpecialCharacters resolves only \uXXXX, \n and \t (and collapses \\). It leaves \' \" \? \@ alone, and renders Android's quote-wrapping -- used to preserve leading/trailing spaces, e.g. " Following" -- literally. Convert those four escapes and unwrap the quotes, leaving \n, \t, \uXXXX and \\ untouched so Compose still resolves them. 3,717 entries across 56 locale files; translations were hit far harder than English (Uzbek 964, French ~340 per variant, Turkish ~208) because those languages use apostrophes heavily. migrate.py now applies the same conversion as it moves each element, so the next wave cannot reintroduce this; fix_escapes.py repairs what is already migrated and is idempotent. Verified on a Pixel 9 emulator: "Event is loading or can't be found in your relay list" now renders with a real apostrophe, and no visible text node contains a literal backslash escape. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V1CzYQvWyHfipSW7x3j4Yo