Skip to content
Merged
5 changes: 5 additions & 0 deletions src/components/ExpensifyWordmark.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import DevLogo from '@assets/images/expensify-logo--dev.svg';
import ProductionLogo from '@assets/images/expensify-logo--prod.svg';
import StagingLogo from '@assets/images/expensify-logo--staging.svg';
import useEnvironment from '@hooks/useEnvironment';
import useLocalize from '@hooks/useLocalize';
import useResponsiveLayout from '@hooks/useResponsiveLayout';
import useStyleUtils from '@hooks/useStyleUtils';
import useThemeStyles from '@hooks/useThemeStyles';
Expand All @@ -28,6 +29,7 @@ const logoComponents = {
function ExpensifyWordmark({style}: ExpensifyWordmarkProps) {
const styles = useThemeStyles();
const StyleUtils = useStyleUtils();
const {translate} = useLocalize();
const {environment} = useEnvironment();
// PascalCase is required for React components, so capitalize the const here
const LogoComponent = logoComponents[environment];
Expand All @@ -36,6 +38,9 @@ function ExpensifyWordmark({style}: ExpensifyWordmarkProps) {

return (
<View
accessible
role={CONST.ROLE.IMG}
accessibilityLabel={translate('common.expensifyLogo')}
style={[
StyleUtils.getSignInWordmarkWidthStyle(shouldUseNarrowLayout, environment),
StyleUtils.getHeight(shouldUseNarrowLayout ? variables.signInLogoHeightSmallScreen : variables.signInLogoHeight),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ function ConciergeLinkRenderer({tnode, style}: ConciergeLinkRendererProps) {
onPress={navigateToConciergeChat}
onKeyDown={handleKeyDown}
suppressHighlighting
accessible
role={CONST.ROLE.LINK}
tabIndex={0}
>
Expand Down
40 changes: 26 additions & 14 deletions src/components/QRCode.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react';
import type {ImageSourcePropType} from 'react-native';
import {View} from 'react-native';
import QRCodeLibrary from 'react-native-qrcode-svg';
import type {Svg, SvgProps} from 'react-native-svg';
import useTheme from '@hooks/useTheme';
Expand Down Expand Up @@ -55,6 +56,9 @@ type QRCodeProps = {
* methods
*/
getRef?: (ref: Svg) => Svg;

/** Accessibility label for the QR code image */
accessibilityLabel?: string;
};

function QRCode({
Expand All @@ -69,24 +73,32 @@ function QRCode({
backgroundColor,
logoRatio = CONST.QR.DEFAULT_LOGO_SIZE_RATIO,
logoMarginRatio = CONST.QR.DEFAULT_LOGO_MARGIN_RATIO,
accessibilityLabel,
}: QRCodeProps) {
const theme = useTheme();

return (
<QRCodeLibrary
getRef={getRef}
value={url}
size={size}
logo={logo}
logoSVG={svgLogo}
logoColor={svgLogoFillColor}
logoBackgroundColor={logoBackgroundColor ?? theme.appBG}
logoSize={size * logoRatio}
logoMargin={size * logoMarginRatio}
logoBorderRadius={size}
backgroundColor={backgroundColor ?? theme.appBG}
color={color ?? theme.text}
/>
<View
accessible
role={CONST.ROLE.IMG}
accessibilityLabel={accessibilityLabel}
tabIndex={0}
>
<QRCodeLibrary
getRef={getRef}
value={url}
size={size}
logo={logo}
logoSVG={svgLogo}
logoColor={svgLogoFillColor}
logoBackgroundColor={logoBackgroundColor ?? theme.appBG}
logoSize={size * logoRatio}
logoMargin={size * logoMarginRatio}
logoBorderRadius={size}
backgroundColor={backgroundColor ?? theme.appBG}
color={color ?? theme.text}
/>
</View>
);
}

Expand Down
3 changes: 2 additions & 1 deletion src/components/QRShare/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ function QRShare({
const qrCodeContainerWidth = shouldUseNarrowLayout ? windowWidth : variables.sideBarWidth;
const icons = useMemoizedLazyExpensifyIcons(['ExpensifyWordmark']);

const {formatPhoneNumber} = useLocalize();
const {formatPhoneNumber, translate} = useLocalize();

const [qrCodeSize, setQrCodeSize] = useState<number>(qrCodeContainerWidth - styles.ph5.paddingHorizontal * 2 - variables.qrShareHorizontalPadding * 2);
const svgRef = useRef<Svg | undefined>(undefined);
Expand Down Expand Up @@ -79,6 +79,7 @@ function QRShare({
size={size ?? qrCodeSize}
logoRatio={logoRatio}
logoMarginRatio={logoMarginRatio}
accessibilityLabel={translate('qrCodes.qrCode')}
/>

{!!title && (
Expand Down
1 change: 1 addition & 0 deletions src/components/TextLink.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ function TextLink({href, onPress, children, style, onMouseDown = (event) => even
onMouseDown={onMouseDown}
ref={ref}
suppressHighlighting
accessible
// eslint-disable-next-line react/jsx-props-no-spreading
{...rest}
>
Expand Down
9 changes: 9 additions & 0 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,14 @@ const translations: TranslationDeepObject<typeof en> = {
week: 'Woche',
year: 'Jahr',
quarter: 'Quartal',
expensifyLogo: 'Expensify-Logo',
},
socials: {
podcast: 'Folgen Sie uns auf Podcast',
twitter: 'Folgen Sie uns auf Twitter',
instagram: 'Folgen Sie uns auf Instagram',
facebook: 'Folgen Sie uns auf Facebook',
linkedin: 'Folgen Sie uns auf LinkedIn',
},
supportalNoAccess: {
title: 'Nicht so schnell',
Expand Down Expand Up @@ -7446,6 +7454,7 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und
parentNavigationSummary: ({reportName, workspaceName}: ParentNavigationSummaryParams) => `Von ${reportName}${workspaceName ? `in ${workspaceName}` : ''}`,
},
qrCodes: {
qrCode: 'QR-Code',
copy: 'URL kopieren',
copied: 'Kopiert!',
},
Expand Down
9 changes: 9 additions & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -596,6 +596,14 @@ const translations = {
week: 'Week',
year: 'Year',
quarter: 'Quarter',
expensifyLogo: 'Expensify logo',
},
socials: {
podcast: 'Follow us on Podcast',
twitter: 'Follow us on Twitter',
instagram: 'Follow us on Instagram',
facebook: 'Follow us on Facebook',
linkedin: 'Follow us on LinkedIn',
},
supportalNoAccess: {
title: 'Not so fast',
Expand Down Expand Up @@ -7386,6 +7394,7 @@ const translations = {
parentNavigationSummary: ({reportName, workspaceName}: ParentNavigationSummaryParams) => `From ${reportName}${workspaceName ? ` in ${workspaceName}` : ''}`,
},
qrCodes: {
qrCode: 'QR code',
copy: 'Copy URL',
copied: 'Copied!',
},
Expand Down
9 changes: 9 additions & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,14 @@ const translations: TranslationDeepObject<typeof en> = {
week: 'Semana',
year: 'Año',
quarter: 'Trimestre',
expensifyLogo: 'Logo de Expensify',
},
socials: {
podcast: 'Síguenos en Podcast',
twitter: 'Síguenos en Twitter',
instagram: 'Síguenos en Instagram',
facebook: 'Síguenos en Facebook',
linkedin: 'Síguenos en LinkedIn',
},
supportalNoAccess: {
title: 'No tan rápido',
Expand Down Expand Up @@ -7656,6 +7664,7 @@ ${amount} para ${merchant} - ${date}`,
parentNavigationSummary: ({reportName, workspaceName}) => `De ${reportName}${workspaceName ? ` en ${workspaceName}` : ''}`,
},
qrCodes: {
qrCode: 'Código QR',
copy: 'Copiar URL',
copied: '¡Copiado!',
},
Expand Down
11 changes: 10 additions & 1 deletion src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,14 @@ const translations: TranslationDeepObject<typeof en> = {
week: 'Semaine',
year: 'Année',
quarter: 'Trimestre',
expensifyLogo: 'Logo Expensify',
},
socials: {
podcast: 'Suivez-nous sur Podcast',
twitter: 'Suivez-nous sur Twitter',
instagram: 'Suivez-nous sur Instagram',
facebook: 'Suivez-nous sur Facebook',
linkedin: 'Suivez-nous sur LinkedIn',
},
supportalNoAccess: {
title: 'Pas si vite',
Expand Down Expand Up @@ -1767,7 +1775,7 @@ const translations: TranslationDeepObject<typeof en> = {
featureRequiresValidate: 'Cette fonctionnalité exige que vous validiez votre compte.',
validateAccount: 'Validez votre compte',
helpText: ({email}: {email: string}) =>
`Ajoutez d’autres moyens de vous connecter et d’envoyer des reçus à Expensify.<br/><br/>Ajoutez une adresse e-mail pour transférer des reçus à <a href="mailto:${email}">${email}</a> ou ajoutez un numéro de téléphone pour envoyer des reçus par SMS au 47777 (numéros américains uniquement).`,
`Ajoutez d'autres moyens de vous connecter et d'envoyer des reçus à Expensify.<br/><br/>Ajoutez une adresse e-mail pour transférer des reçus à <a href="mailto:${email}">${email}</a> ou ajoutez un numéro de téléphone pour envoyer des reçus par SMS au 47777 (numéros américains uniquement).`,
pleaseVerify: 'Veuillez vérifier cette méthode de contact.',
getInTouch: 'Nous utiliserons cette méthode pour vous contacter.',
enterMagicCode: (contactMethod: string) => `Veuillez saisir le code magique envoyé à ${contactMethod}. Il devrait arriver d'ici une à deux minutes.`,
Expand Down Expand Up @@ -7470,6 +7478,7 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip
parentNavigationSummary: ({reportName, workspaceName}: ParentNavigationSummaryParams) => `De ${reportName}${workspaceName ? `dans ${workspaceName}` : ''}`,
},
qrCodes: {
qrCode: 'Code QR',
copy: 'Copier l’URL',
copied: 'Copié !',
},
Expand Down
9 changes: 9 additions & 0 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,14 @@ const translations: TranslationDeepObject<typeof en> = {
week: 'Settimana',
year: 'Anno',
quarter: 'Trimestre',
expensifyLogo: 'Logo Expensify',
},
socials: {
podcast: 'Seguici su Podcast',
twitter: 'Seguici su Twitter',
instagram: 'Seguici su Instagram',
facebook: 'Seguici su Facebook',
linkedin: 'Seguici su LinkedIn',
},
supportalNoAccess: {
title: 'Non così in fretta',
Expand Down Expand Up @@ -7432,6 +7440,7 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo
parentNavigationSummary: ({reportName, workspaceName}: ParentNavigationSummaryParams) => `Da ${reportName}${workspaceName ? `in ${workspaceName}` : ''}`,
},
qrCodes: {
qrCode: 'Codice QR',
copy: 'Copia URL',
copied: 'Copiato!',
},
Expand Down
9 changes: 9 additions & 0 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,14 @@ const translations: TranslationDeepObject<typeof en> = {
week: '週',
year: '年',
quarter: '四半期',
expensifyLogo: 'Expensifyロゴ',
},
socials: {
podcast: 'ポッドキャストでフォロー',
twitter: 'Twitterでフォロー',
instagram: 'Instagramでフォロー',
facebook: 'Facebookでフォロー',
linkedin: 'LinkedInでフォロー',
},
supportalNoAccess: {
title: 'ちょっと待ってください',
Expand Down Expand Up @@ -7361,6 +7369,7 @@ ${reportName}
parentNavigationSummary: ({reportName, workspaceName}: ParentNavigationSummaryParams) => `${reportName}${workspaceName ? `${workspaceName} の中` : ''} から`,
},
qrCodes: {
qrCode: 'QRコード',
copy: 'URLをコピー',
copied: 'コピーしました!',
},
Expand Down
11 changes: 10 additions & 1 deletion src/languages/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,14 @@ const translations: TranslationDeepObject<typeof en> = {
week: 'Week',
year: 'Jaar',
quarter: 'Kwartaal',
expensifyLogo: 'Expensify-logo',
},
socials: {
podcast: 'Volg ons op Podcast',
twitter: 'Volg ons op Twitter',
instagram: 'Volg ons op Instagram',
facebook: 'Volg ons op Facebook',
linkedin: 'Volg ons op LinkedIn',
},
supportalNoAccess: {
title: 'Niet zo snel',
Expand Down Expand Up @@ -1756,7 +1764,7 @@ const translations: TranslationDeepObject<typeof en> = {
featureRequiresValidate: 'Voor deze functie moet je je account verifiëren.',
validateAccount: 'Valideer je account',
helpText: ({email}: {email: string}) =>
`Voeg meer manieren toe om in te loggen en bonnetjes naar Expensify te sturen.<br/><br/>Voeg een e-mailadres toe om bonnetjes door te sturen naar <a href="mailto:${email}">${email}</a> of voeg een telefoonnummer toe om bonnetjes te sms’en naar 47777 (alleen voor Amerikaanse nummers).`,
`Voeg meer manieren toe om in te loggen en bonnetjes naar Expensify te sturen.<br/><br/>Voeg een e-mailadres toe om bonnetjes door te sturen naar <a href="mailto:${email}">${email}</a> of voeg een telefoonnummer toe om bonnetjes te sms'en naar 47777 (alleen voor Amerikaanse nummers).`,
pleaseVerify: 'Verifieer deze contactmethode.',
getInTouch: 'We gebruiken deze methode om contact met je op te nemen.',
enterMagicCode: (contactMethod: string) => `Voer de magische code in die naar ${contactMethod} is verzonden. Deze zou binnen een minuut of twee moeten aankomen.`,
Expand Down Expand Up @@ -7417,6 +7425,7 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar
parentNavigationSummary: ({reportName, workspaceName}: ParentNavigationSummaryParams) => `Van ${reportName}${workspaceName ? `in ${workspaceName}` : ''}`,
},
qrCodes: {
qrCode: 'QR-code',
copy: 'URL kopiëren',
copied: 'Gekopieerd!',
},
Expand Down
9 changes: 9 additions & 0 deletions src/languages/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,14 @@ const translations: TranslationDeepObject<typeof en> = {
week: 'Tydzień',
year: 'Rok',
quarter: 'Kwartał',
expensifyLogo: 'Logo Expensify',
},
socials: {
podcast: 'Śledź nas na Podcast',
twitter: 'Śledź nas na Twitter',
instagram: 'Śledź nas na Instagram',
facebook: 'Śledź nas na Facebook',
linkedin: 'Śledź nas na LinkedIn',
},
supportalNoAccess: {
title: 'Nie tak szybko',
Expand Down Expand Up @@ -7399,6 +7407,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i
parentNavigationSummary: ({reportName, workspaceName}: ParentNavigationSummaryParams) => `Z raportu ${reportName}${workspaceName ? `w ${workspaceName}` : ''}`,
},
qrCodes: {
qrCode: 'Kod QR',
copy: 'Skopiuj URL',
copied: 'Skopiowano!',
},
Expand Down
9 changes: 9 additions & 0 deletions src/languages/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -575,6 +575,14 @@ const translations: TranslationDeepObject<typeof en> = {
week: 'Semana',
year: 'Ano',
quarter: 'Trimestre',
expensifyLogo: 'Logo da Expensify',
},
socials: {
podcast: 'Siga-nos no Podcast',
twitter: 'Siga-nos no Twitter',
instagram: 'Siga-nos no Instagram',
facebook: 'Siga-nos no Facebook',
linkedin: 'Siga-nos no LinkedIn',
},
supportalNoAccess: {
title: 'Calma aí',
Expand Down Expand Up @@ -7402,6 +7410,7 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e
parentNavigationSummary: ({reportName, workspaceName}: ParentNavigationSummaryParams) => `De ${reportName}${workspaceName ? `em ${workspaceName}` : ''}`,
},
qrCodes: {
qrCode: 'Código QR',
copy: 'Copiar URL',
copied: 'Copiado!',
},
Expand Down
9 changes: 9 additions & 0 deletions src/languages/zh-hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -572,6 +572,14 @@ const translations: TranslationDeepObject<typeof en> = {
week: '周',
year: '年份',
quarter: '季度',
expensifyLogo: 'Expensify徽标',
},
socials: {
podcast: '在播客上关注我们',
twitter: '在Twitter上关注我们',
instagram: '在Instagram上关注我们',
facebook: '在Facebook上关注我们',
linkedin: '在LinkedIn上关注我们',
},
supportalNoAccess: {
title: '先别急',
Expand Down Expand Up @@ -7256,6 +7264,7 @@ ${reportName}
parentNavigationSummary: ({reportName, workspaceName}: ParentNavigationSummaryParams) => `来自${reportName}${workspaceName ? `在 ${workspaceName} 中` : ''}`,
},
qrCodes: {
qrCode: '二维码',
copy: '复制 URL',
copied: '已复制!',
},
Expand Down
Loading
Loading