diff --git a/frontend/src/stores/phone-locales.test.ts b/frontend/src/stores/phone-locales.test.ts
index 5b061be..24039e1 100644
--- a/frontend/src/stores/phone-locales.test.ts
+++ b/frontend/src/stores/phone-locales.test.ts
@@ -70,6 +70,18 @@ describe('phone locale fallback', () => {
expect(phone.t('Apps.messages.seekAudio')).toBe('Seek Audio')
})
+ it('keeps VaultX wallet key actions translated with a partial server locale', () => {
+ const phone = usePhoneStore()
+ phone.open({ locales: { Apps: { crypto: { name: 'VaultX' } } } })
+
+ expect(phone.t('Apps.crypto.profile.walletKey')).toBe('Public crypto key')
+ expect(phone.t('Apps.crypto.profile.walletKeyBody')).toBe(
+ 'Share this key to receive crypto. It cannot access your account.',
+ )
+ expect(phone.t('Apps.crypto.profile.copyKey')).toBe('Copy')
+ expect(phone.t('Apps.crypto.profile.shareKey')).toBe('Share')
+ })
+
it('uses the English Lua payload before the bundled emergency fallback', () => {
const phone = usePhoneStore()
phone.open({
diff --git a/frontend/src/views/apps/CryptoApp.vue b/frontend/src/views/apps/CryptoApp.vue
index 8e0484d..a634589 100644
--- a/frontend/src/views/apps/CryptoApp.vue
+++ b/frontend/src/views/apps/CryptoApp.vue
@@ -1449,10 +1449,12 @@ onMounted(() => void crypto.load())
- {{ t(walletKeyCopied ? 'profile.copied' : 'profile.copyKey') }}
+ {{
+ t(walletKeyCopied ? 'profile.copied' : 'profile.copyKey')
+ }}
- {{ t('profile.shareKey') }}
+ {{ t('profile.shareKey') }}
@@ -3730,13 +3732,22 @@ onMounted(() => void crypto.load())
gap: 7px;
}
.wallet-key-card__actions :deep(.sky-button) {
+ width: 100%;
+ min-width: 0;
min-height: 42px;
gap: 6px;
padding: 0 10px;
+ overflow: hidden;
font-size: 11px;
font-weight: 800;
border-radius: 13px;
}
+.wallet-key-card__actions :deep(.sky-button > span) {
+ min-width: 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
.profile-stats--premium {
margin-top: 10px;
}