rest of strings

This commit is contained in:
KraXen72
2025-07-14 22:29:03 +02:00
parent 9f958a33bc
commit 6136315e86
32 changed files with 461 additions and 456 deletions
+1
View File
@@ -28,6 +28,7 @@
"subTx",
"labelTx",
"titleTx",
"headingTx",
"contentTx",
"footerTx"
]
+4 -2
View File
@@ -357,8 +357,10 @@
"settingsScreen_backupRecovery": "Backup and recovery",
"settingsScreen_devOptions": "Developer options",
"settingsScreen_go": "Let's go!",
"settingsScreen_mintsCount_one": "%{count} mint",
"settingsScreen_mintsCount_other": "%{count} mints",
"settingsScreen_mintsCount": {
"one": "%{count} mint",
"other": "%{count} mints"
},
"settingsScreen_preferredUnit": "Preferred unit",
"settingsScreen_exchangeCurrency": "Balance conversion",
"settingsScreen_theme": "Theme",
+4 -2
View File
@@ -300,8 +300,10 @@
"settingsScreen_backupRecovery": "Zálohovanie a obnova",
"settingsScreen_devOptions": "Vývojárske nastavenia",
"settingsScreen_go": "Poďme na to!",
"settingsScreen_mintsCount_one": "{{count}} mint",
"settingsScreen_mintsCount_other": "{{count}} minty",
"settingsScreen_mintsCount": {
"one": "{{count}} mint",
"other": "{{count}} minty"
},
"settingsScreen_preferredUnit": "Preferovaná mena",
"settingsScreen_exchangeCurrency": "Zobraziť zostatok v mene",
"settingsScreen_theme": "Téma",
+15 -15
View File
@@ -108,7 +108,7 @@ export const OwnName = observer(function (props: {pubkey: string}) {
stopPolling(`checkDonationPaidPoller-${donationInvoice.payment_hash}`)
setResultModalInfo({
status: TransactionStatus.COMPLETED,
message: translate("contactsScreen.ownName.donationSuccess", { receiver: ownName + MINIBITS_NIP05_DOMAIN })
message: translate("contactsScreen_ownName_donationSuccess", { receiver: ownName + MINIBITS_NIP05_DOMAIN })
})
toggleResultModal()
//resetState()
@@ -150,12 +150,12 @@ export const OwnName = observer(function (props: {pubkey: string}) {
const onOwnNameCheck = async function () {
if(!ownName || ownName.length < 2) {
setInfo(translate('contactsScreen.ownName.tooShort'))
setInfo(translate('contactsScreen_ownName_tooShort'))
return
}
if(!isValidName(ownName)) {
setInfo(translate('contactsScreen.ownName.illegalChar'))
setInfo(translate('contactsScreen_ownName_illegalChar'))
return
}
@@ -163,7 +163,7 @@ export const OwnName = observer(function (props: {pubkey: string}) {
const profileExists = await MinibitsClient.getWalletProfileByNip05(ownName + MINIBITS_NIP05_DOMAIN)
if(profileExists) {
setInfo(translate("contactsScreen.ownName.profileExists"))
setInfo(translate("contactsScreen_ownName_profileExists"))
return
}
@@ -286,7 +286,7 @@ export const OwnName = observer(function (props: {pubkey: string}) {
{!isChecked ? (
<Card
style={[$card, {marginTop: spacing.small}]}
headingTx='contactsScreen.ownName.chooseOwnName'
headingTx='contactsScreen_ownName_chooseOwnName'
headingStyle={{textAlign: 'center'}}
ContentComponent={
<View style={$ownNameContainer}>
@@ -313,7 +313,7 @@ export const OwnName = observer(function (props: {pubkey: string}) {
/>
</View>
}
footerTx='contactsScreen.ownName.chooseOwnNameFooter'
footerTx='contactsScreen_ownName_chooseOwnNameFooter'
footerStyle={{color: hint, textAlign: 'center'}}
/>
) : (
@@ -323,7 +323,7 @@ export const OwnName = observer(function (props: {pubkey: string}) {
<View style={$iconContainer}>
<Icon icon='faCheckCircle' size={50} color={colors.palette.success200} />
<Text
text={translate('contactsScreen.ownName.available',{ name: ownName })}
text={translate('contactsScreen_ownName_available',{ name: ownName })}
style={{fontSize: 18}}
/>
</View>
@@ -333,13 +333,13 @@ export const OwnName = observer(function (props: {pubkey: string}) {
{donationInvoice ? (
<>
<Text
text={translate("contactsScreen.ownName.payToGetOwnName", { name: ownName+MINIBITS_NIP05_DOMAIN })}
text={translate("contactsScreen_ownName_payToGetOwnName", { name: ownName+MINIBITS_NIP05_DOMAIN })}
style={[$supportText, {color: hint}]}
/>
<QRCodeBlock
qrCodeData={donationInvoice.payment_request}
titleTx="contactsScreen.ownName.lightningInvoiceToPayQR"
titleTx="contactsScreen_ownName_lightningInvoiceToPayQR"
type='Bolt11Invoice'
size={270}
/>
@@ -351,7 +351,7 @@ export const OwnName = observer(function (props: {pubkey: string}) {
text='Minibits'
style={{fontFamily: 'Gluten-Regular', fontSize: 18}}
/>{' '}
<Text tx="contactsScreen.ownName.donationSubtext" />
<Text tx="contactsScreen_ownName_donationSubtext" />
</RNText>
<CurrencyAmount
amount={donationAmount}
@@ -395,19 +395,19 @@ export const OwnName = observer(function (props: {pubkey: string}) {
<Button
preset="default"
style={{marginRight: spacing.small}}
tx='contactsScreen.getInvoice'
tx='contactsScreen_getInvoice'
onPress={onCreateDonation}
/>
<Button
preset="secondary"
tx='common.cancel'
tx='commonCancel'
onPress={resetState}
/>
</View>
<ListItem
textStyle={{fontSize: 12, color: hint}}
leftIcon='faInfoCircle'
tx='contactsScreen.ownName.betaWarning'
tx='contactsScreen_ownName_betaWarning'
/>
</>
)}
@@ -424,13 +424,13 @@ export const OwnName = observer(function (props: {pubkey: string}) {
<ResultModalInfo
icon="faCheckCircle"
iconColor={colors.palette.success200}
title={translate("common.success")}
title={translate("commonSuccess")}
message={resultModalInfo?.message as string}
/>
<View style={$payButtonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={onResultModalClose}
/>
</View>
+11 -11
View File
@@ -83,7 +83,7 @@ export const PrivateContacts = observer(function (props: {
log.trace('Start', newContactName, 'saveNewContact')
if(!newContactName) {
setInfo(translate("contactsScreen.privateContacts.saveNewFormat"))
setInfo(translate("contactsScreen_privateContacts_saveNewFormat"))
return
}
@@ -119,7 +119,7 @@ export const PrivateContacts = observer(function (props: {
const profileRecord = await MinibitsClient.getWalletProfileByNip05(newContactName + MINIBITS_NIP05_DOMAIN)
if(!profileRecord) {
warningMessage(translate("contactsScreen.privateContacts.profileNotFound", {
warningMessage(translate("contactsScreen_privateContacts_profileNotFound", {
name: newContactName + MINIBITS_NIP05_DOMAIN
}))
setIsLoading(false)
@@ -289,16 +289,16 @@ export const PrivateContacts = observer(function (props: {
leftIcon="faComment"
leftIconInverse={true}
leftIconColor={colors.palette.iconGreen200}
tx='contactsScreen.privateContacts.explainerText'
subTx="contactsScreen.privateContacts.explainerSubText"
tx='contactsScreen_privateContacts_explainerText'
subTx="contactsScreen_privateContacts_explainerSubText"
onPress={gotoNew}
/>
<ListItem
leftIcon="faCircleUser"
leftIconInverse={true}
leftIconColor={colors.palette.iconMagenta200}
tx="contactsScreen.privateContacts.switchName"
subTx='contactsScreen.privateContacts.switchNameSubText'
tx="contactsScreen_privateContacts_switchName"
subTx='contactsScreen_privateContacts_switchNameSubText'
onPress={gotoProfile}
topSeparator={true}
/>
@@ -330,11 +330,11 @@ export const PrivateContacts = observer(function (props: {
isVisible={isNewContactModalVisible ? true : false}
ContentComponent={
<View style={$newContainer}>
<Text tx="contactsScreen.newTitle" preset="subheading" />
<Text tx="contactsScreen_newTitle" preset="subheading" />
<Text
size="xxs"
style={{color: domainText}}
tx="contactsScreen.privateContacts.bottomModal"
tx="contactsScreen_privateContacts_bottomModal"
/>
<View
style={{
@@ -372,7 +372,7 @@ export const PrivateContacts = observer(function (props: {
</View>
)}
<Button
tx={'common.save'}
tx={'commonSave'}
style={{
borderRadius: spacing.small,
marginRight: spacing.small,
@@ -384,8 +384,8 @@ export const PrivateContacts = observer(function (props: {
preset="tertiary"
tx={
isExternalDomain
? 'contactsScreen.privateContacts.domainMinibits'
: 'contactsScreen.privateContacts.domainExternal'
? 'contactsScreen_privateContacts_domainMinibits'
: 'contactsScreen_privateContacts_domainExternal'
}
onPress={toggleExternalDomain}
style={{alignSelf: 'flex-start', minHeight: verticalScale(30)}}
+19 -19
View File
@@ -216,7 +216,7 @@ export const PublicContacts = observer(function (props: {
const onPastePublicPubkey = async function () {
const key = await Clipboard.getString()
if (!key) {
setInfo(translate("contactsScreen.publicContacts.npubPasteError"))
setInfo(translate("contactsScreen_publicContacts_npubPasteError"))
return
}
setNewPublicPubkey(key.trim())
@@ -447,8 +447,8 @@ export const PublicContacts = observer(function (props: {
leftIcon='faComment'
leftIconInverse={true}
leftIconColor={colors.palette.iconViolet200}
tx="nostr.tip"
subTx='nostr.tipSubText'
tx="nostr_tip"
subTx='nostr_tipSubText'
onPress={toggleNpubModal}
/>
}
@@ -530,22 +530,22 @@ export const PublicContacts = observer(function (props: {
<>
<ListItem
leftIcon='faKey'
tx="nostr.setPublicKey"
subTx='nostr.setPublicKeySubText'
tx="nostr_setPublicKey"
subTx='nostr_setPublicKeySubText'
onPress={toggleNpubModal}
bottomSeparator={true}
/>
<ListItem
leftIcon='faCircleNodes'
tx='nostr.setRelay'
subTx='nostr.setRelaySubText'
tx='nostr_setRelay'
subTx='nostr_setRelaySubText'
onPress={toggleRelayModal}
bottomSeparator={true}
/>
<ListItem
leftIcon='faBan'
tx="nostr.removePub"
subTx="nostr.removePubSubText"
tx="nostr_removePub"
subTx="nostr_removePubSubText"
onPress={onRemovePublicPubKey}
/>
</>
@@ -557,7 +557,7 @@ export const PublicContacts = observer(function (props: {
isVisible={isNpubModalVisible}
ContentComponent={
<View style={$newContainer}>
<Text tx="contactsScreen.publicContacts.addNpub" preset="subheading" />
<Text tx="contactsScreen_publicContacts_addNpub" preset="subheading" />
<View style={{flexDirection: 'row', alignItems: 'center', marginTop: spacing.small}}>
<TextInput
ref={npubInputRef}
@@ -572,20 +572,20 @@ export const PublicContacts = observer(function (props: {
style={[$npubInput, {backgroundColor: inputBg, color: inputText},]}
/>
<Button
tx={'common.paste'}
tx={'commonPaste'}
preset='secondary'
style={$pasteButton}
onPress={onPastePublicPubkey}
/>
<Button
tx={'common.save'}
tx={'commonSave'}
style={$saveButton}
onPress={onSavePublicPubkey}
/>
</View>
<View style={[$buttonContainer, {marginTop: spacing.medium}]}>
<Button preset='tertiary' onPress={() => setNewPublicPubkey(defaultPublicNpub)} tx="contactsScreen.publicContacts.pasteDemoKey"/>
<Button preset='tertiary' onPress={toggleNpubModal} tx="common.cancel"/>
<Button preset='tertiary' onPress={() => setNewPublicPubkey(defaultPublicNpub)} tx="contactsScreen_publicContacts_pasteDemoKey"/>
<Button preset='tertiary' onPress={toggleNpubModal} tx="commonCancel"/>
</View>
</View>
}
@@ -596,7 +596,7 @@ export const PublicContacts = observer(function (props: {
isVisible={isRelayModalVisible ? true : false}
ContentComponent={
<View style={$newContainer}>
<Text tx="contactsScreen.publicContacts.setOwnRelay" preset="subheading" />
<Text tx="contactsScreen_publicContacts_setOwnRelay" preset="subheading" />
<View style={{flexDirection: 'row', alignItems: 'center', marginTop: spacing.small}}>
<TextInput
ref={relayInputRef}
@@ -611,22 +611,22 @@ export const PublicContacts = observer(function (props: {
style={[$npubInput, {backgroundColor: inputBg, color: inputText},]}
/>
<Button
tx={'common.paste'}
tx={'commonPaste'}
preset='secondary'
style={$pasteButton}
onPress={onPastePublicRelay}
/>
<Button
tx={'common.save'}
tx={'commonSave'}
style={$saveButton}
onPress={onSavePublicRelay}
/>
</View>
<View style={[$buttonContainer, {marginTop: spacing.medium}]}>
{newPublicRelay && (
<Button preset='tertiary' onPress={onRemovePublicRelay} tx="common.resetDefault"/>
<Button preset='tertiary' onPress={onRemovePublicRelay} tx="commonResetDefault"/>
)}
<Button preset='tertiary' onPress={toggleRelayModal} tx="common.cancel"/>
<Button preset='tertiary' onPress={toggleRelayModal} tx="commonCancel"/>
</View>
</View>
}
+2 -2
View File
@@ -57,7 +57,7 @@ export const RandomName = observer(function (props: {pubkey: string}) {
const confirmSelectedName = async function () {
if (!selectedName) {
setInfo(translate('contactsScreen.randomName.selectOneOfUsernames'))
setInfo(translate('contactsScreen_randomName_selectOneOfUsernames'))
return
}
@@ -108,7 +108,7 @@ export const RandomName = observer(function (props: {pubkey: string}) {
<View style={$buttonContainer}>
<Button
onPress={() => confirmSelectedName()}
tx="common.confirm"
tx="commonConfirm"
style={{marginTop: spacing.medium, minWidth: 120}}
/>
</View>
+3 -3
View File
@@ -20,8 +20,8 @@ export function ErrorDetails(props: ErrorDetailsProps) {
>
<View style={$topSection}>
<Icon icon="faInfoCircle" size={64} />
<Text style={$heading} preset="subheading" tx="errorScreen.title" />
<Text tx="errorScreen.friendlySubtitle" />
<Text style={$heading} preset="subheading" tx="errorScreen_title" />
<Text tx="errorScreen_friendlySubtitle" />
</View>
<ScrollView style={$errorSection} contentContainerStyle={$errorSectionContentContainer}>
@@ -37,7 +37,7 @@ export function ErrorDetails(props: ErrorDetailsProps) {
preset="secondary"
style={$resetButton}
onPress={props.onReset}
tx="errorScreen.reset"
tx="errorScreen_reset"
/>
</Screen>
)
+2 -2
View File
@@ -109,7 +109,7 @@ export const MintBalanceSelector = observer(function (props: {
ListFooterComponent={props.mintBalances.length > 1 && collapsible ? (
<View style={{alignItems: 'center'}}>
<Button
tx={allVisible ? 'common.hideMore' : 'common.showMore'}
tx={allVisible ? 'commonHideMore' : 'commonShowMore'}
onPress={toggleAllVisible}
preset='tertiary'
textStyle={{fontSize: 14}}
@@ -153,7 +153,7 @@ export const MintBalanceSelector = observer(function (props: {
<Icon icon={props.cancelIcon} color={secondaryIconColor} size={spacing.medium}/>
))
}
tx={'common.cancel'}
tx={'commonCancel'}
onPress={props.onCancel}
/>
</View>
+9 -9
View File
@@ -118,8 +118,8 @@ export const PrivacyScreen = observer(function PrivacyScreen({ route }: Props) {
ContentComponent={
<>
<ListItem
tx="privacyScreen.torDaemon"
subTx="privacyScreen.torDaemonDescription"
tx="privacyScreen_torDaemon"
subTx="privacyScreen_torDaemonDescription"
leftIcon={'faBullseye'}
leftIconColor={
isTorDaemonOn
@@ -139,7 +139,7 @@ export const PrivacyScreen = observer(function PrivacyScreen({ route }: Props) {
/>
{isTorDaemonOn && (
<ListItem
tx="privacyScreen.torStatus"
tx="privacyScreen_torStatus"
subText={`${torStatus}`}
leftIcon={torStatus === TorStatus.NOTINIT ? (
'faBan'
@@ -190,10 +190,10 @@ export const PrivacyScreen = observer(function PrivacyScreen({ route }: Props) {
ContentComponent={
<>
<ListItem
tx="nostr.useOwnProfile.title"
tx="nostr_useOwnProfile_title"
subText={walletProfileStore.isOwnProfile
? walletProfileStore.nip05
: translate("nostr.useOwnProfile.desc")
: translate("nostr_useOwnProfile_desc")
}
leftIcon={'faShareNodes'}
leftIconColor={
@@ -208,14 +208,14 @@ export const PrivacyScreen = observer(function PrivacyScreen({ route }: Props) {
<Button
style={{maxHeight: 10, marginTop: spacing.medium}}
preset="secondary"
tx="common.reset"
tx="commonReset"
onPress={resetProfile}
/>
) : (
<Button
style={{maxHeight: 10, marginTop: spacing.medium}}
preset="secondary"
tx="common.import"
tx="commonImport"
onPress={gotoOwnKeys}
/>
)}
@@ -231,8 +231,8 @@ export const PrivacyScreen = observer(function PrivacyScreen({ route }: Props) {
ContentComponent={
<>
<ListItem
tx="privacyScreen.logger"
subTx="privacyScreen.loggerDescription"
tx="privacyScreen_logger"
subTx="privacyScreen_loggerDescription"
leftIcon={'faBug'}
leftIconColor={
isLoggerOn
+12 -12
View File
@@ -116,7 +116,7 @@ export const ProfileScreen = observer(function ProfileScreen({ route }: Props) {
try {
Clipboard.setString(nip05)
} catch (e: any) {
setInfo(translate('common.copyFailParam', { param: e.message }))
setInfo(translate('commonCopyFailParam', { param: e.message }))
}
}
@@ -208,21 +208,21 @@ export const ProfileScreen = observer(function ProfileScreen({ route }: Props) {
<>
{walletProfileStore.isOwnProfile ? (
<ListItem
tx="profileOnboarding.ownAddrTitle"
subTx="profileOnboarding.ownAddrDesc"
tx="profileOnboarding_ownAddrTitle"
subTx="profileOnboarding_ownAddrDesc"
leftIcon='faCircleUser'
bottomSeparator={true}
style={{paddingRight: spacing.small}}
/>
) : (
<ListItem
tx="profileOnboarding.minibitsTitle"
//subTx="profileOnboarding.minibitsDesc"
tx="profileOnboarding_minibitsTitle"
//subTx="profileOnboarding_minibitsDesc"
leftIcon='faCircleUser'
BottomComponent={
<CollapsibleText
collapsed={true}
text={translate('profileOnboarding.minibitsDesc')}
text={translate('profileOnboarding_minibitsDesc')}
textProps={{style: $subText}}
/>}
bottomSeparator={true}
@@ -232,13 +232,13 @@ export const ProfileScreen = observer(function ProfileScreen({ route }: Props) {
<View style={$buttonContainer}>
<Button
preset='secondary'
tx='common.share'
tx='commonShare'
LeftAccessory={() => <Icon icon='faShareNodes'/>}
onPress={toggleShareModal}
/>
<Button
preset='secondary'
tx="common.change"
tx="commonChange"
style={{marginLeft: spacing.small}}
LeftAccessory={() => <Icon icon='faRotate'/>}
onPress={toggleUpdateModal}
@@ -362,15 +362,15 @@ const WalletProfileActionsBlock = function (props: {
return (
<>
<ListItem
tx='profileScreen.changeAvatar'
subTx='profileScreen.changeAvatarSubtext'
tx='profileScreen_changeAvatar'
subTx='profileScreen_changeAvatarSubtext'
leftIcon='faCircleUser'
onPress={props.gotoAvatar}
bottomSeparator={true}
/>
<ListItem
tx='profileScreen.changeWalletaddress'
subTx='profileScreen.changeWalletaddressSubtext'
tx='profileScreen_changeWalletaddress'
subTx='profileScreen_changeWalletaddressSubtext'
leftIcon='faPencil'
onPress={props.gotoWalletName}
// bottomSeparator={true}
+17 -17
View File
@@ -109,7 +109,7 @@ export const ReceiveScreen = observer(function ReceiveScreen({ route }: Props) {
if (error) {
setResultModalInfo({
status,
title: error.params?.message ? error.message : translate("transactionCommon.receiveFailed"),
title: error.params?.message ? error.message : translate("transactionCommon_receiveFailed"),
message: error.params?.message || error.message,
})
} else {
@@ -358,13 +358,13 @@ export const ReceiveScreen = observer(function ReceiveScreen({ route }: Props) {
{isP2PKLockedToWallet ? (
<Text
size='xs'
tx={toNumber(receivedAmount) > 0 ? "receiveScreen.received" : "receiveScreen.lockedToWalletPK"}
tx={toNumber(receivedAmount) > 0 ? "receiveScreen_received" : "receiveScreen_lockedToWalletPK"}
style={{color: amountInputColor, textAlign: 'center'}}
/>
) : (
<Text
size='xs'
tx={toNumber(receivedAmount) > 0 ? "receiveScreen.received" : "receiveScreen.lockedToUnknownPK"}
tx={toNumber(receivedAmount) > 0 ? "receiveScreen_received" : "receiveScreen_lockedToUnknownPK"}
style={{color: amountInputColor, textAlign: 'center'}}
/>
)}
@@ -372,7 +372,7 @@ export const ReceiveScreen = observer(function ReceiveScreen({ route }: Props) {
) : (
<Text
size='xs'
tx={toNumber(receivedAmount) > 0 ? "receiveScreen.received" : "receiveScreen.toReceive"}
tx={toNumber(receivedAmount) > 0 ? "receiveScreen_received" : "receiveScreen_toReceive"}
style={{
color: amountInputColor,
textAlign: 'center',
@@ -442,24 +442,24 @@ export const ReceiveScreen = observer(function ReceiveScreen({ route }: Props) {
ContentComponent={
<>
<TranItem
label="transactionCommon.receivedTo"
label="transactionCommon_receivedTo"
isFirst={true}
value={mintsStore.findByUrl(transaction.mint)?.shortname as string}
/>
{transaction?.memo && (
<TranItem
label="receiveScreen.memoFromSender"
label="receiveScreen_memoFromSender"
value={transaction.memo as string}
/>
)}
<TranItem
label="transactionCommon.feePaid"
label="transactionCommon_feePaid"
value={transaction.fee || 0}
unit={unit}
isCurrency={true}
/>
<TranItem
label="receiveScreen.status"
label="receiveScreen_status"
value={transaction.status as string}
/>
</>
@@ -471,7 +471,7 @@ export const ReceiveScreen = observer(function ReceiveScreen({ route }: Props) {
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={gotoWallet}
/>
</View>
@@ -481,7 +481,7 @@ export const ReceiveScreen = observer(function ReceiveScreen({ route }: Props) {
<View style={$buttonContainer}>
{isInternetReachable ? (
<Button
tx='payCommon.receive'
tx='payCommon_receive'
onPress={receiveToken}
style={{marginRight: spacing.medium}}
LeftAccessory={() => (
@@ -494,7 +494,7 @@ export const ReceiveScreen = observer(function ReceiveScreen({ route }: Props) {
/>
) : (
<Button
tx='payCommon.receiveOffline'
tx='payCommon_receiveOffline'
onPress={receiveOfflineToken}
style={{marginRight: spacing.medium}}
LeftAccessory={() => (
@@ -508,7 +508,7 @@ export const ReceiveScreen = observer(function ReceiveScreen({ route }: Props) {
)}
<Button
preset="secondary"
tx='common.cancel'
tx='commonCancel'
onPress={gotoWallet}
/>
</View>
@@ -526,13 +526,13 @@ export const ReceiveScreen = observer(function ReceiveScreen({ route }: Props) {
<ResultModalInfo
icon={'faCheckCircle'}
iconColor={colors.palette.success200}
title={translate('common.success')}
title={translate('commonSuccess')}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={gotoWallet}
/>
</View>
@@ -549,7 +549,7 @@ export const ReceiveScreen = observer(function ReceiveScreen({ route }: Props) {
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={gotoWallet}
/>
</View>
@@ -561,7 +561,7 @@ export const ReceiveScreen = observer(function ReceiveScreen({ route }: Props) {
<ResultModalInfo
icon="faTriangleExclamation"
iconColor={colors.palette.angry500}
title={resultModalInfo?.title as string || translate('transactionCommon.receiveFailed')}
title={resultModalInfo?.title as string || translate('transactionCommon_receiveFailed')}
message={resultModalInfo?.message as string}
/>
<View style={$buttonContainer}>
@@ -574,7 +574,7 @@ export const ReceiveScreen = observer(function ReceiveScreen({ route }: Props) {
) : (
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={toggleResultModal}
/>
)}
+8 -8
View File
@@ -45,7 +45,7 @@ export const RecoverWalletAddressScreen = observer(function RecoverWalletAddress
const onConfirmMnemonic = async function () {
try {
if (!mnemonic) {
throw new AppError(Err.VALIDATION_ERROR, translate('backupScreen.missingMnemonicError'))
throw new AppError(Err.VALIDATION_ERROR, translate('backupMissingMnemonicError'))
}
LayoutAnimation.easeInEaseOut()
@@ -74,7 +74,7 @@ export const RecoverWalletAddressScreen = observer(function RecoverWalletAddress
throw new AppError(Err.VALIDATION_ERROR, 'Could not get seed')
}
setStatusMessage(translate('recovery.recoveringAddress'))
setStatusMessage(translate('recovery_recoveringAddress'))
setIsLoading(true)
const seedHash = QuickCrypto.createHash('sha256')
@@ -88,7 +88,7 @@ export const RecoverWalletAddressScreen = observer(function RecoverWalletAddress
if (profile.nip05.includes(MINIBITS_NIP05_DOMAIN)) {
setProfileToRecover(profile)
} else {
setStatusMessage(translate("recovery.ownKeysImportAgain", { addr: profile.nip05 }))
setStatusMessage(translate("recovery_ownKeysImportAgain", { addr: profile.nip05 }))
await delay(4000)
}
@@ -102,11 +102,11 @@ export const RecoverWalletAddressScreen = observer(function RecoverWalletAddress
const onCompleteAddress = async () => {
try {
if(!seedHashRef.current || !seedRef.current || !profileToRecover) {
throw new AppError(Err.VALIDATION_ERROR, translate("recovery.missingMnemonicSeedProfileError"))
throw new AppError(Err.VALIDATION_ERROR, translate("recovery_missingMnemonicSeedProfileError"))
}
setIsLoading(true)
setStatusMessage(translate("recovery.recoveringAddress"))
setStatusMessage(translate("recovery_recoveringAddress"))
const keys = await walletStore.getCachedWalletKeys()
@@ -120,7 +120,7 @@ export const RecoverWalletAddressScreen = observer(function RecoverWalletAddress
userSettingsStore.setIsOnboarded(true)
setStatusMessage(translate('recovery.completed'))
setStatusMessage(translate('recovery_completed'))
await delay(1000)
setStatusMessage('')
setIsLoading(false)
@@ -191,7 +191,7 @@ export const RecoverWalletAddressScreen = observer(function RecoverWalletAddress
<View style={$buttonContainer}>
{profileToRecover ? (
<Button
tx="recovery.completeCTA"
tx="recovery_completeCTA"
style={{ marginRight: spacing.small }}
LeftAccessory={() => (
<Icon
@@ -204,7 +204,7 @@ export const RecoverWalletAddressScreen = observer(function RecoverWalletAddress
/>
) : (
<Button
tx="recovery.findAddressCTA"
tx="recovery_findAddressCTA"
style={{ marginRight: spacing.small }}
LeftAccessory={() => (
<Icon
+4 -4
View File
@@ -30,7 +30,7 @@ export const MnemonicInput = forwardRef<TextInput, MnemonicInputProps>((props, m
const maybeMnemonic = await Clipboard.getString()
if(!maybeMnemonic) {
throw new AppError(Err.VALIDATION_ERROR, translate('backupScreen.missingMnemonicError'))
throw new AppError(Err.VALIDATION_ERROR, translate('backupMissingMnemonicError'))
}
const cleaned = maybeMnemonic.replace(/\s+/g, ' ').trim()
@@ -54,7 +54,7 @@ export const MnemonicInput = forwardRef<TextInput, MnemonicInputProps>((props, m
style={$card}
ContentComponent={
<ListItem
tx='backupScreen.mnemonicTitle'
tx='backupMnemonicTitle'
subText={mnemonic}
subTextStyle={{fontFamily: typography.code?.normal}}
LeftComponent={<View style={[$numIcon, {backgroundColor: numIconColor}]}><Text text='1'/></View>}
@@ -93,12 +93,12 @@ export const MnemonicInput = forwardRef<TextInput, MnemonicInputProps>((props, m
{mnemonic ? (
<Button
onPress={onConfirm}
tx='common.confirm'
tx='commonConfirm'
/>
) : (
<Button
onPress={onPaste}
tx='common.paste'
tx='commonPaste'
/>
)
}
+12 -12
View File
@@ -322,7 +322,7 @@ export const RecoveryOptionsScreen = observer(function RecoveryOptionsScreen({ r
<View style={[$headerContainer, {backgroundColor: headerBg}]}>
<Text
preset="heading"
tx="recoveryOptions.title"
tx="recoveryOptionsTitle"
style={{color: 'white'}}
/>
</View>
@@ -333,8 +333,8 @@ export const RecoveryOptionsScreen = observer(function RecoveryOptionsScreen({ r
ContentComponent={
<>
<ListItem
tx="recoveryOptions.fromBackup"
subTx="recoveryOptions.fromBackupDescription"
tx="recoveryOptionsFromBackup"
subTx="recoveryOptionsFromBackupDescription"
leftIcon='faDownload'
leftIconColor={colors.palette.focus300}
leftIconInverse={true}
@@ -343,8 +343,8 @@ export const RecoveryOptionsScreen = observer(function RecoveryOptionsScreen({ r
onPress={gotoImportBackup}
/>
<ListItem
tx="recoveryOptions.fromSeed"
subTx="recoveryOptions.fromSeedDescription"
tx="recoveryOptionsFromSeed"
subTx="recoveryOptionsFromSeedDescription"
leftIcon='faSeedling'
leftIconColor={colors.palette.orange400}
leftIconInverse={true}
@@ -373,8 +373,8 @@ export const RecoveryOptionsScreen = observer(function RecoveryOptionsScreen({ r
<Card
style={$card} HeadingComponent={
<ListItem
tx="backupScreen.removeSpentCoins"
subTx="backupScreen.removeSpentCoinsDescription"
tx="backupRemoveSpentCoins"
subTx="backupRemoveSpentCoinsDescription"
leftIcon='faRecycle'
leftIconColor={colors.palette.secondary300}
leftIconInverse={true}
@@ -524,7 +524,7 @@ export const RecoveryOptionsScreen = observer(function RecoveryOptionsScreen({ r
style={[$quoteInput, {backgroundColor: inputBg, color: inputText}]}
/>
<Button
tx={'common.paste'}
tx={'commonPaste'}
preset='secondary'
style={$pasteButton}
onPress={onPasteMintQuote}
@@ -555,7 +555,7 @@ export const RecoveryOptionsScreen = observer(function RecoveryOptionsScreen({ r
style={[$quoteInput, {backgroundColor: inputBg, color: inputText}]}
/>
<Button
tx={'common.paste'}
tx={'commonPaste'}
preset='secondary'
style={$pasteButton}
onPress={onPasteMintQuote}
@@ -582,7 +582,7 @@ export const RecoveryOptionsScreen = observer(function RecoveryOptionsScreen({ r
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={toggleMintQuoteResultModal}
/>
</View>
@@ -608,7 +608,7 @@ export const RecoveryOptionsScreen = observer(function RecoveryOptionsScreen({ r
style={[$quoteInput, {backgroundColor: inputBg, color: inputText}]}
/>
<Button
tx={'common.paste'}
tx={'commonPaste'}
preset='secondary'
style={$pasteButton}
onPress={onPasteMeltQuote}
@@ -635,7 +635,7 @@ export const RecoveryOptionsScreen = observer(function RecoveryOptionsScreen({ r
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={toggleMeltQuoteResultModal}
/>
</View>
+4 -4
View File
@@ -231,7 +231,7 @@ export const RelaysScreen = observer(function RelaysScreen({ route }: Props) {
<ListItem
leftIcon="faCloudArrowUp"
onPress={onConnect}
tx="common.reconnect"
tx="commonReconnect"
bottomSeparator={true}
style={{paddingHorizontal: spacing.medium}}
/>
@@ -266,19 +266,19 @@ export const RelaysScreen = observer(function RelaysScreen({ route }: Props) {
style={[$relayInput, {backgroundColor: inputBg, color: inputText}]}
/>
<Button
tx={'common.paste'}
tx={'commonPaste'}
preset='secondary'
style={$pasteButton}
onPress={onPastePublicRelay}
/>
<Button
tx={'common.save'}
tx={'commonSave'}
style={$saveButton}
onPress={onSavePublicRelay}
/>
</View>
<View style={[$buttonContainer, {marginTop: spacing.medium}]}>
<Button preset='tertiary' onPress={resetDefaultRelays} tx='common.resetDefault' />
<Button preset='tertiary' onPress={resetDefaultRelays} tx='commonResetDefault' />
<Button preset='tertiary' onPress={toggleAddRelayModal} style={{marginLeft: spacing.small}} text='Cancel'/>
</View>
</View>
+2 -2
View File
@@ -260,7 +260,7 @@ export const ScanScreen = function ScanScreen({ route }: Props) {
const onPaste = async function() {
const clipboard = await Clipboard.getString()
if (clipboard.length === 0) {
infoMessage(translate("scanScreen.onPasteEmptyClipboard"))
infoMessage(translate("scanScreen_onPasteEmptyClipboard"))
return
}
@@ -300,7 +300,7 @@ export const ScanScreen = function ScanScreen({ route }: Props) {
LeftAccessory={() => (
<Icon icon='faPaste'/>
)}
tx='common.paste'
tx='commonPaste'
preset='secondary'
style={{marginTop: spacing.medium, minWidth: 120}}
/>
+4 -4
View File
@@ -110,8 +110,8 @@ export const SecurityScreen = observer(function SecurityScreen({ route }: Props)
ContentComponent={
<>
<ListItem
tx="securityScreen.biometricAuth"
subTx="securityScreen.biometricAuthDescription"
tx="securityScreen_biometricAuth"
subTx="securityScreen_biometricAuthDescription"
leftIcon={isBiometricAuthOn ? 'faLock' : 'faLockOpen'}
leftIconColor={
isBiometricAuthOn
@@ -131,8 +131,8 @@ export const SecurityScreen = observer(function SecurityScreen({ route }: Props)
/>
{/*isBiometricAuthOn && (
<ListItem
tx="securityScreen.biometry"
subTx={biometryType ? 'securityScreen.biometryAvailable' : 'securityScreen.biometryNone'}
tx="securityScreen_biometry"
subTx={biometryType ? 'securityScreen_biometryAvailable' : 'securityScreen_biometryNone'}
leftIcon='faFingerprint'
leftIconColor={colors.palette.iconGreyBlue400}
leftIconInverse={true}
+36 -36
View File
@@ -121,7 +121,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
const maybeMnemonic = await Clipboard.getString()
if(!maybeMnemonic) {
throw new AppError(Err.VALIDATION_ERROR, translate('backupScreen.missingMnemonicError'))
throw new AppError(Err.VALIDATION_ERROR, translate('backupMissingMnemonicError'))
}
const cleanedMnemonic = maybeMnemonic.replace(/\s+/g, ' ').trim()
@@ -136,7 +136,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
const onConfirmMnemonic = async function () {
try {
if(!mnemonic) {
throw new AppError(Err.VALIDATION_ERROR, translate('backupScreen.missingMnemonicError'))
throw new AppError(Err.VALIDATION_ERROR, translate('backupMissingMnemonicError'))
}
LayoutAnimation.easeInEaseOut()
@@ -163,7 +163,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
if(profile.nip05.includes(MINIBITS_NIP05_DOMAIN)) {
setProfileToRecover(profile)
} else {
setInfo(translate("recovery.ownKeysImportAgain", { addr: profile.nip05 }))
setInfo(translate("recovery_ownKeysImportAgain", { addr: profile.nip05 }))
setIsNewProfileNeeded(true)
}
} catch (e: any) {
@@ -221,12 +221,12 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
const startRecovery = async function () {
if(!selectedMintUrl) {
setInfo(translate("recovery.selectMintFrom"))
setInfo(translate("recovery_selectMintFrom"))
return
}
setIsRecoveryStarted(true)
setStatusMessage(translate("recovery.starting"))
setStatusMessage(translate("recovery_starting"))
setIsLoading(true)
setTimeout(() => doRecovery(), 100)
}
@@ -249,16 +249,16 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
}
if(!recoveredMint) {
setInfo(translate("recovery.noMintSelected"))
setInfo(translate("recovery_noMintSelected"))
return
}
if(!selectedKeyset) {
setInfo(translate("recovery.noKeysetSelected"))
setInfo(translate("recovery_noKeysetSelected"))
return
}
setStatusMessage(translate("recovery.restoringFromParam", { hostname: recoveredMint.hostname }))
setStatusMessage(translate("recovery_restoringFromParam", { hostname: recoveredMint.hostname }))
log.info('[restore]', `Restoring from ${recoveredMint.hostname}...`)
const { proofs } = await walletStore.restore(
@@ -272,7 +272,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
)
//log.debug('[restore]', `Restored proofs`, proofs.length)
setStatusMessage(translate("recovery.foundProofsAmount", { amount: proofs.length }))
setStatusMessage(translate("recovery_foundProofsAmount", { amount: proofs.length }))
if (proofs.length > 0) {
// need to move counter by whole interval to avoid duplicate _B!!!
@@ -287,14 +287,14 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
log.debug('[restore]', `Spent and pending proofs`, {spent: proofStates.SPENT.length, pending: proofStates.PENDING.length})
setStatusMessage(translate("recovery.spentProofsAmount", { amount: proofStates.SPENT.length }))
setStatusMessage(translate("recovery_spentProofsAmount", { amount: proofStates.SPENT.length }))
const spentAmount = CashuUtils.getProofsAmount(proofStates.SPENT as Proof[])
alreadySpentAmount += spentAmount
if(proofStates.UNSPENT.length > 0) {
setStatusMessage(translate("recovery.completing"))
setStatusMessage(translate("recovery_completing"))
const amount = CashuUtils.getProofsAmount(proofStates.UNSPENT)
recoveredAmount = amount
@@ -354,7 +354,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
const pendingAmount = CashuUtils.getProofsAmount(proofStates.PENDING as Proof[])
setStatusMessage(translate("recovery.foundPendingProofsAmount", { pendingAmount }))
setStatusMessage(translate("recovery_foundPendingProofsAmount", { pendingAmount }))
log.debug(`Found pending ecash with ${recoveredMint.hostname}...`)
// Let's create new draft receive transaction in database
@@ -453,7 +453,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
const currency = getCurrency(selectedKeyset?.unit as MintUnit)
setResultModalInfo({
status: TransactionStatus.COMPLETED,
message: translate("recovery.recoveredResult", {
message: translate("recovery_recoveredResult", {
formattedCurrency: formatCurrency(recoveredAmount, currency.code),
code: currency.code
})
@@ -462,19 +462,19 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
if(errors.length > 0) {
setResultModalInfo({
status: TransactionStatus.ERROR,
message: translate("recovery.resultErrors")
message: translate("recovery_resultErrors")
})
setRecoveryErrors(errors)
} else {
if(alreadySpentAmount > 0) {
setResultModalInfo({
status: TransactionStatus.EXPIRED,
message: translate("recovery.resultSpent")
message: translate("recovery_resultSpent")
})
} else {
setResultModalInfo({
status: TransactionStatus.EXPIRED,
message: translate("recovery.resultExpired")
message: translate("recovery_resultExpired")
})
}
@@ -488,12 +488,12 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
const onCompleteAddress = async () => {
try {
if(!seedHashRef.current || !seedRef.current) {
throw new AppError(Err.VALIDATION_ERROR, translate('backupScreen.missingMnemonicOrSeedError'))
throw new AppError(Err.VALIDATION_ERROR, translate('backupMissingMnemonicOrSeedError'))
}
// create a new walletId and Nostr key pair after a new install or factory reset
// and keep provided seed
setIsLoading(true)
setStatusMessage(translate("recovery.recoveringAddress"))
setStatusMessage(translate("recovery_recoveringAddress"))
const keys = KeyChain.generateWalletKeys()
// Set seed to the provided one
@@ -533,7 +533,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
await mintsStore.addMint(MINIBITS_MINT_URL)
}
setStatusMessage(translate('recovery.completed'))
setStatusMessage(translate('recovery_completed'))
// go directly to the wallet (profile hase been rehydrated from the one with the seed)
//@ts-ignore
@@ -574,8 +574,8 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
style={$card}
ContentComponent={
<ListItem
tx="recovery.mnemonicCollision"
subTx="recovery.mnemonicCollisionDesc"
tx="recovery_mnemonicCollision"
subTx="recovery_mnemonicCollisionDesc"
leftIcon='faTriangleExclamation'
// leftIconColor='red'
style={$item}
@@ -586,7 +586,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
<View style={$buttonContainer}>
<Button
onPress={onBack}
tx='common.back'
tx='commonBack'
preset='secondary'
/>
</View>
@@ -682,7 +682,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
{(startIndex > 0 || totalRecoveredAmount > 0) && (
<Button
onPress={onCompleteAddress}
tx="common.completed"
tx="commonCompleted"
preset='secondary'
/>
)}
@@ -690,7 +690,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
<View style={[$buttonContainer,{marginTop: 0}]}>
<Text
text={translate("recovery.intervalParam", {
text={translate("recovery_intervalParam", {
startIndex: startIndex,
endIndex: endIndex
})}
@@ -699,7 +699,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
/>
<Pressable onPress={toggleIndexModal}>
<Text
tx="recovery.setManually"
tx="recovery_setManually"
size='xxs'
style={{color: textHint, alignSelf: 'center', marginTop: spacing.small}}
/>
@@ -707,7 +707,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
</View>
<View style={[$buttonContainer,{marginTop: 0}]}>
<Text
text={translate("recovery.keysetID", {
text={translate("recovery_keysetID", {
id: selectedKeyset?.id,
unit: selectedKeyset?.unit
})}
@@ -717,7 +717,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
{selectedMintKeysets.length > 1 && (
<Pressable onPress={toggleKeysetModal}>
<Text
tx="recovery.selectAnotherKeyset"
tx="recovery_selectAnotherKeyset"
size='xxs'
style={{color: textHint, alignSelf: 'center', marginTop: spacing.extraSmall}}
/>
@@ -728,7 +728,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
)}
{mintsStore.mintCount > 0 && !selectedMintUrl && (
<Text
tx='recovery.selectMintFrom'
tx='recovery_selectMintFrom'
size='xxs'
style={{color: textHint, alignSelf: 'center', margin: spacing.large}}
/>
@@ -756,12 +756,12 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
textAlign='right'
/>
<Button
tx='common.save'
tx='commonSave'
onPress={onResetStartIndex}
/>
</View>
<Text
tx="recovery.startIndexDesc"
tx="recovery_startIndexDesc"
size='xxs'
style={{color: textHint, margin: spacing.small}}
/>
@@ -773,7 +773,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
<BottomModal
isVisible={isKeysetModalVisible}
// style={{alignItems: 'stretch'}}
HeadingComponent={<Text tx="recovery.selectKeyset" style={{textAlign: 'center', margin: spacing.small}}/>}
HeadingComponent={<Text tx="recovery_selectKeyset" style={{textAlign: 'center', margin: spacing.small}}/>}
ContentComponent={
<FlatList
data={selectedMintKeysets}
@@ -802,7 +802,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
<Button
preset={'secondary'}
onPress={toggleKeysetModal}
tx='common.close'
tx='commonClose'
style={{marginTop: spacing.small}}
/>}
onBackButtonPress={toggleKeysetModal}
@@ -840,13 +840,13 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
<ResultModalInfo
icon="faCheckCircle"
iconColor={colors.palette.success200}
title={translate("recovery.success")}
title={translate("recovery_success")}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={toggleResultModal}
/>
</View>
@@ -858,7 +858,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
<ResultModalInfo
icon="faTriangleExclamation"
iconColor={colors.palette.angry500}
title={translate("recovery.failed")}
title={translate("recovery_failed")}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
@@ -882,7 +882,7 @@ export const SeedRecoveryScreen = observer(function SeedRecoveryScreen({ route }
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={toggleResultModal}
/>
</View>
+13 -13
View File
@@ -574,14 +574,14 @@ export const SendScreen = observer(function SendScreen({ route }: Props) {
log.trace('[onAmountEndEditing]', amount)
if (!amount || amount === 0) {
infoMessage(translate('payCommon.amountZeroOrNegative'))
infoMessage(translate('payCommon_amountZeroOrNegative'))
return
}
const availableBalances = proofsStore.getMintBalancesWithEnoughBalance(amount, unitRef.current)
if (availableBalances.length === 0) {
infoMessage(translate('payCommon.insufficientFunds'))
infoMessage(translate('payCommon_insufficientFunds'))
return
}
@@ -1051,7 +1051,7 @@ export const SendScreen = observer(function SendScreen({ route }: Props) {
) : (
<Text
size='xs'
tx='amount.send'
tx='amountSend'
style={{
color: amountInputColor,
textAlign: 'center',
@@ -1106,7 +1106,7 @@ export const SendScreen = observer(function SendScreen({ route }: Props) {
ContentComponent={
<>
<TranItem
label="tranDetailScreen.sentTo"
label="tranDetailScreen_sentTo"
isFirst={true}
value={mintsStore.findByUrl(transaction.mint)?.shortname as string}
/>
@@ -1117,13 +1117,13 @@ export const SendScreen = observer(function SendScreen({ route }: Props) {
/>
)}
<TranItem
label="transactionCommon.feePaid"
label="transactionCommon_feePaid"
value={transaction.fee || 0}
unit={unitRef.current}
isCurrency={true}
/>
<TranItem
label="tranDetailScreen.status"
label="tranDetailScreen_status"
value={transaction.status as string}
/>
</>
@@ -1135,7 +1135,7 @@ export const SendScreen = observer(function SendScreen({ route }: Props) {
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={gotoWallet}
/>
</View>
@@ -1193,7 +1193,7 @@ export const SendScreen = observer(function SendScreen({ route }: Props) {
/>
<Button
preset='secondary'
tx='common.paste'
tx='commonPaste'
style={{
borderRadius: 0,
marginLeft: -spacing.small,
@@ -1204,7 +1204,7 @@ export const SendScreen = observer(function SendScreen({ route }: Props) {
/>
<Button
preset='secondary'
tx="common.scan"
tx="commonScan"
style={{
borderTopLeftRadius: 0,
borderBottomLeftRadius: 0,
@@ -1311,7 +1311,7 @@ export const SendScreen = observer(function SendScreen({ route }: Props) {
<Button
style={{marginRight: spacing.medium}}
preset="tertiary"
tx="common.cancel"
tx="commonCancel"
onPress={onLockPubkeyCancel}
/>
</View>
@@ -1365,7 +1365,7 @@ export const SendScreen = observer(function SendScreen({ route }: Props) {
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={gotoWallet}
/>
</View>
@@ -1396,7 +1396,7 @@ export const SendScreen = observer(function SendScreen({ route }: Props) {
) : (
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={toggleResultModal}
/>
)}
@@ -1665,7 +1665,7 @@ const SendAsNostrDMBlock = observer(function (props: {
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={props.onClose}
/>
</View>
+11 -11
View File
@@ -316,7 +316,7 @@ export const SettingsScreen = observer(function SettingsScreen({ route }: Props)
<View style={[isHeaderVisible ? $headerContainer : $headerCollapsed, {backgroundColor: headerBg}]}>
<Text
preset='heading'
tx='settingsScreen.title'
tx='settingsScreen_title'
style={{color: headerTitle}}
/>
</View>
@@ -336,7 +336,7 @@ export const SettingsScreen = observer(function SettingsScreen({ route }: Props)
<View style={$rightContainer}>
<Text
style={$itemRight}
text={translate('settingsScreen.mintsCount', {count: mintsStore.mintCount})}
text={translate('settingsScreen_mintsCount', {count: mintsStore.mintCount})}
/>
</View>
}
@@ -345,7 +345,7 @@ export const SettingsScreen = observer(function SettingsScreen({ route }: Props)
onPress={gotoMints}
/>
<ListItem
tx='settingsScreen.exchangeCurrency'
tx='settingsScreen_exchangeCurrency'
leftIcon='faMoneyBill1'
leftIconColor={getRateColor() as string}
leftIconInverse={true}
@@ -362,7 +362,7 @@ export const SettingsScreen = observer(function SettingsScreen({ route }: Props)
onPress={toggleCurrencyModal}
/>
<ListItem
tx='settingsScreen.theme'
tx='settingsScreen_theme'
leftIcon='faPaintbrush'
leftIconColor={currentTheme === ThemeCode.DEFAULT ? defaultThemeColor as string : Themes[currentTheme as ThemeCode]?.color as string}
leftIconInverse={true}
@@ -396,7 +396,7 @@ export const SettingsScreen = observer(function SettingsScreen({ route }: Props)
<View style={$rightContainer}>
<Text
style={$itemRight}
tx={areNotificationsEnabled ? 'common.enabled' : 'common.disabled'}
tx={areNotificationsEnabled ? 'commonEnabled' : 'commonDisabled'}
/>
</View>
}
@@ -429,8 +429,8 @@ export const SettingsScreen = observer(function SettingsScreen({ route }: Props)
onPress={gotoNwc}
/>
<ListItem
tx="nostr.relaysTitle"
subText={translate("common.connectedParam", { param: relaysStore.connectedCount })}
tx="nostr_relaysTitle"
subText={translate("commonConnectedParam", { param: relaysStore.connectedCount })}
leftIcon='faCircleNodes'
leftIconColor={colors.palette.iconViolet200}
leftIconInverse={true}
@@ -477,7 +477,7 @@ export const SettingsScreen = observer(function SettingsScreen({ route }: Props)
ContentComponent={
<>
<ListItem
tx='settingsScreen.security'
tx='settingsScreen_security'
leftIcon='faShieldHalved'
leftIconColor={colors.palette.iconGreyBlue400}
leftIconInverse={true}
@@ -486,7 +486,7 @@ export const SettingsScreen = observer(function SettingsScreen({ route }: Props)
onPress={gotoSecurity}
/>
<ListItem
tx='settingsScreen.privacy'
tx='settingsScreen_privacy'
leftIcon='faEyeSlash'
leftIconColor={colors.palette.blue200}
leftIconInverse={true}
@@ -495,7 +495,7 @@ export const SettingsScreen = observer(function SettingsScreen({ route }: Props)
onPress={gotoPrivacy}
/>
<ListItem
tx='settingsScreen.update'
tx='settingsScreen_update'
leftIcon='faWandMagicSparkles'
leftIconColor={(isUpdateAvailable || isNativeUpdateAvailable) ? colors.palette.iconMagenta200 : colors.palette.neutral400}
leftIconInverse={true}
@@ -512,7 +512,7 @@ export const SettingsScreen = observer(function SettingsScreen({ route }: Props)
onPress={gotoUpdate}
/>
<ListItem
tx='settingsScreen.devOptions'
tx='settingsScreen_devOptions'
leftIcon='faCode'
leftIconColor={colors.palette.neutral600}
leftIconInverse={true}
+7 -7
View File
@@ -89,7 +89,7 @@ export const TokenReceiveScreen = function TokenReceiveScreen({ route }: Props)
const onPaste = async function() {
const clipboard = await Clipboard.getString()
if (clipboard.length === 0) {
infoMessage(translate('tokenReceiveScreen.onPasteEmptyClipboard'))
infoMessage(translate('tokenReceiveScreen_onPasteEmptyClipboard'))
return
}
@@ -161,7 +161,7 @@ export const TokenReceiveScreen = function TokenReceiveScreen({ route }: Props)
<View style={[$headerContainer, {backgroundColor: headerBg}]}>
<Text
preset="heading"
tx="payCommon.receiveEcash"
tx="payCommon_receiveEcash"
style={{color: headerTitle}}
/>
</View>
@@ -171,7 +171,7 @@ export const TokenReceiveScreen = function TokenReceiveScreen({ route }: Props)
<>
<ListItem
leftIcon='faMoneyBill1'
tx="common.pasteEcashToken"
tx="commonPasteEcashToken"
bottomSeparator={showTokenInput}
onPress={() => setShowTokenInput((v) => !v)}
/>
@@ -201,7 +201,7 @@ export const TokenReceiveScreen = function TokenReceiveScreen({ route }: Props)
<View style={[$buttonContainer, {marginTop: spacing.small}]}>
<Button
preset='default'
tx='common.confirm'
tx='commonConfirm'
onPress={onConfirm}
// style={{marginLeft: spacing.small}}
LeftAccessory={() => <Icon icon='faCheckCircle' color='white'/>}
@@ -211,7 +211,7 @@ export const TokenReceiveScreen = function TokenReceiveScreen({ route }: Props)
<View style={[$buttonContainer, {marginTop: spacing.small}]}>
<Button
preset='secondary'
tx={'common.paste'}
tx={'commonPaste'}
onPress={onPaste}
LeftAccessory={() => (
<Icon icon='faPaste'/>
@@ -224,7 +224,7 @@ export const TokenReceiveScreen = function TokenReceiveScreen({ route }: Props)
{/* Create Payment Request */}
<ListItem
leftIcon='faQrcode'
tx="common.createCashuPaymentRequest"
tx="commonCreateCashuPaymentRequest"
onPress={gotoCashuPaymentRequest}
topSeparator={true}
/>
@@ -234,7 +234,7 @@ export const TokenReceiveScreen = function TokenReceiveScreen({ route }: Props)
//style={{marginBottom: spacing.medium}}
/>
<Button
tx="tokenReceiveScreen.topupWithLightning"
tx="tokenReceiveScreen_topupWithLightning"
LeftAccessory={() => (
<Icon
icon='faBolt'
+38 -38
View File
@@ -206,7 +206,7 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
}
if (!relays) {
throw new AppError(Err.VALIDATION_ERROR, translate("nostr.missingRelaysError"))
throw new AppError(Err.VALIDATION_ERROR, translate("nostr_missingRelaysError"))
}
const {pubkey, npub, name, picture} = walletProfileStore
@@ -288,7 +288,7 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
status: result.transaction?.status as TransactionStatus,
title: result.error.params?.message
? result.error.message
: translate("topup.failed"),
: translate("topup_failed"),
message: result.error.params?.message || result.error.message,
})
setIsResultModalVisible(true)
@@ -389,11 +389,11 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
log.trace('[onAmountEndEditing]', {amount, unit: unitRef.current})
if (!isInternetReachable) {
setInfo(translate('common.offlinePretty'))
setInfo(translate('commonOfflinePretty'))
}
if (!amount || amount === 0) {
infoMessage(translate('payCommon.amountZeroOrNegative'))
infoMessage(translate('payCommon_amountZeroOrNegative'))
return
}
@@ -402,7 +402,7 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
amount < roundUp(lnurlWithdrawParams?.minWithdrawable / 1000, 0)
) {
infoMessage(
translate('payCommon.minimumWithdraw', {
translate('payCommon_minimumWithdraw', {
amount: roundUp(lnurlWithdrawParams?.minWithdrawable / 1000, 0),
currency: CurrencyCode.SAT,
}),
@@ -414,8 +414,8 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
if (availableBalances.length === 0) {
infoMessage(
translate("topup.missingMintAddFirst"),
translate("topup.missingMintAddFirstDesc"),
translate("topup_missingMintAddFirst"),
translate("topup_missingMintAddFirstDesc"),
)
return
}
@@ -496,7 +496,7 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
const receiverPubkey = contactToSendTo?.pubkey
// redable message
const message = translate('topup.nostrDMreceived', {
const message = translate('topup_nostrDMreceived', {
npub: walletProfileStore.npub,
amount: amountToTopup,
currency: getCurrency(unitRef.current).code
@@ -543,7 +543,7 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
})
}
} else {
setInfo(translate('topup.relayMissingSentEvent'))
setInfo(translate('topup_relayMissingSentEvent'))
}
} catch (e: any) {
handleError(e)
@@ -647,11 +647,11 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
const getAmountTitle = function () {
switch (paymentOption) {
case ReceiveOption.SEND_PAYMENT_REQUEST:
return translate("amount.requested")
return translate("amountRequested")
case ReceiveOption.LNURL_WITHDRAW:
return translate("amount.withdraw")
return translate("amountWithdraw")
default:
return translate("amount.topup")
return translate("amountTopup")
}
}
@@ -772,8 +772,8 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
mintBalances={availableMintBalances}
selectedMintBalance={mintBalanceToTopup as MintBalance}
unit={unitRef.current}
title={translate("topup.mint")}
confirmTitle={translate("common.confirmCreateInvoice")}
title={translate("topup_mint")}
confirmTitle={translate("commonConfirmCreateInvoice")}
onMintBalanceSelect={onMintBalanceSelect}
onCancel={onMintBalanceCancel}
onMintBalanceConfirm={onMintBalanceConfirm}
@@ -804,7 +804,7 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
ContentComponent={
<>
<TranItem
label="topup.to"
label="topup_to"
isFirst={true}
value={
mintsStore.findByUrl(transaction.mint)
@@ -818,13 +818,13 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
/>
)}
<TranItem
label="transactionCommon.feePaid"
label="transactionCommon_feePaid"
value={transaction.fee || 0}
unit={unitRef.current}
isCurrency={true}
/>
<TranItem
label="tranDetailScreen.status"
label="tranDetailScreen_status"
value={transaction.status as string}
/>
</>
@@ -836,7 +836,7 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={gotoWallet}
/>
</View>
@@ -908,13 +908,13 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
<ResultModalInfo
icon="faCheckCircle"
iconColor={colors.palette.success200}
title={translate('common.success')}
title={translate('commonSuccess')}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={gotoWallet}
/>
</View>
@@ -926,13 +926,13 @@ export const TopupScreen = observer(function TopupScreen({ route }: Props) {
<ResultModalInfo
icon="faTriangleExclamation"
iconColor={colors.palette.angry500}
title={resultModalInfo?.title || translate('topup.failed')}
title={resultModalInfo?.title || translate('topup_failed')}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={toggleResultModal}
/>
</View>
@@ -964,7 +964,7 @@ const InvoiceOptionsBlock = observer(function (props: {
<View style={$buttonContainer}>
{props.contactToSendTo ? (
<Button
text={translate("topup.sendToNip", {
text={translate("topup_sendToNip", {
sendToNip05: props.contactToSendTo.nip05
})}
preset="secondary"
@@ -980,7 +980,7 @@ const InvoiceOptionsBlock = observer(function (props: {
/>
) : (
<Button
tx="topup.sendToContact"
tx="topup_sendToContact"
preset="secondary"
onPress={props.gotoContacts}
style={{maxHeight: 50}}
@@ -995,7 +995,7 @@ const InvoiceOptionsBlock = observer(function (props: {
)}
{props.paymentOption === ReceiveOption.LNURL_WITHDRAW && (
<Button
tx="topup.withdraw"
tx="topup_withdraw"
preset="secondary"
onPress={props.toggleWithdrawModal}
style={{marginLeft: spacing.medium}}
@@ -1055,7 +1055,7 @@ const SendAsNostrDMBlock = observer(function (props: {
) : (
<View style={$buttonContainer}>
<Button
tx="topup.sendRequest"
tx="topup_sendRequest"
onPress={props.sendAsNostrDM}
style={{marginRight: spacing.medium}}
LeftAccessory={() => (
@@ -1069,7 +1069,7 @@ const SendAsNostrDMBlock = observer(function (props: {
/>
<Button
preset="tertiary"
tx="common.close"
tx="commonClose"
onPress={props.toggleNostrDMModal}
/>
</View>
@@ -1095,13 +1095,13 @@ const NostrDMSuccessBlock = observer(function (props: {
<ResultModalInfo
icon="faCheckCircle"
iconColor={colors.palette.success200}
title={translate('common.success')}
message={translate("walletScreen.paymentSentSuccess")}
title={translate('commonSuccess')}
message={translate("walletScreen_paymentSentSuccess")}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={props.onClose}
/>
</View>
@@ -1227,8 +1227,8 @@ const LnurlWithdrawBlock = observer(function (props: {
<ListItem
leftIcon="faCheckCircle"
leftIconColor={colors.palette.success200}
tx="topup.withdrawalAvailable"
subText={translate("topup.withdrawAvailableDesc", {
tx="topup_withdrawalAvailable"
subText={translate("topup_withdrawAvailableDesc", {
amount: roundDown( props.lnurlWithdrawParams.maxWithdrawable / 1000, 0),
code: CurrencyCode.SAT
})}
@@ -1237,11 +1237,11 @@ const LnurlWithdrawBlock = observer(function (props: {
<ListItem
leftIcon="faCheckCircle"
leftIconColor={colors.palette.success200}
text={translate("topup.invoiceCreatedParam", {
text={translate("topup_invoiceCreatedParam", {
amount: props.amountToTopup,
code: CurrencyCode.SAT
})}
subText={translate("topup.invoiceCreatedDescParam", {
subText={translate("topup_invoiceCreatedDescParam", {
mintUrl: props.mintBalanceToTopup.mintUrl
})}
bottomSeparator={true}
@@ -1253,7 +1253,7 @@ const LnurlWithdrawBlock = observer(function (props: {
) : (
<View style={[$buttonContainer, {marginTop: spacing.medium}]}>
<Button
tx="topup.withdraw"
tx="topup_withdraw"
onPress={props.onLnurlWithdraw}
style={{marginRight: spacing.medium}}
LeftAccessory={() => (
@@ -1267,7 +1267,7 @@ const LnurlWithdrawBlock = observer(function (props: {
/>
<Button
preset="tertiary"
tx='common.cancel'
tx='commonCancel'
onPress={props.toggleWithdrawModal}
/>
</View>
@@ -1288,13 +1288,13 @@ const LnurlWithdrawSuccessBlock = observer(function (props: {
<ResultModalInfo
icon="faCheckCircle"
iconColor={colors.palette.success200}
title={translate("common.success")}
title={translate("commonSuccess")}
message={`Withdrawal request has been received by ${props.lnurlWithdrawParams.domain}.`}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={props.onClose}
/>
</View>
+103 -103
View File
@@ -156,7 +156,7 @@ export const TranDetailScreen = observer(function TranDetailScreen({ route }: Pr
try {
if(transaction) Clipboard.setString(JSON.stringify(getAuditTrail(transaction)))
} catch (e: any) {
setInfo(translate("common.copyFailParam", { param: e.message }))
setInfo(translate("commonCopyFailParam", { param: e.message }))
}
}
@@ -164,7 +164,7 @@ export const TranDetailScreen = observer(function TranDetailScreen({ route }: Pr
try {
if(transaction && transaction.inputToken) Clipboard.setString(transaction.inputToken)
} catch (e: any) {
setInfo(translate("common.copyFailParam", { param: e.message }))
setInfo(translate("commonCopyFailParam", { param: e.message }))
}
}
@@ -172,7 +172,7 @@ export const TranDetailScreen = observer(function TranDetailScreen({ route }: Pr
try {
if(transaction && transaction.outputToken) Clipboard.setString(transaction.outputToken)
} catch (e: any) {
setInfo(translate("common.copyFailParam", { param: e.message }))
setInfo(translate("commonCopyFailParam", { param: e.message }))
}
}
@@ -306,7 +306,7 @@ export const TranDetailScreen = observer(function TranDetailScreen({ route }: Pr
<Button
preset="secondary"
style={$noteButton}
tx="common.save"
tx="commonSave"
onPress={onNoteSave}
/>
@@ -314,7 +314,7 @@ export const TranDetailScreen = observer(function TranDetailScreen({ route }: Pr
<Button
preset="secondary"
style={$noteButton}
tx="common.edit"
tx="commonEdit"
onPress={onNoteEdit}
/>
@@ -368,7 +368,7 @@ export const TranDetailScreen = observer(function TranDetailScreen({ route }: Pr
)}
{isDataParsable && (
<Card
labelTx='tranDetailScreen.auditTrail'
labelTx='tranDetailScreen_auditTrail'
style={$dataCard}
ContentComponent={
<>
@@ -378,7 +378,7 @@ export const TranDetailScreen = observer(function TranDetailScreen({ route }: Pr
<View style={$rightContainer}>
<Button
onPress={toggleAuditTrail}
text={isAuditTrailVisible ? translate("common.hide") : translate("common.show")}
text={isAuditTrailVisible ? translate("commonHide") : translate("commonShow")}
preset="secondary"
/>
</View>
@@ -398,7 +398,7 @@ export const TranDetailScreen = observer(function TranDetailScreen({ route }: Pr
<Button
preset="tertiary"
onPress={copyAuditTrail}
tx="common.copy"
tx="commonCopy"
style={{
minHeight: 50,
paddingVertical: spacing.extraSmall,
@@ -432,7 +432,7 @@ export const TranDetailScreen = observer(function TranDetailScreen({ route }: Pr
<View style={$rightContainer}>
<Button
onPress={toggleTokenTracking}
text={isTokenTrackingVisible ? translate("common.hide") : translate("common.show")}
text={isTokenTrackingVisible ? translate("commonHide") : translate("commonShow")}
preset="secondary"
/>
</View>
@@ -450,7 +450,7 @@ export const TranDetailScreen = observer(function TranDetailScreen({ route }: Pr
<View style={$rightContainer}>
<Button
onPress={copyInputToken}
text={translate("common.copy")}
text={translate("commonCopy")}
preset="secondary"
/>
</View>
@@ -467,7 +467,7 @@ export const TranDetailScreen = observer(function TranDetailScreen({ route }: Pr
<View style={$rightContainer}>
<Button
onPress={copyOutputToken}
text={translate("common.copy")}
text={translate("commonCopy")}
preset="secondary"
/>
</View>
@@ -637,7 +637,7 @@ const ReceiveInfoBlock = function (props: {
const transactionDataUpdate = {
status: TransactionStatus.EXPIRED,
message: translate("tranDetailScreen.successRetrieveEcashAfterRetry"),
message: translate("tranDetailScreen_successRetrieveEcashAfterRetry"),
createdAt: new Date(),
}
@@ -734,7 +734,7 @@ const ReceiveInfoBlock = function (props: {
ContentComponent={
<>
<TranItem
label="tranDetailScreen.amount"
label="tranDetailScreen_amount"
value={transaction.amount}
unit={transaction.unit}
isCurrency={true}
@@ -742,7 +742,7 @@ const ReceiveInfoBlock = function (props: {
/>
{transaction.memo && (
<TranItem
label="tranDetailScreen.memoFromSender"
label="tranDetailScreen_memoFromSender"
value={transaction.memo as string}
/>
)}
@@ -753,7 +753,7 @@ const ReceiveInfoBlock = function (props: {
style={{flexDirection: 'row', justifyContent: 'space-between'}}
>
<TranItem
label="tranDetailScreen.sentFrom"
label="tranDetailScreen_sentFrom"
value={transaction.sentFrom}
url={sentFromUrl}
/>
@@ -786,7 +786,7 @@ const ReceiveInfoBlock = function (props: {
</View>
) : (
<TranItem
label="tranDetailScreen.sentFrom"
label="tranDetailScreen_sentFrom"
value={transaction.sentFrom}
url={sentFromUrl}
/>
@@ -796,17 +796,17 @@ const ReceiveInfoBlock = function (props: {
)}
{eventUrl && (
<TranItem
label="tranDetailScreen.eventUrl"
label="tranDetailScreen_eventUrl"
value={`${eventUrl.substring(0,30)}...`}
url={eventUrl}
/>
)}
<TranItem
label="tranDetailScreen.type"
label="tranDetailScreen_type"
value={transaction.type as string}
/>
<TranItem
label="tranDetailScreen.fee"
label="tranDetailScreen_fee"
value={transaction.fee}
unit={transaction.unit}
isCurrency={true}
@@ -815,46 +815,46 @@ const ReceiveInfoBlock = function (props: {
<View
style={{flexDirection: 'row', justifyContent: 'space-between'}}>
<TranItem
label="tranDetailScreen.status"
label="tranDetailScreen_status"
value={transaction.status as string}
/>
<Button
style={{marginTop: spacing.medium}}
// preset="secondary"
tx="tranDetailScreen.retryToReceive"
tx="tranDetailScreen_retryToReceive"
onPress={onRetryToReceive}
/>
</View>
) : (
<TranItem
label="tranDetailScreen.status"
label="tranDetailScreen_status"
value={transaction.status as string}
/>
)}
{transaction.status === TransactionStatus.COMPLETED && (
<TranItem
label="tranDetailScreen.balanceAfter"
label="tranDetailScreen_balanceAfter"
value={transaction.balanceAfter || 0}
unit={transaction.unit}
isCurrency={true}
/>
)}
<TranItem
label="tranDetailScreen.createdAt"
label="tranDetailScreen_createdAt"
value={(transaction.createdAt as Date).toLocaleString()}
/>
{transaction.paymentId && (
<TranItem
label="tranDetailScreen.paymentId"
label="tranDetailScreen_paymentId"
value={transaction.paymentId as string}
/>
)}
<TranItem label="tranDetailScreen.id" value={`${transaction.id}`} />
<TranItem label="tranDetailScreen_id" value={`${transaction.id}`} />
</>
}
/>
<Card
labelTx='transactionCommon.receivedTo'
labelTx='transactionCommon_receivedTo'
style={$dataCard}
ContentComponent={
mint ? (
@@ -877,13 +877,13 @@ const ReceiveInfoBlock = function (props: {
<ResultModalInfo
icon="faCheckCircle"
iconColor={colors.palette.success200}
title={translate("tranDetailScreen.modalSuccess")}
title={translate("tranDetailScreen_modalSuccess")}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={onGoBack}
/>
</View>
@@ -895,13 +895,13 @@ const ReceiveInfoBlock = function (props: {
<ResultModalInfo
icon="faTriangleExclamation"
iconColor={colors.palette.angry500}
title={translate('transactionCommon.receiveFailed')}
title={translate('transactionCommon_receiveFailed')}
message={resultModalInfo?.message as string}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={toggleResultModal}
/>
</View>
@@ -999,7 +999,7 @@ const ReceiveOfflineInfoBlock = function (props: {
<View
style={{flexDirection: 'row', justifyContent: 'space-between'}}>
<TranItem
label="tranDetailScreen.amount"
label="tranDetailScreen_amount"
value={transaction.amount}
unit={transaction.unit}
isCurrency={true}
@@ -1009,72 +1009,72 @@ const ReceiveOfflineInfoBlock = function (props: {
<Button
style={{maxHeight: 10, marginTop: spacing.medium}}
preset="default"
tx="tranDetailScreen.receiveOfflineComplete"
tx="tranDetailScreen_receiveOfflineComplete"
onPress={receiveOfflineComplete}
/>
) : (
<Button
style={{maxHeight: 10, marginTop: spacing.medium}}
preset="secondary"
tx="tranDetailScreen.isOffline"
tx="tranDetailScreen_isOffline"
/>
)}
</View>
) : (
<TranItem
label="tranDetailScreen.amount"
label="tranDetailScreen_amount"
value={transaction.amount}
isFirst={true}
/>
)}
<TranItem
label="tranDetailScreen.memoFromSender"
label="tranDetailScreen_memoFromSender"
value={transaction.memo as string}
/>
{transaction.sentFrom && (
<TranItem
label="tranDetailScreen.sentFrom"
label="tranDetailScreen_sentFrom"
value={transaction.sentFrom}
/>
)}
<TranItem
label="tranDetailScreen.type"
label="tranDetailScreen_type"
value={transaction.type as string}
/>
<TranItem
label="tranDetailScreen.fee"
label="tranDetailScreen_fee"
value={transaction.fee}
unit={transaction.unit}
isCurrency={true}
/>
<TranItem
label="tranDetailScreen.status"
label="tranDetailScreen_status"
value={transaction.status as string}
/>
{transaction.status === TransactionStatus.COMPLETED && (
<TranItem
label="tranDetailScreen.balanceAfter"
label="tranDetailScreen_balanceAfter"
value={transaction.balanceAfter || 0}
unit={transaction.unit}
isCurrency={true}
/>
)}
<TranItem
label="tranDetailScreen.createdAt"
label="tranDetailScreen_createdAt"
value={(transaction.createdAt as Date).toLocaleString()}
/>
{transaction.paymentId && (
<TranItem
label="tranDetailScreen.paymentId"
label="tranDetailScreen_paymentId"
value={transaction.paymentId as string}
/>
)}
<TranItem label="tranDetailScreen.id" value={`${transaction.id}`} />
<TranItem label="tranDetailScreen_id" value={`${transaction.id}`} />
</>
}
/>
<Card
labelTx='transactionCommon.receivedTo'
labelTx='transactionCommon_receivedTo'
style={$dataCard}
ContentComponent={
mint ? (
@@ -1098,13 +1098,13 @@ const ReceiveOfflineInfoBlock = function (props: {
<ResultModalInfo
icon="faCheckCircle"
iconColor={colors.palette.success200}
title={translate('common.success')}
title={translate('commonSuccess')}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={onGoBack}
/>
</View>
@@ -1116,13 +1116,13 @@ const ReceiveOfflineInfoBlock = function (props: {
<ResultModalInfo
icon="faTriangleExclamation"
iconColor={colors.palette.angry500}
title={translate('transactionCommon.receiveFailed')}
title={translate('transactionCommon_receiveFailed')}
message={resultModalInfo?.message as string}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={onGoBack}
/>
</View>
@@ -1236,7 +1236,7 @@ const SendInfoBlock = function (props: {
ContentComponent={
<>
<TranItem
label="tranDetailScreen.amount"
label="tranDetailScreen_amount"
value={transaction.amount}
unit={transaction.unit}
isCurrency={true}
@@ -1250,16 +1250,16 @@ const SendInfoBlock = function (props: {
)}
{transaction.sentTo && (
<TranItem
label="tranDetailScreen.sentTo"
label="tranDetailScreen_sentTo"
value={transaction.sentTo}
/>
)}
<TranItem
label="tranDetailScreen.type"
label="tranDetailScreen_type"
value={transaction.type as string}
/>
<TranItem
label="tranDetailScreen.fee"
label="tranDetailScreen_fee"
value={transaction.fee}
unit={transaction.unit}
isCurrency={true}
@@ -1268,40 +1268,40 @@ const SendInfoBlock = function (props: {
<View
style={{flexDirection: 'row', justifyContent: 'space-between'}}>
<TranItem
label="tranDetailScreen.status"
label="tranDetailScreen_status"
value={transaction.status as string}
/>
<Button
style={{marginVertical: spacing.small}}
preset="secondary"
tx="tranDetailScreen.revert"
tx="tranDetailScreen_revert"
onPress={onRevertPendingSend}
/>
</View>
) : (
<TranItem
label="tranDetailScreen.status"
label="tranDetailScreen_status"
value={transaction.status as string}
/>
)}
{transaction.status !== TransactionStatus.ERROR && (
<TranItem
label="tranDetailScreen.balanceAfter"
label="tranDetailScreen_balanceAfter"
value={transaction.balanceAfter || 0}
unit={transaction.unit}
isCurrency={true}
/>
)}
<TranItem
label="tranDetailScreen.createdAt"
label="tranDetailScreen_createdAt"
value={(transaction.createdAt as Date).toLocaleString()}
/>
<TranItem label="tranDetailScreen.id" value={`${transaction.id}`} />
<TranItem label="tranDetailScreen_id" value={`${transaction.id}`} />
</>
}
/>
<Card
labelTx='tranDetailScreen.sentFrom'
labelTx='tranDetailScreen_sentFrom'
style={$dataCard}
ContentComponent={
mint ? (
@@ -1330,7 +1330,7 @@ const SendInfoBlock = function (props: {
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={toggleResultModal}
/>
</View>
@@ -1347,7 +1347,7 @@ const SendInfoBlock = function (props: {
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={toggleResultModal}
/>
</View>
@@ -1472,7 +1472,7 @@ const TopupInfoBlock = function (props: {
ContentComponent={
<>
<TranItem
label="tranDetailScreen.amount"
label="tranDetailScreen_amount"
value={transaction.amount}
unit={transaction.unit}
isCurrency={true}
@@ -1486,16 +1486,16 @@ const TopupInfoBlock = function (props: {
)}
{transaction.sentFrom && (
<TranItem
label="tranDetailScreen.sentFrom"
label="tranDetailScreen_sentFrom"
value={transaction.sentFrom}
/>
)}
<TranItem
label="tranDetailScreen.type"
label="tranDetailScreen_type"
value={transaction.type as string}
/>
<TranItem
label="tranDetailScreen.fee"
label="tranDetailScreen_fee"
value={transaction.fee}
unit={transaction.unit}
isCurrency={true}
@@ -1504,47 +1504,47 @@ const TopupInfoBlock = function (props: {
<View
style={{flexDirection: 'row', justifyContent: 'space-between'}}>
<TranItem
label="tranDetailScreen.status"
label="tranDetailScreen_status"
value={transaction.status as string}
/>
<Button
style={{marginTop: spacing.medium}}
preset="secondary"
tx="tranDetailScreen.retryToComplete"
tx="tranDetailScreen_retryToComplete"
onPress={onRetryToHandlePendingTopup}
/>
</View>
) : (
<TranItem
label="tranDetailScreen.status"
label="tranDetailScreen_status"
value={transaction.status as string}
/>
)}
{transaction.status === TransactionStatus.COMPLETED && (
<TranItem
label="tranDetailScreen.balanceAfter"
label="tranDetailScreen_balanceAfter"
value={transaction.balanceAfter || 0}
unit={transaction.unit}
isCurrency={true}
/>
)}
<TranItem
label="tranDetailScreen.createdAt"
label="tranDetailScreen_createdAt"
value={(transaction.createdAt as Date).toLocaleString()}
/>
{transaction.expiresAt && transaction.status !== TransactionStatus.COMPLETED && (
<TranItem
label="tranDetailScreen.expiresAt"
label="tranDetailScreen_expiresAt"
value={(new Date(transaction.expiresAt!)).toLocaleString()}
/>
)}
{transaction.paymentId && (
<TranItem
label="tranDetailScreen.paymentId"
label="tranDetailScreen_paymentId"
value={transaction.paymentId as string}
/>
)}
<TranItem label="tranDetailScreen.id" value={`${transaction.id}`} />
<TranItem label="tranDetailScreen_id" value={`${transaction.id}`} />
</>
}
/>
@@ -1552,14 +1552,14 @@ const TopupInfoBlock = function (props: {
<View style={{marginBottom: spacing.small}}>
<QRCodeBlock
qrCodeData={transaction.paymentRequest}
title={translate("tranDetailScreen.invoice")}
title={translate("tranDetailScreen_invoice")}
type='Bolt11Invoice'
size={spacing.screenWidth * 0.8}
/>
</View>
)}
<Card
labelTx='tranDetailScreen.topupTo'
labelTx='tranDetailScreen_topupTo'
style={$dataCard}
ContentComponent={
mint ? (
@@ -1582,13 +1582,13 @@ const TopupInfoBlock = function (props: {
<ResultModalInfo
icon="faCheckCircle"
iconColor={colors.palette.success200}
title={translate("tranDetailScreen.modalSuccess")}
title={translate("tranDetailScreen_modalSuccess")}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={onGoBack}
/>
</View>
@@ -1599,13 +1599,13 @@ const TopupInfoBlock = function (props: {
<ResultModalInfo
icon="faTriangleExclamation"
iconColor={colors.palette.accent400}
title={translate("tranDetailScreen.invoiceNotPaid")}
title={translate("tranDetailScreen_invoiceNotPaid")}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={toggleResultModal}
/>
</View>
@@ -1616,13 +1616,13 @@ const TopupInfoBlock = function (props: {
<ResultModalInfo
icon="faTriangleExclamation"
iconColor={colors.palette.accent400}
title={translate("tranDetailScreen.invoiceExpired")}
title={translate("tranDetailScreen_invoiceExpired")}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={toggleResultModal}
/>
</View>
@@ -1633,13 +1633,13 @@ const TopupInfoBlock = function (props: {
<ResultModalInfo
icon="faTriangleExclamation"
iconColor={colors.palette.angry500}
title={translate("tranDetailScreen.topupError")}
title={translate("tranDetailScreen_topupError")}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={toggleResultModal}
/>
</View>
@@ -1760,7 +1760,7 @@ const TransferInfoBlock = function (props: {
style={{flexDirection: 'row', justifyContent: 'space-between'}}
>
<TranItem
label="tranDetailScreen.amount"
label="tranDetailScreen_amount"
value={transaction.amount}
unit={transaction.unit}
isCurrency={true}
@@ -1768,13 +1768,13 @@ const TransferInfoBlock = function (props: {
/>
<Button
style={{marginTop: spacing.medium}}
tx="transactionCommon.payNow"
tx="transactionCommon_payNow"
onPress={onPayDraftTransfer}
/>
</View>
):(
<TranItem
label="tranDetailScreen.amount"
label="tranDetailScreen_amount"
value={transaction.amount}
unit={transaction.unit}
isCurrency={true}
@@ -1783,23 +1783,23 @@ const TransferInfoBlock = function (props: {
)}
{transaction.memo && (
<TranItem
label="tranDetailScreen.memoFromInvoice"
label="tranDetailScreen_memoFromInvoice"
value={transaction.memo as string}
/>
)}
{transaction.sentTo && (
<TranItem
label="tranDetailScreen.sentTo"
label="tranDetailScreen_sentTo"
value={transaction.sentTo}
/>
)}
<TranItem
label="tranDetailScreen.type"
label="tranDetailScreen_type"
value={transaction.type as string}
/>
{transaction.status === TransactionStatus.COMPLETED && (
<TranItem
label="tranDetailScreen.fee"
label="tranDetailScreen_fee"
value={transaction.fee}
unit={transaction.unit}
isCurrency={true}
@@ -1810,7 +1810,7 @@ const TransferInfoBlock = function (props: {
style={{flexDirection: 'row', justifyContent: 'space-between'}}
>
<TranItem
label="tranDetailScreen.status"
label="tranDetailScreen_status"
value={transaction.status as string}
/>
<Button
@@ -1822,40 +1822,40 @@ const TransferInfoBlock = function (props: {
</View>
):(
<TranItem
label="tranDetailScreen.status"
label="tranDetailScreen_status"
value={transaction.status as string}
/>
)}
{transaction.status === TransactionStatus.COMPLETED && (
<TranItem
label="tranDetailScreen.balanceAfter"
label="tranDetailScreen_balanceAfter"
value={transaction.balanceAfter || 0}
unit={transaction.unit}
isCurrency={true}
/>
)}
<TranItem
label="tranDetailScreen.createdAt"
label="tranDetailScreen_createdAt"
value={(transaction.createdAt as Date).toLocaleString()}
/>
{transaction.expiresAt && transaction.status !== TransactionStatus.COMPLETED && (
<TranItem
label="tranDetailScreen.expiresAt"
label="tranDetailScreen_expiresAt"
value={(new Date(transaction.expiresAt!)).toLocaleString()}
/>
)}
{transaction.paymentId && (
<TranItem
label="tranDetailScreen.paymentId"
label="tranDetailScreen_paymentId"
value={transaction.paymentId as string}
/>
)}
<TranItem label="tranDetailScreen.id" value={`${transaction.id}`} />
<TranItem label="tranDetailScreen_id" value={`${transaction.id}`} />
</>
}
/>
<Card
labelTx='transactionCommon.paidFrom'
labelTx='transactionCommon_paidFrom'
style={$dataCard}
ContentComponent={
mint ? (
@@ -1871,7 +1871,7 @@ const TransferInfoBlock = function (props: {
/>
{transaction.proof && (
<Card
labelTx='tranDetailScreen.proof'
labelTx='tranDetailScreen_proof'
style={$dataCard}
ContentComponent={
<ListItem
@@ -1881,7 +1881,7 @@ const TransferInfoBlock = function (props: {
<View style={$rightContainer}>
<Button
onPress={copyProof}
text={translate("common.copy")}
text={translate("commonCopy")}
preset="secondary"
/>
</View>
@@ -1905,7 +1905,7 @@ const TransferInfoBlock = function (props: {
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={toggleResultModal}
/>
</View>
@@ -1922,7 +1922,7 @@ const TransferInfoBlock = function (props: {
<View style={$buttonContainer}>
<Button
preset="secondary"
tx='common.close'
tx='commonClose'
onPress={toggleResultModal}
/>
</View>
+12 -12
View File
@@ -255,11 +255,11 @@ export const TranHistoryScreen = observer(function TranHistoryScreen({ route }:
<>
<ListItem
text={showPendingOnly
? translate("tranHistory.showingPaginationPending", {
? translate("tranHistory_showingPaginationPending", {
amount: transactionsStore.pendingHistoryCount,
total: pendingDbCount
})
: translate("tranHistory.showingPaginationTotal", {
: translate("tranHistory_showingPaginationTotal", {
amount: transactionsStore.historyCount,
total: totalDbCount
})
@@ -277,7 +277,7 @@ export const TranHistoryScreen = observer(function TranHistoryScreen({ route }:
onPress={() => false}
/>
<ListItem
text={translate("tranHistory.pendingParam", {
text={translate("tranHistory_pendingParam", {
param: pendingDbCount
})}
LeftComponent={
@@ -323,12 +323,12 @@ export const TranHistoryScreen = observer(function TranHistoryScreen({ route }:
{sections.length > 0 && (
<View style={{alignItems: 'center'}}>
{!showPendingOnly && isAll || showPendingOnly && pendingIsAll ? (
<Text tx="tranHistory.listIsComplete" size="xs" />
<Text tx="tranHistory_listIsComplete" size="xs" />
) : (
<Button
preset="secondary"
onPress={addTransactionsToList}
tx="tranHistory.viewMore"
tx="tranHistory_viewMore"
style={{minHeight: 25, paddingVertical: spacing.tiny}}
textStyle={{fontSize: 14}}
/>
@@ -346,7 +346,7 @@ export const TranHistoryScreen = observer(function TranHistoryScreen({ route }:
ContentComponent={
<ListItem
leftIcon='faBan'
tx={"tranHistory.noTransToShow"}
tx={"tranHistory_noTransToShow"}
/>
}
style={$card}
@@ -362,8 +362,8 @@ export const TranHistoryScreen = observer(function TranHistoryScreen({ route }:
ContentComponent={
<>
<ListItem
tx="tranHistory.deleteExpired"
subText={translate("tranHistory.deleteExpiredDesc", {
tx="tranHistory_deleteExpired"
subText={translate("tranHistory_deleteExpiredDesc", {
count: expiredDbCount
})}
leftIcon='faRotate'
@@ -371,8 +371,8 @@ export const TranHistoryScreen = observer(function TranHistoryScreen({ route }:
bottomSeparator={true}
/>
<ListItem
tx="tranHistory.deleteErrored"
subText={translate("tranHistory.deleteErroredDesc", {
tx="tranHistory_deleteErrored"
subText={translate("tranHistory_deleteErroredDesc", {
count: erroredDbCount
})}
leftIcon='faBug'
@@ -380,8 +380,8 @@ export const TranHistoryScreen = observer(function TranHistoryScreen({ route }:
bottomSeparator={true}
/>
<ListItem
tx="tranHistory.deleteReverted"
subText={translate("tranHistory.deleteRevertedDesc", {
tx="tranHistory_deleteReverted"
subText={translate("tranHistory_deleteRevertedDesc", {
count: revertedDbCount
})}
leftIcon='faBan'
@@ -57,49 +57,49 @@ export const TransactionListItem = observer(function (props: TransactionListProp
case TransactionType.RECEIVE:
if (tx.sentFrom) {
if (!tx.memo || tx.memo.includes('Sent from Minibits')) {
return translate('transactionCommon.from', {sender: getProfileName(tx.sentFrom)})
return translate('transactionCommon_from', {sender: getProfileName(tx.sentFrom)})
}
} else {
return tx.memo ? tx.memo : translate('transactionCommon.youReceived')
return tx.memo ? tx.memo : translate('transactionCommon_youReceived')
}
case TransactionType.RECEIVE_BY_PAYMENT_REQUEST:
if (tx.sentFrom) {
if (!tx.memo || tx.memo.includes('Sent from Minibits')) {
return translate('transactionCommon.from', {sender: getProfileName(tx.sentFrom)})
return translate('transactionCommon_from', {sender: getProfileName(tx.sentFrom)})
}
} else {
return tx.memo ? tx.memo : translate('transactionCommon.youReceived')
return tx.memo ? tx.memo : translate('transactionCommon_youReceived')
}
case TransactionType.RECEIVE_OFFLINE:
if (tx.sentFrom) {
if (!tx.memo || tx.memo.includes('Sent from Minibits')) {
return translate('transactionCommon.from', {sender: getProfileName(tx.sentFrom)})
return translate('transactionCommon_from', {sender: getProfileName(tx.sentFrom)})
}
} else {
return tx.memo ? tx.memo : translate('transactionCommon.youReceived')
return tx.memo ? tx.memo : translate('transactionCommon_youReceived')
}
case TransactionType.SEND:
return (tx.memo
? tx.memo
: tx.sentTo
? translate('transactionCommon.sentTo', {receiver: getProfileName(tx.sentTo)})
: translate('transactionCommon.youSent'))
? translate('transactionCommon_sentTo', {receiver: getProfileName(tx.sentTo)})
: translate('transactionCommon_youSent'))
case TransactionType.TOPUP:
return (tx.memo
? tx.memo
: tx.sentFrom
? translate('transactionCommon.receivedFrom', {sender: getProfileName(tx.sentFrom)})
: translate('transactionCommon.youReceived'))
? translate('transactionCommon_receivedFrom', {sender: getProfileName(tx.sentFrom)})
: translate('transactionCommon_youReceived'))
case TransactionType.TRANSFER:
return (tx.memo && tx.memo !== 'LNbits'
? tx.memo
: tx.sentTo
? tx.status === TransactionStatus.COMPLETED ?
translate('transactionCommon.paidTo', {receiver: getProfileName(tx.sentTo)})
: translate('transactionCommon.payTo', {receiver: getProfileName(tx.sentTo)})
: translate('transactionCommon.youPaid'))
translate('transactionCommon_paidTo', {receiver: getProfileName(tx.sentTo)})
: translate('transactionCommon_payTo', {receiver: getProfileName(tx.sentTo)})
: translate('transactionCommon_youPaid'))
default:
return translate('transactionCommon.unknown')
return translate('transactionCommon_unknown')
}
}
@@ -123,31 +123,31 @@ export const TransactionListItem = observer(function (props: TransactionListProp
if(isTimeAgoVisible) {
return distance
} else {
return translate('transactionCommon.status.completed')
return translate('transactionCommon_status_completed')
}
}
case TransactionStatus.RECOVERED:
return timeAgo + translate('transactionCommon.status.recovered')
return timeAgo + translate('transactionCommon_status_recovered')
case TransactionStatus.DRAFT:
return timeAgo + translate('transactionCommon.status.draft')
return timeAgo + translate('transactionCommon_status_draft')
case TransactionStatus.ERROR:
return timeAgo + translate('transactionCommon.status.error')
return timeAgo + translate('transactionCommon_status_error')
case TransactionStatus.PENDING:
return timeAgo + translate('transactionCommon.status.pending')
return timeAgo + translate('transactionCommon_status_pending')
case TransactionStatus.PREPARED:
return timeAgo + translate('transactionCommon.status.prepared')
return timeAgo + translate('transactionCommon_status_prepared')
case TransactionStatus.PREPARED_OFFLINE:
if (isInternetReachable) {
return timeAgo + translate('transactionCommon.tapToRedeem')
return timeAgo + translate('transactionCommon_tapToRedeem')
} else {
return timeAgo + translate('transactionCommon.redeemOnline')
return timeAgo + translate('transactionCommon_redeemOnline')
}
case TransactionStatus.REVERTED:
return timeAgo + translate('transactionCommon.status.reverted')
return timeAgo + translate('transactionCommon_status_reverted')
case TransactionStatus.BLOCKED:
return timeAgo + translate('transactionCommon.status.blocked')
return timeAgo + translate('transactionCommon_status_blocked')
case TransactionStatus.EXPIRED:
return timeAgo + translate('transactionCommon.status.expired')
return timeAgo + translate('transactionCommon_status_expired')
default:
return timeAgo
}
+29 -29
View File
@@ -330,7 +330,7 @@ useEffect(() => {
let availableBalances = proofsStore.getMintBalancesWithEnoughBalance(totalAmount, unitRef.current)
if (availableBalances.length === 0) {
setInfo(translate("transferScreen.insufficientFunds", {
setInfo(translate("transferScreen_insufficientFunds", {
currency: getCurrency(unitRef.current).code,
amount: amountToTransfer
}))
@@ -404,7 +404,7 @@ useEffect(() => {
} else {
setResultModalInfo({
status,
title: error.params?.message ? error.message : translate('payCommon.failed'),
title: error.params?.message ? error.message : translate('payCommon_failed'),
message: error.params?.message || error.message,
})
}
@@ -507,7 +507,7 @@ const onRequestLnurlInvoice = async function () {
const amountUnit = round(toNumber(amountToTransfer) * precision, 0)
if (!amountUnit || amountUnit === 0) {
setInfo(translate('payCommon.amountZeroOrNegative'))
setInfo(translate('payCommon_amountZeroOrNegative'))
return
}
@@ -527,7 +527,7 @@ const onRequestLnurlInvoice = async function () {
}
if (lnurlPayParams.minSendable && amountSats < lnurlPayParams.minSendable / 1000) {
setInfo(translate('payCommon.minimumPay', {
setInfo(translate('payCommon_minimumPay', {
amount: roundUp(lnurlPayParams.minSendable / 1000, 0),
currency: CurrencyCode.SAT
}))
@@ -535,7 +535,7 @@ const onRequestLnurlInvoice = async function () {
}
if (lnurlPayParams.maxSendable && amountSats > lnurlPayParams.maxSendable / 1000) {
setInfo(translate("payCommon.maximumPay", {
setInfo(translate("payCommon_maximumPay", {
amount: roundDown(lnurlPayParams.maxSendable / 1000, 0),
currency: CurrencyCode.SAT
}))
@@ -543,7 +543,7 @@ const onRequestLnurlInvoice = async function () {
}
if (lnurlPayParams.payerData) {
setInfo(translate("transferScreen.LUD18unsupported"))
setInfo(translate("transferScreen_LUD18unsupported"))
}
setIsLoading(true)
@@ -594,11 +594,11 @@ const onEncodedInvoice = async function (encoded: string) {
const expiresAt = addSeconds(new Date(timestamp as number * 1000), expiry as number)
if (!amount || amount === 0) {
setInfo(translate('payCommon.amountZeroOrNegative'))
setInfo(translate('payCommon_amountZeroOrNegative'))
return;
}
if(!isInternetReachable) setInfo(translate('common.offlinePretty'));
if(!isInternetReachable) setInfo(translate('commonOfflinePretty'));
setIsAmountEditable(false)
setEncodedInvoice(encoded)
@@ -622,7 +622,7 @@ const onEncodedInvoice = async function (encoded: string) {
if (!balanceToTransferFrom) {
log.warn('Not enough balance')
setInfo(translate("transferScreen.noMintWithBalance", { unit: unitRef.current }))
setInfo(translate("transferScreen_noMintWithBalance", { unit: unitRef.current }))
setIsNotEnoughFunds(true)
return
}
@@ -643,7 +643,7 @@ const transfer = async function () {
}
if (!mintBalanceToTransferFrom) {
setInfo(translate("transferScreen.selectMintFrom"))
setInfo(translate("transferScreen_selectMintFrom"))
return;
}
@@ -778,7 +778,7 @@ const amountInputColor = useThemeColor('amountInput')
)}
<Text
size="xs"
tx="payCommon.amountToPayLabel"
tx="payCommon_amountToPayLabel"
style={{
color: amountInputColor,
textAlign: 'center',
@@ -800,7 +800,7 @@ const amountInputColor = useThemeColor('amountInput')
lnurlPayParams?.address ||
memo ||
lnurlPayParams?.domain ||
translate('common.noDescPlaceholder')
translate('commonNoDescPlaceholder')
}
subText={lnurlDescription}
LeftComponent={
@@ -846,7 +846,7 @@ const amountInputColor = useThemeColor('amountInput')
<View style={$bottomContainer}>
<View style={$buttonContainer}>
<Button
tx="transferScreen.requestInvoice"
tx="transferScreen_requestInvoice"
onPress={onRequestLnurlInvoice}
/>
</View>
@@ -856,7 +856,7 @@ const amountInputColor = useThemeColor('amountInput')
<View style={$bottomContainer}>
<View style={$buttonContainer}>
<Button
tx="common.close"
tx="commonClose"
onPress={gotoWallet}
preset="secondary"
/>
@@ -869,8 +869,8 @@ const amountInputColor = useThemeColor('amountInput')
mintBalances={availableMintBalances}
selectedMintBalance={mintBalanceToTransferFrom}
unit={unitRef.current}
title={translate('payCommon.payFrom')}
confirmTitle={translate('payCommon.payNow')}
title={translate('payCommon_payFrom')}
confirmTitle={translate('payCommon_payNow')}
onMintBalanceSelect={onMintBalanceSelect}
onCancel={gotoWallet}
onMintBalanceConfirm={transfer}
@@ -882,7 +882,7 @@ const amountInputColor = useThemeColor('amountInput')
ContentComponent={
<>
<TranItem
label="tranDetailScreen.trasferredTo"
label="tranDetailScreen_trasferredTo"
isFirst={true}
value={
mintsStore.findByUrl(transaction.mint)
@@ -891,18 +891,18 @@ const amountInputColor = useThemeColor('amountInput')
/>
{transaction?.memo && (
<TranItem
label="tranDetailScreen.memoFromInvoice"
label="tranDetailScreen_memoFromInvoice"
value={transaction.memo as string}
/>
)}
<TranItem
label="transactionCommon.feePaid"
label="transactionCommon_feePaid"
value={transaction.fee || 0}
unit={unitRef.current}
isCurrency={true}
/>
<TranItem
label="tranDetailScreen.status"
label="tranDetailScreen_status"
value={transaction.status as string}
/>
</>
@@ -914,7 +914,7 @@ const amountInputColor = useThemeColor('amountInput')
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={gotoWallet}
/>
</View>
@@ -931,13 +931,13 @@ const amountInputColor = useThemeColor('amountInput')
<ResultModalInfo
icon="faCheckCircle"
iconColor={colors.palette.success200}
title={translate('payCommon.completed')}
title={translate('payCommon_completed')}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={() => {
if (isInvoiceDonation) {
gotoContacts()
@@ -955,13 +955,13 @@ const amountInputColor = useThemeColor('amountInput')
<ResultModalInfo
icon="faRotate"
iconColor={colors.palette.accent300}
title={translate('transactionCommon.reverted')}
title={translate('transactionCommon_reverted')}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={toggleResultModal}
/>
</View>
@@ -974,7 +974,7 @@ const amountInputColor = useThemeColor('amountInput')
icon="faTriangleExclamation"
iconColor={colors.palette.angry500}
title={
resultModalInfo?.title || translate('payCommon.failed')
resultModalInfo?.title || translate('payCommon_failed')
}
message={resultModalInfo?.message}
/>
@@ -994,7 +994,7 @@ const amountInputColor = useThemeColor('amountInput')
) : (
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={toggleResultModal}
/>
)}
@@ -1007,13 +1007,13 @@ const amountInputColor = useThemeColor('amountInput')
<ResultModalInfo
icon="faTriangleExclamation"
iconColor={colors.palette.iconYellow300}
title={translate('payCommon.isPending')}
title={translate('payCommon_isPending')}
message={resultModalInfo?.message}
/>
<View style={$buttonContainer}>
<Button
preset="secondary"
tx={'common.close'}
tx={'commonClose'}
onPress={gotoWallet}
/>
</View>
+13 -13
View File
@@ -141,7 +141,7 @@ export const UpdateScreen = observer(function UpdateScreen({ route }: Props) {
return (
<Screen contentContainerStyle={$screen} preset='fixed'>
<View style={[$headerContainer, {backgroundColor: headerBg}]}>
<Text preset="heading" tx="updateScreen.updateManagerTitle" style={{color: headerTitle}} />
<Text preset="heading" tx="updateScreen_updateManagerTitle" style={{color: headerTitle}} />
</View>
<ScrollView style={$contentContainer}>
<Card
@@ -151,23 +151,23 @@ export const UpdateScreen = observer(function UpdateScreen({ route }: Props) {
{isUpdateAvailable && (
<>
<ListItem
tx='updateScreen.updateAvailable'
subTx='updateScreen.updateAvailableDesc'
tx='updateScreen_updateAvailable'
subTx='updateScreen_updateAvailableDesc'
leftIcon='faWandMagicSparkles'
leftIconColor={colors.palette.iconMagenta200}
leftIconInverse={true}
style={$item}
/>
<ListItem
tx='updateScreen.updateNew'
subText={updateDescription || translate("updateScreen.defaultUpdateDesc")}
tx='updateScreen_updateNew'
subText={updateDescription || translate("updateScreen_defaultUpdateDesc")}
leftIcon='faInfoCircle'
leftIconColor={colors.palette.neutral500}
topSeparator={true}
style={$item}
/>
{/*<ListItem
tx='updateScreen.updateSize'
tx='updateScreen_updateSize'
subText={updateSize || '1.0MB'}
leftIcon='faDownload'
leftIconColor={colors.palette.neutral500}
@@ -178,8 +178,8 @@ export const UpdateScreen = observer(function UpdateScreen({ route }: Props) {
)}
{isNativeUpdateAvailable && (
<ListItem
tx='updateScreen.updateAvailable'
subTx={'updateScreen.nativeUpdateAvailableDesc'}
tx='updateScreen_updateAvailable'
subTx={'updateScreen_nativeUpdateAvailableDesc'}
leftIcon='faWandMagicSparkles'
leftIconColor={colors.palette.iconMagenta200}
leftIconInverse={true}
@@ -187,8 +187,8 @@ export const UpdateScreen = observer(function UpdateScreen({ route }: Props) {
/>)}
{(!isUpdateAvailable && !isNativeUpdateAvailable) && (
<ListItem
tx='updateScreen.updateNotAvailable'
subTx={'updateScreen.updateNotAvailableDesc'}
tx='updateScreen_updateNotAvailable'
subTx={'updateScreen_updateNotAvailableDesc'}
leftIcon='faInfoCircle'
leftIconColor={colors.palette.neutral500}
style={$item}
@@ -201,7 +201,7 @@ export const UpdateScreen = observer(function UpdateScreen({ route }: Props) {
{isUpdateAvailable && (
<Button
onPress={handleUpdate}
tx='updateScreen.updateNow'
tx='updateScreen_updateNow'
style={{alignSelf: 'center', marginTop: spacing.medium}}
/>
)}
@@ -209,12 +209,12 @@ export const UpdateScreen = observer(function UpdateScreen({ route }: Props) {
<View style={$buttonContainer}>
<Button
onPress={gotoPlayStore}
tx='updateScreen.gotoPlayStore'
tx='updateScreen_gotoPlayStore'
style={{marginTop: spacing.medium, marginRight: spacing.small}}
/>
<Button
onPress={gotoGithub}
tx="updateScreen.apkOnGithub"
tx="updateScreen_apkOnGithub"
preset='secondary'
style={{marginTop: spacing.medium}}
/>
+2 -2
View File
@@ -32,8 +32,8 @@ export const FeeBadge = function (props: {
<Text
text={
props.finalFee
? translate('walletScreen.feeBadge.final', {fee: formatCurrency(props.finalFee, props.currencyCode), code: props.currencyCode})
: translate('walletScreen.feeBadge.upto', {fee: formatCurrency(props.estimatedFee, props.currencyCode), code: props.currencyCode})
? translate('walletScreen_feeBadge_final', {fee: formatCurrency(props.finalFee, props.currencyCode), code: props.currencyCode})
: translate('walletScreen_feeBadge_upto', {fee: formatCurrency(props.estimatedFee, props.currencyCode), code: props.currencyCode})
}
style={[
{
+2 -2
View File
@@ -114,7 +114,7 @@ export const QRCodeBlock = function (props: {
500,
)
} else if (result.action === Share.dismissedAction) {
infoMessage(translate('share.cancelled'))
infoMessage(translate('share_cancelled'))
}
} catch (e: any) {
handleQrError(e)
@@ -181,7 +181,7 @@ export const QRCodeBlock = function (props: {
style={{backgroundColor: 'white', paddingBottom: spacing.small}}
ContentComponent={qrError ? (
<ListItem
text={translate("qr.fail")}
text={translate("qr_fail")}
subText={qrError ? qrError.message : ''}
leftIcon='faTriangleExclamation'
containerStyle={{marginVertical: spacing.large}}
+17 -17
View File
@@ -367,7 +367,7 @@ export const WalletScreen = observer(function WalletScreen({ route }: Props) {
log.trace('newMintUrl', newMintUrl)
if (mintsStore.alreadyExists(newMintUrl)) {
const msg = translate('walletScreen.mintExists')
const msg = translate('walletScreen_mintExists')
log.info(msg)
setInfo(msg)
return
@@ -583,7 +583,7 @@ export const WalletScreen = observer(function WalletScreen({ route }: Props) {
if (!isInternetReachable) {
return (
<Text
tx="common.offline"
tx="commonOffline"
style={$warning}
size="xxs"
/>
@@ -703,7 +703,7 @@ export const WalletScreen = observer(function WalletScreen({ route }: Props) {
style={[{backgroundColor: mainButtonColor, borderWidth: 1, borderColor: screenBg}, $buttonSend]}
textStyle={{marginRight: spacing.tiny}}
preset='secondary'
tx='payCommon.send'
tx='payCommon_send'
/>
<Button
RightAccessory={() => (
@@ -729,7 +729,7 @@ export const WalletScreen = observer(function WalletScreen({ route }: Props) {
/>
)}
onPress={toggleReceiveModal}
tx='payCommon.receive'
tx='payCommon_receive'
style={[{backgroundColor: mainButtonColor, borderWidth: 1, borderColor: screenBg}, $buttonReceive]}
textStyle={{marginLeft: spacing.tiny}}
preset='secondary'
@@ -753,8 +753,8 @@ export const WalletScreen = observer(function WalletScreen({ route }: Props) {
/>
</View>
}
tx="updateModal.title"
subTx="updateModal.desc"
tx="updateModal_title"
subTx="updateModal_desc"
onPress={gotoUpdate}
/>
}
@@ -783,15 +783,15 @@ export const WalletScreen = observer(function WalletScreen({ route }: Props) {
<>
<ListItem
leftIcon='faMoneyBill1'
tx="walletScreen.sendEcash"
subTx="walletScreen.sendEcashDesc"
tx="walletScreen_sendEcash"
subTx="walletScreen_sendEcashDesc"
onPress={gotoSend}
bottomSeparator={true}
/>
<ListItem
leftIcon='faBolt'
tx="walletScreen.payWithLightning"
subTx="walletScreen.payWithLightningDesc"
tx="walletScreen_payWithLightning"
subTx="walletScreen_payWithLightningDesc"
onPress={() => gotoLightningPay()}
/>
</>
@@ -806,15 +806,15 @@ export const WalletScreen = observer(function WalletScreen({ route }: Props) {
<>
<ListItem
leftIcon='faMoneyBill1'
tx="walletScreen.receiveEcash"
subTx="walletScreen.receiveEcashDesc"
tx="walletScreen_receiveEcash"
subTx="walletScreen_receiveEcashDesc"
onPress={gotoTokenReceive}
bottomSeparator={true}
/>
<ListItem
leftIcon='faBolt'
tx='walletScreen.topupWithLightning'
subTx="walletScreen.topupWithLightningDesc"
tx='walletScreen_topupWithLightning'
subTx="walletScreen_topupWithLightningDesc"
onPress={() => gotoTopup()}
/>
</>
@@ -994,7 +994,7 @@ const MintsByUnitList = observer(function (props: {
{selectedMintUrl === mint.mintUrl && (
<View style={{flexDirection: 'row', marginBottom: spacing.small, justifyContent: 'flex-start'}}>
<Button
tx="walletScreen.topup"
tx="walletScreen_topup"
LeftAccessory={() => (
<Icon
icon='faPlus'
@@ -1012,7 +1012,7 @@ const MintsByUnitList = observer(function (props: {
}}
/>
<Button
tx="walletScreen.pay"
tx="walletScreen_pay"
LeftAccessory={() => (
<Icon
icon='faBolt'
@@ -1030,7 +1030,7 @@ const MintsByUnitList = observer(function (props: {
}}
/>
<Button
tx="wallerScreen.mintButton"
tx="wallerScreen_mintButton"
LeftAccessory={() => (
<View style={{marginHorizontal: spacing.extraSmall}}>
<SvgXml
+20 -20
View File
@@ -39,36 +39,36 @@ const AnimatedPagerView = Animated.createAnimatedComponent(PagerView)
const PAGES = [
{
key: 1,
heading: 'welcomeScreen.page1.heading',
intro: 'welcomeScreen.page1.intro',
heading: 'welcomeScreen_page1_heading',
intro: 'welcomeScreen_page1_intro',
bullets: [
{id: '1', tx: 'welcomeScreen.page1.bullet1'},
{id: '2', tx: 'welcomeScreen.page1.bullet2'},
{id: '3', tx: 'welcomeScreen.page1.bullet3'},
{id: '1', tx: 'welcomeScreen_page1_bullet1'},
{id: '2', tx: 'welcomeScreen_page1_bullet2'},
{id: '3', tx: 'welcomeScreen_page1_bullet3'},
],
final: 'welcomeScreen.page1.final'
final: 'welcomeScreen_page1_final'
},
{
key: 2,
heading: 'welcomeScreen.page2.heading',
intro: 'welcomeScreen.page2.intro',
heading: 'welcomeScreen_page2_heading',
intro: 'welcomeScreen_page2_intro',
bullets: [
{id: '1', tx: 'welcomeScreen.page2.bullet1'},
{id: '2', tx: 'welcomeScreen.page2.bullet2'},
{id: '3', tx: 'welcomeScreen.page2.bullet3'},
{id: '1', tx: 'welcomeScreen_page2_bullet1'},
{id: '2', tx: 'welcomeScreen_page2_bullet2'},
{id: '3', tx: 'welcomeScreen_page2_bullet3'},
],
final: 'welcomeScreen.page2.final'
final: 'welcomeScreen_page2_final'
},
{
key: 3,
heading: 'welcomeScreen.page3.heading',
intro: 'welcomeScreen.page3.intro',
heading: 'welcomeScreen_page3_heading',
intro: 'welcomeScreen_page3_intro',
bullets: [
{id: '1', tx: 'welcomeScreen.page3.bullet1'},
{id: '2', tx: 'welcomeScreen.page3.bullet2'},
{id: '3', tx: 'welcomeScreen.page3.bullet3'},
{id: '1', tx: 'welcomeScreen_page3_bullet1'},
{id: '2', tx: 'welcomeScreen_page3_bullet2'},
{id: '3', tx: 'welcomeScreen_page3_bullet3'},
],
final: 'welcomeScreen.page3.final'
final: 'welcomeScreen_page3_final'
}
]
@@ -251,12 +251,12 @@ export const WelcomeScreen = function ({ route }: Props) {
<Button
onPress={gotoWallet}
preset='secondary'
tx="welcomeScreen.lastPageConfirmButton"
tx="welcomeScreen_lastPageConfirmButton"
/>
<Button
onPress={gotoRecovery}
preset='tertiary'
tx="welcomeScreen.lastPageRecoverLostWalletButton"
tx="welcomeScreen_lastPageRecoverLostWalletButton"
LeftAccessory={() => {return<Icon icon='faHeartPulse'/>}}
style={{marginTop: spacing.medium}}
/>