diff --git a/README.md b/README.md index 7cf2cb6..a556de3 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ It is a security protocol used to generate a unique password that changes every **Shield Authenticator** is an open-source project that aims to provide an alternative to commercial two-factor authentication (2FA) apps like Google Authenticator or Authy. It uses the TOTP protocol to generate one-time passwords, just like these apps do. However, because it is open source, users can review the code and ensure that there are no hidden backdoors or vulnerabilities that could be exploited by attackers. Shield Authenticator is free to use and can be installed on Android mobile devices. -![](./docs/app.png) +![](./docs/captures/en/capture-06.png) ## Developers @@ -55,4 +55,8 @@ act --secret-file .env --env-file .env -j preview ##### More info -- [List of 2FA sites](https://2fa.directory/) \ No newline at end of file +- [List of 2FA sites](https://2fa.directory/) + +## Screenshots + +[English](./docs/captures/en/screenshots.md) | [Español](./docs/captures/es/screenshots.md) | [Italiano](./docs/captures/it/screenshots.md) | [Deutsch](./docs/captures/de/screenshots.md) | [العربية](./docs/captures/ar/screenshots.md) | [中文](./docs/captures/zh/screenshots.md) | [Français](./docs/captures/fr/screenshots.md) \ No newline at end of file diff --git a/app/qr/index.tsx b/app/qr/index.tsx index 8f36628..6e1a641 100644 --- a/app/qr/index.tsx +++ b/app/qr/index.tsx @@ -3,23 +3,39 @@ import { BarCodeEvent, BarCodeScanner } from 'expo-barcode-scanner'; import { Camera } from 'expo-camera'; import { useRouter } from 'expo-router'; import React, { FC, useEffect, useState } from 'react'; -import { Dimensions, Linking, StyleSheet, View } from 'react-native'; +import { + Dimensions, + Linking, + Pressable, + ScrollView, + StyleSheet, + View, +} from 'react-native'; import { ActivityIndicator, Button, MD3Theme, + TextInput, useTheme, } from 'react-native-paper'; +import { ThemeProp } from 'react-native-paper/lib/typescript/src/types'; +import BottomSheet from '../../src/components/BottomSheet'; import Section from '../../src/components/Section'; import colors from '../../src/constants/colors'; import { CameraPermissionIcon } from '../../src/icons/CameraPermission'; +import { EditIcon } from '../../src/icons/Edit'; +import { QrIcon } from '../../src/icons/Qr'; import { ScanQRIcon } from '../../src/icons/ScanQR'; import Text from '../../src/ui/Text'; import { parseOtpUri } from '../../src/util/parseOtpUri'; +import { OtpRecord } from '../../src/types'; const QRScanner: FC = () => { const [hasPermission, setHasPermission] = useState(); const [showCamera, setShowCamera] = useState(false); + const [manually, setManually] = useState(false); + const [token, setToken] = useState(''); + const [tokenName, setTokenName] = useState(''); const { push } = useRouter(); const theme = useTheme(); const styles = getStyles(theme); @@ -40,6 +56,19 @@ const QRScanner: FC = () => { } }; + const handleTokenManually = () => { + const params: OtpRecord = { + type: 'totp', + algorithm: 'SHA1', + digits: 6, + period: 30, + label: tokenName, + issuer: tokenName, + secret: token, + }; + push({ pathname: '/qr/info', params }); + }; + const resetPermissions = () => { Linking.openSettings(); }; @@ -69,48 +98,145 @@ const QRScanner: FC = () => { ); } + const inputTheme: ThemeProp = { + colors: { + background: colors.light, + primary: colors.dark, + }, + roundness: 4, + }; + return (
- - - Scan your website's 2FA QR code using your device's camera - - - {showCamera && ( - <> - - - - + + + - The QR code can be easily recognized by simply pointing your - device's camera at it + You can either use your device's camera to scan the 2FA QR code on + the site, or manually enter the provided token and a name - - )} - {!showCamera && ( - <> - - - - )} + {showCamera && ( + + + + + + + The QR code can be easily recognized by simply pointing your + device's camera at it + + + + + + + )} + {!showCamera && !manually && ( + + + + )} + {manually && ( + <> + + + Token name + + setTokenName(text)} + mode="outlined" + theme={inputTheme} + /> + + + + Token + + setToken(text)} + mode="outlined" + theme={inputTheme} + /> + + + + + + + + )} + + + { + setShowCamera(true); + setManually(false); + }} + > + + + + + + Scan QR code + + + + { + setShowCamera(false); + setManually(true); + }} + style={styles.spacer} + > + + + + + + Add token manually + + + + +
); }; @@ -131,6 +257,34 @@ const getStyles = (theme: MD3Theme) => divider: { marginTop: 24, }, + button: { + flexDirection: 'row', + padding: 8, + borderRadius: 4, + alignItems: 'center', + }, + icon: { + margin: 0, + marginRight: 16, + padding: 4, + borderRadius: 4, + backgroundColor: colors.light, + }, + wrapper: { + flex: 1, + }, + scrolling: { + flex: 0, + }, + cancel: { + paddingBottom: 24, + }, + spacer: { + marginTop: 4, + }, + formSpacer: { + marginTop: 24, + }, }); export default QRScanner; diff --git a/app/qr/info.tsx b/app/qr/info.tsx index cd472de..a4c54b9 100644 --- a/app/qr/info.tsx +++ b/app/qr/info.tsx @@ -59,7 +59,9 @@ const QRInfo: FC = () => { push('/qr'); }} > - Scan another code + + Scan another code + ); diff --git a/app/settings/export.tsx b/app/settings/export.tsx index 48f52d1..efd6b2d 100644 --- a/app/settings/export.tsx +++ b/app/settings/export.tsx @@ -67,7 +67,9 @@ const SettingsExport: FC = () => { /> diff --git a/docs/app.png b/docs/app.png deleted file mode 100644 index e2efd4f..0000000 Binary files a/docs/app.png and /dev/null differ diff --git a/docs/captures/ar/capture-01.png b/docs/captures/ar/capture-01.png new file mode 100644 index 0000000..ba0797e Binary files /dev/null and b/docs/captures/ar/capture-01.png differ diff --git a/docs/captures/ar/capture-02.png b/docs/captures/ar/capture-02.png new file mode 100644 index 0000000..9e60f1f Binary files /dev/null and b/docs/captures/ar/capture-02.png differ diff --git a/docs/captures/ar/capture-03.png b/docs/captures/ar/capture-03.png new file mode 100644 index 0000000..2da301b Binary files /dev/null and b/docs/captures/ar/capture-03.png differ diff --git a/docs/captures/ar/capture-04.png b/docs/captures/ar/capture-04.png new file mode 100644 index 0000000..9259270 Binary files /dev/null and b/docs/captures/ar/capture-04.png differ diff --git a/docs/captures/ar/capture-05.png b/docs/captures/ar/capture-05.png new file mode 100644 index 0000000..be6ca24 Binary files /dev/null and b/docs/captures/ar/capture-05.png differ diff --git a/docs/captures/ar/capture-06.png b/docs/captures/ar/capture-06.png new file mode 100644 index 0000000..dad1ab4 Binary files /dev/null and b/docs/captures/ar/capture-06.png differ diff --git a/docs/captures/ar/screenshots.md b/docs/captures/ar/screenshots.md new file mode 100644 index 0000000..add1a14 --- /dev/null +++ b/docs/captures/ar/screenshots.md @@ -0,0 +1,8 @@ +# Screenshots + +![](./capture-06.png) +![](./capture-05.png) +![](./capture-04.png) +![](./capture-03.png) +![](./capture-02.png) +![](./capture-01.png) \ No newline at end of file diff --git a/docs/captures/de/capture-01.png b/docs/captures/de/capture-01.png new file mode 100644 index 0000000..9fe754d Binary files /dev/null and b/docs/captures/de/capture-01.png differ diff --git a/docs/captures/de/capture-02.png b/docs/captures/de/capture-02.png new file mode 100644 index 0000000..57a5aa7 Binary files /dev/null and b/docs/captures/de/capture-02.png differ diff --git a/docs/captures/de/capture-03.png b/docs/captures/de/capture-03.png new file mode 100644 index 0000000..801b0f9 Binary files /dev/null and b/docs/captures/de/capture-03.png differ diff --git a/docs/captures/de/capture-04.png b/docs/captures/de/capture-04.png new file mode 100644 index 0000000..e0fe3cb Binary files /dev/null and b/docs/captures/de/capture-04.png differ diff --git a/docs/captures/de/capture-05.png b/docs/captures/de/capture-05.png new file mode 100644 index 0000000..6809f08 Binary files /dev/null and b/docs/captures/de/capture-05.png differ diff --git a/docs/captures/de/capture-06.png b/docs/captures/de/capture-06.png new file mode 100644 index 0000000..48d7338 Binary files /dev/null and b/docs/captures/de/capture-06.png differ diff --git a/docs/captures/de/screenshots.md b/docs/captures/de/screenshots.md new file mode 100644 index 0000000..add1a14 --- /dev/null +++ b/docs/captures/de/screenshots.md @@ -0,0 +1,8 @@ +# Screenshots + +![](./capture-06.png) +![](./capture-05.png) +![](./capture-04.png) +![](./capture-03.png) +![](./capture-02.png) +![](./capture-01.png) \ No newline at end of file diff --git a/docs/captures/en/capture-01.png b/docs/captures/en/capture-01.png new file mode 100644 index 0000000..e51d299 Binary files /dev/null and b/docs/captures/en/capture-01.png differ diff --git a/docs/captures/en/capture-02.png b/docs/captures/en/capture-02.png new file mode 100644 index 0000000..a164e7f Binary files /dev/null and b/docs/captures/en/capture-02.png differ diff --git a/docs/captures/en/capture-03.png b/docs/captures/en/capture-03.png new file mode 100644 index 0000000..9b8862f Binary files /dev/null and b/docs/captures/en/capture-03.png differ diff --git a/docs/captures/en/capture-04.png b/docs/captures/en/capture-04.png new file mode 100644 index 0000000..666747a Binary files /dev/null and b/docs/captures/en/capture-04.png differ diff --git a/docs/captures/en/capture-05.png b/docs/captures/en/capture-05.png new file mode 100644 index 0000000..475ce48 Binary files /dev/null and b/docs/captures/en/capture-05.png differ diff --git a/docs/captures/en/capture-06.png b/docs/captures/en/capture-06.png new file mode 100644 index 0000000..1c7eb26 Binary files /dev/null and b/docs/captures/en/capture-06.png differ diff --git a/docs/captures/en/screenshots.md b/docs/captures/en/screenshots.md new file mode 100644 index 0000000..add1a14 --- /dev/null +++ b/docs/captures/en/screenshots.md @@ -0,0 +1,8 @@ +# Screenshots + +![](./capture-06.png) +![](./capture-05.png) +![](./capture-04.png) +![](./capture-03.png) +![](./capture-02.png) +![](./capture-01.png) \ No newline at end of file diff --git a/docs/captures/es/capture-01.png b/docs/captures/es/capture-01.png new file mode 100644 index 0000000..3081732 Binary files /dev/null and b/docs/captures/es/capture-01.png differ diff --git a/docs/captures/es/capture-02.png b/docs/captures/es/capture-02.png new file mode 100644 index 0000000..4547b32 Binary files /dev/null and b/docs/captures/es/capture-02.png differ diff --git a/docs/captures/es/capture-03.png b/docs/captures/es/capture-03.png new file mode 100644 index 0000000..98b5800 Binary files /dev/null and b/docs/captures/es/capture-03.png differ diff --git a/docs/captures/es/capture-04.png b/docs/captures/es/capture-04.png new file mode 100644 index 0000000..5b17953 Binary files /dev/null and b/docs/captures/es/capture-04.png differ diff --git a/docs/captures/es/capture-05.png b/docs/captures/es/capture-05.png new file mode 100644 index 0000000..d2b5101 Binary files /dev/null and b/docs/captures/es/capture-05.png differ diff --git a/docs/captures/es/capture-06.png b/docs/captures/es/capture-06.png new file mode 100644 index 0000000..dcdac47 Binary files /dev/null and b/docs/captures/es/capture-06.png differ diff --git a/docs/captures/es/screenshots.md b/docs/captures/es/screenshots.md new file mode 100644 index 0000000..add1a14 --- /dev/null +++ b/docs/captures/es/screenshots.md @@ -0,0 +1,8 @@ +# Screenshots + +![](./capture-06.png) +![](./capture-05.png) +![](./capture-04.png) +![](./capture-03.png) +![](./capture-02.png) +![](./capture-01.png) \ No newline at end of file diff --git a/docs/captures/fr/capture-01.png b/docs/captures/fr/capture-01.png new file mode 100644 index 0000000..0fa6bd4 Binary files /dev/null and b/docs/captures/fr/capture-01.png differ diff --git a/docs/captures/fr/capture-02.png b/docs/captures/fr/capture-02.png new file mode 100644 index 0000000..7f35e1a Binary files /dev/null and b/docs/captures/fr/capture-02.png differ diff --git a/docs/captures/fr/capture-03.png b/docs/captures/fr/capture-03.png new file mode 100644 index 0000000..f8a41a3 Binary files /dev/null and b/docs/captures/fr/capture-03.png differ diff --git a/docs/captures/fr/capture-04.png b/docs/captures/fr/capture-04.png new file mode 100644 index 0000000..eb3e446 Binary files /dev/null and b/docs/captures/fr/capture-04.png differ diff --git a/docs/captures/fr/capture-05.png b/docs/captures/fr/capture-05.png new file mode 100644 index 0000000..d00a2e5 Binary files /dev/null and b/docs/captures/fr/capture-05.png differ diff --git a/docs/captures/fr/capture-06.png b/docs/captures/fr/capture-06.png new file mode 100644 index 0000000..f521d36 Binary files /dev/null and b/docs/captures/fr/capture-06.png differ diff --git a/docs/captures/fr/screenshots.md b/docs/captures/fr/screenshots.md new file mode 100644 index 0000000..add1a14 --- /dev/null +++ b/docs/captures/fr/screenshots.md @@ -0,0 +1,8 @@ +# Screenshots + +![](./capture-06.png) +![](./capture-05.png) +![](./capture-04.png) +![](./capture-03.png) +![](./capture-02.png) +![](./capture-01.png) \ No newline at end of file diff --git a/docs/captures/it/capture-01.png b/docs/captures/it/capture-01.png new file mode 100644 index 0000000..84fb19c Binary files /dev/null and b/docs/captures/it/capture-01.png differ diff --git a/docs/captures/it/capture-02.png b/docs/captures/it/capture-02.png new file mode 100644 index 0000000..956520a Binary files /dev/null and b/docs/captures/it/capture-02.png differ diff --git a/docs/captures/it/capture-03.png b/docs/captures/it/capture-03.png new file mode 100644 index 0000000..904bab1 Binary files /dev/null and b/docs/captures/it/capture-03.png differ diff --git a/docs/captures/it/capture-04.png b/docs/captures/it/capture-04.png new file mode 100644 index 0000000..516b32a Binary files /dev/null and b/docs/captures/it/capture-04.png differ diff --git a/docs/captures/it/capture-05.png b/docs/captures/it/capture-05.png new file mode 100644 index 0000000..a69ee89 Binary files /dev/null and b/docs/captures/it/capture-05.png differ diff --git a/docs/captures/it/capture-06.png b/docs/captures/it/capture-06.png new file mode 100644 index 0000000..7aef89a Binary files /dev/null and b/docs/captures/it/capture-06.png differ diff --git a/docs/captures/it/screenshots.md b/docs/captures/it/screenshots.md new file mode 100644 index 0000000..add1a14 --- /dev/null +++ b/docs/captures/it/screenshots.md @@ -0,0 +1,8 @@ +# Screenshots + +![](./capture-06.png) +![](./capture-05.png) +![](./capture-04.png) +![](./capture-03.png) +![](./capture-02.png) +![](./capture-01.png) \ No newline at end of file diff --git a/docs/captures/zh/capture-01.png b/docs/captures/zh/capture-01.png new file mode 100644 index 0000000..68ed62e Binary files /dev/null and b/docs/captures/zh/capture-01.png differ diff --git a/docs/captures/zh/capture-02.png b/docs/captures/zh/capture-02.png new file mode 100644 index 0000000..f1e991a Binary files /dev/null and b/docs/captures/zh/capture-02.png differ diff --git a/docs/captures/zh/capture-03.png b/docs/captures/zh/capture-03.png new file mode 100644 index 0000000..bf7f6c4 Binary files /dev/null and b/docs/captures/zh/capture-03.png differ diff --git a/docs/captures/zh/capture-04.png b/docs/captures/zh/capture-04.png new file mode 100644 index 0000000..4a3c6da Binary files /dev/null and b/docs/captures/zh/capture-04.png differ diff --git a/docs/captures/zh/capture-05.png b/docs/captures/zh/capture-05.png new file mode 100644 index 0000000..846d61b Binary files /dev/null and b/docs/captures/zh/capture-05.png differ diff --git a/docs/captures/zh/capture-06.png b/docs/captures/zh/capture-06.png new file mode 100644 index 0000000..388bdea Binary files /dev/null and b/docs/captures/zh/capture-06.png differ diff --git a/docs/captures/zh/screenshots.md b/docs/captures/zh/screenshots.md new file mode 100644 index 0000000..add1a14 --- /dev/null +++ b/docs/captures/zh/screenshots.md @@ -0,0 +1,8 @@ +# Screenshots + +![](./capture-06.png) +![](./capture-05.png) +![](./capture-04.png) +![](./capture-03.png) +![](./capture-02.png) +![](./capture-01.png) \ No newline at end of file diff --git a/src/components/BottomSheet.tsx b/src/components/BottomSheet.tsx new file mode 100644 index 0000000..f8c4ae8 --- /dev/null +++ b/src/components/BottomSheet.tsx @@ -0,0 +1,29 @@ +import { t } from '@lingui/macro'; +import { FC, useState } from 'react'; +import { StyleSheet, View } from 'react-native'; +import { Menu } from 'react-native-paper'; +import { LogoIcon } from '../icons/LogoIcon'; +import { MenuIcon } from '../icons/MenuIcon'; +import IconButton from '../ui/IconButton'; +import Text from '../ui/Text'; +import { useRouter } from 'expo-router'; +import { ComponentWithChildren } from '../types'; +import colors from '../constants/colors'; + +const BottomSheet: FC = ({ children }) => { + return {children}; +}; + +const styles = StyleSheet.create({ + container: { + padding: 24, + marginHorizontal: -24, + marginBottom: -24, + borderTopLeftRadius: 24, + borderTopRightRadius: 24, + backgroundColor: colors.primary, + flex: 0, + }, +}); + +export default BottomSheet; diff --git a/src/components/Page.tsx b/src/components/Page.tsx index 51d8dab..d75f9b8 100644 --- a/src/components/Page.tsx +++ b/src/components/Page.tsx @@ -52,6 +52,7 @@ const theme: MD3Theme = { secondary: colors.medium, tertiary: colors.light, surfaceVariant: colors.light, + secondaryContainer: colors.light, }, roundness: 8, fonts: configureFonts({ diff --git a/src/components/SiteInfo.tsx b/src/components/SiteInfo.tsx index 2839440..c7e952c 100644 --- a/src/components/SiteInfo.tsx +++ b/src/components/SiteInfo.tsx @@ -117,7 +117,7 @@ const SiteInfo: FC = ({ site, timer, visible, deleteSite }) => { - + {site.label} @@ -186,6 +186,9 @@ const styles = StyleSheet.create({ flexDirection: 'row', height: '100%', }, + text: { + flex: 1, + }, }); export default SiteInfo; diff --git a/src/icons/Edit.tsx b/src/icons/Edit.tsx new file mode 100644 index 0000000..0a05ef2 --- /dev/null +++ b/src/icons/Edit.tsx @@ -0,0 +1,19 @@ +import { FC } from 'react'; +import Svg, { Path } from 'react-native-svg'; +import colors from '../constants/colors'; +import { ComponentWithColor, ComponentWithSize } from '../types'; + +export const EditIcon: FC = ({ + width = 48, + height = 48, + color = colors.primary, +}) => { + return ( + + + + ); +}; diff --git a/src/icons/Qr.tsx b/src/icons/Qr.tsx new file mode 100644 index 0000000..1c485db --- /dev/null +++ b/src/icons/Qr.tsx @@ -0,0 +1,19 @@ +import { FC } from 'react'; +import Svg, { Path } from 'react-native-svg'; +import colors from '../constants/colors'; +import { ComponentWithColor, ComponentWithSize } from '../types'; + +export const QrIcon: FC = ({ + width = 48, + height = 48, + color = colors.primary, +}) => { + return ( + + + + ); +}; diff --git a/src/locales/ar/messages.js b/src/locales/ar/messages.js index 7a87852..19e298b 100644 --- a/src/locales/ar/messages.js +++ b/src/locales/ar/messages.js @@ -1 +1 @@ -/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"تم رفض الوصول إلى الكاميرا. لتمكين Shield Authenticator من استخدام الكاميرا ، من الضروري توفير إذن من خلال الإعدادات\",\"Add a new site\":\"أضف موقعًا جديدًا\",\"Backup your data\":\"النسخ الاحتياطي لبياناتك\",\"Cancel\":\"إلغاء\",\"Completed\":\"مكتمل\",\"Confirm deletion\":\"تأكيد الحذف\",\"Delete\":\"حذف\",\"Enable\":\"تمكين\",\"Enable camera\":\"تمكين الكاميرا\",\"Everything is prepared for you to add your sites\":\"كل شيء جاهز لإضافة مواقعك\",\"Fingerprint authentication\":\"مصادقة بصمات الأصابع\",\"Generate file\":\"إنشاء ملف\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"إذا كنت ترغب في استعادة المواقع المحفوظة من نسخة احتياطية ، يمكنك تحميل الملف المخزن على جهازك. من المهم ملاحظة أن المواقع الحالية ستبقى دون تغيير ولن يتم استبدالها\",\"Load backup sites\":\"تحميل مواقع النسخ الاحتياطي\",\"Login with your fingerprint\":\"تسجيل الدخول ببصمة إصبعك\",\"No access to camera\":\"لا يمكن الوصول إلى الكاميرا\",\"No results matching your search\":\"لا توجد نتائج مطابقة لبحثك\",\"Processing\":\"معالجة\",\"Restore sites\":\"استعادة المواقع\",\"Scan QR code\":\"مسح رمز QR\",\"Scan another code\":\"مسح رمز آخر\",\"Scan your website's 2FA QR code using your device's camera\":\"امسح رمز QR 2FA لموقع الويب الخاص بك باستخدام كاميرا جهازك\",\"Search...\":\"بحث...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"تأمين الوصول إلى 2FA المخزن باستخدام مصادقة بصمات جهازك\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"يمكن التعرف على رمز الاستجابة السريعة بسهولة بمجرد توجيه كاميرا جهازك إليه\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"للتأكد من عدم فقدان البيانات المحفوظة ، يمكنك تنزيل ملف من المواقع واستعادتها في وقت لاحق\",\"Token copied to clipboard\":\"تم نسخ الرمز المميز إلى الحافظة\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"موقع 1 معالج لـ \",[\"numberOfSites\"]],\"other\":[\"المواقع \",\"#\",\" المجهزة لـ \",[\"numberOfSites\"]]}]]}")}; \ No newline at end of file +/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"تم رفض الوصول إلى الكاميرا. لتمكين Shield Authenticator من استخدام الكاميرا ، من الضروري توفير إذن من خلال الإعدادات\",\"Add a new site\":\"أضف موقعًا جديدًا\",\"Add token manually\":\"أضف الرمز المميز يدويًا\",\"Backup your data\":\"النسخ الاحتياطي لبياناتك\",\"Cancel\":\"إلغاء\",\"Completed\":\"مكتمل\",\"Confirm deletion\":\"تأكيد الحذف\",\"Delete\":\"حذف\",\"Enable\":\"تمكين\",\"Enable camera\":\"تمكين الكاميرا\",\"Everything is prepared for you to add your sites\":\"كل شيء جاهز لإضافة مواقعك\",\"Fingerprint authentication\":\"مصادقة بصمات الأصابع\",\"Generate file\":\"إنشاء ملف\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"إذا كنت ترغب في استعادة المواقع المحفوظة من نسخة احتياطية ، يمكنك تحميل الملف المخزن على جهازك. من المهم ملاحظة أن المواقع الحالية ستبقى دون تغيير ولن يتم استبدالها\",\"Load backup sites\":\"تحميل مواقع النسخ الاحتياطي\",\"Login with your fingerprint\":\"تسجيل الدخول ببصمة إصبعك\",\"No access to camera\":\"لا يمكن الوصول إلى الكاميرا\",\"No results matching your search\":\"لا توجد نتائج مطابقة لبحثك\",\"Processing\":\"معالجة\",\"Restore sites\":\"استعادة المواقع\",\"Save site\":\"حفظ الموقع\",\"Scan QR code\":\"مسح رمز QR\",\"Scan another code\":\"مسح رمز آخر\",\"Search...\":\"بحث...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"تأمين الوصول إلى 2FA المخزن باستخدام مصادقة بصمات جهازك\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"يمكن التعرف على رمز الاستجابة السريعة بسهولة بمجرد توجيه كاميرا جهازك إليه\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"للتأكد من عدم فقدان البيانات المحفوظة ، يمكنك تنزيل ملف من المواقع واستعادتها في وقت لاحق\",\"Token\":\"الرمز المميز\",\"Token copied to clipboard\":\"تم نسخ الرمز المميز إلى الحافظة\",\"Token name\":\"اسم الرمز\",\"You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name\":\"يمكنك إما استخدام كاميرا جهازك لمسح رمز 2FA QR على الموقع ، أو إدخال الرمز المميز المقدم والاسم يدويًا\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"موقع 1 معالج لـ \",[\"numberOfSites\"]],\"other\":[\"المواقع \",\"#\",\" المجهزة لـ \",[\"numberOfSites\"]]}]]}")}; \ No newline at end of file diff --git a/src/locales/ar/messages.po b/src/locales/ar/messages.po index 0d38ca4..d81b177 100644 --- a/src/locales/ar/messages.po +++ b/src/locales/ar/messages.po @@ -13,21 +13,26 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: app/qr/index.tsx:63 +#: app/qr/index.tsx:92 msgid "Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings" msgstr "تم رفض الوصول إلى الكاميرا. لتمكين Shield Authenticator من استخدام الكاميرا ، من الضروري توفير إذن من خلال الإعدادات" -#: app/qr/index.tsx:53 -#: app/qr/index.tsx:80 +#: app/qr/index.tsx:82 +#: app/qr/index.tsx:117 #: src/components/AddSite.tsx:14 msgid "Add a new site" msgstr "أضف موقعًا جديدًا" +#: app/qr/index.tsx:230 +msgid "Add token manually" +msgstr "أضف الرمز المميز يدويًا" + #: app/settings/export.tsx:56 -#: src/components/TopBar.tsx:36 +#: src/components/TopBar.tsx:37 msgid "Backup your data" msgstr "النسخ الاحتياطي لبياناتك" +#: app/qr/index.tsx:146 #: src/components/SiteInfo.tsx:79 #: src/providers/FingerprintAuthProvider.tsx:39 msgid "Cancel" @@ -49,7 +54,7 @@ msgstr "حذف" msgid "Enable" msgstr "تمكين" -#: app/qr/index.tsx:72 +#: app/qr/index.tsx:101 msgid "Enable camera" msgstr "تمكين الكاميرا" @@ -77,7 +82,7 @@ msgstr "تحميل مواقع النسخ الاحتياطي" msgid "Login with your fingerprint" msgstr "تسجيل الدخول ببصمة إصبعك" -#: app/qr/index.tsx:55 +#: app/qr/index.tsx:84 msgid "No access to camera" msgstr "لا يمكن الوصول إلى الكاميرا" @@ -90,22 +95,22 @@ msgid "Processing" msgstr "معالجة" #: app/settings/import.tsx:58 -#: src/components/TopBar.tsx:41 +#: src/components/TopBar.tsx:42 msgid "Restore sites" msgstr "استعادة المواقع" -#: app/qr/index.tsx:110 +#: app/qr/index.tsx:195 +msgid "Save site" +msgstr "حفظ الموقع" + +#: app/qr/index.tsx:214 msgid "Scan QR code" msgstr "مسح رمز QR" -#: app/qr/info.tsx:62 +#: app/qr/info.tsx:63 msgid "Scan another code" msgstr "مسح رمز آخر" -#: app/qr/index.tsx:82 -msgid "Scan your website's 2FA QR code using your device's camera" -msgstr "امسح رمز QR 2FA لموقع الويب الخاص بك باستخدام كاميرا جهازك" - #: src/components/SitesList.tsx:80 msgid "Search..." msgstr "بحث..." @@ -114,7 +119,7 @@ msgstr "بحث..." msgid "Secure the access to your stored 2FA using your device fingerprint authentication" msgstr "تأمين الوصول إلى 2FA المخزن باستخدام مصادقة بصمات جهازك" -#: app/qr/index.tsx:96 +#: app/qr/index.tsx:136 msgid "The QR code can be easily recognized by simply pointing your device's camera at it" msgstr "يمكن التعرف على رمز الاستجابة السريعة بسهولة بمجرد توجيه كاميرا جهازك إليه" @@ -122,10 +127,22 @@ msgstr "يمكن التعرف على رمز الاستجابة السريعة ب msgid "To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time" msgstr "للتأكد من عدم فقدان البيانات المحفوظة ، يمكنك تنزيل ملف من المواقع واستعادتها في وقت لاحق" +#: app/qr/index.tsx:180 +msgid "Token" +msgstr "الرمز المميز" + #: src/components/CopyToClipboard.tsx:19 msgid "Token copied to clipboard" msgstr "تم نسخ الرمز المميز إلى الحافظة" +#: app/qr/index.tsx:166 +msgid "Token name" +msgstr "اسم الرمز" + +#: app/qr/index.tsx:121 +msgid "You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name" +msgstr "يمكنك إما استخدام كاميرا جهازك لمسح رمز 2FA QR على الموقع ، أو إدخال الرمز المميز المقدم والاسم يدويًا" + #: app/settings/import.tsx:81 msgid "{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}" msgstr "{sitesProcessed, plural, one {موقع 1 معالج لـ {numberOfSites}} other {المواقع # المجهزة لـ {numberOfSites}}}" diff --git a/src/locales/de/messages.js b/src/locales/de/messages.js index 3cd547e..b3268d8 100644 --- a/src/locales/de/messages.js +++ b/src/locales/de/messages.js @@ -1 +1 @@ -/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"Der Zugang zur Kamera wurde verweigert. Damit Shield Authenticator die Kamera verwenden kann, muss über die Einstellungen eine Berechtigung erteilt werden\",\"Add a new site\":\"Neue Seite hinzufügen\",\"Backup your data\":\"Sichern Sie Ihre Daten\",\"Cancel\":\"Stornieren\",\"Completed\":\"Abgeschlossen\",\"Confirm deletion\":\"Löschung bestätigen\",\"Delete\":\"Löschen\",\"Enable\":\"Aktivieren\",\"Enable camera\":\"Kamera aktivieren\",\"Everything is prepared for you to add your sites\":\"Alles ist darauf vorbereitet, dass Sie Ihre Websites hinzufügen\",\"Fingerprint authentication\":\"Fingerabdruckauthentifizierung\",\"Generate file\":\"Datei generieren\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"Wenn Sie Ihre gespeicherten Websites aus einer Sicherung wiederherstellen möchten, können Sie die auf Ihrem Gerät gespeicherte Datei laden. Es ist wichtig zu beachten, dass die vorhandenen Websites unverändert bleiben und nicht ersetzt werden\",\"Load backup sites\":\"Backup-Sites laden\",\"Login with your fingerprint\":\"Melden Sie sich mit Ihrem Fingerabdruck an\",\"No access to camera\":\"Kein Zugang zur Kamera\",\"No results matching your search\":\"Keine Ergebnisse, die zu Ihrer Suche passen\",\"Processing\":\"Verarbeitung\",\"Restore sites\":\"Websites wiederherstellen\",\"Scan QR code\":\"QR-Code scannen\",\"Scan another code\":\"Scannen Sie einen anderen Code\",\"Scan your website's 2FA QR code using your device's camera\":\"Scannen Sie den 2FA-QR-Code Ihrer Website mit der Kamera Ihres Geräts\",\"Search...\":\"Suche...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"Sichern Sie den Zugriff auf Ihre gespeicherte 2FA mithilfe der Fingerabdruckauthentifizierung Ihres Geräts\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"Der QR-Code kann leicht erkannt werden, indem einfach die Kamera Ihres Geräts darauf gerichtet wird\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"Um sicherzustellen, dass Sie Ihre gespeicherten Daten nicht verlieren, können Sie eine Datei der Websites herunterladen und zu einem späteren Zeitpunkt wiederherstellen\",\"Token copied to clipboard\":\"Token in Zwischenablage kopiert\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"Processed 1-Site von \",[\"numberOfSites\"]],\"other\":[\"Processed \",\"#\",\" Sites von \",[\"numberOfSites\"]]}]]}")}; \ No newline at end of file +/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"Der Zugang zur Kamera wurde verweigert. Damit Shield Authenticator die Kamera verwenden kann, muss über die Einstellungen eine Berechtigung erteilt werden\",\"Add a new site\":\"Neue Seite hinzufügen\",\"Add token manually\":\"Token manuell hinzufügen\",\"Backup your data\":\"Sichern Sie Ihre Daten\",\"Cancel\":\"Stornieren\",\"Completed\":\"Abgeschlossen\",\"Confirm deletion\":\"Löschung bestätigen\",\"Delete\":\"Löschen\",\"Enable\":\"Aktivieren\",\"Enable camera\":\"Kamera aktivieren\",\"Everything is prepared for you to add your sites\":\"Alles ist darauf vorbereitet, dass Sie Ihre Websites hinzufügen\",\"Fingerprint authentication\":\"Fingerabdruckauthentifizierung\",\"Generate file\":\"Datei generieren\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"Wenn Sie Ihre gespeicherten Websites aus einer Sicherung wiederherstellen möchten, können Sie die auf Ihrem Gerät gespeicherte Datei laden. Es ist wichtig zu beachten, dass die vorhandenen Websites unverändert bleiben und nicht ersetzt werden\",\"Load backup sites\":\"Backup-Sites laden\",\"Login with your fingerprint\":\"Melden Sie sich mit Ihrem Fingerabdruck an\",\"No access to camera\":\"Kein Zugang zur Kamera\",\"No results matching your search\":\"Keine Ergebnisse, die zu Ihrer Suche passen\",\"Processing\":\"Verarbeitung\",\"Restore sites\":\"Websites wiederherstellen\",\"Save site\":\"Seite speichern\",\"Scan QR code\":\"QR-Code scannen\",\"Scan another code\":\"Scannen Sie einen anderen Code\",\"Search...\":\"Suche...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"Sichern Sie den Zugriff auf Ihre gespeicherte 2FA mithilfe der Fingerabdruckauthentifizierung Ihres Geräts\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"Der QR-Code kann leicht erkannt werden, indem einfach die Kamera Ihres Geräts darauf gerichtet wird\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"Um sicherzustellen, dass Sie Ihre gespeicherten Daten nicht verlieren, können Sie eine Datei der Websites herunterladen und zu einem späteren Zeitpunkt wiederherstellen\",\"Token\":\"Token\",\"Token copied to clipboard\":\"Token in Zwischenablage kopiert\",\"Token name\":\"Token-Name\",\"You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name\":\"Sie können entweder die Kamera Ihres Geräts verwenden, um den 2FA-QR-Code auf der Site zu scannen, oder das bereitgestellte Token und einen Namen manuell eingeben\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"Processed 1-Site von \",[\"numberOfSites\"]],\"other\":[\"Processed \",\"#\",\" Sites von \",[\"numberOfSites\"]]}]]}")}; \ No newline at end of file diff --git a/src/locales/de/messages.po b/src/locales/de/messages.po index c0a8ec0..b425e1f 100644 --- a/src/locales/de/messages.po +++ b/src/locales/de/messages.po @@ -13,21 +13,26 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: app/qr/index.tsx:63 +#: app/qr/index.tsx:92 msgid "Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings" msgstr "Der Zugang zur Kamera wurde verweigert. Damit Shield Authenticator die Kamera verwenden kann, muss über die Einstellungen eine Berechtigung erteilt werden" -#: app/qr/index.tsx:53 -#: app/qr/index.tsx:80 +#: app/qr/index.tsx:82 +#: app/qr/index.tsx:117 #: src/components/AddSite.tsx:14 msgid "Add a new site" msgstr "Neue Seite hinzufügen" +#: app/qr/index.tsx:230 +msgid "Add token manually" +msgstr "Token manuell hinzufügen" + #: app/settings/export.tsx:56 -#: src/components/TopBar.tsx:36 +#: src/components/TopBar.tsx:37 msgid "Backup your data" msgstr "Sichern Sie Ihre Daten" +#: app/qr/index.tsx:146 #: src/components/SiteInfo.tsx:79 #: src/providers/FingerprintAuthProvider.tsx:39 msgid "Cancel" @@ -49,7 +54,7 @@ msgstr "Löschen" msgid "Enable" msgstr "Aktivieren" -#: app/qr/index.tsx:72 +#: app/qr/index.tsx:101 msgid "Enable camera" msgstr "Kamera aktivieren" @@ -77,7 +82,7 @@ msgstr "Backup-Sites laden" msgid "Login with your fingerprint" msgstr "Melden Sie sich mit Ihrem Fingerabdruck an" -#: app/qr/index.tsx:55 +#: app/qr/index.tsx:84 msgid "No access to camera" msgstr "Kein Zugang zur Kamera" @@ -90,22 +95,22 @@ msgid "Processing" msgstr "Verarbeitung" #: app/settings/import.tsx:58 -#: src/components/TopBar.tsx:41 +#: src/components/TopBar.tsx:42 msgid "Restore sites" msgstr "Websites wiederherstellen" -#: app/qr/index.tsx:110 +#: app/qr/index.tsx:195 +msgid "Save site" +msgstr "Seite speichern" + +#: app/qr/index.tsx:214 msgid "Scan QR code" msgstr "QR-Code scannen" -#: app/qr/info.tsx:62 +#: app/qr/info.tsx:63 msgid "Scan another code" msgstr "Scannen Sie einen anderen Code" -#: app/qr/index.tsx:82 -msgid "Scan your website's 2FA QR code using your device's camera" -msgstr "Scannen Sie den 2FA-QR-Code Ihrer Website mit der Kamera Ihres Geräts" - #: src/components/SitesList.tsx:80 msgid "Search..." msgstr "Suche..." @@ -114,7 +119,7 @@ msgstr "Suche..." msgid "Secure the access to your stored 2FA using your device fingerprint authentication" msgstr "Sichern Sie den Zugriff auf Ihre gespeicherte 2FA mithilfe der Fingerabdruckauthentifizierung Ihres Geräts" -#: app/qr/index.tsx:96 +#: app/qr/index.tsx:136 msgid "The QR code can be easily recognized by simply pointing your device's camera at it" msgstr "Der QR-Code kann leicht erkannt werden, indem einfach die Kamera Ihres Geräts darauf gerichtet wird" @@ -122,10 +127,22 @@ msgstr "Der QR-Code kann leicht erkannt werden, indem einfach die Kamera Ihres G msgid "To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time" msgstr "Um sicherzustellen, dass Sie Ihre gespeicherten Daten nicht verlieren, können Sie eine Datei der Websites herunterladen und zu einem späteren Zeitpunkt wiederherstellen" +#: app/qr/index.tsx:180 +msgid "Token" +msgstr "Token" + #: src/components/CopyToClipboard.tsx:19 msgid "Token copied to clipboard" msgstr "Token in Zwischenablage kopiert" +#: app/qr/index.tsx:166 +msgid "Token name" +msgstr "Token-Name" + +#: app/qr/index.tsx:121 +msgid "You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name" +msgstr "Sie können entweder die Kamera Ihres Geräts verwenden, um den 2FA-QR-Code auf der Site zu scannen, oder das bereitgestellte Token und einen Namen manuell eingeben" + #: app/settings/import.tsx:81 msgid "{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}" msgstr "{sitesProcessed, plural, one {Processed 1-Site von {numberOfSites}} other {Processed # Sites von {numberOfSites}}}" diff --git a/src/locales/en/messages.js b/src/locales/en/messages.js index 254d5d0..4518660 100644 --- a/src/locales/en/messages.js +++ b/src/locales/en/messages.js @@ -1 +1 @@ -/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\",\"Add a new site\":\"Add a new site\",\"Backup your data\":\"Backup your data\",\"Cancel\":\"Cancel\",\"Completed\":\"Completed\",\"Confirm deletion\":\"Confirm deletion\",\"Delete\":\"Delete\",\"Enable\":\"Enable\",\"Enable camera\":\"Enable camera\",\"Everything is prepared for you to add your sites\":\"Everything is prepared for you to add your sites\",\"Fingerprint authentication\":\"Fingerprint authentication\",\"Generate file\":\"Generate file\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\",\"Load backup sites\":\"Load backup sites\",\"Login with your fingerprint\":\"Login with your fingerprint\",\"No access to camera\":\"No access to camera\",\"No results matching your search\":\"No results matching your search\",\"Processing\":\"Processing\",\"Restore sites\":\"Restore sites\",\"Scan QR code\":\"Scan QR code\",\"Scan another code\":\"Scan another code\",\"Scan your website's 2FA QR code using your device's camera\":\"Scan your website's 2FA QR code using your device's camera\",\"Search...\":\"Search...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"Secure the access to your stored 2FA using your device fingerprint authentication\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"The QR code can be easily recognized by simply pointing your device's camera at it\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\",\"Token copied to clipboard\":\"Token copied to clipboard\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"Processed 1 site of \",[\"numberOfSites\"]],\"other\":[\"Processed \",\"#\",\" sites of \",[\"numberOfSites\"]]}]]}")}; \ No newline at end of file +/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\",\"Add a new site\":\"Add a new site\",\"Add token manually\":\"Add token manually\",\"Backup your data\":\"Backup your data\",\"Cancel\":\"Cancel\",\"Completed\":\"Completed\",\"Confirm deletion\":\"Confirm deletion\",\"Delete\":\"Delete\",\"Enable\":\"Enable\",\"Enable camera\":\"Enable camera\",\"Everything is prepared for you to add your sites\":\"Everything is prepared for you to add your sites\",\"Fingerprint authentication\":\"Fingerprint authentication\",\"Generate file\":\"Generate file\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\",\"Load backup sites\":\"Load backup sites\",\"Login with your fingerprint\":\"Login with your fingerprint\",\"No access to camera\":\"No access to camera\",\"No results matching your search\":\"No results matching your search\",\"Processing\":\"Processing\",\"Restore sites\":\"Restore sites\",\"Save site\":\"Save site\",\"Scan QR code\":\"Scan QR code\",\"Scan another code\":\"Scan another code\",\"Search...\":\"Search...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"Secure the access to your stored 2FA using your device fingerprint authentication\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"The QR code can be easily recognized by simply pointing your device's camera at it\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\",\"Token\":\"Token\",\"Token copied to clipboard\":\"Token copied to clipboard\",\"Token name\":\"Token name\",\"You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name\":\"You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"Processed 1 site of \",[\"numberOfSites\"]],\"other\":[\"Processed \",\"#\",\" sites of \",[\"numberOfSites\"]]}]]}")}; \ No newline at end of file diff --git a/src/locales/en/messages.po b/src/locales/en/messages.po index 8d0fc7e..2f1604b 100644 --- a/src/locales/en/messages.po +++ b/src/locales/en/messages.po @@ -13,21 +13,26 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: app/qr/index.tsx:63 +#: app/qr/index.tsx:92 msgid "Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings" msgstr "" -#: app/qr/index.tsx:53 -#: app/qr/index.tsx:80 +#: app/qr/index.tsx:82 +#: app/qr/index.tsx:117 #: src/components/AddSite.tsx:14 msgid "Add a new site" msgstr "" +#: app/qr/index.tsx:230 +msgid "Add token manually" +msgstr "" + #: app/settings/export.tsx:56 -#: src/components/TopBar.tsx:36 +#: src/components/TopBar.tsx:37 msgid "Backup your data" msgstr "" +#: app/qr/index.tsx:146 #: src/components/SiteInfo.tsx:79 #: src/providers/FingerprintAuthProvider.tsx:39 msgid "Cancel" @@ -49,7 +54,7 @@ msgstr "" msgid "Enable" msgstr "" -#: app/qr/index.tsx:72 +#: app/qr/index.tsx:101 msgid "Enable camera" msgstr "" @@ -77,7 +82,7 @@ msgstr "" msgid "Login with your fingerprint" msgstr "" -#: app/qr/index.tsx:55 +#: app/qr/index.tsx:84 msgid "No access to camera" msgstr "" @@ -90,20 +95,20 @@ msgid "Processing" msgstr "" #: app/settings/import.tsx:58 -#: src/components/TopBar.tsx:41 +#: src/components/TopBar.tsx:42 msgid "Restore sites" msgstr "" -#: app/qr/index.tsx:110 -msgid "Scan QR code" +#: app/qr/index.tsx:195 +msgid "Save site" msgstr "" -#: app/qr/info.tsx:62 -msgid "Scan another code" +#: app/qr/index.tsx:214 +msgid "Scan QR code" msgstr "" -#: app/qr/index.tsx:82 -msgid "Scan your website's 2FA QR code using your device's camera" +#: app/qr/info.tsx:63 +msgid "Scan another code" msgstr "" #: src/components/SitesList.tsx:80 @@ -114,7 +119,7 @@ msgstr "" msgid "Secure the access to your stored 2FA using your device fingerprint authentication" msgstr "" -#: app/qr/index.tsx:96 +#: app/qr/index.tsx:136 msgid "The QR code can be easily recognized by simply pointing your device's camera at it" msgstr "" @@ -122,10 +127,22 @@ msgstr "" msgid "To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time" msgstr "" +#: app/qr/index.tsx:180 +msgid "Token" +msgstr "" + #: src/components/CopyToClipboard.tsx:19 msgid "Token copied to clipboard" msgstr "" +#: app/qr/index.tsx:166 +msgid "Token name" +msgstr "" + +#: app/qr/index.tsx:121 +msgid "You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name" +msgstr "" + #: app/settings/import.tsx:81 msgid "{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}" msgstr "" diff --git a/src/locales/es/messages.js b/src/locales/es/messages.js index 9f5cdf1..0daa28b 100644 --- a/src/locales/es/messages.js +++ b/src/locales/es/messages.js @@ -1 +1 @@ -/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"Se denegó el acceso a la cámara. Para permitir que Shield Authenticator utilice la cámara, es necesario proporcionar permiso a través de la configuración\",\"Add a new site\":\"Añadir sitio\",\"Backup your data\":\"Copia de seguridad\",\"Cancel\":\"Cancelar\",\"Completed\":\"Completado\",\"Confirm deletion\":\"Confirmar borrado\",\"Delete\":\"Borrar\",\"Enable\":\"Activar\",\"Enable camera\":\"Habilitar cámara\",\"Everything is prepared for you to add your sites\":\"Todo está listo para que añadas tus sitios\",\"Fingerprint authentication\":\"Autenticación por huella dactilar\",\"Generate file\":\"Generar fichero\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"Si quieres recuperar tu copia de seguridad, puedes cargar el fichero guardado en tu dispositivo. Es importante que sepas que los sitios existentes no serán reemplazados por los importados\",\"Load backup sites\":\"Cargar copia\",\"Login with your fingerprint\":\"Accede mediante tu huella dactilar\",\"No access to camera\":\"No se puede acceder a la cámara\",\"No results matching your search\":\"No hay resultados para tu búsqueda\",\"Processing\":\"Procesando\",\"Restore sites\":\"Recuperar datos\",\"Scan QR code\":\"Escanear código QR\",\"Scan another code\":\"Escanear otro código\",\"Scan your website's 2FA QR code using your device's camera\":\"Escanea el código QR 2FA de tu web usando la cámara\",\"Search...\":\"Buscar...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"Segura el acceso a tus claves 2FA usando la autenticación por huella dactilar de tu dispositivo\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"El código QR se puede reconocer simplemente apuntado a él la camara\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"Para asegurarse de que no pierdas tus datos guardados, puedes descargarte un fichero con los sitios y recuperarlos más tarde\",\"Token copied to clipboard\":\"Tolen copiado\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"Procesado 1 sitio de \",[\"numberOfSites\"]],\"other\":[\"Procesados \",\"#\",\" sitios de \",[\"numberOfSites\"]]}]]}")}; \ No newline at end of file +/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"Se denegó el acceso a la cámara. Para permitir que Shield Authenticator utilice la cámara, es necesario proporcionar permiso a través de la configuración\",\"Add a new site\":\"Añadir sitio\",\"Add token manually\":\"Agregar token manualmente\",\"Backup your data\":\"Copia de seguridad\",\"Cancel\":\"Cancelar\",\"Completed\":\"Completado\",\"Confirm deletion\":\"Confirmar borrado\",\"Delete\":\"Borrar\",\"Enable\":\"Activar\",\"Enable camera\":\"Habilitar cámara\",\"Everything is prepared for you to add your sites\":\"Todo está listo para que añadas tus sitios\",\"Fingerprint authentication\":\"Autenticación por huella dactilar\",\"Generate file\":\"Generar fichero\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"Si quieres recuperar tu copia de seguridad, puedes cargar el fichero guardado en tu dispositivo. Es importante que sepas que los sitios existentes no serán reemplazados por los importados\",\"Load backup sites\":\"Cargar copia\",\"Login with your fingerprint\":\"Accede mediante tu huella dactilar\",\"No access to camera\":\"No se puede acceder a la cámara\",\"No results matching your search\":\"No hay resultados para tu búsqueda\",\"Processing\":\"Procesando\",\"Restore sites\":\"Recuperar datos\",\"Save site\":\"Guardar sitio\",\"Scan QR code\":\"Escanear código QR\",\"Scan another code\":\"Escanear otro código\",\"Search...\":\"Buscar...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"Segura el acceso a tus claves 2FA usando la autenticación por huella dactilar de tu dispositivo\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"El código QR se puede reconocer simplemente apuntado a él la camara\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"Para asegurarse de que no pierdas tus datos guardados, puedes descargarte un fichero con los sitios y recuperarlos más tarde\",\"Token\":\"Token\",\"Token copied to clipboard\":\"Tolen copiado\",\"Token name\":\"Nombre del token\",\"You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name\":\"Puede usar la cámara de su dispositivo para escanear el código QR 2FA en el sitio, o ingresar manualmente el token que te faciliten y un nombre\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"Procesado 1 sitio de \",[\"numberOfSites\"]],\"other\":[\"Procesados \",\"#\",\" sitios de \",[\"numberOfSites\"]]}]]}")}; \ No newline at end of file diff --git a/src/locales/es/messages.po b/src/locales/es/messages.po index 7863b6f..62602b2 100644 --- a/src/locales/es/messages.po +++ b/src/locales/es/messages.po @@ -13,21 +13,26 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: app/qr/index.tsx:63 +#: app/qr/index.tsx:92 msgid "Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings" msgstr "Se denegó el acceso a la cámara. Para permitir que Shield Authenticator utilice la cámara, es necesario proporcionar permiso a través de la configuración" -#: app/qr/index.tsx:53 -#: app/qr/index.tsx:80 +#: app/qr/index.tsx:82 +#: app/qr/index.tsx:117 #: src/components/AddSite.tsx:14 msgid "Add a new site" msgstr "Añadir sitio" +#: app/qr/index.tsx:230 +msgid "Add token manually" +msgstr "Agregar token manualmente" + #: app/settings/export.tsx:56 -#: src/components/TopBar.tsx:36 +#: src/components/TopBar.tsx:37 msgid "Backup your data" msgstr "Copia de seguridad" +#: app/qr/index.tsx:146 #: src/components/SiteInfo.tsx:79 #: src/providers/FingerprintAuthProvider.tsx:39 msgid "Cancel" @@ -49,7 +54,7 @@ msgstr "Borrar" msgid "Enable" msgstr "Activar" -#: app/qr/index.tsx:72 +#: app/qr/index.tsx:101 msgid "Enable camera" msgstr "Habilitar cámara" @@ -77,7 +82,7 @@ msgstr "Cargar copia" msgid "Login with your fingerprint" msgstr "Accede mediante tu huella dactilar" -#: app/qr/index.tsx:55 +#: app/qr/index.tsx:84 msgid "No access to camera" msgstr "No se puede acceder a la cámara" @@ -90,22 +95,22 @@ msgid "Processing" msgstr "Procesando" #: app/settings/import.tsx:58 -#: src/components/TopBar.tsx:41 +#: src/components/TopBar.tsx:42 msgid "Restore sites" msgstr "Recuperar datos" -#: app/qr/index.tsx:110 +#: app/qr/index.tsx:195 +msgid "Save site" +msgstr "Guardar sitio" + +#: app/qr/index.tsx:214 msgid "Scan QR code" msgstr "Escanear código QR" -#: app/qr/info.tsx:62 +#: app/qr/info.tsx:63 msgid "Scan another code" msgstr "Escanear otro código" -#: app/qr/index.tsx:82 -msgid "Scan your website's 2FA QR code using your device's camera" -msgstr "Escanea el código QR 2FA de tu web usando la cámara" - #: src/components/SitesList.tsx:80 msgid "Search..." msgstr "Buscar..." @@ -114,7 +119,7 @@ msgstr "Buscar..." msgid "Secure the access to your stored 2FA using your device fingerprint authentication" msgstr "Segura el acceso a tus claves 2FA usando la autenticación por huella dactilar de tu dispositivo" -#: app/qr/index.tsx:96 +#: app/qr/index.tsx:136 msgid "The QR code can be easily recognized by simply pointing your device's camera at it" msgstr "El código QR se puede reconocer simplemente apuntado a él la camara" @@ -122,10 +127,22 @@ msgstr "El código QR se puede reconocer simplemente apuntado a él la camara" msgid "To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time" msgstr "Para asegurarse de que no pierdas tus datos guardados, puedes descargarte un fichero con los sitios y recuperarlos más tarde" +#: app/qr/index.tsx:180 +msgid "Token" +msgstr "Token" + #: src/components/CopyToClipboard.tsx:19 msgid "Token copied to clipboard" msgstr "Tolen copiado" +#: app/qr/index.tsx:166 +msgid "Token name" +msgstr "Nombre del token" + +#: app/qr/index.tsx:121 +msgid "You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name" +msgstr "Puede usar la cámara de su dispositivo para escanear el código QR 2FA en el sitio, o ingresar manualmente el token que te faciliten y un nombre" + #: app/settings/import.tsx:81 msgid "{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}" msgstr "{sitesProcessed, plural, one {Procesado 1 sitio de {numberOfSites}} other {Procesados # sitios de {numberOfSites}}}" diff --git a/src/locales/fr/messages.js b/src/locales/fr/messages.js index a22b422..38258c2 100644 --- a/src/locales/fr/messages.js +++ b/src/locales/fr/messages.js @@ -1 +1 @@ -/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"L'accès à la caméra a été refusé. Pour permettre à Shield Authenticator d'utiliser la caméra, il est nécessaire de fournir une autorisation via les paramètres\",\"Add a new site\":\"Ajouter un nouveau site\",\"Backup your data\":\"Sauvegardez vos données\",\"Cancel\":\"Annuler\",\"Completed\":\"Terminé\",\"Confirm deletion\":\"Confirmer la suppression\",\"Delete\":\"Supprimer\",\"Enable\":\"Activer\",\"Enable camera\":\"Activer la caméra\",\"Everything is prepared for you to add your sites\":\"Tout est préparé pour que vous ajoutiez vos sites\",\"Fingerprint authentication\":\"Authentification des empreintes digitales\",\"Generate file\":\"Générer un fichier\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"Si vous souhaitez restaurer vos sites enregistrés à partir d'une sauvegarde, vous pouvez charger le fichier stocké sur votre appareil. Il est important de noter que les sites existants resteront inchangés et ne seront pas remplacés\",\"Load backup sites\":\"Charger des sites de sauvegarde\",\"Login with your fingerprint\":\"Connectez-vous avec votre empreinte digitale\",\"No access to camera\":\"Pas d'accès à la caméra\",\"No results matching your search\":\"Aucun résultat correspondant à votre recherche\",\"Processing\":\"Traitement\",\"Restore sites\":\"Restaurer des sites\",\"Scan QR code\":\"Numériser le code QR\",\"Scan another code\":\"Analyser un autre code\",\"Scan your website's 2FA QR code using your device's camera\":\"Analysez le code QR 2FA de votre site Web à l'aide de la caméra de votre appareil\",\"Search...\":\"Recherche...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"Fixez l'accès à votre 2FA stocké à l'aide de l'authentification des empreintes digitales de votre appareil\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"Le code QR peut être facilement reconnu en pointant simplement la caméra de votre appareil vers celui-ci\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"Pour vous assurer de ne pas perdre vos données enregistrées, vous pouvez télécharger un fichier des sites et les restaurer ultérieurement\",\"Token copied to clipboard\":\"Jeton copié dans le presse-papiers\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"Site traité 1 de \",[\"numberOfSites\"]],\"other\":[\"Sites transformés \",\"#\",\" de \",[\"numberOfSites\"]]}]]}")}; \ No newline at end of file +/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"L'accès à la caméra a été refusé. Pour permettre à Shield Authenticator d'utiliser la caméra, il est nécessaire de fournir une autorisation via les paramètres\",\"Add a new site\":\"Ajouter un nouveau site\",\"Add token manually\":\"Ajouter un jeton manuellement\",\"Backup your data\":\"Sauvegardez vos données\",\"Cancel\":\"Annuler\",\"Completed\":\"Terminé\",\"Confirm deletion\":\"Confirmer la suppression\",\"Delete\":\"Supprimer\",\"Enable\":\"Activer\",\"Enable camera\":\"Activer la caméra\",\"Everything is prepared for you to add your sites\":\"Tout est préparé pour que vous ajoutiez vos sites\",\"Fingerprint authentication\":\"Authentification des empreintes digitales\",\"Generate file\":\"Générer un fichier\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"Si vous souhaitez restaurer vos sites enregistrés à partir d'une sauvegarde, vous pouvez charger le fichier stocké sur votre appareil. Il est important de noter que les sites existants resteront inchangés et ne seront pas remplacés\",\"Load backup sites\":\"Charger des sites de sauvegarde\",\"Login with your fingerprint\":\"Connectez-vous avec votre empreinte digitale\",\"No access to camera\":\"Pas d'accès à la caméra\",\"No results matching your search\":\"Aucun résultat correspondant à votre recherche\",\"Processing\":\"Traitement\",\"Restore sites\":\"Restaurer des sites\",\"Save site\":\"Enregistrer le site\",\"Scan QR code\":\"Numériser le code QR\",\"Scan another code\":\"Analyser un autre code\",\"Search...\":\"Recherche...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"Fixez l'accès à votre 2FA stocké à l'aide de l'authentification des empreintes digitales de votre appareil\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"Le code QR peut être facilement reconnu en pointant simplement la caméra de votre appareil vers celui-ci\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"Pour vous assurer de ne pas perdre vos données enregistrées, vous pouvez télécharger un fichier des sites et les restaurer ultérieurement\",\"Token\":\"Jeton\",\"Token copied to clipboard\":\"Jeton copié dans le presse-papiers\",\"Token name\":\"Nom du jeton\",\"You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name\":\"Vous pouvez soit utiliser l'appareil photo de votre appareil pour analyser le code QR 2FA sur le site, soit saisir manuellement le jeton fourni et un nom\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"Site traité 1 de \",[\"numberOfSites\"]],\"other\":[\"Sites transformés \",\"#\",\" de \",[\"numberOfSites\"]]}]]}")}; \ No newline at end of file diff --git a/src/locales/fr/messages.po b/src/locales/fr/messages.po index a3f5390..44a2be1 100644 --- a/src/locales/fr/messages.po +++ b/src/locales/fr/messages.po @@ -13,21 +13,26 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: app/qr/index.tsx:63 +#: app/qr/index.tsx:92 msgid "Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings" msgstr "L'accès à la caméra a été refusé. Pour permettre à Shield Authenticator d'utiliser la caméra, il est nécessaire de fournir une autorisation via les paramètres" -#: app/qr/index.tsx:53 -#: app/qr/index.tsx:80 +#: app/qr/index.tsx:82 +#: app/qr/index.tsx:117 #: src/components/AddSite.tsx:14 msgid "Add a new site" msgstr "Ajouter un nouveau site" +#: app/qr/index.tsx:230 +msgid "Add token manually" +msgstr "Ajouter un jeton manuellement" + #: app/settings/export.tsx:56 -#: src/components/TopBar.tsx:36 +#: src/components/TopBar.tsx:37 msgid "Backup your data" msgstr "Sauvegardez vos données" +#: app/qr/index.tsx:146 #: src/components/SiteInfo.tsx:79 #: src/providers/FingerprintAuthProvider.tsx:39 msgid "Cancel" @@ -49,7 +54,7 @@ msgstr "Supprimer" msgid "Enable" msgstr "Activer" -#: app/qr/index.tsx:72 +#: app/qr/index.tsx:101 msgid "Enable camera" msgstr "Activer la caméra" @@ -77,7 +82,7 @@ msgstr "Charger des sites de sauvegarde" msgid "Login with your fingerprint" msgstr "Connectez-vous avec votre empreinte digitale" -#: app/qr/index.tsx:55 +#: app/qr/index.tsx:84 msgid "No access to camera" msgstr "Pas d'accès à la caméra" @@ -90,22 +95,22 @@ msgid "Processing" msgstr "Traitement" #: app/settings/import.tsx:58 -#: src/components/TopBar.tsx:41 +#: src/components/TopBar.tsx:42 msgid "Restore sites" msgstr "Restaurer des sites" -#: app/qr/index.tsx:110 +#: app/qr/index.tsx:195 +msgid "Save site" +msgstr "Enregistrer le site" + +#: app/qr/index.tsx:214 msgid "Scan QR code" msgstr "Numériser le code QR" -#: app/qr/info.tsx:62 +#: app/qr/info.tsx:63 msgid "Scan another code" msgstr "Analyser un autre code" -#: app/qr/index.tsx:82 -msgid "Scan your website's 2FA QR code using your device's camera" -msgstr "Analysez le code QR 2FA de votre site Web à l'aide de la caméra de votre appareil" - #: src/components/SitesList.tsx:80 msgid "Search..." msgstr "Recherche..." @@ -114,7 +119,7 @@ msgstr "Recherche..." msgid "Secure the access to your stored 2FA using your device fingerprint authentication" msgstr "Fixez l'accès à votre 2FA stocké à l'aide de l'authentification des empreintes digitales de votre appareil" -#: app/qr/index.tsx:96 +#: app/qr/index.tsx:136 msgid "The QR code can be easily recognized by simply pointing your device's camera at it" msgstr "Le code QR peut être facilement reconnu en pointant simplement la caméra de votre appareil vers celui-ci" @@ -122,10 +127,22 @@ msgstr "Le code QR peut être facilement reconnu en pointant simplement la camé msgid "To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time" msgstr "Pour vous assurer de ne pas perdre vos données enregistrées, vous pouvez télécharger un fichier des sites et les restaurer ultérieurement" +#: app/qr/index.tsx:180 +msgid "Token" +msgstr "Jeton" + #: src/components/CopyToClipboard.tsx:19 msgid "Token copied to clipboard" msgstr "Jeton copié dans le presse-papiers" +#: app/qr/index.tsx:166 +msgid "Token name" +msgstr "Nom du jeton" + +#: app/qr/index.tsx:121 +msgid "You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name" +msgstr "Vous pouvez soit utiliser l'appareil photo de votre appareil pour analyser le code QR 2FA sur le site, soit saisir manuellement le jeton fourni et un nom" + #: app/settings/import.tsx:81 msgid "{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}" msgstr "{sitesProcessed, plural, one {Site traité 1 de {numberOfSites}} other {Sites transformés # de {numberOfSites}}}" diff --git a/src/locales/it/messages.js b/src/locales/it/messages.js index 5243d3a..fb8f4a0 100644 --- a/src/locales/it/messages.js +++ b/src/locales/it/messages.js @@ -1 +1 @@ -/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"L'accesso alla fotocamera è stato negato. Per abilitare Shield Authenticator a utilizzare la fotocamera, è necessario fornire l'autorizzazione attraverso le impostazioni\",\"Add a new site\":\"Nuovo sito\",\"Backup your data\":\"Eseguire il backup dei dati\",\"Cancel\":\"Annulla\",\"Completed\":\"Completato\",\"Confirm deletion\":\"Conferma l'eliminazione\",\"Delete\":\"Elimina\",\"Enable\":\"Abilitare\",\"Enable camera\":\"Abilita la fotocamera\",\"Everything is prepared for you to add your sites\":\"Tutto è pronto per aggiungere i tuoi siti\",\"Fingerprint authentication\":\"Autenticazione delle impronte digitali\",\"Generate file\":\"Genera file\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"Se si desidera ripristinare i siti salvati da un backup, è possibile caricare il file memorizzato sul dispositivo. È importante notare che i siti esistenti rimarranno invariati e non verranno sostituiti\",\"Load backup sites\":\"Carica siti di backup\",\"Login with your fingerprint\":\"Accedi con la tua impronta digitale\",\"No access to camera\":\"Nessun accesso alla fotocamera\",\"No results matching your search\":\"Nessun risultato corrispondente alla tua ricerca\",\"Processing\":\"Elaborazione\",\"Restore sites\":\"Ripristina siti\",\"Scan QR code\":\"Scansione codice QR\",\"Scan another code\":\"Scansiona un altro codice\",\"Scan your website's 2FA QR code using your device's camera\":\"Scansiona il codice QR 2FA del tuo sito Web utilizzando la fotocamera del tuo dispositivo\",\"Search...\":\"Ricerca...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"Proteggi l'accesso al 2FA memorizzato utilizzando l'autenticazione delle impronte digitali del dispositivo\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"Il codice QR può essere facilmente riconosciuto semplicemente puntando la fotocamera del dispositivo verso di esso\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"Per assicurarti di non perdere i dati salvati, puoi scaricare un file dei siti e ripristinarli in un secondo momento\",\"Token copied to clipboard\":\"Token copiato negli Appunti\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"1 sito elaborato di \",[\"numberOfSites\"]],\"other\":[\"#\",\" siti trasformati di \",[\"numberOfSites\"]]}]]}")}; \ No newline at end of file +/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"L'accesso alla fotocamera è stato negato. Per abilitare Shield Authenticator a utilizzare la fotocamera, è necessario fornire l'autorizzazione attraverso le impostazioni\",\"Add a new site\":\"Nuovo sito\",\"Add token manually\":\"Aggiungi token manualmente\",\"Backup your data\":\"Eseguire il backup dei dati\",\"Cancel\":\"Annulla\",\"Completed\":\"Completato\",\"Confirm deletion\":\"Conferma l'eliminazione\",\"Delete\":\"Elimina\",\"Enable\":\"Abilitare\",\"Enable camera\":\"Abilita la fotocamera\",\"Everything is prepared for you to add your sites\":\"Tutto è pronto per aggiungere i tuoi siti\",\"Fingerprint authentication\":\"Autenticazione delle impronte digitali\",\"Generate file\":\"Genera file\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"Se si desidera ripristinare i siti salvati da un backup, è possibile caricare il file memorizzato sul dispositivo. È importante notare che i siti esistenti rimarranno invariati e non verranno sostituiti\",\"Load backup sites\":\"Carica siti di backup\",\"Login with your fingerprint\":\"Accedi con la tua impronta digitale\",\"No access to camera\":\"Nessun accesso alla fotocamera\",\"No results matching your search\":\"Nessun risultato corrispondente alla tua ricerca\",\"Processing\":\"Elaborazione\",\"Restore sites\":\"Ripristina siti\",\"Save site\":\"Salva sito\",\"Scan QR code\":\"Scansione codice QR\",\"Scan another code\":\"Scansiona un altro codice\",\"Search...\":\"Ricerca...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"Proteggi l'accesso al 2FA memorizzato utilizzando l'autenticazione delle impronte digitali del dispositivo\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"Il codice QR può essere facilmente riconosciuto semplicemente puntando la fotocamera del dispositivo verso di esso\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"Per assicurarti di non perdere i dati salvati, puoi scaricare un file dei siti e ripristinarli in un secondo momento\",\"Token\":\"Token\",\"Token copied to clipboard\":\"Token copiato negli Appunti\",\"Token name\":\"Nome token\",\"You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name\":\"È possibile utilizzare la fotocamera del dispositivo per scansionare il codice QR 2FA sul sito oppure inserire manualmente il token fornito e un nome\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"1 sito elaborato di \",[\"numberOfSites\"]],\"other\":[\"#\",\" siti trasformati di \",[\"numberOfSites\"]]}]]}")}; \ No newline at end of file diff --git a/src/locales/it/messages.po b/src/locales/it/messages.po index 7910eee..5e8d073 100644 --- a/src/locales/it/messages.po +++ b/src/locales/it/messages.po @@ -13,21 +13,26 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: app/qr/index.tsx:63 +#: app/qr/index.tsx:92 msgid "Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings" msgstr "L'accesso alla fotocamera è stato negato. Per abilitare Shield Authenticator a utilizzare la fotocamera, è necessario fornire l'autorizzazione attraverso le impostazioni" -#: app/qr/index.tsx:53 -#: app/qr/index.tsx:80 +#: app/qr/index.tsx:82 +#: app/qr/index.tsx:117 #: src/components/AddSite.tsx:14 msgid "Add a new site" msgstr "Nuovo sito" +#: app/qr/index.tsx:230 +msgid "Add token manually" +msgstr "Aggiungi token manualmente" + #: app/settings/export.tsx:56 -#: src/components/TopBar.tsx:36 +#: src/components/TopBar.tsx:37 msgid "Backup your data" msgstr "Eseguire il backup dei dati" +#: app/qr/index.tsx:146 #: src/components/SiteInfo.tsx:79 #: src/providers/FingerprintAuthProvider.tsx:39 msgid "Cancel" @@ -49,7 +54,7 @@ msgstr "Elimina" msgid "Enable" msgstr "Abilitare" -#: app/qr/index.tsx:72 +#: app/qr/index.tsx:101 msgid "Enable camera" msgstr "Abilita la fotocamera" @@ -77,7 +82,7 @@ msgstr "Carica siti di backup" msgid "Login with your fingerprint" msgstr "Accedi con la tua impronta digitale" -#: app/qr/index.tsx:55 +#: app/qr/index.tsx:84 msgid "No access to camera" msgstr "Nessun accesso alla fotocamera" @@ -90,22 +95,22 @@ msgid "Processing" msgstr "Elaborazione" #: app/settings/import.tsx:58 -#: src/components/TopBar.tsx:41 +#: src/components/TopBar.tsx:42 msgid "Restore sites" msgstr "Ripristina siti" -#: app/qr/index.tsx:110 +#: app/qr/index.tsx:195 +msgid "Save site" +msgstr "Salva sito" + +#: app/qr/index.tsx:214 msgid "Scan QR code" msgstr "Scansione codice QR" -#: app/qr/info.tsx:62 +#: app/qr/info.tsx:63 msgid "Scan another code" msgstr "Scansiona un altro codice" -#: app/qr/index.tsx:82 -msgid "Scan your website's 2FA QR code using your device's camera" -msgstr "Scansiona il codice QR 2FA del tuo sito Web utilizzando la fotocamera del tuo dispositivo" - #: src/components/SitesList.tsx:80 msgid "Search..." msgstr "Ricerca..." @@ -114,7 +119,7 @@ msgstr "Ricerca..." msgid "Secure the access to your stored 2FA using your device fingerprint authentication" msgstr "Proteggi l'accesso al 2FA memorizzato utilizzando l'autenticazione delle impronte digitali del dispositivo" -#: app/qr/index.tsx:96 +#: app/qr/index.tsx:136 msgid "The QR code can be easily recognized by simply pointing your device's camera at it" msgstr "Il codice QR può essere facilmente riconosciuto semplicemente puntando la fotocamera del dispositivo verso di esso" @@ -122,10 +127,22 @@ msgstr "Il codice QR può essere facilmente riconosciuto semplicemente puntando msgid "To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time" msgstr "Per assicurarti di non perdere i dati salvati, puoi scaricare un file dei siti e ripristinarli in un secondo momento" +#: app/qr/index.tsx:180 +msgid "Token" +msgstr "Token" + #: src/components/CopyToClipboard.tsx:19 msgid "Token copied to clipboard" msgstr "Token copiato negli Appunti" +#: app/qr/index.tsx:166 +msgid "Token name" +msgstr "Nome token" + +#: app/qr/index.tsx:121 +msgid "You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name" +msgstr "È possibile utilizzare la fotocamera del dispositivo per scansionare il codice QR 2FA sul sito oppure inserire manualmente il token fornito e un nome" + #: app/settings/import.tsx:81 msgid "{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}" msgstr "{sitesProcessed, plural, one {1 sito elaborato di {numberOfSites}} other {# siti trasformati di {numberOfSites}}}" diff --git a/src/locales/zh/messages.js b/src/locales/zh/messages.js index f24e72c..0b10d44 100644 --- a/src/locales/zh/messages.js +++ b/src/locales/zh/messages.js @@ -1 +1 @@ -/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"无法访问相机。为了使Shield Authenticator能够使用相机,有必要通过设置提供许可\",\"Add a new site\":\"添加新网站\",\"Backup your data\":\"备份数据\",\"Cancel\":\"取消\",\"Completed\":\"已完成\",\"Confirm deletion\":\"确认删除\",\"Delete\":\"删除\",\"Enable\":\"启用\",\"Enable camera\":\"启用相机\",\"Everything is prepared for you to add your sites\":\"一切准备就绪,您可以添加网站\",\"Fingerprint authentication\":\"指纹认证\",\"Generate file\":\"生成文件\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"如果要从备份还原保存的站点,则可以加载存储在设备上的文件。重要的是要注意,现有站点将保持不变并且不会被替换\",\"Load backup sites\":\"加载备份站点\",\"Login with your fingerprint\":\"用指纹登录\",\"No access to camera\":\"无法使用相机\",\"No results matching your search\":\"没有符合您搜索结果的结果\",\"Processing\":\"处理\",\"Restore sites\":\"恢复网站\",\"Scan QR code\":\"扫描QR码\",\"Scan another code\":\"扫描另一个代码\",\"Scan your website's 2FA QR code using your device's camera\":\"使用设备的相机扫描网站的2FA QR码\",\"Search...\":\"搜索...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"使用设备指纹身份验证确保对存储的2FA的访问\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"只需将设备的相机对准它,即可轻松识别QR码\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"为确保您不会丢失保存的数据,您可以下载站点文件并在以后还原它们\",\"Token copied to clipboard\":\"令牌复制到剪贴板\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"处理了 \",[\"numberOfSites\"],\" 个网站\"],\"other\":[\"处理了 \",[\"numberOfSites\"],\" 个网站\"]}]]}")}; \ No newline at end of file +/*eslint-disable*/module.exports={messages:JSON.parse("{\"Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings\":\"无法访问相机。为了使Shield Authenticator能够使用相机,有必要通过设置提供许可\",\"Add a new site\":\"添加新网站\",\"Add token manually\":\"手动添加令牌\",\"Backup your data\":\"备份数据\",\"Cancel\":\"取消\",\"Completed\":\"已完成\",\"Confirm deletion\":\"确认删除\",\"Delete\":\"删除\",\"Enable\":\"启用\",\"Enable camera\":\"启用相机\",\"Everything is prepared for you to add your sites\":\"一切准备就绪,您可以添加网站\",\"Fingerprint authentication\":\"指纹认证\",\"Generate file\":\"生成文件\",\"If you want to restore your saved sites from a backup, you can load the file stored on your device. It's important to note that the existing sites will remain unchanged and won't be replaced\":\"如果要从备份还原保存的站点,则可以加载存储在设备上的文件。重要的是要注意,现有站点将保持不变并且不会被替换\",\"Load backup sites\":\"加载备份站点\",\"Login with your fingerprint\":\"用指纹登录\",\"No access to camera\":\"无法使用相机\",\"No results matching your search\":\"没有符合您搜索结果的结果\",\"Processing\":\"处理\",\"Restore sites\":\"恢复网站\",\"Save site\":\"保存网站\",\"Scan QR code\":\"扫描QR码\",\"Scan another code\":\"扫描另一个代码\",\"Search...\":\"搜索...\",\"Secure the access to your stored 2FA using your device fingerprint authentication\":\"使用设备指纹身份验证确保对存储的2FA的访问\",\"The QR code can be easily recognized by simply pointing your device's camera at it\":\"只需将设备的相机对准它,即可轻松识别QR码\",\"To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time\":\"为确保您不会丢失保存的数据,您可以下载站点文件并在以后还原它们\",\"Token\":\"令牌\",\"Token copied to clipboard\":\"令牌复制到剪贴板\",\"Token name\":\"令牌名称\",\"You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name\":\"您可以使用设备的相机扫描网站上的 2FA QR码, 也可以手动输入提供的令牌和名称\",\"{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}\":[[\"sitesProcessed\",\"plural\",{\"one\":[\"处理了 \",[\"numberOfSites\"],\" 个网站\"],\"other\":[\"处理了 \",[\"numberOfSites\"],\" 个网站\"]}]]}")}; \ No newline at end of file diff --git a/src/locales/zh/messages.po b/src/locales/zh/messages.po index e9bd4a4..cdfe8bc 100644 --- a/src/locales/zh/messages.po +++ b/src/locales/zh/messages.po @@ -13,21 +13,26 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: app/qr/index.tsx:63 +#: app/qr/index.tsx:92 msgid "Access to the camera was denied. To enable Shield Authenticator to utilize the camera, it is necessary to provide permission through the settings" msgstr "无法访问相机。为了使Shield Authenticator能够使用相机,有必要通过设置提供许可" -#: app/qr/index.tsx:53 -#: app/qr/index.tsx:80 +#: app/qr/index.tsx:82 +#: app/qr/index.tsx:117 #: src/components/AddSite.tsx:14 msgid "Add a new site" msgstr "添加新网站" +#: app/qr/index.tsx:230 +msgid "Add token manually" +msgstr "手动添加令牌" + #: app/settings/export.tsx:56 -#: src/components/TopBar.tsx:36 +#: src/components/TopBar.tsx:37 msgid "Backup your data" msgstr "备份数据" +#: app/qr/index.tsx:146 #: src/components/SiteInfo.tsx:79 #: src/providers/FingerprintAuthProvider.tsx:39 msgid "Cancel" @@ -49,7 +54,7 @@ msgstr "删除" msgid "Enable" msgstr "启用" -#: app/qr/index.tsx:72 +#: app/qr/index.tsx:101 msgid "Enable camera" msgstr "启用相机" @@ -77,7 +82,7 @@ msgstr "加载备份站点" msgid "Login with your fingerprint" msgstr "用指纹登录" -#: app/qr/index.tsx:55 +#: app/qr/index.tsx:84 msgid "No access to camera" msgstr "无法使用相机" @@ -90,22 +95,22 @@ msgid "Processing" msgstr "处理" #: app/settings/import.tsx:58 -#: src/components/TopBar.tsx:41 +#: src/components/TopBar.tsx:42 msgid "Restore sites" msgstr "恢复网站" -#: app/qr/index.tsx:110 +#: app/qr/index.tsx:195 +msgid "Save site" +msgstr "保存网站" + +#: app/qr/index.tsx:214 msgid "Scan QR code" msgstr "扫描QR码" -#: app/qr/info.tsx:62 +#: app/qr/info.tsx:63 msgid "Scan another code" msgstr "扫描另一个代码" -#: app/qr/index.tsx:82 -msgid "Scan your website's 2FA QR code using your device's camera" -msgstr "使用设备的相机扫描网站的2FA QR码" - #: src/components/SitesList.tsx:80 msgid "Search..." msgstr "搜索..." @@ -114,7 +119,7 @@ msgstr "搜索..." msgid "Secure the access to your stored 2FA using your device fingerprint authentication" msgstr "使用设备指纹身份验证确保对存储的2FA的访问" -#: app/qr/index.tsx:96 +#: app/qr/index.tsx:136 msgid "The QR code can be easily recognized by simply pointing your device's camera at it" msgstr "只需将设备的相机对准它,即可轻松识别QR码" @@ -122,10 +127,22 @@ msgstr "只需将设备的相机对准它,即可轻松识别QR码" msgid "To ensure that you don't lose your saved data, you can download a file of the sites and restore them at a later time" msgstr "为确保您不会丢失保存的数据,您可以下载站点文件并在以后还原它们" +#: app/qr/index.tsx:180 +msgid "Token" +msgstr "令牌" + #: src/components/CopyToClipboard.tsx:19 msgid "Token copied to clipboard" msgstr "令牌复制到剪贴板" +#: app/qr/index.tsx:166 +msgid "Token name" +msgstr "令牌名称" + +#: app/qr/index.tsx:121 +msgid "You can either use your device's camera to scan the 2FA QR code on the site, or manually enter the provided token and a name" +msgstr "您可以使用设备的相机扫描网站上的 2FA QR码, 也可以手动输入提供的令牌和名称" + #: app/settings/import.tsx:81 msgid "{sitesProcessed, plural, one {Processed 1 site of {numberOfSites}} other {Processed # sites of {numberOfSites}}}" msgstr "{sitesProcessed, plural, one {处理了 {numberOfSites} 个网站} other {处理了 {numberOfSites} 个网站}}"