Merge branch 'develop' into update-app-logo
2
.env
@@ -9,5 +9,3 @@ APPLICATION_THEME=orange
|
||||
|
||||
#environment can be changed if it is toggled
|
||||
CREDENTIAL_REGISTRY_EDIT=true
|
||||
|
||||
USE_BLE_SHARE=true
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>MOSIP Resident App</name>
|
||||
<name>Inji</name>
|
||||
<comment>Project android created by Buildship.</comment>
|
||||
<projects>
|
||||
</projects>
|
||||
|
||||
@@ -6,5 +6,11 @@
|
||||
android:usesPermissionFlags="neverForLocation" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="28" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30"/>
|
||||
<!-- from Android 12, Location permission isn't required as we aren't using it to determine location -->
|
||||
|
||||
<application tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" android:usesCleartextTraffic="true" />
|
||||
</manifest>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.mosip.residentapp">
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="28" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30"/>
|
||||
<!-- from Android 12, Location permission isn't required as we aren't using it to determine location -->
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
@@ -35,7 +36,8 @@
|
||||
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0" />
|
||||
<meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://exp.host/@nlpaolo/mosip-resident-app" />
|
||||
<meta-data android:name="com.google.android.nearby.messages.API_KEY" android:value="${GOOGLE_NEARBY_MESSAGES_API_KEY}" />
|
||||
<activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustPan" android:theme="@style/Theme.App.SplashScreen" android:screenOrientation="portrait">
|
||||
<activity android:name=".MainActivity" android:exported="true" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustPan" android:theme="@style/Theme.App.SplashScreen" android:screenOrientation="portrait">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
|
||||
@@ -29,13 +29,7 @@ public class MainActivity extends ReactActivity {
|
||||
Manifest.permission.BLUETOOTH_ADMIN,
|
||||
Manifest.permission.ACCESS_WIFI_STATE,
|
||||
Manifest.permission.CHANGE_WIFI_STATE,
|
||||
Manifest.permission.CHANGE_WIFI_MULTICAST_STATE,
|
||||
Manifest.permission.ACCESS_COARSE_LOCATION,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION,
|
||||
// required for Android 12 and above
|
||||
Manifest.permission.BLUETOOTH_SCAN,
|
||||
Manifest.permission.BLUETOOTH_CONNECT,
|
||||
Manifest.permission.BLUETOOTH_ADVERTISE
|
||||
Manifest.permission.CHANGE_WIFI_MULTICAST_STATE
|
||||
};
|
||||
|
||||
private static final int REQUEST_CODE_REQUIRED_PERMISSIONS = 1;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<resources>
|
||||
<string name="app_name">MOSIP Resident App</string>
|
||||
<string name="app_name">Inji</string>
|
||||
<string name="app_name_mosip">MOSIP Resident App - Mosip/Inji</string>
|
||||
<string name="app_name_newlogic">MOSIP Resident App - Newlogic</string>
|
||||
<string name="app_name_ph">MOSIP Resident App - PH</string>
|
||||
|
||||
@@ -5,7 +5,7 @@ buildscript {
|
||||
buildToolsVersion = "29.0.3"
|
||||
minSdkVersion = 23
|
||||
compileSdkVersion = 31
|
||||
targetSdkVersion = 30
|
||||
targetSdkVersion = 31
|
||||
}
|
||||
repositories {
|
||||
google()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
rootProject.name = 'MOSIP Resident App'
|
||||
rootProject.name = 'Inji'
|
||||
|
||||
apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle");
|
||||
useExpoModules()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
export default {
|
||||
name: 'MOSIP Resident App',
|
||||
slug: 'mosip-resident-app',
|
||||
name: 'Inji',
|
||||
slug: 'inji',
|
||||
version: '1.0.0',
|
||||
orientation: 'portrait',
|
||||
icon: './assets/icon.png',
|
||||
|
||||
@@ -26,6 +26,6 @@ function getActionLabel(activity: ActivityLog, language: string) {
|
||||
locale: DateFnsLocale[language],
|
||||
}),
|
||||
]
|
||||
.filter((label) => label.trim() !== '')
|
||||
.filter((label) => label?.trim() !== '')
|
||||
.join(' · ');
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ export const DeviceInfoList: React.FC<DeviceInfoProps> = (props) => {
|
||||
<TextItem
|
||||
divider
|
||||
label={props.of === 'receiver' ? t('requestedBy') : t('sentBy')}
|
||||
text={props.deviceInfo.deviceName}
|
||||
text={t(props.deviceInfo.deviceName)}
|
||||
/>
|
||||
</React.Fragment>
|
||||
);
|
||||
|
||||
@@ -5,7 +5,6 @@ import { Dimensions } from 'react-native';
|
||||
import { Overlay, LinearProgress } from 'react-native-elements';
|
||||
import { Button, Column, Text } from './ui';
|
||||
import { Theme } from './ui/styleUtils';
|
||||
import { VCLabel } from '../types/vc';
|
||||
|
||||
export const MessageOverlay: React.FC<MessageOverlayProps> = (props) => {
|
||||
const { t } = useTranslation('common');
|
||||
@@ -50,7 +49,6 @@ export const ErrorMessageOverlay: React.FC<ErrorMessageOverlayProps> = ({
|
||||
isVisible,
|
||||
error,
|
||||
onDismiss,
|
||||
vcLabel,
|
||||
translationPath,
|
||||
}) => {
|
||||
const { t } = useTranslation(translationPath);
|
||||
@@ -58,14 +56,8 @@ export const ErrorMessageOverlay: React.FC<ErrorMessageOverlayProps> = ({
|
||||
return (
|
||||
<MessageOverlay
|
||||
isVisible={isVisible}
|
||||
title={t(error + '.title', {
|
||||
vcLabelSingular: vcLabel.singular,
|
||||
vcLabelPlural: vcLabel.plural,
|
||||
})}
|
||||
message={t(error + '.message', {
|
||||
vcLabelSingular: vcLabel.singular,
|
||||
vcLabelPlural: vcLabel.plural,
|
||||
})}
|
||||
title={t(error + '.title')}
|
||||
message={t(error + '.message')}
|
||||
onBackdropPress={onDismiss}
|
||||
/>
|
||||
);
|
||||
@@ -75,7 +67,6 @@ export interface ErrorMessageOverlayProps {
|
||||
isVisible: boolean;
|
||||
error?: string;
|
||||
onDismiss?: () => void;
|
||||
vcLabel: VCLabel;
|
||||
translationPath: string;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,6 @@ import { VcItemEvents } from '../machines/vcItem';
|
||||
import { ErrorMessageOverlay } from '../components/MessageOverlay';
|
||||
import { Theme } from './ui/styleUtils';
|
||||
import { GlobalContext } from '../shared/GlobalContext';
|
||||
import { selectVcLabel } from '../machines/settings';
|
||||
import { VcItemContent } from './VcItemContent';
|
||||
import { VcItemActivationStatus } from './VcItemActivationStatus';
|
||||
|
||||
@@ -34,10 +33,8 @@ export const VcItem: React.FC<VcItemProps> = (props) => {
|
||||
const context = useSelector(service, selectContext);
|
||||
const verifiableCredential = useSelector(service, selectVerifiableCredential);
|
||||
const emptyWalletBindingId = useSelector(service, selectEmptyWalletBindingId);
|
||||
const settingsService = appService.children.get('settings');
|
||||
const storeError = useSelector(service, selectStoreError);
|
||||
const isSavingFailedInIdle = useSelector(service, selectIsSavingFailedInIdle);
|
||||
const vcLabel = useSelector(settingsService, selectVcLabel);
|
||||
const DISMISS = () => service.send(VcItemEvents.DISMISS());
|
||||
|
||||
let storeErrorTranslationPath = 'errors.savingFailed';
|
||||
@@ -81,7 +78,6 @@ export const VcItem: React.FC<VcItemProps> = (props) => {
|
||||
isVisible={isSavingFailedInIdle}
|
||||
error={storeErrorTranslationPath}
|
||||
onDismiss={DISMISS}
|
||||
vcLabel={vcLabel}
|
||||
translationPath={'VcDetails'}
|
||||
/>
|
||||
</React.Fragment>
|
||||
|
||||
@@ -12,28 +12,28 @@
|
||||
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||
3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; };
|
||||
510157BBABB44471B56F17BD /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AB20D6FD6E0431BB5A6B1BF /* noop-file.swift */; };
|
||||
6EC198FEB3D4CE20C451C9C8 /* libPods-MOSIPResidentApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F7F3091673D4A20E778B48BF /* libPods-MOSIPResidentApp.a */; };
|
||||
6EC198FEB3D4CE20C451C9C8 /* libPods-Inji.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F7F3091673D4A20E778B48BF /* libPods-Inji.a */; };
|
||||
B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; };
|
||||
BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
|
||||
13B07F961A680F5B00A75B9A /* MOSIPResidentApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MOSIPResidentApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = MOSIPResidentApp/AppDelegate.h; sourceTree = "<group>"; };
|
||||
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = MOSIPResidentApp/AppDelegate.m; sourceTree = "<group>"; };
|
||||
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = MOSIPResidentApp/Images.xcassets; sourceTree = "<group>"; };
|
||||
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = MOSIPResidentApp/Info.plist; sourceTree = "<group>"; };
|
||||
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = MOSIPResidentApp/main.m; sourceTree = "<group>"; };
|
||||
3AB20D6FD6E0431BB5A6B1BF /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "MOSIPResidentApp/noop-file.swift"; sourceTree = "<group>"; };
|
||||
AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = MOSIPResidentApp/SplashScreen.storyboard; sourceTree = "<group>"; };
|
||||
13B07F961A680F5B00A75B9A /* Inji.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Inji.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = Inji/AppDelegate.h; sourceTree = "<group>"; };
|
||||
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = Inji/AppDelegate.m; sourceTree = "<group>"; };
|
||||
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Inji/Images.xcassets; sourceTree = "<group>"; };
|
||||
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Inji/Info.plist; sourceTree = "<group>"; };
|
||||
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Inji/main.m; sourceTree = "<group>"; };
|
||||
3AB20D6FD6E0431BB5A6B1BF /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "Inji/noop-file.swift"; sourceTree = "<group>"; };
|
||||
AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = Inji/SplashScreen.storyboard; sourceTree = "<group>"; };
|
||||
BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = "<group>"; };
|
||||
EBEDDC56BF724D17A326B9EC /* MOSIPResidentApp-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "MOSIPResidentApp-Bridging-Header.h"; path = "MOSIPResidentApp/MOSIPResidentApp-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
EBEDDC56BF724D17A326B9EC /* Inji-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "Inji-Bridging-Header.h"; path = "Inji/Inji-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
||||
F4401A7A527915991104FE89 /* Pods-MOSIPResidentApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MOSIPResidentApp.release.xcconfig"; path = "Target Support Files/Pods-MOSIPResidentApp/Pods-MOSIPResidentApp.release.xcconfig"; sourceTree = "<group>"; };
|
||||
F7F3091673D4A20E778B48BF /* libPods-MOSIPResidentApp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MOSIPResidentApp.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
F842436D5AA4BFDC9B080787 /* Pods-MOSIPResidentApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MOSIPResidentApp.debug.xcconfig"; path = "Target Support Files/Pods-MOSIPResidentApp/Pods-MOSIPResidentApp.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-MOSIPResidentApp/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
|
||||
F4401A7A527915991104FE89 /* Pods-Inji.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Inji.release.xcconfig"; path = "Target Support Files/Pods-Inji/Pods-Inji.release.xcconfig"; sourceTree = "<group>"; };
|
||||
F7F3091673D4A20E778B48BF /* libPods-Inji.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Inji.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
F842436D5AA4BFDC9B080787 /* Pods-Inji.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Inji.debug.xcconfig"; path = "Target Support Files/Pods-Inji/Pods-Inji.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-Inji/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -41,14 +41,14 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
6EC198FEB3D4CE20C451C9C8 /* libPods-MOSIPResidentApp.a in Frameworks */,
|
||||
6EC198FEB3D4CE20C451C9C8 /* libPods-Inji.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
13B07FAE1A68108700A75B9A /* MOSIPResidentApp */ = {
|
||||
13B07FAE1A68108700A75B9A /* Inji */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
BB2F792B24A3F905000567C9 /* Supporting */,
|
||||
@@ -60,16 +60,16 @@
|
||||
13B07FB71A68108700A75B9A /* main.m */,
|
||||
AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */,
|
||||
3AB20D6FD6E0431BB5A6B1BF /* noop-file.swift */,
|
||||
EBEDDC56BF724D17A326B9EC /* MOSIPResidentApp-Bridging-Header.h */,
|
||||
EBEDDC56BF724D17A326B9EC /* Inji-Bridging-Header.h */,
|
||||
);
|
||||
name = MOSIPResidentApp;
|
||||
name = Inji;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
|
||||
F7F3091673D4A20E778B48BF /* libPods-MOSIPResidentApp.a */,
|
||||
F7F3091673D4A20E778B48BF /* libPods-Inji.a */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
@@ -84,7 +84,7 @@
|
||||
83CBB9F61A601CBA00E9B192 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
13B07FAE1A68108700A75B9A /* MOSIPResidentApp */,
|
||||
13B07FAE1A68108700A75B9A /* Inji */,
|
||||
832341AE1AAA6A7D00B99B32 /* Libraries */,
|
||||
83CBBA001A601CBA00E9B192 /* Products */,
|
||||
2D16E6871FA4F8E400B85C8A /* Frameworks */,
|
||||
@@ -99,17 +99,17 @@
|
||||
83CBBA001A601CBA00E9B192 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
13B07F961A680F5B00A75B9A /* MOSIPResidentApp.app */,
|
||||
13B07F961A680F5B00A75B9A /* Inji.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
92DBD88DE9BF7D494EA9DA96 /* MOSIPResidentApp */ = {
|
||||
92DBD88DE9BF7D494EA9DA96 /* Inji */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */,
|
||||
);
|
||||
name = MOSIPResidentApp;
|
||||
name = Inji;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
BB2F792B24A3F905000567C9 /* Supporting */ = {
|
||||
@@ -118,14 +118,14 @@
|
||||
BB2F792C24A3F905000567C9 /* Expo.plist */,
|
||||
);
|
||||
name = Supporting;
|
||||
path = MOSIPResidentApp/Supporting;
|
||||
path = Inji/Supporting;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D65327D7A22EEC0BE12398D9 /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F842436D5AA4BFDC9B080787 /* Pods-MOSIPResidentApp.debug.xcconfig */,
|
||||
F4401A7A527915991104FE89 /* Pods-MOSIPResidentApp.release.xcconfig */,
|
||||
F842436D5AA4BFDC9B080787 /* Pods-Inji.debug.xcconfig */,
|
||||
F4401A7A527915991104FE89 /* Pods-Inji.release.xcconfig */,
|
||||
);
|
||||
path = Pods;
|
||||
sourceTree = "<group>";
|
||||
@@ -133,7 +133,7 @@
|
||||
D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
92DBD88DE9BF7D494EA9DA96 /* MOSIPResidentApp */,
|
||||
92DBD88DE9BF7D494EA9DA96 /* Inji */,
|
||||
);
|
||||
name = ExpoModulesProviders;
|
||||
sourceTree = "<group>";
|
||||
@@ -141,9 +141,9 @@
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
13B07F861A680F5B00A75B9A /* MOSIPResidentApp */ = {
|
||||
13B07F861A680F5B00A75B9A /* Inji */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "MOSIPResidentApp" */;
|
||||
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Inji" */;
|
||||
buildPhases = (
|
||||
5C9927E01935CFEBE538B2C3 /* [CP] Check Pods Manifest.lock */,
|
||||
FD10A7F022414F080027D42C /* Start Packager */,
|
||||
@@ -157,9 +157,9 @@
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = MOSIPResidentApp;
|
||||
productName = MOSIPResidentApp;
|
||||
productReference = 13B07F961A680F5B00A75B9A /* MOSIPResidentApp.app */;
|
||||
name = Inji;
|
||||
productName = Inji;
|
||||
productReference = 13B07F961A680F5B00A75B9A /* Inji.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
@@ -171,13 +171,13 @@
|
||||
LastUpgradeCheck = 1340;
|
||||
TargetAttributes = {
|
||||
13B07F861A680F5B00A75B9A = {
|
||||
DevelopmentTeam = LD7H4CQ5P9;
|
||||
DevelopmentTeam = F7JDUR6578;
|
||||
LastSwiftMigration = 1250;
|
||||
ProvisioningStyle = Automatic;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "MOSIPResidentApp" */;
|
||||
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Inji" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
@@ -190,7 +190,7 @@
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
13B07F861A680F5B00A75B9A /* MOSIPResidentApp */,
|
||||
13B07F861A680F5B00A75B9A /* Inji */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
@@ -238,7 +238,7 @@
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"$(DERIVED_FILE_DIR)/Pods-MOSIPResidentApp-checkManifestLockResult.txt",
|
||||
"$(DERIVED_FILE_DIR)/Pods-Inji-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
@@ -257,7 +257,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MOSIPResidentApp/Pods-MOSIPResidentApp-resources.sh\"\n";
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Inji/Pods-Inji-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
FD10A7F022414F080027D42C /* Start Packager */ = {
|
||||
@@ -298,21 +298,22 @@
|
||||
/* Begin XCBuildConfiguration section */
|
||||
13B07F941A680F5B00A75B9A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = F842436D5AA4BFDC9B080787 /* Pods-MOSIPResidentApp.debug.xcconfig */;
|
||||
baseConfigurationReference = F842436D5AA4BFDC9B080787 /* Pods-Inji.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = MOSIPResidentApp/MOSIPResidentApp.entitlements;
|
||||
CODE_SIGN_ENTITLEMENTS = Inji/Inji.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = LD7H4CQ5P9;
|
||||
DEVELOPMENT_TEAM = F7JDUR6578;
|
||||
ENABLE_BITCODE = NO;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"$(inherited)",
|
||||
"FB_SONARKIT_ENABLED=1",
|
||||
);
|
||||
INFOPLIST_FILE = MOSIPResidentApp/Info.plist;
|
||||
INFOPLIST_FILE = Inji/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = Inji;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
MARKETING_VERSION = 0.9.1;
|
||||
@@ -322,9 +323,9 @@
|
||||
"-lc++",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.mosip.inji.mobileid;
|
||||
PRODUCT_NAME = MOSIPResidentApp;
|
||||
PRODUCT_NAME = Inji;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "MOSIPResidentApp/MOSIPResidentApp-Bridging-Header.h";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Inji/Inji-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
@@ -334,18 +335,19 @@
|
||||
};
|
||||
13B07F951A680F5B00A75B9A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = F4401A7A527915991104FE89 /* Pods-MOSIPResidentApp.release.xcconfig */;
|
||||
baseConfigurationReference = F4401A7A527915991104FE89 /* Pods-Inji.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = MOSIPResidentApp/MOSIPResidentApp.entitlements;
|
||||
CODE_SIGN_ENTITLEMENTS = Inji/Inji.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = LD7H4CQ5P9;
|
||||
INFOPLIST_FILE = MOSIPResidentApp/Info.plist;
|
||||
INFOPLIST_FILE = Inji/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = Inji;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
MARKETING_VERSION = 0.9.1;
|
||||
@@ -355,10 +357,10 @@
|
||||
"-lc++",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = io.mosip.inji.mobileid;
|
||||
PRODUCT_NAME = MOSIPResidentApp;
|
||||
PRODUCT_NAME = Inji;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore io.mosip.inji.mobileid";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "MOSIPResidentApp/MOSIPResidentApp-Bridging-Header.h";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Inji/Inji-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
@@ -394,7 +396,7 @@
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = MOSIPResidentApp/MOSIPResidentApp.entitlements;
|
||||
CODE_SIGN_ENTITLEMENTS = Inji/Inji.entitlements;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
@@ -453,7 +455,7 @@
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = MOSIPResidentApp/MOSIPResidentApp.entitlements;
|
||||
CODE_SIGN_ENTITLEMENTS = Inji/Inji.entitlements;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
@@ -480,7 +482,7 @@
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "MOSIPResidentApp" */ = {
|
||||
13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Inji" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
13B07F941A680F5B00A75B9A /* Debug */,
|
||||
@@ -489,7 +491,7 @@
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "MOSIPResidentApp" */ = {
|
||||
83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Inji" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
83CBBA201A601CBA00E9B192 /* Debug */,
|
||||
@@ -15,9 +15,9 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
||||
BuildableName = "MOSIPResidentApp.app"
|
||||
BlueprintName = "MOSIPResidentApp"
|
||||
ReferencedContainer = "container:MOSIPResidentApp.xcodeproj">
|
||||
BuildableName = "Inji.app"
|
||||
BlueprintName = "Inji"
|
||||
ReferencedContainer = "container:Inji.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
@@ -33,9 +33,9 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "00E356ED1AD99517003FC87E"
|
||||
BuildableName = "MOSIPResidentAppTests.xctest"
|
||||
BlueprintName = "MOSIPResidentAppTests"
|
||||
ReferencedContainer = "container:MOSIPResidentApp.xcodeproj">
|
||||
BuildableName = "InjiTests.xctest"
|
||||
BlueprintName = "InjiTests"
|
||||
ReferencedContainer = "container:Inji.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
@@ -55,9 +55,9 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
||||
BuildableName = "MOSIPResidentApp.app"
|
||||
BlueprintName = "MOSIPResidentApp"
|
||||
ReferencedContainer = "container:MOSIPResidentApp.xcodeproj">
|
||||
BuildableName = "Inji.app"
|
||||
BlueprintName = "Inji"
|
||||
ReferencedContainer = "container:Inji.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<EnvironmentVariables>
|
||||
@@ -79,9 +79,9 @@
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
||||
BuildableName = "MOSIPResidentApp.app"
|
||||
BlueprintName = "MOSIPResidentApp"
|
||||
ReferencedContainer = "container:MOSIPResidentApp.xcodeproj">
|
||||
BuildableName = "Inji.app"
|
||||
BlueprintName = "Inji"
|
||||
ReferencedContainer = "container:Inji.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
@@ -2,7 +2,7 @@
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "group:MOSIPResidentApp.xcodeproj">
|
||||
location = "group:Inji.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:Pods/Pods.xcodeproj">
|
||||
|
Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 218 KiB |
|
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 196 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 68 B After Width: | Height: | Size: 68 B |
@@ -5,7 +5,7 @@
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>MOSIP Resident App</string>
|
||||
<string>Inji</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
@@ -48,6 +48,10 @@
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
|
||||
<string>Allow $(PRODUCT_NAME) to access your location</string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string>Allow $(PRODUCT_NAME) to access your location</string>
|
||||
<key>NSBluetoothAlwaysUsageDescription</key>
|
||||
<string>Bluetooth is used to allow sharing VCs with another device</string>
|
||||
<key>NSBluetoothPeripheralUsageDescription</key>
|
||||
@@ -9,7 +9,7 @@ platform :ios, '13.0'
|
||||
require 'json'
|
||||
podfile_properties = JSON.parse(File.read('./Podfile.properties.json')) rescue {}
|
||||
|
||||
target 'MOSIPResidentApp' do
|
||||
target 'Inji' do
|
||||
use_expo_modules!
|
||||
post_integrate do |installer|
|
||||
begin
|
||||
|
||||
@@ -56,24 +56,12 @@ PODS:
|
||||
- React-jsi (= 0.64.4)
|
||||
- ReactCommon/turbomodule/core (= 0.64.4)
|
||||
- glog (0.3.5)
|
||||
- GoogleInterchangeUtilities (1.2.2):
|
||||
- GoogleSymbolUtilities (~> 1.1)
|
||||
- GoogleNetworkingUtilities (1.2.2):
|
||||
- GoogleSymbolUtilities (~> 1.1)
|
||||
- GoogleSymbolUtilities (1.1.2)
|
||||
- GoogleUtilitiesLegacy (1.3.2):
|
||||
- GoogleSymbolUtilities (~> 1.1)
|
||||
- GzipSwift (5.1.1)
|
||||
- MMKV (1.2.13):
|
||||
- MMKVCore (~> 1.2.13)
|
||||
- MMKVCore (1.2.15)
|
||||
- mosip-inji-face-sdk (0.1.12):
|
||||
- React-Core
|
||||
- NearbyMessages (1.1.1):
|
||||
- GoogleInterchangeUtilities (~> 1.2)
|
||||
- GoogleNetworkingUtilities (~> 1.2)
|
||||
- GoogleSymbolUtilities (~> 1.1)
|
||||
- GoogleUtilitiesLegacy (~> 1.3)
|
||||
- Permission-BluetoothPeripheral (3.6.1):
|
||||
- RNPermissions
|
||||
- Permission-Camera (3.6.1):
|
||||
@@ -280,10 +268,6 @@ PODS:
|
||||
- React-Core
|
||||
- react-native-netinfo (7.1.3):
|
||||
- React-Core
|
||||
- react-native-openid4vp-ble (0.4.0):
|
||||
- CrcSwift (~> 0.0.3)
|
||||
- GzipSwift
|
||||
- React-Core
|
||||
- react-native-restart (0.0.24):
|
||||
- React-Core
|
||||
- react-native-rsa-native (2.0.5):
|
||||
@@ -292,6 +276,10 @@ PODS:
|
||||
- React-Core
|
||||
- react-native-secure-key-store (2.0.10):
|
||||
- React-Core
|
||||
- react-native-tuvali (0.3.9):
|
||||
- CrcSwift (~> 0.0.3)
|
||||
- GzipSwift
|
||||
- React-Core
|
||||
- React-perflogger (0.64.4)
|
||||
- React-RCTActionSheet (0.64.4):
|
||||
- React-Core/RCTActionSheetHeaders (= 0.64.4)
|
||||
@@ -379,9 +367,6 @@ PODS:
|
||||
- React
|
||||
- RNVectorIcons (8.1.0):
|
||||
- React-Core
|
||||
- smartshare-react-native (0.2.3-beta.2):
|
||||
- NearbyMessages
|
||||
- React-Core
|
||||
- Yoga (1.14.0)
|
||||
- ZXingObjC/Core (3.6.5)
|
||||
- ZXingObjC/OneD (3.6.5):
|
||||
@@ -433,11 +418,11 @@ DEPENDENCIES:
|
||||
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
|
||||
- react-native-mmkv-storage (from `../node_modules/react-native-mmkv-storage`)
|
||||
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
|
||||
- react-native-openid4vp-ble (from `../node_modules/react-native-openid4vp-ble`)
|
||||
- react-native-restart (from `../node_modules/react-native-restart`)
|
||||
- react-native-rsa-native (from `../node_modules/react-native-rsa-native`)
|
||||
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
|
||||
- react-native-secure-key-store (from `../node_modules/react-native-secure-key-store`)
|
||||
- react-native-tuvali (from `../node_modules/react-native-tuvali`)
|
||||
- React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
|
||||
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
|
||||
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
|
||||
@@ -461,21 +446,15 @@ DEPENDENCIES:
|
||||
- RNSecureRandom (from `../node_modules/react-native-securerandom`)
|
||||
- RNSVG (from `../node_modules/react-native-svg`)
|
||||
- RNVectorIcons (from `../node_modules/react-native-vector-icons`)
|
||||
- "smartshare-react-native (from `../node_modules/@idpass/smartshare-react-native`)"
|
||||
- Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- boost-for-react-native
|
||||
- CrcSwift
|
||||
- GoogleInterchangeUtilities
|
||||
- GoogleNetworkingUtilities
|
||||
- GoogleSymbolUtilities
|
||||
- GoogleUtilitiesLegacy
|
||||
- GzipSwift
|
||||
- MMKV
|
||||
- MMKVCore
|
||||
- NearbyMessages
|
||||
- ZXingObjC
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
@@ -561,8 +540,6 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/react-native-mmkv-storage"
|
||||
react-native-netinfo:
|
||||
:path: "../node_modules/@react-native-community/netinfo"
|
||||
react-native-openid4vp-ble:
|
||||
:path: "../node_modules/react-native-openid4vp-ble"
|
||||
react-native-restart:
|
||||
:path: "../node_modules/react-native-restart"
|
||||
react-native-rsa-native:
|
||||
@@ -571,6 +548,8 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/react-native-safe-area-context"
|
||||
react-native-secure-key-store:
|
||||
:path: "../node_modules/react-native-secure-key-store"
|
||||
react-native-tuvali:
|
||||
:path: "../node_modules/react-native-tuvali"
|
||||
React-perflogger:
|
||||
:path: "../node_modules/react-native/ReactCommon/reactperflogger"
|
||||
React-RCTActionSheet:
|
||||
@@ -617,8 +596,6 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/react-native-svg"
|
||||
RNVectorIcons:
|
||||
:path: "../node_modules/react-native-vector-icons"
|
||||
smartshare-react-native:
|
||||
:path: "../node_modules/@idpass/smartshare-react-native"
|
||||
Yoga:
|
||||
:path: "../node_modules/react-native/ReactCommon/yoga"
|
||||
|
||||
@@ -646,17 +623,12 @@ SPEC CHECKSUMS:
|
||||
EXUpdates: a83e036243b0f6ece53a8c1cb883b6751c88a5f8
|
||||
EXUpdatesInterface: a9814f422d3cd6e7cfd260d13c27786148ece20e
|
||||
FBLazyVector: fa8275d5086566e22a26ddc385ab5772e7f9b1bd
|
||||
FBReactNativeSpec: 697645f31dc8937f623394e7b6466e92766dec19
|
||||
FBReactNativeSpec: 83986f2cb6a4046f24310b93812514ab1ccccb72
|
||||
glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62
|
||||
GoogleInterchangeUtilities: d5bc4d88d5b661ab72f9d70c58d02ca8c27ad1f7
|
||||
GoogleNetworkingUtilities: 3edd3a8161347494f2da60ea0deddc8a472d94cb
|
||||
GoogleSymbolUtilities: 631ee17048aa5e9ab133470d768ea997a5ef9b96
|
||||
GoogleUtilitiesLegacy: 5501bedec1646bd284286eb5fc9453f7e23a12f4
|
||||
GzipSwift: 893f3e48e597a1a4f62fafcb6514220fcf8287fa
|
||||
MMKV: aac95d817a100479445633f2b3ed8961b4ac5043
|
||||
MMKVCore: ddf41b9d9262f058419f9ba7598719af56c02cd3
|
||||
mosip-inji-face-sdk: d5bc0fb66721c25450f92d3297efcb2cf0117271
|
||||
NearbyMessages: bd9e88f2df7fbab78be58fed58580d5d5bd62cbf
|
||||
Permission-BluetoothPeripheral: 67708853584bb9208c76d36d0e0ea4eafb97ea5b
|
||||
Permission-Camera: bf6791b17c7f614b6826019fcfdcc286d3a107f6
|
||||
Permission-LocationAccuracy: 76df17de5c6b8bc2eee34e61ee92cdd7a864c73d
|
||||
@@ -674,11 +646,11 @@ SPEC CHECKSUMS:
|
||||
React-jsinspector: d4f6973dd474357dbaaf6f52f31ffc713bf3e766
|
||||
react-native-mmkv-storage: 8ba3c0216a6df283ece11205b442a3e435aec4e5
|
||||
react-native-netinfo: 42c0965fca99069b92e3f7360ab2d425985e5104
|
||||
react-native-openid4vp-ble: 8b9ae374aa4cf5f0f6634d32367c1616131da690
|
||||
react-native-restart: 45c8dca02491980f2958595333cbccd6877cb57e
|
||||
react-native-rsa-native: 12132eb627797529fdb1f0d22fd0f8f9678df64a
|
||||
react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057
|
||||
react-native-secure-key-store: 910e6df6bc33cb790aba6ee24bc7818df1fe5898
|
||||
react-native-tuvali: a6cd8c23e15da3e0fd52c19fbb8f8eac67b1869f
|
||||
React-perflogger: 5a890ca0911669421b7611661e9b58f91c805f5c
|
||||
React-RCTActionSheet: bd180e0879f8424a73650c5c28fbef4f3b5b27fb
|
||||
React-RCTAnimation: 1004d2b4be1f2cedfdc4cb2326adc95b989e6c6b
|
||||
@@ -702,10 +674,9 @@ SPEC CHECKSUMS:
|
||||
RNSecureRandom: 07efbdf2cd99efe13497433668e54acd7df49fef
|
||||
RNSVG: 551acb6562324b1d52a4e0758f7ca0ec234e278f
|
||||
RNVectorIcons: 31cebfcf94e8cf8686eb5303ae0357da64d7a5a4
|
||||
smartshare-react-native: 133dca4c48dea0908649c680701f0948317378c5
|
||||
Yoga: d1fc3575b8b68891ff5ef3c276daa855e841eb32
|
||||
ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb
|
||||
|
||||
PODFILE CHECKSUM: 5b97bf5aba623284ca8545706889f881c9b64811
|
||||
PODFILE CHECKSUM: c9f0fe8dbf7e1bc17ab0a1e74d2edd0a76cd4b7f
|
||||
|
||||
COCOAPODS: 1.12.1
|
||||
COCOAPODS: 1.11.3
|
||||
|
||||
@@ -65,11 +65,11 @@ platform :ios do
|
||||
current_build_number = previous_build_number + 1
|
||||
|
||||
increment_build_number(
|
||||
xcodeproj: "MOSIPResidentApp.xcodeproj",
|
||||
xcodeproj: "Inji.xcodeproj",
|
||||
build_number: current_build_number
|
||||
)
|
||||
|
||||
version = get_version_number(xcodeproj: "MOSIPResidentApp.xcodeproj")
|
||||
version = get_version_number(xcodeproj: "Inji.xcodeproj")
|
||||
|
||||
match(
|
||||
type: 'appstore',
|
||||
@@ -85,8 +85,8 @@ platform :ios do
|
||||
|
||||
gym(
|
||||
configuration: "Release",
|
||||
workspace: "MOSIPResidentApp.xcworkspace",
|
||||
scheme: "MOSIPResidentApp",
|
||||
workspace: "Inji.xcworkspace",
|
||||
scheme: "Inji",
|
||||
export_method: "app-store",
|
||||
|
||||
export_options: {
|
||||
@@ -99,7 +99,7 @@ platform :ios do
|
||||
pilot(
|
||||
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
|
||||
api_key: api_key,
|
||||
ipa: "./MOSIPResidentApp.ipa",
|
||||
ipa: "./Inji.ipa",
|
||||
changelog: "#{TESTFLIGHT_BETA_APP_DESCRIPTION}",
|
||||
localized_build_info: {
|
||||
"default": {
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
import SmartshareReactNative from '@idpass/smartshare-react-native';
|
||||
import OpenIdBle from 'react-native-openid4vp-ble';
|
||||
import { OpenIDBLEShare } from 'react-native-openid4vp-ble/lib/typescript/types/bleshare';
|
||||
import { IdpassSmartshare as IdpassSmartshareType } from '@idpass/smartshare-react-native/lib/typescript/IdpassSmartshare';
|
||||
import { USE_BLE_SHARE } from 'react-native-dotenv';
|
||||
|
||||
const { IdpassSmartshare } = SmartshareReactNative;
|
||||
const { Openid4vpBle } = OpenIdBle;
|
||||
|
||||
type ShareProtocol = OpenIDBLEShare | IdpassSmartshareType;
|
||||
let ShareLib: ShareProtocol;
|
||||
|
||||
export const isBLEEnabled = USE_BLE_SHARE === 'true';
|
||||
export const isGoogleNearbyEnabled = !isBLEEnabled;
|
||||
|
||||
if (isBLEEnabled) {
|
||||
ShareLib = Openid4vpBle;
|
||||
} else {
|
||||
ShareLib = IdpassSmartshare;
|
||||
}
|
||||
|
||||
export default ShareLib;
|
||||
|
||||
export interface BLEError {
|
||||
message?: string;
|
||||
code?: string;
|
||||
}
|
||||
136
locales/ara.json
@@ -19,7 +19,9 @@
|
||||
"requestedBy": "مطلوب بواسطة",
|
||||
"sentBy": "مرسل بواسطة",
|
||||
"deviceRefNumber": "الرقم المرجعي للجهاز",
|
||||
"name": "اسم"
|
||||
"name": "اسم",
|
||||
"Verifier": "المدقق",
|
||||
"Wallet": "محفظة"
|
||||
},
|
||||
"FaceScanner": {},
|
||||
"OIDcAuth": {
|
||||
@@ -65,12 +67,12 @@
|
||||
"credentialRegistry": "سجل الاعتماد",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "فشل حفظ {{vcLabelSingular}}",
|
||||
"message": "شئ ما ذهب خطأ بينما إنقاذ {{vcLabelSingular}} ل ال محل."
|
||||
"title": "فشل حفظ بطاقة",
|
||||
"message": "حدث خطأ أثناء حفظ البطاقة في المتجر."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "فشل حفظ {{vcLabelSingular}}",
|
||||
"message": "لا يمكن استلام المزيد من {{vcLabelPlural}} أو حفظه لأن بيانات التطبيق ممتلئة."
|
||||
"title": "فشل حفظ بطاقة",
|
||||
"message": "لا يمكن استلام المزيد من بطاقةالبطاقات أو حفظه لأن بيانات التطبيق ممتلئة."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -96,8 +98,8 @@
|
||||
"deleted": "محذوف"
|
||||
},
|
||||
"HomeScreen": {
|
||||
"myVcsTab": "محذوف\n{{vcLabel}}",
|
||||
"receivedVcsTab": "مستلم\n{{vcLabel}}",
|
||||
"myVcsTab": "لي\nالبطاقات",
|
||||
"receivedVcsTab": "تم استلام \n البطاقات",
|
||||
"historyTab": "تاريخ"
|
||||
},
|
||||
"AddVcModal": {
|
||||
@@ -138,8 +140,8 @@
|
||||
}
|
||||
},
|
||||
"DownloadingVcModal": {
|
||||
"header": "تنزيل ملف{{vcLabel}}",
|
||||
"bodyText": "قد يستغرق هذا بعض الوقت ، وسنخبرك عندما يتم تنزيل {{vcLabel}} وإتاحته",
|
||||
"header": "تنزيل بطاقتك",
|
||||
"bodyText": "قد يستغرق هذا بعض الوقت ، وسنخبرك عندما يتم تنزيل بطاقة وإتاحته",
|
||||
"backButton": "العودة إلى المنزل"
|
||||
},
|
||||
"GetIdInputModal": {
|
||||
@@ -150,8 +152,8 @@
|
||||
"qstnMarkToolTip": "معرف التطبيق متاح في الإقرار الذي تم استلامه بعد التسجيل."
|
||||
},
|
||||
"IdInputModal": {
|
||||
"header": "أدخل UIN / VID لتنزيل {{vcLabel}}",
|
||||
"generateVc": "يولد لي {{vcLabel}}",
|
||||
"header": "أدخل UIN / VID لتنزيل بطاقتك",
|
||||
"generateVc": "يولد لي بطاقة",
|
||||
"enterId": "أدخل {{idType}}",
|
||||
"noUIN/VID": "ليس لديك UIN / VID الخاص بك؟ أحضره هنا",
|
||||
"requestingOTP": "طلب OTP..."
|
||||
@@ -161,32 +163,32 @@
|
||||
"header": "التحقق من OTP"
|
||||
},
|
||||
"MyVcsTab": {
|
||||
"addVcButton": "{{vcLabel}} إضافة",
|
||||
"generateVc": "{{vcLabel}}إنشاء",
|
||||
"generateVcDescription": "إضافة {{vcLabel}} أدناه لتنزيل {{vcLabel}}",
|
||||
"addVcButton": "بطاقة إضافة",
|
||||
"generateVc": "البطاقاتإنشاء",
|
||||
"generateVcDescription": "اضغط على \"إضافة بطاقة \" أدناه لتنزيل بطاقتك",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "فشل حفظ {{vcLabelSingular}}",
|
||||
"message": "شئ ما ذهب خطأ بينما إنقاذ {{vcLabelSingular}} ل ال محل."
|
||||
"title": "فشل حفظ بطاقة",
|
||||
"message": "حدث خطأ أثناء حفظ البطاقة في المتجر."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "فشل حفظ {{vcLabelSingular}}",
|
||||
"message": "لا يمكن استلام المزيد من {{vcLabelPlural}} أو حفظه لأن بيانات التطبيق ممتلئة."
|
||||
"title": "فشل حفظ بطاقة",
|
||||
"message": "لا يمكن استلام المزيد من بطاقةالبطاقات أو حفظه لأن بيانات التطبيق ممتلئة."
|
||||
}
|
||||
}
|
||||
},
|
||||
"OnboardingOverlay": {
|
||||
"stepOneTitle": "مرحبًا!",
|
||||
"stepOneText": "احتفظ ببيانات الاعتماد الرقمية معك في جميع الأوقات. للبدء ، أضف {{vcLabel}} إلى ملفك الشخصي.",
|
||||
"stepTwoTitle": "{{vcLabel}} إدارة",
|
||||
"stepTwoText": "بمجرد إنشائه ، يتم تخزين {{vcLabel}}بأمان على هاتفك المحمول ويمكن إعادة تسميته أو مشاركته في أي وقت.",
|
||||
"stepOneText": "احتفظ ببيانات الاعتماد الرقمية معك في جميع الأوقات. للبدء ، أضف البطاقات إلى ملفك الشخصي.",
|
||||
"stepTwoTitle": "إدارة البطاقة",
|
||||
"stepTwoText": "بمجرد إنشائه ، يتم تخزين البطاقاتبأمان على هاتفك المحمول ويمكن إعادة تسميته أو مشاركته في أي وقت.",
|
||||
"stepThreeTitle": "مشاركة سهلة",
|
||||
"stepThreeText": "مشاركة واستلام {{vcLabel}} switflyباستخدام كاميرا هاتفك لمسح رموز QR.",
|
||||
"stepThreeButton": "ابدأ وأضف{{vcLabel}} "
|
||||
"stepThreeText": "مشاركة واستلام البطاقات switflyباستخدام كاميرا هاتفك لمسح رموز QR.",
|
||||
"stepThreeButton": "ابدأ وأضف البطاقة"
|
||||
},
|
||||
"ReceivedVcsTab": {
|
||||
"noReceivedVcsTitle": "لا يوجد {{vcLabel}} متاح حتى الآن",
|
||||
"noReceivedVcsText": "اضغط على الطلب أدناه لتلقي{{vcLabel}}"
|
||||
"noReceivedVcsTitle": "لا يوجد البطاقات متاح حتى الآن",
|
||||
"noReceivedVcsText": "اضغط على الطلب أدناه لاستلام البطاقة"
|
||||
},
|
||||
"ViewVcModal": {
|
||||
"cancel": "يلغي",
|
||||
@@ -201,8 +203,8 @@
|
||||
"redirecting": "إعادة توجيه...",
|
||||
"inProgress": "جار التحميل...",
|
||||
"success": {
|
||||
"unlocked": "تم إلغاء قفل {{vcLabel}} بنجاح",
|
||||
"locked": "تم قفل {{vcLabel}} بنجاح",
|
||||
"unlocked": "تم إلغاء قفل بطاقة بنجاح",
|
||||
"locked": "تم قفل بطاقة بنجاح",
|
||||
"revoked": "تم إبطال VID {{vid}}. ستتم إزالة أي بيانات اعتماد تحتوي على نفس الشيء تلقائيًا من المحفظة"
|
||||
}
|
||||
},
|
||||
@@ -220,8 +222,7 @@
|
||||
"AppMetaData": {
|
||||
"header": "حول إنجي",
|
||||
"version": "الإصدار",
|
||||
"useBle": "Powered by BLE",
|
||||
"useGoogleNearby": "Powered by GoogleNearby"
|
||||
"useBle": "Powered by BLE"
|
||||
},
|
||||
"ProfileScreen": {
|
||||
"name": "اسم",
|
||||
@@ -246,7 +247,7 @@
|
||||
"checkDomain": "تحقق أيضًا من وجود رمز قفل على شريط العناوين.",
|
||||
"domainHead": "https://",
|
||||
"selectId": "حدد المعرف",
|
||||
"noBindedVc": "لا يوجد {{vcLabel}} مرتبط متاح للتحقق",
|
||||
"noBindedVc": "لا يوجد البطاقات مرتبط متاح للتحقق",
|
||||
"back": "عُد",
|
||||
"confirm": "يتأكد",
|
||||
"verify": "تحقق",
|
||||
@@ -260,37 +261,46 @@
|
||||
"okay": "تمام"
|
||||
},
|
||||
"ReceiveVcScreen": {
|
||||
"header": "تفاصيل {{vcLabel}}",
|
||||
"acceptRequest": "قبول الطلب واستلام {{vcLabel}}",
|
||||
"header": "تفاصيل بطاقة ",
|
||||
"save": "احفظ البطاقة",
|
||||
"acceptRequest": "قبول الطلب واختيار البطاقة",
|
||||
"acceptRequestAndVerify": "قبول الطلب والتحقق",
|
||||
"reject": "رفض",
|
||||
"discard": "ينبذ",
|
||||
"goToReceivedVCTab": "منظر تلقى {{vcLabel}}",
|
||||
"goToReceivedVCTab": "عرض البطاقات المستلمة",
|
||||
"saving": "إنقاذ",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "فشل حفظ {{vcLabelSingular}}",
|
||||
"message": "شئ ما ذهب خطأ بينما إنقاذ {{vcLabelSingular}} ل ال محل."
|
||||
"title": "فشل حفظ بطاقة",
|
||||
"message": "حدث خطأ أثناء حفظ البطاقة في المتجر."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "فشل حفظ {{vcLabelSingular}}",
|
||||
"message": "لا يمكن استلام المزيد من {{vcLabelPlural}} أو حفظه لأن بيانات التطبيق ممتلئة."
|
||||
"title": "فشل حفظ بطاقة",
|
||||
"message": "لا يمكن استلام المزيد من بطاقةالبطاقات أو حفظه لأن بيانات التطبيق ممتلئة."
|
||||
}
|
||||
}
|
||||
},
|
||||
"RequestScreen": {
|
||||
"bluetoothDenied": "الرجاء تمكين Bluetooth لتتمكن من طلب{{vcLabel}}",
|
||||
"showQrCode": "اعرض رمز الاستجابة السريعة هذا لطلب المقيم {{vcLabel}}",
|
||||
"incomingVc": "الوارد {{vcLabel}}",
|
||||
"bluetoothDenied": "يرجى تمكين البلوتوث لتتمكن من طلب البطاقة",
|
||||
"bluetoothStateAndroid": "يرجى تشغيل البلوتوث من الإعدادات السريعة لدعم المشاركة المحلية",
|
||||
"bluetoothStateIos": "يرجى تشغيل البلوتوث من مركز التحكم لدعم المشاركة المحلية",
|
||||
"showQrCode": "اعرض رمز الاستجابة السريعة هذا لطلب المقيم بطاقة ",
|
||||
"incomingVc": "بطاقة واردة",
|
||||
"request": "طلب",
|
||||
"errors": {
|
||||
"nearbyDevicesPermissionDenied": {
|
||||
"message": "مطلوب إذن الأجهزة المجاورة لتتمكن من طلب البطاقة",
|
||||
"button": "السماح إذن"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"accepted": {
|
||||
"title": "نجاح!",
|
||||
"message": "تم استلام {{vcLabel}}بنجاح من {{sender}}"
|
||||
"message": "تم استلام بطاقة بنجاح من محفظة"
|
||||
},
|
||||
"rejected": {
|
||||
"title": " إشعار",
|
||||
"message": "لقد رفضت {{sender}} {{vcLabel}}"
|
||||
"message": "تم تجاهل بطاقة المحفظة بواسطتك"
|
||||
},
|
||||
"disconnected": {
|
||||
"title": "ير متصل",
|
||||
@@ -302,7 +312,7 @@
|
||||
"timeoutHint": "يستغرق تبادل معلومات الجهاز وقتًا طويلاً..."
|
||||
},
|
||||
"connected": {
|
||||
"message": "متصل بالجهاز. في انتظار {{vcLabel}}...",
|
||||
"message": "متصل بالجهاز. في انتظار بطاقة ...",
|
||||
"timeoutHint": "لم ترد بيانات حتى الآن. هل جهاز الإرسال لا يزال متصلاً؟"
|
||||
},
|
||||
"offline": {
|
||||
@@ -310,8 +320,7 @@
|
||||
},
|
||||
"bleError": {
|
||||
"title": "فشل التحويل",
|
||||
"message": "حدث خطأ أثناء نقل {{vcLabel}}. حاول مرة اخرى.",
|
||||
"hint": "خطأ: {{code}}"
|
||||
"message": "حدث خطأ أثناء نقل بطاقة. حاول مرة اخرى."
|
||||
}
|
||||
},
|
||||
"online": "متصل",
|
||||
@@ -320,12 +329,12 @@
|
||||
},
|
||||
"ScanScreen": {
|
||||
"header": "مسح رمز الاستجابة السريعة",
|
||||
"noShareableVcs": "لا يمكن مشاركة {{vcLabel}}",
|
||||
"noShareableVcs": "لا تتوفر بطاقات قابلة للمشاركة.",
|
||||
"bluetoothStateAndroid": "يرجى تشغيل البلوتوث من الإعدادات السريعة لدعم المشاركة المحلية",
|
||||
"bluetoothStateIos": "يرجى تشغيل البلوتوث من مركز التحكم لدعم المشاركة المحلية",
|
||||
"enableBluetoothMessage": "يرجى تمكين أذونات البلوتوث لدعم المشاركة المحلية",
|
||||
"enableBluetoothButtonText": "السماح لأذونات البلوتوث",
|
||||
"sharingVc": "مشاركة {{vcLabel}}",
|
||||
"sharingVc": "مشاركة بطاقة ",
|
||||
"errors": {
|
||||
"locationDisabled": {
|
||||
"message": "يجب تمكين خدمات الموقع لوظيفة المسح",
|
||||
@@ -334,6 +343,10 @@
|
||||
"locationDenied": {
|
||||
"message": "إذن الموقع مطلوب لوظيفة المسح",
|
||||
"button": "الموقع"
|
||||
},
|
||||
"nearbyDevicesPermissionDenied": {
|
||||
"message": "مطلوب إذن الأجهزة المجاورة لوظيفة المسح",
|
||||
"button": "السماح إذن"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
@@ -343,8 +356,8 @@
|
||||
"exchangingDeviceInfoTimeout": "يستغرق الأمر بعض الوقت لتبادل معلومات الجهاز. قد تضطر إلى إعادة الاتصال.",
|
||||
"invalid": "غير صالح",
|
||||
"offline": "يرجى الاتصال بالإنترنت لمسح رموز QR ضوئيًا باستخدام وضع المشاركة عبر الإنترنت",
|
||||
"sent": "تم إرسال {{vcLabel}} ...",
|
||||
"sentHint": "في انتظار أن يحفظ المستلم {{vcLabel}} أو يتجاهلها",
|
||||
"sent": "تم إرسال البطاقة ...",
|
||||
"sentHint": "في انتظار أن يحفظ المستلم بطاقة أو يتجاهلها",
|
||||
"sharing": {
|
||||
"title": "مشاركة...",
|
||||
"hint": "الرجاء الانتظار حتى يقبل الجهاز المتلقي المشاركة أو يرفضها.",
|
||||
@@ -352,29 +365,29 @@
|
||||
},
|
||||
"accepted": {
|
||||
"title": "نجاح!",
|
||||
"message": "تمت مشاركة {{vcLabel}} بنجاح مع {{receiver}}"
|
||||
"message": "تمت مشاركة بطاقة بنجاح مع المدقق"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "يلاحظ",
|
||||
"message": "تم تجاهل {{vcLabel}} بواسطة {{receiver}}"
|
||||
"message": "تم تجاهل بطاقة بواسطة المدقق"
|
||||
},
|
||||
"bleError": {
|
||||
"title": "فشل التحويل",
|
||||
"message": "حدث خطأ أثناء نقل {{vcLabel}}. حاول مرة اخرى.",
|
||||
"message": "حدث خطأ أثناء نقل بطاقة . حاول مرة اخرى.",
|
||||
"hint": "خطأ: {{code}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
"header": "يشارك {{vcLabel}}",
|
||||
"chooseVc": "اختر {{vcLabel}} الذي ترغب في المشاركة معه",
|
||||
"header": "يشارك بطاقة ",
|
||||
"chooseVc": "اختر بطاقة الذي ترغب في المشاركة معه",
|
||||
"share": "شارك",
|
||||
"verifyAndShare": "التحقق من الهوية والمشاركة"
|
||||
},
|
||||
"SendVcScreen": {
|
||||
"reasonForSharing": "سبب المشاركة (اختياري)",
|
||||
"acceptRequest": "يشارك",
|
||||
"acceptRequestAndVerify": "شارك مع Selfie",
|
||||
"acceptRequestAndVerify": "شارك مع سيلفي",
|
||||
"reject": "رفض",
|
||||
"status": {
|
||||
"sharing": {
|
||||
@@ -384,11 +397,11 @@
|
||||
},
|
||||
"accepted": {
|
||||
"title": "النجاح!",
|
||||
"message": "تمت مشاركة {{vcLabel}} بنجاح مع {{receiver}}"
|
||||
"message": "تمت مشاركة بطاقة بنجاح مع {{receiver}}"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "تنويه",
|
||||
"message": "تم رفض {{vcLabel}} من قِبل {{receiver}}"
|
||||
"message": "تم رفض بطاقة من قِبل {{receiver}}"
|
||||
}
|
||||
},
|
||||
"consentToPhotoVerification": "أوافق على التقاط صورتي للمصادقة"
|
||||
@@ -407,18 +420,18 @@
|
||||
},
|
||||
"SendVcModal": {
|
||||
"reasonForSharing": "سبب المشاركة (optional)",
|
||||
"acceptRequest": "قبول الطلب واختيار {{vcLabel}}",
|
||||
"acceptRequest": "اقبل الطلب واختر البطاقة",
|
||||
"reject": "رفض",
|
||||
"statusSharing": {
|
||||
"title": "مشاركة ..."
|
||||
},
|
||||
"statusAccepted": {
|
||||
"title": "نجاح!",
|
||||
"message": "تمت مشاركة {{vcLabel}} بنجاح مع{{receiver}}"
|
||||
"message": "تمت مشاركة بطاقة بنجاح مع{{receiver}}"
|
||||
},
|
||||
"statusRejected": {
|
||||
"title": " إشعار",
|
||||
"message": "تم رفض {{vcLabel}}من قِبل {{receiver}}"
|
||||
"message": "تم رفض بطاقتك من قِبل {{receiver}}"
|
||||
}
|
||||
},
|
||||
"WelcomeScreen": {
|
||||
@@ -437,6 +450,9 @@
|
||||
"missingPermission": "يستخدم هذا التطبيق الكاميرا لمسح رمز الاستجابة السريعة لجهاز آخر."
|
||||
},
|
||||
"allowAccess": "اسمح بالوصول إلى الكاميرا"
|
||||
},
|
||||
"errors": {
|
||||
"genericError": "هناك خطأ ما. من فضلك حاول مرة أخرى بعد بعض من الوقت!"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
120
locales/en.json
@@ -19,7 +19,9 @@
|
||||
"requestedBy": "Requested by",
|
||||
"sentBy": "Sent by",
|
||||
"deviceRefNumber": "Device reference number",
|
||||
"name": "Name"
|
||||
"name": "Name",
|
||||
"Verifier": "Verifier",
|
||||
"Wallet": "Wallet"
|
||||
},
|
||||
"FaceScanner": {},
|
||||
"OIDcAuth": {
|
||||
@@ -65,12 +67,12 @@
|
||||
"credentialRegistry": "Credential Registry",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "Failed to save the {{vcLabelSingular}}",
|
||||
"message": "Something went wrong while saving {{vcLabelSingular}} to the store."
|
||||
"title": "Failed to save the Card",
|
||||
"message": "Something went wrong while saving Card to the store."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "Failed to save the {{vcLabelSingular}}",
|
||||
"message": "No more {{vcLabelPlural}} can be received or saved as App Data is full."
|
||||
"title": "Failed to save the Card",
|
||||
"message": "No more Cards can be received or saved as App Data is full."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -96,8 +98,8 @@
|
||||
"deleted": "deleted"
|
||||
},
|
||||
"HomeScreen": {
|
||||
"myVcsTab": "My\n{{vcLabel}}",
|
||||
"receivedVcsTab": "Received\n{{vcLabel}}",
|
||||
"myVcsTab": "My\nCards",
|
||||
"receivedVcsTab": "Received\nCards",
|
||||
"historyTab": "History"
|
||||
},
|
||||
"AddVcModal": {
|
||||
@@ -138,8 +140,8 @@
|
||||
}
|
||||
},
|
||||
"DownloadingVcModal": {
|
||||
"header": "Downloading your {{vcLabel}}",
|
||||
"bodyText": "This may take some time, we will notify you when your {{vcLabel}} has been downloaded and is available",
|
||||
"header": "Downloading your Card",
|
||||
"bodyText": "This may take some time, we will notify you when your Card has been downloaded and is available",
|
||||
"backButton": "Back home"
|
||||
},
|
||||
"GetIdInputModal": {
|
||||
@@ -150,8 +152,8 @@
|
||||
"qstnMarkToolTip": "Application ID is available in the acknowledgement received after enrolment."
|
||||
},
|
||||
"IdInputModal": {
|
||||
"header": "Enter your UIN/VID to download your {{vcLabel}}",
|
||||
"generateVc": "Generate My {{vcLabel}}",
|
||||
"header": "Enter your UIN/VID to download your Card",
|
||||
"generateVc": "Generate My Card",
|
||||
"enterId": "Enter your {{idType}}",
|
||||
"noUIN/VID": "Don't have your UIN/VID? Get it here",
|
||||
"requestingOTP": "Requesting OTP..."
|
||||
@@ -161,32 +163,32 @@
|
||||
"header": "OTP Verification"
|
||||
},
|
||||
"MyVcsTab": {
|
||||
"addVcButton": "Add {{vcLabel}}",
|
||||
"generateVc": "Generate your {{vcLabel}}",
|
||||
"generateVcDescription": "Tap on \"Add {{vcLabel}}\" below to download your {{vcLabel}}",
|
||||
"addVcButton": "Add Card",
|
||||
"generateVc": "Generate your Cards",
|
||||
"generateVcDescription": "Tap on \"Add Card\" below to download your Card",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "Failed to save the {{vcLabelSingular}}",
|
||||
"message": "Something went wrong while saving {{vcLabelSingular}} to the store."
|
||||
"title": "Failed to save the Card",
|
||||
"message": "Something went wrong while saving Card to the store."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "Failed to save the {{vcLabelSingular}}",
|
||||
"message": "No more {{vcLabelPlural}} can be received or saved as App Data is full."
|
||||
"title": "Failed to save the Card",
|
||||
"message": "No more Cards can be received or saved as App Data is full."
|
||||
}
|
||||
}
|
||||
},
|
||||
"OnboardingOverlay": {
|
||||
"stepOneTitle": "Welcome!",
|
||||
"stepOneText": "Keep your digital credential with you at all times. To get started, add {{vcLabel}} to your profile.",
|
||||
"stepTwoTitle": "{{vcLabel}} management",
|
||||
"stepTwoText": "Once generated, {{vcLabel}} are safely stored on your mobile and can be renamed or shared at any time.",
|
||||
"stepOneText": "Keep your digital credential with you at all times. To get started, add Cards to your profile.",
|
||||
"stepTwoTitle": "Card management",
|
||||
"stepTwoText": "Once generated, Cards are safely stored on your mobile and can be renamed or shared at any time.",
|
||||
"stepThreeTitle": "Easy sharing",
|
||||
"stepThreeText": "Share and receive {{vcLabel}} switfly using your phone camera to scan QR codes.",
|
||||
"stepThreeButton": "Get started and add {{vcLabel}}"
|
||||
"stepThreeText": "Share and receive Cards switfly using your phone camera to scan QR codes.",
|
||||
"stepThreeButton": "Get started and add Card"
|
||||
},
|
||||
"ReceivedVcsTab": {
|
||||
"noReceivedVcsTitle": "No {{vcLabel}} available yet",
|
||||
"noReceivedVcsText": "Tap on Request below to receive {{vcLabel}}"
|
||||
"noReceivedVcsTitle": "No Cards available yet",
|
||||
"noReceivedVcsText": "Tap on Request below to receive Card"
|
||||
},
|
||||
"ViewVcModal": {
|
||||
"cancel": "Cancel",
|
||||
@@ -201,8 +203,8 @@
|
||||
"redirecting": "Redirecting...",
|
||||
"inProgress": "Loading...",
|
||||
"success": {
|
||||
"unlocked": "{{vcLabel}} successfully unlocked",
|
||||
"locked": "{{vcLabel}} successfully locked",
|
||||
"unlocked": "Card successfully unlocked",
|
||||
"locked": "Card successfully locked",
|
||||
"revoked": "VID {{vid}} has been revoked. Any credential containing the same will be removed automatically from the wallet"
|
||||
}
|
||||
},
|
||||
@@ -220,14 +222,12 @@
|
||||
"AppMetaData": {
|
||||
"header": "About Inji",
|
||||
"version": "Version",
|
||||
"useBle": "Powered by BLE",
|
||||
"useGoogleNearby": "Powered by GoogleNearby"
|
||||
"useBle": "Powered by BLE"
|
||||
},
|
||||
"ProfileScreen": {
|
||||
"name": "Name",
|
||||
"vcLabel": "VC Label",
|
||||
"language": "Language",
|
||||
"credentialRegistry": "Credential Registry",
|
||||
"bioUnlock": "Unlock with biometrics",
|
||||
"authFactorUnlock": "Unlock auth factor",
|
||||
"AppMetaData": "About Inji",
|
||||
@@ -246,7 +246,7 @@
|
||||
"checkDomain": "Also, check that there is a lock icon on the address bar.",
|
||||
"domainHead": "https://",
|
||||
"selectId": "Select ID",
|
||||
"noBindedVc": "No Binded {{vcLabel}} Available to Verify",
|
||||
"noBindedVc": "No Binded Cards Available to Verify",
|
||||
"back": "Go Back",
|
||||
"confirm": "Confirm",
|
||||
"verify": "Verify",
|
||||
@@ -265,37 +265,45 @@
|
||||
"required": "Required"
|
||||
},
|
||||
"ReceiveVcScreen": {
|
||||
"header": "{{vcLabel}} details",
|
||||
"save": "Save {{vcLabel}}",
|
||||
"header": "Card details",
|
||||
"save": "Save Card",
|
||||
"verifyAndSave": "Verify and save",
|
||||
"reject": "Reject",
|
||||
"discard": "Discard",
|
||||
"goToReceivedVCTab": "View Received {{vcLabel}}",
|
||||
"goToReceivedVCTab": "View Received Cards",
|
||||
"saving": "Saving",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "Failed to save the {{vcLabelSingular}}",
|
||||
"message": "Something went wrong while saving {{vcLabelSingular}} to the store."
|
||||
"title": "Failed to save the Card",
|
||||
"message": "Something went wrong while saving Card to the store."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "Failed to save the {{vcLabelSingular}}",
|
||||
"message": "No more {{vcLabelPlural}} can be received or saved as App Data is full."
|
||||
"title": "Failed to save the Card",
|
||||
"message": "No more Cards can be received or saved as App Data is full."
|
||||
}
|
||||
}
|
||||
},
|
||||
"RequestScreen": {
|
||||
"bluetoothDenied": "Please enable Bluetooth to be able to request {{vcLabel}}",
|
||||
"showQrCode": "Display this QR code to request resident {{vcLabel}}",
|
||||
"incomingVc": "Incoming {{vcLabel}}",
|
||||
"bluetoothDenied": "Please enable Bluetooth to be able to request Card",
|
||||
"bluetoothStateAndroid": "Please turn on bluetooth from quick settings to support local sharing",
|
||||
"bluetoothStateIos": "Please turn on bluetooth from control center to support local sharing",
|
||||
"showQrCode": "Display this QR code to request resident Card",
|
||||
"incomingVc": "Incoming Card",
|
||||
"request": "Request",
|
||||
"errors": {
|
||||
"nearbyDevicesPermissionDenied": {
|
||||
"message": "Nearby Devices permission is required to be able to request Card",
|
||||
"button": "Allow Permission"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"accepted": {
|
||||
"title": "Success!",
|
||||
"message": "{{vcLabel}} has been successfully received from {{sender}}"
|
||||
"message": "Card has been successfully received from Wallet"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "Notice",
|
||||
"message": "You discarded {{sender}}'s {{vcLabel}}"
|
||||
"message": "You discarded Wallet's Card"
|
||||
},
|
||||
"disconnected": {
|
||||
"title": "Disconnected",
|
||||
@@ -307,7 +315,7 @@
|
||||
"timeoutHint": "It's taking too long to exchange device info..."
|
||||
},
|
||||
"connected": {
|
||||
"message": "Connected to the device. Waiting for {{vcLabel}}...",
|
||||
"message": "Connected to the device. Waiting for Card...",
|
||||
"timeoutHint": "No data received yet. Is sending device still connected?"
|
||||
},
|
||||
"offline": {
|
||||
@@ -315,7 +323,7 @@
|
||||
},
|
||||
"bleError": {
|
||||
"title": "Failed to transfer",
|
||||
"message": "Something went wrong while transferring {{vcLabel}}. Please try again.",
|
||||
"message": "Something went wrong while transferring Card. Please try again.",
|
||||
"hint": "Error: {{code}}"
|
||||
}
|
||||
},
|
||||
@@ -325,8 +333,8 @@
|
||||
},
|
||||
"ScanScreen": {
|
||||
"header": "Scan QR Code",
|
||||
"noShareableVcs": "No shareable {{vcLabel}} are available.",
|
||||
"sharingVc": "Sharing {{vcLabel}}",
|
||||
"noShareableVcs": "No shareable Cards are available.",
|
||||
"sharingVc": "Sharing Card",
|
||||
"bluetoothStateAndroid": "Please turn on bluetooth from quick settings to support local sharing",
|
||||
"bluetoothStateIos": "Please turn on bluetooth from control center to support local sharing",
|
||||
"enableBluetoothMessage": "Please enable bluetooth permissions to support local sharing",
|
||||
@@ -339,6 +347,10 @@
|
||||
"locationDenied": {
|
||||
"message": "Location permission is required for the scanning functionality",
|
||||
"button": "Allow access to location"
|
||||
},
|
||||
"nearbyDevicesPermissionDenied": {
|
||||
"message": "Nearby Devices permission is required for the scanning functionality",
|
||||
"button": "Allow Permission"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
@@ -348,8 +360,8 @@
|
||||
"exchangingDeviceInfoTimeout": "It's taking a while to exchange device info. You may have to reconnect.",
|
||||
"invalid": "Invalid QR Code",
|
||||
"offline": "Please connect to the internet to scan QR codes using Online sharing mode",
|
||||
"sent": "{{ vcLabel }} has been sent...",
|
||||
"sentHint": "Waiting for receiver to save or discard your {{ vcLabel }}",
|
||||
"sent": "Card has been sent...",
|
||||
"sentHint": "Waiting for receiver to save or discard your Card",
|
||||
"sharing": {
|
||||
"title": "Sharing...",
|
||||
"hint": "Please wait for the receiving device to accept or reject the share.",
|
||||
@@ -357,22 +369,22 @@
|
||||
},
|
||||
"accepted": {
|
||||
"title": "Success!",
|
||||
"message": "Your {{vcLabel}} has been successfully shared with {{receiver}}"
|
||||
"message": "Your Card has been successfully shared with Verifier"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "Notice",
|
||||
"message": "Your {{vcLabel}} was discarded by {{receiver}}"
|
||||
"message": "Your Card was discarded by Verifier"
|
||||
},
|
||||
"bleError": {
|
||||
"title": "Failed to transfer",
|
||||
"message": "Something went wrong while transferring {{vcLabel}}. Please try again.",
|
||||
"message": "Something went wrong while transferring Card. Please try again.",
|
||||
"hint": "Error: {{code}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
"header": "Share {{vcLabel}}",
|
||||
"chooseVc": "Choose the {{vcLabel}} you'd like to share with",
|
||||
"header": "Share Card",
|
||||
"chooseVc": "Choose the Card you'd like to share with",
|
||||
"share": "Share",
|
||||
"verifyAndShare": "Verify Identity & Share"
|
||||
},
|
||||
|
||||
124
locales/fil.json
@@ -19,7 +19,9 @@
|
||||
"requestedBy": "Hiniling ni",
|
||||
"sentBy": "Ipinadala ni",
|
||||
"deviceRefNumber": "Reference number ng device",
|
||||
"name": "Pangalan"
|
||||
"name": "Pangalan",
|
||||
"Verifier": "Verifier",
|
||||
"Wallet": "Wallet"
|
||||
},
|
||||
"PasscodeVerify": {
|
||||
"passcodeMismatchError": "Hindi tumugma ang passcode."
|
||||
@@ -65,12 +67,12 @@
|
||||
"credentialRegistry": "Registry ng Mga Kredensyal",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "Nabigong i-save ang {{vcLabelSingular}}",
|
||||
"message": "Nagkaproblema habang nagse-save ng {{vcLabelSingular}} sa tindahan."
|
||||
"title": "Nabigong i-save ang Card",
|
||||
"message": "Nagkaproblema habang nagse-save ng Card sa tindahan."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "Nabigong i-save ang {{vcLabelSingular}}",
|
||||
"message": "Wala nang mga {{vcLabelPlural}} na matatanggap o mai-save dahil puno na ang Data ng App."
|
||||
"title": "Nabigong i-save ang Card",
|
||||
"message": "Wala nang mga Mga kard na matatanggap o mai-save dahil puno na ang Data ng App."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -96,8 +98,8 @@
|
||||
"deleted": "tinanggal"
|
||||
},
|
||||
"HomeScreen": {
|
||||
"myVcsTab": "Aking\n{{vcLabel}}",
|
||||
"receivedVcsTab": "Nakuhang\n{{vcLabel}}",
|
||||
"myVcsTab": "Aking\nMga kard",
|
||||
"receivedVcsTab": "Nakuhang\nMga kard",
|
||||
"historyTab": "Pangyayari"
|
||||
},
|
||||
"AddVcModal": {
|
||||
@@ -138,8 +140,8 @@
|
||||
}
|
||||
},
|
||||
"DownloadingVcModal": {
|
||||
"header": "Kinukuha ang iyong {{vcLabel}}",
|
||||
"bodyText": "Maaaring tumagal ito ng ilang oras, ipapaalam namin sayo kung pwede na kunin ang iyong {{vcLabel}}",
|
||||
"header": "Kinukuha ang iyong Card",
|
||||
"bodyText": "Maaaring tumagal ito ng ilang oras, ipapaalam namin sayo kung pwede na kunin ang iyong Card",
|
||||
"backButton": "Bumalik"
|
||||
},
|
||||
"GetIdInputModal": {
|
||||
@@ -150,8 +152,8 @@
|
||||
"qstnMarkToolTip": "Available ang Application ID sa natanggap na acknowledgement pagkatapos ng enrollment."
|
||||
},
|
||||
"IdInputModal": {
|
||||
"header": "Ilagay ang iyong UIN/VID para i-download ang iyong {{vcLabel}}",
|
||||
"generateVc": "Bumuo ng Aking {{vcLabel}}",
|
||||
"header": "Ilagay ang iyong UIN/VID para i-download ang iyong Card",
|
||||
"generateVc": "Bumuo ng Aking Card",
|
||||
"enterId": "Ilagay ang iyong {{idType}}",
|
||||
"noUIN/VID": "Wala ka bang UIN/VID? Kuhanin dito",
|
||||
"requestingOTP": "Humihiling ng OTP..."
|
||||
@@ -161,32 +163,32 @@
|
||||
"header": "Pag-verify ng OTP"
|
||||
},
|
||||
"MyVcsTab": {
|
||||
"addVcButton": "Magdagdag ng {{vcLabel}}",
|
||||
"generateVc": "Gumawa ng iyong {{vcLabel}}",
|
||||
"generateVcDescription": "Pindutin ang \"Magdagdag ng {{vcLabel}}\" sa ibaba upang makuha ang iyong {{vcLabel}}",
|
||||
"addVcButton": "Magdagdag ng Card",
|
||||
"generateVc": "Gumawa ng iyong Mga kard",
|
||||
"generateVcDescription": "Pindutin ang \"Magdagdag ng Card\" sa ibaba upang makuha ang iyong Card",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "Nabigong i-save ang {{vcLabelSingular}}",
|
||||
"message": "Nagkaproblema habang nagse-save ng {{vcLabelSingular}} sa tindahan."
|
||||
"title": "Nabigong i-save ang Card",
|
||||
"message": "Nagkaproblema habang nagse-save ng Card sa tindahan."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "Nabigong i-save ang {{vcLabelSingular}}",
|
||||
"message": "Wala nang mga {{vcLabelPlural}} na matatanggap o mai-save dahil puno na ang Data ng App."
|
||||
"title": "Nabigong i-save ang Card",
|
||||
"message": "Wala nang mga Mga kard na matatanggap o mai-save dahil puno na ang Data ng App."
|
||||
}
|
||||
}
|
||||
},
|
||||
"OnboardingOverlay": {
|
||||
"stepOneTitle": "Mabuhay!",
|
||||
"stepOneText": "Panatilihing pribado ang iyong digital na kredensyal sa lahat ng pagkakataon. Upang makapagsimula, magdagdag ng {{vcLabel}} sa iyong profile.",
|
||||
"stepTwoTitle": "Pamamahala ng {{vcLabel}}",
|
||||
"stepTwoText": "Kapag nalikha na ang {{vcLabel}}, ito ay ligtas na nakatago sa iyong mobile at maaaring palitan ang pangalan o ibahagi anumang oras.",
|
||||
"stepOneText": "Panatilihing pribado ang iyong digital na kredensyal sa lahat ng pagkakataon. Upang makapagsimula, magdagdag ng Mga kard sa iyong profile.",
|
||||
"stepTwoTitle": "Pamamahala ng Card",
|
||||
"stepTwoText": "Kapag nalikha na ang Mga kard, ito ay ligtas na nakatago sa iyong mobile at maaaring palitan ang pangalan o ibahagi anumang oras.",
|
||||
"stepThreeTitle": "Madaling pagbabahagi",
|
||||
"stepThreeText": "Ibahagi at tumanggap ng {{vcLabel}} nang mabilis gamit ang camera ng iyong mobile upang mag-scan ng mga QR code.",
|
||||
"stepThreeButton": "Magsimula at magdagdag ng {{vcLabel}}"
|
||||
"stepThreeText": "Ibahagi at tumanggap ng Mga kard nang mabilis gamit ang camera ng iyong mobile upang mag-scan ng mga QR code.",
|
||||
"stepThreeButton": "Magsimula at magdagdag ng Card"
|
||||
},
|
||||
"ReceivedVcsTab": {
|
||||
"noReceivedVcsTitle": "Wala pang {{vcLabel}}",
|
||||
"noReceivedVcsText": "Pindutin ang Humiling sa ibaba para makatanggap ng {{vcLabel}}"
|
||||
"noReceivedVcsTitle": "Wala pang Mga kard",
|
||||
"noReceivedVcsText": "Pindutin ang Humiling sa ibaba para makatanggap ng Card"
|
||||
},
|
||||
"ViewVcModal": {
|
||||
"cancel": "Kanselahin",
|
||||
@@ -201,8 +203,8 @@
|
||||
"redirecting": "Redirecting...",
|
||||
"inProgress": "Naglo-load...",
|
||||
"success": {
|
||||
"unlocked": "Ang {{vcLabel}} ay matagumpay na na-unlock",
|
||||
"locked": "Ang {{vcLabel}} ay matagumpay na na-lock",
|
||||
"unlocked": "Ang Card ay matagumpay na na-unlock",
|
||||
"locked": "Ang Card ay matagumpay na na-lock",
|
||||
"revoked": "Ang VID {{vid}} ay nakansela. Ang lahat ng mga detalye na naglalaman ng pareho ay awtomatikong aalisin wallet."
|
||||
}
|
||||
},
|
||||
@@ -220,8 +222,7 @@
|
||||
"AppMetaData": {
|
||||
"header": "Tungkol kay Inji",
|
||||
"version": "Bersyon",
|
||||
"useBle": "Powered by BLE",
|
||||
"useGoogleNearby": "Powered by GoogleNearby"
|
||||
"useBle": "Powered by BLE"
|
||||
},
|
||||
"ProfileScreen": {
|
||||
"name": "Pangalan",
|
||||
@@ -246,7 +247,7 @@
|
||||
"checkDomain": "Gayundin, tingnan kung mayroong icon ng lock sa address bar.",
|
||||
"domainHead": "https://",
|
||||
"selectId": "Pumili ng ID",
|
||||
"noBindedVc": "Available sa Verifyct ID ang SeleNo Binded {{vcLabel}}",
|
||||
"noBindedVc": "Available sa Verifyct ID ang SeleNo Binded Mga kard",
|
||||
"back": "Bumalik ka",
|
||||
"confirm": "Kumpirmahin",
|
||||
"verify": "I-verify",
|
||||
@@ -260,36 +261,45 @@
|
||||
"okay": "Sige"
|
||||
},
|
||||
"ReceiveVcScreen": {
|
||||
"header": "Mga detalye ng {{vcLabel}}",
|
||||
"acceptRequest": "Tanggapin ang kahilingan at tumanggap ng {{vcLabel}}",
|
||||
"header": "Mga detalye ng Card",
|
||||
"save": "I-save ang Card",
|
||||
"acceptRequest": "Tanggapin ang kahilingan at tumanggap ng Card",
|
||||
"reject": "Tanggihan",
|
||||
"discard": "Itapon",
|
||||
"goToReceivedVCTab": "Tingnan ang mga Natanggap na {{vcLabel}}",
|
||||
"goToReceivedVCTab": "Tingnan ang mga Natanggap na Mga kard",
|
||||
"saving": "Nagtitipid",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "Nabigong i-save ang {{vcLabelSingular}}",
|
||||
"message": "Nagkaproblema habang nagse-save ng {{vcLabelSingular}} sa tindahan."
|
||||
"title": "Nabigong i-save ang Card",
|
||||
"message": "Nagkaproblema habang nagse-save ng Card sa tindahan."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "Nabigong i-save ang {{vcLabelSingular}}",
|
||||
"message": "Wala nang mga {{vcLabelPlural}} na matatanggap o mai-save dahil puno na ang Data ng App."
|
||||
"title": "Nabigong i-save ang Card",
|
||||
"message": "Wala nang mga Mga kard na matatanggap o mai-save dahil puno na ang Data ng App."
|
||||
}
|
||||
}
|
||||
},
|
||||
"RequestScreen": {
|
||||
"bluetoothDenied": "Mangyaring paganahin ang Bluetooth upang makahiling ng {{vcLabel}}",
|
||||
"showQrCode": "Ipakita ang QR code na ito para humiling ng resident {{vcLabel}}",
|
||||
"incomingVc": "Padating na {{vcLabel}}",
|
||||
"bluetoothDenied": "Mangyaring paganahin ang Bluetooth upang makahiling ng Card",
|
||||
"bluetoothStateAndroid": "Mangyaring i-on ang bluetooth mula sa mga mabilisang setting upang suportahan ang lokal na pagbabahagi",
|
||||
"bluetoothStateIos": "Mangyaring i-on ang bluetooth mula sa control center upang suportahan ang lokal na pagbabahagi",
|
||||
"showQrCode": "Ipakita ang QR code na ito para humiling ng resident Card",
|
||||
"incomingVc": "Padating na Card",
|
||||
"request": "Hilingin",
|
||||
"errors": {
|
||||
"nearbyDevicesPermissionDenied": {
|
||||
"message": "Kinakailangan ang pahintulot ng Mga Kalapit na Device para makahiling ng Card",
|
||||
"button": "Pahintulutan"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"accepted": {
|
||||
"title": "Tagumpay!",
|
||||
"message": "Tagumpay na nakuha ang {{vcLabel}} mula kay {{sender}}"
|
||||
"message": "Tagumpay na nakuha ang Card mula kay Wallet"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "Paunawa",
|
||||
"message": "Iwinaksi ang {{vcLabel}} ni {{sender}}"
|
||||
"message": "Iwinaksi ang Card ni Wallet"
|
||||
},
|
||||
"disconnected": {
|
||||
"title": "Nadiskonekta",
|
||||
@@ -301,7 +311,7 @@
|
||||
"timeoutHint": "Masyadong matagal ang pagpapalitan ng impormasyon ng device..."
|
||||
},
|
||||
"connected": {
|
||||
"message": "Nakakonektang device. Naghihintay para sa {{vcLabel}}...",
|
||||
"message": "Nakakonektang device. Naghihintay para sa Card...",
|
||||
"timeoutHint": "Wala pang natanggap na VC. Nakakonekta pa rin ba ang pagpapadala ng device?"
|
||||
},
|
||||
"offline": {
|
||||
@@ -309,7 +319,7 @@
|
||||
},
|
||||
"bleError": {
|
||||
"title": "Nabigong ilipat",
|
||||
"message": "Nagkaproblema habang inililipat ang {{vcLabel}}. Pakisubukang muli.",
|
||||
"message": "Nagkaproblema habang inililipat ang Card. Pakisubukang muli.",
|
||||
"hint": "Pagkakamali: {{code}}"
|
||||
}
|
||||
},
|
||||
@@ -319,12 +329,12 @@
|
||||
},
|
||||
"ScanScreen": {
|
||||
"header": "I-scan ang QR Code",
|
||||
"noShareableVcs": "Walang magagamit na maibabahaging {{vcLabel}}.",
|
||||
"noShareableVcs": "Walang magagamit na maibabahaging Mga kard.",
|
||||
"bluetoothStateAndroid": "Mangyaring i-on ang bluetooth mula sa mga mabilisang setting upang suportahan ang lokal na pagbabahagi",
|
||||
"bluetoothStateIos": "Mangyaring i-on ang bluetooth mula sa control center upang suportahan ang lokal na pagbabahagi",
|
||||
"enableBluetoothMessage": "Mangyaring paganahin ang mga pahintulot ng bluetooth upang suportahan ang lokal na pagbabahagi",
|
||||
"enableBluetoothButtonText": "Payagan ang Mga Pahintulot sa Bluetooth",
|
||||
"sharingVc": "Pagbabahagi ng {{vcLabel}}",
|
||||
"sharingVc": "Pagbabahagi ng Card",
|
||||
"errors": {
|
||||
"locationDisabled": {
|
||||
"message": "Dapat na nakabukas ang Location services ng iyong mobile para maaaring makapag-scan",
|
||||
@@ -333,6 +343,10 @@
|
||||
"locationDenied": {
|
||||
"message": "Kinakailangan ang pahintulot sa lokasyon ng iyong mobile para maaaring makapag-scan",
|
||||
"button": "Payagan ng pahintulot sa lokasyon"
|
||||
},
|
||||
"nearbyDevicesPermissionDenied": {
|
||||
"message": "Kinakailangan ang pahintulot ng Mga Kalapit na Device para sa functionality ng pag-scan",
|
||||
"button": "Pahintulutan"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
@@ -342,8 +356,8 @@
|
||||
"exchangingDeviceInfoTimeout": "Medyo nagtatagal ang paglabas ng impormasyon ng device. Bukas ba ang ibang device para sa mga koneksyon?",
|
||||
"invalid": "Di-wasto ang QR Code",
|
||||
"offline": "Mangyaring kumonekta sa internet upang makapag-scan ng QR codes na gumagamit ng Online sharing mode",
|
||||
"sent": "Naibahagi na ang {{vcLabel}}...",
|
||||
"sentHint": "Iniintay ang nakatanggap na itabi o iwaksi ang iyong {{vcLabel}}",
|
||||
"sent": "Naibahagi na ang Card...",
|
||||
"sentHint": "Iniintay ang nakatanggap na itabi o iwaksi ang iyong Card",
|
||||
"sharing": {
|
||||
"title": "Pagbabahagi...",
|
||||
"hint": "Pakihintay na tanggapin o tanggihan ng tumatanggap na device ang pagbabahagi.",
|
||||
@@ -351,22 +365,22 @@
|
||||
},
|
||||
"accepted": {
|
||||
"title": "Tagumpay!",
|
||||
"message": "Ang iyong {{vcLabel}} ay matagumpay na naibahagi sa {{receiver}}"
|
||||
"message": "Ang iyong Card ay matagumpay na naibahagi sa Verifier"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "Pansinin",
|
||||
"message": "Ang iyong {{vcLabel}} ay itinapon ng {{receiver}}"
|
||||
"message": "Ang iyong Card ay itinapon ng Verifier"
|
||||
},
|
||||
"bleError": {
|
||||
"title": "Nabigong ilipat",
|
||||
"message": "Nagkaproblema habang inililipat ang {{vcLabel}}. Pakisubukang muli.",
|
||||
"message": "Nagkaproblema habang inililipat ang Card. Pakisubukang muli.",
|
||||
"hint": "Pagkakamali: {{code}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
"header": "Ibahagi ang {{vcLabel}}",
|
||||
"chooseVc": "Piliin ang {{vcLabel}} na gusto mong ibahagi",
|
||||
"header": "Ibahagi ang Card",
|
||||
"chooseVc": "Piliin ang Card na gusto mong ibahagi",
|
||||
"share": "Ibahagi",
|
||||
"verifyAndShare": "I-verify ang Pagkakakilanlan at Ibahagi"
|
||||
},
|
||||
@@ -382,11 +396,11 @@
|
||||
},
|
||||
"accepted": {
|
||||
"title": "Tagumpay!",
|
||||
"message": "Ang iyong {{vcLabel}} ay matagumpay na naibahagi kay {{receiver}}"
|
||||
"message": "Ang iyong Card ay matagumpay na naibahagi kay {{receiver}}"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "Pansinin",
|
||||
"message": "Ang iyong {{vcLabel}} ay tinanggihan ng {{receiver}}"
|
||||
"message": "Ang iyong Card ay tinanggihan ng {{receiver}}"
|
||||
}
|
||||
},
|
||||
"consentToPhotoVerification": "Nagbibigay ako ng pahintulot na kunin ang aking larawan para sa pagpapatunay"
|
||||
|
||||
136
locales/hin.json
@@ -19,7 +19,9 @@
|
||||
"requestedBy": "द्वारा अनुरोध किया गया",
|
||||
"sentBy": "द्वारा भेजा गया",
|
||||
"deviceRefNumber": "डिवाइस संदर्भ संख्या",
|
||||
"name": "नाम"
|
||||
"name": "नाम",
|
||||
"Verifier": "सत्यापनकर्ता",
|
||||
"Wallet": "वॉलेट"
|
||||
},
|
||||
"PasscodeVerify": {
|
||||
"passcodeMismatchError": "पासकोड का मिलान नहीं हुआ।"
|
||||
@@ -65,13 +67,13 @@
|
||||
"credentialRegistry": "साख रजिस्ट्री",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "{{vcLabelSingular}} सहेजने में विफल",
|
||||
"message1": "{{vcLabelSingular}} को स्टोर में सेव करते समय कोई गड़बड़ी हुई.",
|
||||
"message": "स्टोर में {{vcLabelSingular}} सहेजते समय कोई गड़बड़ी हुई।"
|
||||
"title": "कार्ड सहेजने में विफल",
|
||||
"message1": "कार्ड को स्टोर में सेव करते समय कोई गड़बड़ी हुई.",
|
||||
"message": "स्टोर में कार्ड सहेजते समय कोई गड़बड़ी हुई।"
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "{{vcLabelSingular}} सहेजने में विफल",
|
||||
"message": "ऐप डेटा पूर्ण होने के कारण कोई और {{vcLabelPlural}} प्राप्त या सहेजा नहीं जा सकता है।"
|
||||
"title": "कार्ड सहेजने में विफल",
|
||||
"message": "ऐप डेटा पूर्ण होने के कारण कोई और कार्ड्स प्राप्त या सहेजा नहीं जा सकता है।"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -97,8 +99,8 @@
|
||||
"deleted": "डिलीट"
|
||||
},
|
||||
"HomeScreen": {
|
||||
"myVcsTab": "मेरा\n{{vcLabel}}",
|
||||
"receivedVcsTab": "प्राप्त\n{{vcLabel}}",
|
||||
"myVcsTab": "मेरा\nकार्ड्स",
|
||||
"receivedVcsTab": "प्राप्त\nकार्ड्स",
|
||||
"historyTab": "इतिहास"
|
||||
},
|
||||
"AddVcModal": {
|
||||
@@ -139,8 +141,8 @@
|
||||
}
|
||||
},
|
||||
"DownloadingVcModal": {
|
||||
"header": "अपना{{vcLabel}}डाउनलोड कर रहा है",
|
||||
"bodyText": "इसमें कुछ समय लग सकता है, हम आपको सूचित करेंगे जब आपका {{vcLabel}} डाउनलोड हो जाएगा और उपलब्ध होगा",
|
||||
"header": "अपना कार्ड डाउनलोड कर रहा है",
|
||||
"bodyText": "इसमें कुछ समय लग सकता है, हम आपको सूचित करेंगे जब आपका कार्ड डाउनलोड हो जाएगा और उपलब्ध होगा",
|
||||
"backButton": "बैक होम"
|
||||
},
|
||||
"GetIdInputModal": {
|
||||
@@ -151,8 +153,8 @@
|
||||
"qstnMarkToolTip": "आवेदन ID नामांकन के बाद प्राप्त पावती में उपलब्ध है।"
|
||||
},
|
||||
"IdInputModal": {
|
||||
"header": "अपना {{vcLabel}} डाउनलोड करने के लिए अपना UIN/VID दर्ज करें",
|
||||
"generateVc": "मेरा {{vcLabel}} जनरेट करें",
|
||||
"header": "अपना कार्ड डाउनलोड करने के लिए अपना UIN/VID दर्ज करें",
|
||||
"generateVc": "मेरा कार्ड जनरेट करें",
|
||||
"enterId": "अपना {{idType}} दर्ज करें",
|
||||
"noUIN/VID": "आपका UIN/VID नहीं है? इसे यहां लाओ",
|
||||
"requestingOTP": "OTP का अनुरोध..."
|
||||
@@ -162,33 +164,33 @@
|
||||
"header": "ओटीपी सत्यापन"
|
||||
},
|
||||
"MyVcsTab": {
|
||||
"addVcButton": "{{vcLabel}} जोड़ें",
|
||||
"generateVc": "अपना {{vcLabel}}जेनरेट करें",
|
||||
"generateVcDescription": "अपना {{vcLabel}} डाउनलोड करने के लिए नीचे \"जोड़ें {{vcLabel}}\" पर टैप करें",
|
||||
"addVcButton": "कार्ड जोड़ें",
|
||||
"generateVc": "अपना कार्ड्स जेनरेट करें",
|
||||
"generateVcDescription": "अपना कार्ड डाउनलोड करने के लिए नीचे \"कार्ड जोड़ें\" पर टैप करें",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "{{vcLabelSingular}} सहेजने में विफल",
|
||||
"message1": "{{vcLabelSingular}} को स्टोर में सेव करते समय कोई गड़बड़ी हुई.",
|
||||
"message": "स्टोर में {{vcLabelSingular}} सहेजते समय कोई गड़बड़ी हुई।"
|
||||
"title": "कार्ड सहेजने में विफल",
|
||||
"message1": "कार्ड को स्टोर में सेव करते समय कोई गड़बड़ी हुई.",
|
||||
"message": "स्टोर में कार्ड सहेजते समय कोई गड़बड़ी हुई।"
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "{{vcLabelSingular}} सहेजने में विफल",
|
||||
"message": "ऐप डेटा पूर्ण होने के कारण कोई और {{vcLabelPlural}} प्राप्त या सहेजा नहीं जा सकता है।"
|
||||
"title": "कार्ड सहेजने में विफल",
|
||||
"message": "ऐप डेटा पूर्ण होने के कारण कोई और कार्ड्स प्राप्त या सहेजा नहीं जा सकता है।"
|
||||
}
|
||||
}
|
||||
},
|
||||
"OnboardingOverlay": {
|
||||
"stepOneTitle": "स्वागत है!",
|
||||
"stepOneText": "अपना डिजिटल क्रेडेंशियल हमेशा अपने पास रखें। आरंभ करने के लिए, अपनी प्रोफ़ाइल में {{vcLabel}} जोड़ें।",
|
||||
"stepTwoTitle": "{{vcLabel}} प्रबंधन",
|
||||
"stepTwoText": "एक बार जनरेट हो जाने पर, {{vcLabel}} आपके मोबाइल पर सुरक्षित रूप से संगृहीत हो जाते हैं और उनका नाम बदला जा सकता है या किसी भी समय साझा किया जा सकता है।",
|
||||
"stepOneText": "अपना डिजिटल क्रेडेंशियल हमेशा अपने पास रखें। आरंभ करने के लिए, अपनी प्रोफ़ाइल में कार्ड्स जोड़ें।",
|
||||
"stepTwoTitle": "कार्ड प्रबंधन",
|
||||
"stepTwoText": "एक बार जनरेट हो जाने पर, कार्ड्स आपके मोबाइल पर सुरक्षित रूप से संगृहीत हो जाते हैं और उनका नाम बदला जा सकता है या किसी भी समय साझा किया जा सकता है।",
|
||||
"stepThreeTitle": "आसान साझा करना",
|
||||
"stepThreeText": "QR कोड स्कैन करने के लिए अपने फ़ोन कैमरे का उपयोग करके {{vcLabel}} switfly साझा करें और प्राप्त करें।",
|
||||
"stepThreeButton": "आरंभ करें और {{vcLabel}} जोड़ें"
|
||||
"stepThreeText": "QR कोड स्कैन करने के लिए अपने फ़ोन कैमरे का उपयोग करके कार्ड्स switfly साझा करें और प्राप्त करें।",
|
||||
"stepThreeButton": "आरंभ करें और कार्ड जोड़ें"
|
||||
},
|
||||
"ReceivedVcsTab": {
|
||||
"noReceivedVcsTitle": "नहीं {{vcLabel}} अभी तक उपलब्ध नहीं है",
|
||||
"noReceivedVcsText": "प्राप्त करने के लिए नीचे दिए गए अनुरोध पर टैप करें {{vcLabel}}"
|
||||
"noReceivedVcsTitle": "नहीं कार्ड्स अभी तक उपलब्ध नहीं है",
|
||||
"noReceivedVcsText": "प्राप्त करने के लिए नीचे दिए गए अनुरोध पर टैप करें कार्ड"
|
||||
},
|
||||
"ViewVcModal": {
|
||||
"cancel": "रद्द करना",
|
||||
@@ -203,8 +205,8 @@
|
||||
"redirecting": "पुन: निर्देशित...",
|
||||
"inProgress": "लोड हो रहा है...",
|
||||
"success": {
|
||||
"unlocked": "{{vcLabel}} सफलतापूर्वक अनलॉक किया गया",
|
||||
"locked": "{{vcLabel}} सफलतापूर्वक लॉक हो गया",
|
||||
"unlocked": "कार्ड सफलतापूर्वक अनलॉक किया गया",
|
||||
"locked": "कार्ड सफलतापूर्वक लॉक हो गया",
|
||||
"revoked": "VID {{vid}} निरस्त कर दिया गया है. इसमें शामिल कोई भी क्रेडेंशियल वॉलेट से स्वचालित रूप से हटा दिया जाएगा"
|
||||
}
|
||||
},
|
||||
@@ -222,8 +224,7 @@
|
||||
"AppMetaData":{
|
||||
"header": "इंजी के बारे में",
|
||||
"version": "संस्करण",
|
||||
"useBle": "Powered by BLE",
|
||||
"useGoogleNearby": "Powered by GoogleNearby"
|
||||
"useBle": "Powered by BLE"
|
||||
},
|
||||
"ProfileScreen": {
|
||||
"name": "नाम",
|
||||
@@ -248,7 +249,7 @@
|
||||
"checkDomain": "यह भी जांचें कि एड्रेस बार पर लॉक आइकन है।",
|
||||
"domainHead": "https://",
|
||||
"selectId": "आईडी चुनें",
|
||||
"noBindedVc": "सत्यापित करने के लिए कोई आबद्ध {{vcLabel}} उपलब्ध नहीं है",
|
||||
"noBindedVc": "सत्यापित करने के लिए कोई आबद्ध कार्ड्स उपलब्ध नहीं है",
|
||||
"back": "वापस जाओ",
|
||||
"confirm": "पुष्टि करें",
|
||||
"verify": "सत्यापित करना",
|
||||
@@ -262,37 +263,46 @@
|
||||
"okay": "ठीक"
|
||||
},
|
||||
"ReceiveVcScreen": {
|
||||
"header": "{{vcLabel}} विवरण",
|
||||
"acceptRequest": "अनुरोध स्वीकार करें और {{vcLabel}} प्राप्त करें",
|
||||
"header": "कार्ड विवरण",
|
||||
"save": "सेव कार्ड",
|
||||
"acceptRequest": "अनुरोध स्वीकार करें और कार्ड प्राप्त करें",
|
||||
"acceptRequestAndVerify": "अनुरोध स्वीकार करें और सत्यापित करें",
|
||||
"reject": "अस्वीकार",
|
||||
"discard": "खारिज करना",
|
||||
"goToReceivedVCTab": "प्राप्त {{vcLabel}} देखें",
|
||||
"goToReceivedVCTab": "प्राप्त कार्ड्स देखें",
|
||||
"saving": "सहेजा जा रहा है",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "{{vcLabelSingular}} सहेजने में विफल",
|
||||
"message": "{{vcLabelSingular}} को स्टोर में सेव करते समय कोई गड़बड़ी हुई."
|
||||
"title": "कार्ड सहेजने में विफल",
|
||||
"message": "कार्ड को स्टोर में सेव करते समय कोई गड़बड़ी हुई."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "{{vcLabelSingular}} सहेजने में विफल",
|
||||
"message": "ऐप डेटा पूर्ण होने के कारण कोई और {{vcLabelPlural}} प्राप्त या सहेजा नहीं जा सकता है।"
|
||||
"title": "कार्ड सहेजने में विफल",
|
||||
"message": "ऐप डेटा पूर्ण होने के कारण कोई और कार्ड्स प्राप्त या सहेजा नहीं जा सकता है।"
|
||||
}
|
||||
}
|
||||
},
|
||||
"RequestScreen": {
|
||||
"bluetoothDenied": "कृपया ब्लूटूथ को सक्षम करें ताकि वह {{vcLabel}} का अनुरोध कर सके",
|
||||
"showQrCode": "निवासी {{vcLabel}} का अनुरोध करने के लिए यह क्यूआर कोड प्रदर्शित करें",
|
||||
"incomingVc": "इनकमिंग {{vcLabel}}",
|
||||
"bluetoothDenied": "कृपया ब्लूटूथ को सक्षम करें ताकि वह कार्ड का अनुरोध कर सके",
|
||||
"bluetoothStateAndroid": "स्थानीय साझाकरण का समर्थन करने के लिए कृपया त्वरित सेटिंग से ब्लूटूथ चालू करें",
|
||||
"bluetoothStateIos": " स्थानीय साझाकरण का समर्थन करने के लिए कृपया नियंत्रण केंद्र से ब्लूटूथ चालू करें",
|
||||
"showQrCode": "निवासी कार्ड का अनुरोध करने के लिए यह क्यूआर कोड प्रदर्शित करें",
|
||||
"incomingVc": "इनकमिंग कार्ड",
|
||||
"request": "प्रार्थना",
|
||||
"errors": {
|
||||
"nearbyDevicesPermissionDenied": {
|
||||
"message": "कार्ड का अनुरोध करने में सक्षम होने के लिए आस-पास के उपकरणों की अनुमति आवश्यक है",
|
||||
"button": "अनुमति दें"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"accepted": {
|
||||
"title": "सफलता!",
|
||||
"message": "{{vcLabel}} {{sender}} से सफलतापूर्वक प्राप्त हो गया है"
|
||||
"message": "कार्ड वॉलेट से सफलतापूर्वक प्राप्त हो गया है"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "सूचना",
|
||||
"message": "आपने {{sender}} के {{vcLabel}} को अस्वीकार कर दिया है"
|
||||
"message": "आपने वॉलेट के कार्ड को अस्वीकार कर दिया है"
|
||||
},
|
||||
"disconnected": {
|
||||
"title": "डिस्कनेक्ट किया गया",
|
||||
@@ -304,7 +314,7 @@
|
||||
"timeoutHint": "डिवाइस की जानकारी का आदान-प्रदान करने में बहुत अधिक समय लग रहा है..."
|
||||
},
|
||||
"connected": {
|
||||
"message": "डिवाइस से कनेक्ट किया गया। {{vcLabel}} के लिए प्रतीक्षारत...",
|
||||
"message": "डिवाइस से कनेक्ट किया गया। कार्ड के लिए प्रतीक्षारत...",
|
||||
"timeoutHint": "अभी तक कोई डेटा प्राप्त नहीं हुआ है. भेजने वाला उपकरण अभी भी जुड़ा हुआ है?"
|
||||
},
|
||||
"offline": {
|
||||
@@ -312,7 +322,7 @@
|
||||
},
|
||||
"bleError": {
|
||||
"title": "स्थानांतरित करने में विफल",
|
||||
"message": "{{vcLabel}} को स्थानांतरित करते समय कुछ गलत हो गया। कृपया पुन: प्रयास करें।",
|
||||
"message": "कार्ड को स्थानांतरित करते समय कुछ गलत हो गया। कृपया पुन: प्रयास करें।",
|
||||
"hint": "गलती: {{code}}"
|
||||
}
|
||||
},
|
||||
@@ -322,12 +332,12 @@
|
||||
},
|
||||
"ScanScreen": {
|
||||
"header": "क्यूआर कोड स्कैन करे",
|
||||
"noShareableVcs": "कोई साझा करने योग्य {{vcLabel}} उपलब्ध नहीं है।",
|
||||
"noShareableVcs": "कोई साझा करने योग्य कार्ड्स उपलब्ध नहीं है।",
|
||||
"bluetoothStateAndroid": "स्थानीय साझाकरण का समर्थन करने के लिए कृपया त्वरित सेटिंग से ब्लूटूथ चालू करें",
|
||||
"bluetoothStateIos": " स्थानीय साझाकरण का समर्थन करने के लिए कृपया नियंत्रण केंद्र से ब्लूटूथ चालू करें",
|
||||
"enableBluetoothMessage": "स्थानीय साझाकरण का समर्थन करने के लिए कृपया ब्लूटूथ अनुमतियां सक्षम करें",
|
||||
"enableBluetoothButtonText": "ब्लूटूथ अनुमतियों की अनुमति दें",
|
||||
"sharingVc": "शेयरिंग {{vcLabel}}",
|
||||
"sharingVc": "शेयरिंग कार्ड",
|
||||
"errors": {
|
||||
"locationDisabled": {
|
||||
"message": "स्थान सेवाओं को स्कैनिंग कार्यक्षमता के लिए सक्षम किया जाना चाहिए",
|
||||
@@ -336,7 +346,11 @@
|
||||
"locationDenied": {
|
||||
"message": "स्कैनिंग कार्यक्षमता के लिए स्थान अनुमति आवश्यक है",
|
||||
"button": "स्थान तक पहुंच की अनुमति दें"
|
||||
}
|
||||
},
|
||||
"nearbyDevicesPermissionDenied": {
|
||||
"message": "स्कैनिंग कार्यक्षमता के लिए आस-पास के उपकरणों की अनुमति आवश्यक है",
|
||||
"button": "अनुमति दें"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"connecting": "कनेक्टिंग...",
|
||||
@@ -345,8 +359,8 @@
|
||||
"exchangingDeviceInfoTimeout": "It's taking a while to exchange device info. You may have to reconnect.",
|
||||
"invalid": "अमान्य क्यूआर कोड",
|
||||
"offline": "ऑनलाइन साझाकरण मोड का उपयोग करके क्यूआर कोड स्कैन करने के लिए कृपया इंटरनेट से कनेक्ट करें",
|
||||
"sent": "{{vcLabel}} भेज दिया गया है...",
|
||||
"sentHint": "आपके {{vcLabel }} को सहेजने या छोड़ने के लिए रिसीवर की प्रतीक्षा की जा रही है",
|
||||
"sent": "कार्ड भेज दिया गया है...",
|
||||
"sentHint": "आपके कार्ड को सहेजने या छोड़ने के लिए रिसीवर की प्रतीक्षा की जा रही है",
|
||||
"sharing": {
|
||||
"title": "साझा कर रहा है...",
|
||||
"hint": "शेयर को स्वीकार या अस्वीकार करने के लिए कृपया प्राप्त करने वाले डिवाइस की प्रतीक्षा करें।",
|
||||
@@ -354,22 +368,22 @@
|
||||
},
|
||||
"accepted": {
|
||||
"title": "सफलता!",
|
||||
"message": "आपका {{vcLabel}} सफलतापूर्वक {{receiver}} के साथ साझा किया गया"
|
||||
"message": "आपका कार्ड सफलतापूर्वक सत्यापनकर्ता के साथ साझा किया गया"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "सूचना",
|
||||
"message": "आपका {{vcLabel}} {{receiver}} द्वारा खारिज कर दिया गया था"
|
||||
"message": "आपका कार्ड सत्यापनकर्ता द्वारा खारिज कर दिया गया था"
|
||||
},
|
||||
"bleError": {
|
||||
"title": "स्थानांतरित करने में विफल",
|
||||
"message": "{{vcLabel}} को स्थानांतरित करते समय कुछ गलत हो गया। कृपया पुन: प्रयास करें।",
|
||||
"message": "कार्ड को स्थानांतरित करते समय कुछ गलत हो गया। कृपया पुन: प्रयास करें।",
|
||||
"hint": "गलती: {{code}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
"header": "शेयर {{vcLabel}}",
|
||||
"chooseVc": "वह {{vcLabel}} चुनें जिसके साथ आप साझा करना चाहते हैं",
|
||||
"header": "शेयर कार्ड",
|
||||
"chooseVc": "वह कार्ड चुनें जिसके साथ आप साझा करना चाहते हैं",
|
||||
"share": "बाँट",
|
||||
"verifyAndShare": "पहचान सत्यापित करें और साझा करें"
|
||||
},
|
||||
@@ -386,11 +400,11 @@
|
||||
},
|
||||
"accepted": {
|
||||
"title": "सफलता!",
|
||||
"message": "आपका {{vcLabel}} को {{रिसीवर}} के साथ सफलतापूर्वक साझा कर दिया गया है"
|
||||
"message": "आपका कार्ड को {{receiver}} के साथ सफलतापूर्वक साझा कर दिया गया है"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "सूचना",
|
||||
"message": "आपके {{vcLabel}} को {{receiver}} ने अस्वीकार कर दिया था"
|
||||
"message": "आपके कार्ड को {{receiver}} ने अस्वीकार कर दिया था"
|
||||
}
|
||||
},
|
||||
"consentToPhotoVerification": "मैं प्रमाणीकरण के लिए अपनी फोटो लेने की सहमति देता हूं"
|
||||
@@ -409,18 +423,18 @@
|
||||
},
|
||||
"SendVcModal": {
|
||||
"reasonForSharing": "साझा करने का कारण (optional)",
|
||||
"acceptRequest": "अनुरोध स्वीकार करें और चुनें {{vcLabel}}",
|
||||
"acceptRequest": "अनुरोध स्वीकार करें और चुनें कार्ड",
|
||||
"reject": "अस्वीकार करे",
|
||||
"statusSharing": {
|
||||
"title": "साझा किया जा रहा है..."
|
||||
},
|
||||
"statusAccepted": {
|
||||
"title": "सफलता!",
|
||||
"message": "आपका {{vcLabel}} के साथ सफलतापूर्वक साझा कर दिया गया है {{receiver}}"
|
||||
"message": "आपका कार्ड के साथ सफलतापूर्वक साझा कर दिया गया है {{receiver}}"
|
||||
},
|
||||
"statusRejected": {
|
||||
"title": "सूचना",
|
||||
"message": "आपका {{vcLabel}} ने अस्वीकार कर दिया था {{receiver}}"
|
||||
"message": "आपका कार्ड ने अस्वीकार कर दिया था {{receiver}}"
|
||||
}
|
||||
},
|
||||
"WelcomeScreen": {
|
||||
|
||||
130
locales/kan.json
@@ -19,7 +19,9 @@
|
||||
"requestedBy": "ವಿನಂತಿಸಿದವರು",
|
||||
"sentBy": "ಕಳುಹಿಸಿದವರು",
|
||||
"deviceRefNumber": "ಸಾಧನ ಉಲ್ಲೇಖ ಸಂಖ್ಯೆ",
|
||||
"name": "ಹೆಸರು"
|
||||
"name": "ಹೆಸರು",
|
||||
"Verifier": "ಪರಿಶೀಲಕ",
|
||||
"Wallet": "ವಾಲೆಟ್"
|
||||
},
|
||||
"PasscodeVerify": {
|
||||
"passcodeMismatchError": "ಪಾಸ್ಕೋಡ್ ಹೊಂದಿಕೆಯಾಗಲಿಲ್ಲ."
|
||||
@@ -65,12 +67,12 @@
|
||||
"credentialRegistry": "ರುಜುವಾತುಗಳ ನೋಂದಣಿ",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "{{vcLabelSingular}} ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "ಸ್ಟೋರ್ನಲ್ಲಿ {{vcLabelSingular}} ಉಳಿಸುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ."
|
||||
"title": "ಕಾರ್ಡ್ ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "ಸ್ಟೋರ್ನಲ್ಲಿ ಕಾರ್ಡ್ ಉಳಿಸುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "{{vcLabelSingular}} ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "ಅಪ್ಲಿಕೇಶನ್ ಡೇಟಾ ತುಂಬಿರುವುದರಿಂದ ಇನ್ನು ಮುಂದೆ {{vcLabelPlural}} ಸ್ವೀಕರಿಸಲು ಅಥವಾ ಉಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
|
||||
"title": "ಕಾರ್ಡ್ ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "ಅಪ್ಲಿಕೇಶನ್ ಡೇಟಾ ತುಂಬಿರುವುದರಿಂದ ಇನ್ನು ಮುಂದೆ ಕಾರ್ಡ್ಗಳು ಸ್ವೀಕರಿಸಲು ಅಥವಾ ಉಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -96,8 +98,8 @@
|
||||
"deleted": "ಅಳಿಸಲಾಗಿದೆ"
|
||||
},
|
||||
"HomeScreen": {
|
||||
"myVcsTab": "ನನ್ನ\n{{vcLabel}}",
|
||||
"receivedVcsTab": "ಸ್ವೀಕರಿಸಲಾಗಿದೆ\n{{vcLabel}}",
|
||||
"myVcsTab": "ನನ್ನ\nಕಾರ್ಡ್ಗಳು",
|
||||
"receivedVcsTab": "ಸ್ವೀಕರಿಸಲಾಗಿದೆ\nಕಾರ್ಡ್ಗಳು",
|
||||
"historyTab": "ಇತಿಹಾಸ"
|
||||
},
|
||||
"AddVcModal": {
|
||||
@@ -138,8 +140,8 @@
|
||||
}
|
||||
},
|
||||
"DownloadingVcModal": {
|
||||
"header": "ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ {{vcLabel}}",
|
||||
"bodyText": "ಇದು ಸ್ವಲ್ಪ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು, ನಿಮ್ಮ {{vcLabel}} ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿದಾಗ ಮತ್ತು ಲಭ್ಯವಿದ್ದಾಗ ನಾವು ನಿಮಗೆ ತಿಳಿಸುತ್ತೇವೆ",
|
||||
"header": "ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ ಕಾರ್ಡ್",
|
||||
"bodyText": "ಇದು ಸ್ವಲ್ಪ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು, ನಿಮ್ಮ ಕಾರ್ಡ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿದಾಗ ಮತ್ತು ಲಭ್ಯವಿದ್ದಾಗ ನಾವು ನಿಮಗೆ ತಿಳಿಸುತ್ತೇವೆ",
|
||||
"backButton": "ಬ್ಯಾಕ್ ಹೋಮ್"
|
||||
},
|
||||
"GetIdInputModal": {
|
||||
@@ -150,8 +152,8 @@
|
||||
"qstnMarkToolTip": "ನೋಂದಣಿಯ ನಂತರ ಸ್ವೀಕರಿಸಿದ ಸ್ವೀಕೃತಿಯಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ID ಲಭ್ಯವಿದೆ."
|
||||
},
|
||||
"IdInputModal": {
|
||||
"header": "ನಿಮ್ಮ {{vcLabel}} ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ನಿಮ್ಮ UIN/VID ಅನ್ನು ನಮೂದಿಸಿ",
|
||||
"generateVc": "ನನ್ನ {{vcLabel}} ಅನ್ನು ರಚಿಸಿ",
|
||||
"header": "ನಿಮ್ಮ ಕಾರ್ಡ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ನಿಮ್ಮ UIN/VID ಅನ್ನು ನಮೂದಿಸಿ",
|
||||
"generateVc": "ನನ್ನ ಕಾರ್ಡ್ ಅನ್ನು ರಚಿಸಿ",
|
||||
"enterId": "ನಿಮ್ಮ {{idType}}ನಮೂದಿಸಿ",
|
||||
"noUIN/VID": "ನಿಮ್ಮ UIN/VID ಇಲ್ಲವೇ? ಇಲ್ಲಿ ಪಡೆಯಿರಿ",
|
||||
"requestingOTP": "OTP ಯನ್ನು ವಿನಂತಿಸಲಾಗುತ್ತಿದೆ..."
|
||||
@@ -161,32 +163,32 @@
|
||||
"header": "OTP ಪರಿಶೀಲನೆ"
|
||||
},
|
||||
"MyVcsTab": {
|
||||
"addVcButton": "ಸೇರಿಸಿ {{vcLabel}}",
|
||||
"generateVc": "ನಿಮ್ಮ {{vcLabel}} ಅನ್ನು ರಚಿಸಿ",
|
||||
"generateVcDescription": "ನಿಮ್ಮ \"ಸೇರಿಸಿ {{vcLabel}}\" ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ {{vcLabel}}",
|
||||
"addVcButton": "ಸೇರಿಸಿ ಕಾರ್ಡ್",
|
||||
"generateVc": "ನಿಮ್ಮ ಕಾರ್ಡ್ಗಳು ಅನ್ನು ರಚಿಸಿ",
|
||||
"generateVcDescription": "ನಿಮ್ಮ \"ಸೇರಿಸಿ ಕಾರ್ಡ್\" ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ ಕಾರ್ಡ್",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "{{vcLabelSingular}} ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "ಸ್ಟೋರ್ನಲ್ಲಿ {{vcLabelSingular}} ಉಳಿಸುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ."
|
||||
"title": "ಕಾರ್ಡ್ ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "ಸ್ಟೋರ್ನಲ್ಲಿ ಕಾರ್ಡ್ ಉಳಿಸುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "{{vcLabelSingular}} ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "ಅಪ್ಲಿಕೇಶನ್ ಡೇಟಾ ತುಂಬಿರುವುದರಿಂದ ಇನ್ನು ಮುಂದೆ {{vcLabelPlural}} ಸ್ವೀಕರಿಸಲು ಅಥವಾ ಉಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
|
||||
"title": "ಕಾರ್ಡ್ ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "ಅಪ್ಲಿಕೇಶನ್ ಡೇಟಾ ತುಂಬಿರುವುದರಿಂದ ಇನ್ನು ಮುಂದೆ ಕಾರ್ಡ್ಗಳು ಸ್ವೀಕರಿಸಲು ಅಥವಾ ಉಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
|
||||
}
|
||||
}
|
||||
},
|
||||
"OnboardingOverlay": {
|
||||
"stepOneTitle": "ಸ್ವಾಗತ!",
|
||||
"stepOneText": "ನಿಮ್ಮ ಡಿಜಿಟಲ್ ರುಜುವಾತುಗಳನ್ನು ಯಾವಾಗಲೂ ನಿಮ್ಮೊಂದಿಗೆ ಇರಿಸಿಕೊಳ್ಳಿ. ಪ್ರಾರಂಭಿಸಲು, ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ಗೆ {{vcLabel}} ಸೇರಿಸಿ.",
|
||||
"stepTwoTitle": "{{vcLabel}} ನಿರ್ವಹಣೆ",
|
||||
"stepTwoText": "ಒಮ್ಮೆ ರಚಿಸಿದ ನಂತರ, {{vcLabel}} ಅನ್ನು ನಿಮ್ಮ ಮೊಬೈಲ್ನಲ್ಲಿ ಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಮರುಹೆಸರಿಸಬಹುದು ಅಥವಾ ಹಂಚಿಕೊಳ್ಳಬಹುದು.",
|
||||
"stepOneText": "ನಿಮ್ಮ ಡಿಜಿಟಲ್ ರುಜುವಾತುಗಳನ್ನು ಯಾವಾಗಲೂ ನಿಮ್ಮೊಂದಿಗೆ ಇರಿಸಿಕೊಳ್ಳಿ. ಪ್ರಾರಂಭಿಸಲು, ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ಗೆ ಕಾರ್ಡ್ಗಳು ಸೇರಿಸಿ.",
|
||||
"stepTwoTitle": "ಕಾರ್ಡ್ ನಿರ್ವಹಣೆ",
|
||||
"stepTwoText": "ಒಮ್ಮೆ ರಚಿಸಿದ ನಂತರ, ಕಾರ್ಡ್ಗಳು ಅನ್ನು ನಿಮ್ಮ ಮೊಬೈಲ್ನಲ್ಲಿ ಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಮರುಹೆಸರಿಸಬಹುದು ಅಥವಾ ಹಂಚಿಕೊಳ್ಳಬಹುದು.",
|
||||
"stepThreeTitle": "ಸುಲಭ ಹಂಚಿಕೆ",
|
||||
"stepThreeText": "QR ಕೋಡ್ಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲು ನಿಮ್ಮ ಫೋನ್ ಕ್ಯಾಮರಾವನ್ನು ಬಳಸಿಕೊಂಡು {{vcLabel}} switfly ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಿ ಮತ್ತು ಸ್ವೀಕರಿಸಿ.",
|
||||
"stepThreeButton": "ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು {{vcLabel}} ಸೇರಿಸಿ"
|
||||
"stepThreeText": "QR ಕೋಡ್ಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲು ನಿಮ್ಮ ಫೋನ್ ಕ್ಯಾಮೆರಾವನ್ನು ಬಳಸಿಕೊಂಡು ಕಾರ್ಡ್ಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಹಂಚಿಕೊಳ್ಳಿ ಮತ್ತು ಸ್ವೀಕರಿಸಿ.",
|
||||
"stepThreeButton": "ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಕಾರ್ಡ್ ಸೇರಿಸಿ"
|
||||
},
|
||||
"ReceivedVcsTab": {
|
||||
"noReceivedVcsTitle": "ಇನ್ನೂ ಯಾವುದೇ {{vcLabel}} ಲಭ್ಯವಿಲ್ಲ",
|
||||
"noReceivedVcsText": "{{vcLabel}} ಸ್ವೀಕರಿಸಲು ಕೆಳಗಿನ ವಿನಂತಿಯ ಮೇಲೆ ಟ್ಯಾಪ್ ಮಾಡಿ"
|
||||
"noReceivedVcsTitle": "ಇನ್ನೂ ಯಾವುದೇ ಕಾರ್ಡ್ಗಳು ಲಭ್ಯವಿಲ್ಲ",
|
||||
"noReceivedVcsText": "ಕಾರ್ಡ್ ಸ್ವೀಕರಿಸಲು ಕೆಳಗಿನ ವಿನಂತಿಯ ಮೇಲೆ ಟ್ಯಾಪ್ ಮಾಡಿ"
|
||||
},
|
||||
"ViewVcModal": {
|
||||
"cancel": "ರದ್ದುಮಾಡು",
|
||||
@@ -201,8 +203,8 @@
|
||||
"redirecting": "Redirecting...",
|
||||
"inProgress": "ಲೋಡ್ ಆಗುತ್ತಿದೆ...",
|
||||
"success": {
|
||||
"unlocked": "{{vcLabel}} ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅನ್ಲಾಕ್ ಮಾಡಲಾಗಿದೆ",
|
||||
"locked": "{{vcLabel}} successfully locked",
|
||||
"unlocked": "ಕಾರ್ಡ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅನ್ಲಾಕ್ ಮಾಡಲಾಗಿದೆ",
|
||||
"locked": "ಕಾರ್ಡ್ successfully locked",
|
||||
"revoked": "VID {{vid}} ಅನ್ನು ಹಿಂಪಡೆಯಲಾಗಿದೆ. ಅದೇ ಒಳಗೊಂಡಿರುವ ಯಾವುದೇ ರುಜುವಾತುಗಳನ್ನು ವ್ಯಾಲೆಟ್ನಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ"
|
||||
}
|
||||
},
|
||||
@@ -220,8 +222,7 @@
|
||||
"AppMetaData": {
|
||||
"header": "ಇಂಜಿ ಬಗ್ಗೆ",
|
||||
"version": "ಆವೃತ್ತಿ",
|
||||
"useBle": "Powered by BLE",
|
||||
"useGoogleNearby": "Powered by GoogleNearby"
|
||||
"useBle": "Powered by BLE"
|
||||
},
|
||||
"ProfileScreen": {
|
||||
"name": "ಹೆಸರು",
|
||||
@@ -246,7 +247,7 @@
|
||||
"checkDomain": "ಅಲ್ಲದೆ, ವಿಳಾಸ ಪಟ್ಟಿಯಲ್ಲಿ ಲಾಕ್ ಐಕಾನ್ ಇದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ.",
|
||||
"domainHead": "https://",
|
||||
"selectId": "ID ಆಯ್ಕೆಮಾಡಿ",
|
||||
"noBindedVc": "ಪರಿಶೀಲಿಸಲು ಯಾವುದೇ ಬೈಂಡೆಡ್ {{vcLabel}} ಲಭ್ಯವಿಲ್ಲ",
|
||||
"noBindedVc": "ಪರಿಶೀಲಿಸಲು ಯಾವುದೇ ಬೈಂಡೆಡ್ ಕಾರ್ಡ್ಗಳು ಲಭ್ಯವಿಲ್ಲ",
|
||||
"back": "ಹಿಂದೆ ಹೋಗು",
|
||||
"confirm": "ದೃಢೀಕರಿಸಿ",
|
||||
"verify": "ಪರಿಶೀಲಿಸಿ",
|
||||
@@ -260,37 +261,46 @@
|
||||
"okay": "ಸರಿ"
|
||||
},
|
||||
"ReceiveVcScreen": {
|
||||
"header": "{{vcLabel}} ವಿವರಗಳು",
|
||||
"acceptRequest": "ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಿ ಮತ್ತು {{vcLabel}} ಸ್ವೀಕರಿಸಿ",
|
||||
"header": "ಕಾರ್ಡ್ ವಿವರಗಳು",
|
||||
"save": "ಕಾರ್ಡ್ ಉಳಿಸಿ",
|
||||
"acceptRequest": "ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಿ ಮತ್ತು ಕಾರ್ಡ್ ಸ್ವೀಕರಿಸಿ",
|
||||
"acceptRequestAndVerify": "ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಿ ಮತ್ತು ಪರಿಶೀಲಿಸಿ",
|
||||
"reject": "ತಿರಸ್ಕರಿಸಿ",
|
||||
"discard": "ತಿರಸ್ಕರಿಸು",
|
||||
"goToReceivedVCTab": "ಸ್ವೀಕರಿಸಿದ {{vcLabel}} ವೀಕ್ಷಿಸಿ",
|
||||
"goToReceivedVCTab": "ಸ್ವೀಕರಿಸಿದ ಕಾರ್ಡ್ಗಳು ವೀಕ್ಷಿಸಿ",
|
||||
"saving": "ಉಳಿಸಲಾಗುತ್ತಿದೆ",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "{{vcLabelSingular}} ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "ಸ್ಟೋರ್ನಲ್ಲಿ {{vcLabelSingular}} ಉಳಿಸುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ."
|
||||
"title": "ಕಾರ್ಡ್ ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "ಸ್ಟೋರ್ನಲ್ಲಿ ಕಾರ್ಡ್ ಉಳಿಸುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "{{vcLabelSingular}} ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "ಅಪ್ಲಿಕೇಶನ್ ಡೇಟಾ ತುಂಬಿರುವುದರಿಂದ ಹೆಚ್ಚಿನ {{vcLabelPlural}} ಸ್ವೀಕರಿಸಲು ಅಥವಾ ಉಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
|
||||
"title": "ಕಾರ್ಡ್ ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "ಅಪ್ಲಿಕೇಶನ್ ಡೇಟಾ ತುಂಬಿರುವುದರಿಂದ ಹೆಚ್ಚಿನ ಕಾರ್ಡ್ಗಳು ಸ್ವೀಕರಿಸಲು ಅಥವಾ ಉಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
|
||||
}
|
||||
}
|
||||
},
|
||||
"RequestScreen": {
|
||||
"bluetoothDenied": "ವಿನಂತಿಸಲು ಬ್ಲೂಟೂತ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ{{vcLabel}}",
|
||||
"showQrCode": "ನಿವಾಸಿ {{vcLabel}} ಅನ್ನು ವಿನಂತಿಸಲು ಈ QR ಕೋಡ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸಿ",
|
||||
"incomingVc": "ಒಳಬರುವ {{vcLabel}}",
|
||||
"bluetoothDenied": "ವಿನಂತಿಸಲು ಬ್ಲೂಟೂತ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ ಕಾರ್ಡ್",
|
||||
"bluetoothStateAndroid": "ಸ್ಥಳೀಯ ಹಂಚಿಕೆಯನ್ನು ಬೆಂಬಲಿಸಲು ದಯವಿಟ್ಟು ತ್ವರಿತ ಸೆಟ್ಟಿಂಗ್ಗಳಿಂದ ಬ್ಲೂಟೂತ್ ಆನ್ ಮಾಡಿ",
|
||||
"bluetoothStateIos": " ಸ್ಥಳೀಯ ಹಂಚಿಕೆಯನ್ನು ಬೆಂಬಲಿಸಲು ದಯವಿಟ್ಟು ನಿಯಂತ್ರಣ ಕೇಂದ್ರದಿಂದ ಬ್ಲೂಟೂತ್ ಆನ್ ಮಾಡಿ",
|
||||
"showQrCode": "ನಿವಾಸಿ ಕಾರ್ಡ್ ಅನ್ನು ವಿನಂತಿಸಲು ಈ QR ಕೋಡ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸಿ",
|
||||
"incomingVc": "ಒಳಬರುವ ಕಾರ್ಡ್",
|
||||
"request": "ವಿನಂತಿ",
|
||||
"errors": {
|
||||
"nearbyDevicesPermissionDenied": {
|
||||
"message": "ಕಾರ್ಡ್ಗಳು ಅನ್ನು ವಿನಂತಿಸಲು ಸಾಧ್ಯವಾಗಲು ಸಮೀಪದ ಸಾಧನಗಳ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ",
|
||||
"button": "ಅನುಮತಿಯನ್ನು ಅನುಮತಿಸಿ"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"accepted": {
|
||||
"title": "ಯಶಸ್ಸು!",
|
||||
"message": "{{vcLabel}}ಅನ್ನು {{sender}} ಅವರಿಂದ ಯಶಸ್ವಿಯಾಗಿ ಸ್ವೀಕರಿಸಲಾಗಿದೆ"
|
||||
"message": "ಕಾರ್ಡ್ಅನ್ನು ವಾಲೆಟ್ ಅವರಿಂದ ಯಶಸ್ವಿಯಾಗಿ ಸ್ವೀಕರಿಸಲಾಗಿದೆ"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "ಸೂಚನೆ",
|
||||
"message": "ನೀವು {{sender}} ಅವರ {{vcLabel}} ಅನ್ನು ತಿರಸ್ಕರಿಸಿದ್ದೀರಿ"
|
||||
"message": "ನೀವು ವಾಲೆಟ್ ಅವರ ಕಾರ್ಡ್ ಅನ್ನು ತಿರಸ್ಕರಿಸಿದ್ದೀರಿ"
|
||||
},
|
||||
"disconnected": {
|
||||
"title": "ಸಂಪರ್ಕ ಕಡಿತಗೊಂಡಿದೆ",
|
||||
@@ -302,7 +312,7 @@
|
||||
"timeoutHint": "ಸಾಧನದ ಮಾಹಿತಿಯನ್ನು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳಲು ಇದು ತುಂಬಾ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತಿದೆ..."
|
||||
},
|
||||
"connected": {
|
||||
"message": "ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ. {{vcLabel}} ಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ...",
|
||||
"message": "ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ. ಕಾರ್ಡ್ ಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ...",
|
||||
"timeoutHint": "ಇನ್ನೂ ಯಾವುದೇ ಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸಲಾಗಿಲ್ಲ. ಸಾಧನವನ್ನು ಕಳುಹಿಸುವುದು ಇನ್ನೂ ಸಂಪರ್ಕಗೊಂಡಿದೆಯೇ?"
|
||||
},
|
||||
"offline": {
|
||||
@@ -310,7 +320,7 @@
|
||||
},
|
||||
"bleError": {
|
||||
"title": "ವರ್ಗಾಯಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "{{vcLabel}} ಅನ್ನು ವರ್ಗಾಯಿಸುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ. ದಯವಿಟ್ಟು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.",
|
||||
"message": "ಕಾರ್ಡ್ ಅನ್ನು ವರ್ಗಾಯಿಸುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ. ದಯವಿಟ್ಟು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.",
|
||||
"hint": "ದೋಷ: {{code}}"
|
||||
}
|
||||
},
|
||||
@@ -320,12 +330,12 @@
|
||||
},
|
||||
"ScanScreen": {
|
||||
"header": "ಸ್ಕ್ಯಾನ್ ಕ್ಯೂಆರ್ ಕೋಡ್",
|
||||
"noShareableVcs": "ಯಾವುದೇ ಹಂಚಿಕೊಳ್ಳಬಹುದಾದ {{vcLabel}} ಲಭ್ಯವಿಲ್ಲ.",
|
||||
"noShareableVcs": "ಯಾವುದೇ ಹಂಚಿಕೊಳ್ಳಬಹುದಾದ ಕಾರ್ಡ್ಗಳು ಲಭ್ಯವಿಲ್ಲ.",
|
||||
"bluetoothStateAndroid": "ಸ್ಥಳೀಯ ಹಂಚಿಕೆಯನ್ನು ಬೆಂಬಲಿಸಲು ದಯವಿಟ್ಟು ತ್ವರಿತ ಸೆಟ್ಟಿಂಗ್ಗಳಿಂದ ಬ್ಲೂಟೂತ್ ಆನ್ ಮಾಡಿ",
|
||||
"bluetoothStateIos": " ಸ್ಥಳೀಯ ಹಂಚಿಕೆಯನ್ನು ಬೆಂಬಲಿಸಲು ದಯವಿಟ್ಟು ನಿಯಂತ್ರಣ ಕೇಂದ್ರದಿಂದ ಬ್ಲೂಟೂತ್ ಆನ್ ಮಾಡಿ",
|
||||
"enableBluetoothMessage": "ದಯವಿಟ್ಟು ಸ್ಥಳೀಯ ಹಂಚಿಕೆಯನ್ನು ಬೆಂಬಲಿಸಲು ಬ್ಲೂಟೂತ್ ಅನುಮತಿಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ",
|
||||
"enableBluetoothButtonText": "ಬ್ಲೂಟೂತ್ ಅನುಮತಿಗಳನ್ನು ಅನುಮತಿಸಿ",
|
||||
"sharingVc": "ಹಂಚಿಕೆ {{vcLabel}}",
|
||||
"sharingVc": "ಹಂಚಿಕೆ ಕಾರ್ಡ್",
|
||||
"errors": {
|
||||
"locationDisabled": {
|
||||
"message": "ಸ್ಕ್ಯಾನಿಂಗ್ ಕಾರ್ಯಕ್ಕಾಗಿ ಸ್ಥಳ ಸೇವೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು",
|
||||
@@ -334,6 +344,10 @@
|
||||
"locationDenied": {
|
||||
"message": "ಸ್ಕ್ಯಾನಿಂಗ್ ಕಾರ್ಯಕ್ಕಾಗಿ ಸ್ಥಳ ಅನುಮತಿ ಅಗತ್ಯವಿದೆ",
|
||||
"button": "ಸ್ಥಳಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಿ"
|
||||
},
|
||||
"nearbyDevicesPermissionDenied": {
|
||||
"message": "ಸ್ಕ್ಯಾನಿಂಗ್ ಕಾರ್ಯಕ್ಕಾಗಿ ಸಮೀಪದ ಸಾಧನಗಳ ಅನುಮತಿ ಅಗತ್ಯವಿದೆ",
|
||||
"button": "ಅನುಮತಿಯನ್ನು ಅನುಮತಿಸಿ"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
@@ -343,8 +357,8 @@
|
||||
"exchangingDeviceInfoTimeout": "ಸಾಧನದ ಮಾಹಿತಿಯನ್ನು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳಲು ಸ್ವಲ್ಪ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತಿದೆ. ನೀವು ಮರುಸಂಪರ್ಕಿಸಬೇಕಾಗಬಹುದು.",
|
||||
"invalid": "ಅಮಾನ್ಯ QR ಕೋಡ್",
|
||||
"offline": "ಆನ್ಲೈನ್ ಹಂಚಿಕೆ ಮೋಡ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು QR ಕೋಡ್ಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲು ದಯವಿಟ್ಟು ಇಂಟರ್ನೆಟ್ಗೆ ಸಂಪರ್ಕಪಡಿಸಿ",
|
||||
"sent": "{{ vcLabel }} ಅನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ...",
|
||||
"sentHint": "ನಿಮ್ಮ {{ vcLabel }} ಅನ್ನು ಉಳಿಸಲು ಅಥವಾ ತ್ಯಜಿಸಲು ರಿಸೀವರ್ಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ",
|
||||
"sent": "ಕಾರ್ಡ್ ಅನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ...",
|
||||
"sentHint": "ನಿಮ್ಮ ಕಾರ್ಡ್ ಅನ್ನು ಉಳಿಸಲು ಅಥವಾ ತ್ಯಜಿಸಲು ರಿಸೀವರ್ಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ",
|
||||
"sharing": {
|
||||
"title": "ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ...",
|
||||
"hint": "ಸ್ವೀಕರಿಸುವ ಸಾಧನವು ಹಂಚಿಕೆಯನ್ನು ಸ್ವೀಕರಿಸಲು ಅಥವಾ ತಿರಸ್ಕರಿಸಲು ದಯವಿಟ್ಟು ನಿರೀಕ್ಷಿಸಿ.",
|
||||
@@ -352,22 +366,22 @@
|
||||
},
|
||||
"accepted": {
|
||||
"title": "ಯಶಸ್ಸು!",
|
||||
"message": "ನಿಮ್ಮ {{vcLabel}} ಅನ್ನು {{receiver}} ಜೊತೆಗೆ ಯಶಸ್ವಿಯಾಗಿ ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ"
|
||||
"message": "ನಿಮ್ಮ ಕಾರ್ಡ್ ಅನ್ನು ಪರಿಶೀಲಕ ಜೊತೆಗೆ ಯಶಸ್ವಿಯಾಗಿ ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "ಗಮನಿಸಿ",
|
||||
"message": "ನಿಮ್ಮ {{vcLabel}} ಅನ್ನು {{receiver}} ತಿರಸ್ಕರಿಸಿದ್ದಾರೆ"
|
||||
"message": "ನಿಮ್ಮ ಕಾರ್ಡ್ ಅನ್ನು ಪರಿಶೀಲಕ ತಿರಸ್ಕರಿಸಿದ್ದಾರೆ"
|
||||
},
|
||||
"bleError": {
|
||||
"title": "ವರ್ಗಾಯಿಸಲು ವಿಫಲವಾಗಿದೆ",
|
||||
"message": "{{vcLabel}} ಅನ್ನು ವರ್ಗಾಯಿಸುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ. ದಯವಿಟ್ಟು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.",
|
||||
"message": "ಕಾರ್ಡ್ ಅನ್ನು ವರ್ಗಾಯಿಸುವಾಗ ಏನೋ ತಪ್ಪಾಗಿದೆ. ದಯವಿಟ್ಟು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.",
|
||||
"hint": "ದೋಷ: {{code}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
"header": "ಹಂಚಿಕೊಳ್ಳಿ {{vcLabel}}",
|
||||
"chooseVc": "ನೀವು ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುವ {{vcLabel}} ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿ",
|
||||
"header": "ಹಂಚಿಕೊಳ್ಳಿ ಕಾರ್ಡ್",
|
||||
"chooseVc": "ನೀವು ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುವ ಕಾರ್ಡ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿ",
|
||||
"share": "ಹಂಚಿಕೊಳ್ಳಿ",
|
||||
"verifyAndShare": "ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಹಂಚಿಕೊಳ್ಳಿ"
|
||||
},
|
||||
@@ -384,11 +398,11 @@
|
||||
},
|
||||
"accepted": {
|
||||
"title": "ಯಶಸ್ಸು!",
|
||||
"message": "ನಿಮ್ಮ {{vcLabel}}ನ್ನು {{receiver}} ಅವರೊಂದಿಗೆ ಯಶಸ್ವಿಯಾಗಿ ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ"
|
||||
"message": "ನಿಮ್ಮ ಕಾರ್ಡ್ನ್ನು {{receiver}} ಅವರೊಂದಿಗೆ ಯಶಸ್ವಿಯಾಗಿ ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "ಗಮನಿಸಿ",
|
||||
"message": "Your {{vcLabel}}ನ್ನು {{receiver}} ತಿರಸ್ಕರಿಸಿದ್ದಾರೆ "
|
||||
"message": "Your ಕಾರ್ಡ್ನ್ನು {{receiver}} ತಿರಸ್ಕರಿಸಿದ್ದಾರೆ "
|
||||
}
|
||||
},
|
||||
"consentToPhotoVerification": "ದೃಢೀಕರಣಕ್ಕಾಗಿ ನನ್ನ ಫೋಟೋ ತೆಗೆಯಲು ನಾನು ಒಪ್ಪಿಗೆ ನೀಡುತ್ತೇನೆ"
|
||||
@@ -407,18 +421,18 @@
|
||||
},
|
||||
"SendVcModal": {
|
||||
"reasonForSharing": "ಹಂಚಿಕೆಗೆ ಕಾರಣ (ಐಚ್ಛಿಕ)",
|
||||
"acceptRequest": "ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಿ ಮತ್ತು {{vcLabel}} ಆಯ್ಕೆಮಾಡಿ",
|
||||
"acceptRequest": "ವಿನಂತಿಯನ್ನು ಸ್ವೀಕರಿಸಿ ಮತ್ತು ಕಾರ್ಡ್ ಆಯ್ಕೆಮಾಡಿ",
|
||||
"reject": "ತಿರಸ್ಕರಿಸಿ",
|
||||
"statusSharing": {
|
||||
"title": "ಹಂಚಿಕೆ..."
|
||||
},
|
||||
"statusAccepted": {
|
||||
"title": "ಯಶಸ್ಸು!",
|
||||
"message": "ನಿಮ್ಮ {{vcLabel}} ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ {{receiver}}ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ"
|
||||
"message": "ನಿಮ್ಮ ಕಾರ್ಡ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ {{receiver}}ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ"
|
||||
},
|
||||
"statusRejected": {
|
||||
"title": "ಸೂಚನೆ",
|
||||
"message": "ನಿಮ್ಮ {{vcLabel}}ಅನ್ನು {{receiver}}ತಿರಸ್ಕರಿಸಿದ್ದಾರೆ"
|
||||
"message": "ನಿಮ್ಮ ಕಾರ್ಡ್ಅನ್ನು {{receiver}}ತಿರಸ್ಕರಿಸಿದ್ದಾರೆ"
|
||||
}
|
||||
},
|
||||
"WelcomeScreen": {
|
||||
|
||||
130
locales/tam.json
@@ -19,7 +19,9 @@
|
||||
"requestedBy": "கோரியவர்",
|
||||
"sentBy": "அனுப்பியவர்",
|
||||
"deviceRefNumber": "சாதன குறிப்பு எண்",
|
||||
"name": "பெயர்"
|
||||
"name": "பெயர்",
|
||||
"Verifier": "சரிபார்ப்பவர்",
|
||||
"Wallet": "வாலட்"
|
||||
},
|
||||
"PasscodeVerify": {
|
||||
"passcodeMismatchError": "கடவுக்குறியீடு பொருந்தவில்லை."
|
||||
@@ -65,12 +67,12 @@
|
||||
"credentialRegistry": "நற்சான்றிதழ்கள் பதிவு",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "{{vcLabelSingular}}ஐ சேமிப்பதில் தோல்வி",
|
||||
"message": "கடையில் {{vcLabelSingular}}ஐ சேமிக்கும் போது ஏதோ தவறு ஏற்பட்டது."
|
||||
"title": "அட்டைஐ சேமிப்பதில் தோல்வி",
|
||||
"message": "கடையில் அட்டைஐ சேமிக்கும் போது ஏதோ தவறு ஏற்பட்டது."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "{{vcLabelSingular}}ஐ சேமிக்க முடியவில்லை",
|
||||
"message": "ஆப்ஸ் டேட்டா நிரம்பியதால் {{vcLabelPlural}} பெறவோ சேமிக்கவோ முடியாது."
|
||||
"title": "அட்டைஐ சேமிக்க முடியவில்லை",
|
||||
"message": "ஆப்ஸ் டேட்டா நிரம்பியதால் அட்டைகள் பெறவோ சேமிக்கவோ முடியாது."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -96,8 +98,8 @@
|
||||
"deleted": "நீக்கப்பட்டது"
|
||||
},
|
||||
"HomeScreen": {
|
||||
"myVcsTab": "எனது\n{{vcLabel}}",
|
||||
"receivedVcsTab": "பெறப்பட்டது\n{{vcLabel}}",
|
||||
"myVcsTab": "எனது\nஅட்டைகள்",
|
||||
"receivedVcsTab": "பெறப்பட்டது\nஅட்டைகள்",
|
||||
"historyTab": "வரலாறு"
|
||||
},
|
||||
"AddVcModal": {
|
||||
@@ -138,8 +140,8 @@
|
||||
}
|
||||
},
|
||||
"DownloadingVcModal": {
|
||||
"header": "உங்கள் {{vcLabel}}ஐப் பதிவிறக்குகிறது",
|
||||
"bodyText": "இதற்கு சிறிது நேரம் ஆகலாம், உங்கள் {{vcLabel}} பதிவிறக்கம் செய்யப்பட்டு கிடைக்கும்போது உங்களுக்கு அறிவிப்போம்",
|
||||
"header": "உங்கள் அட்டைஐப் பதிவிறக்குகிறது",
|
||||
"bodyText": "இதற்கு சிறிது நேரம் ஆகலாம், உங்கள் அட்டை பதிவிறக்கம் செய்யப்பட்டு கிடைக்கும்போது உங்களுக்கு அறிவிப்போம்",
|
||||
"backButton": "பேக் ஹோம்"
|
||||
},
|
||||
"GetIdInputModal": {
|
||||
@@ -150,8 +152,8 @@
|
||||
"qstnMarkToolTip": "விண்ணப்ப ID பதிவுசெய்த பிறகு பெறப்பட்ட ஒப்புகையில் கிடைக்கும்."
|
||||
},
|
||||
"IdInputModal": {
|
||||
"header": "உங்கள் {{vcLabel}}ஐப் பதிவிறக்க உங்கள் UIN/VID ஐ உள்ளிடவும்",
|
||||
"generateVc": "எனது {{vcLabel}}ஐ உருவாக்கவும்",
|
||||
"header": "உங்கள் அட்டைஐப் பதிவிறக்க உங்கள் UIN/VID ஐ உள்ளிடவும்",
|
||||
"generateVc": "எனது அட்டைஐ உருவாக்கவும்",
|
||||
"enterId": "உங்கள் {{idType}}ஐ உள்ளிடவும்",
|
||||
"noUIN/VID": "உங்கள் UIN/VID இல்லையா? இங்கே பெறுங்கள்",
|
||||
"requestingOTP": "OTP ஐக் கோருகிறது..."
|
||||
@@ -161,32 +163,32 @@
|
||||
"header": "OTP சரிபார்ப்பு"
|
||||
},
|
||||
"MyVcsTab": {
|
||||
"addVcButton": "{{vcLabel}} சேர்",
|
||||
"generateVc": "உங்கள் {{vcLabel}}ஐ உருவாக்கவும்",
|
||||
"generateVcDescription": "உங்கள் \"சேர் {{vcLabel}}\" என்பதைத் தட்டவும் {{vcLabel}}",
|
||||
"addVcButton": "அட்டை சேர்",
|
||||
"generateVc": "உங்கள் அட்டைகள்ஐ உருவாக்கவும்",
|
||||
"generateVcDescription": "உங்கள் அட்டைஐப் பதிவிறக்க, கீழே உள்ள \"அட்டை சேர்\" என்பதைத் தட்டவும்",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "{{vcLabelSingular}}ஐ சேமிப்பதில் தோல்வி",
|
||||
"message": "கடையில் {{vcLabelSingular}}ஐ சேமிக்கும் போது ஏதோ தவறு ஏற்பட்டது."
|
||||
"title": "அட்டைஐ சேமிப்பதில் தோல்வி",
|
||||
"message": "கடையில் அட்டைஐ சேமிக்கும் போது ஏதோ தவறு ஏற்பட்டது."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "{{vcLabelSingular}}ஐ சேமிக்க முடியவில்லை",
|
||||
"message": "ஆப்ஸ் டேட்டா நிரம்பியதால் {{vcLabelPlural}} பெறவோ சேமிக்கவோ முடியாது."
|
||||
"title": "அட்டைஐ சேமிக்க முடியவில்லை",
|
||||
"message": "ஆப்ஸ் டேட்டா நிரம்பியதால் அட்டைகள் பெறவோ சேமிக்கவோ முடியாது."
|
||||
}
|
||||
}
|
||||
},
|
||||
"OnboardingOverlay": {
|
||||
"stepOneTitle": "வரவேற்கிறேன்!",
|
||||
"stepOneText": "உங்கள் டிஜிட்டல் நற்சான்றிதழை எப்போதும் உங்களுடன் வைத்திருக்கவும். தொடங்குவதற்கு, உங்கள் சுயவிவரத்தில் {{vcLabel}}ஐச் சேர்க்கவும்.",
|
||||
"stepTwoTitle": "{{vcLabel}} மேலாண்மை",
|
||||
"stepTwoText": "உருவாக்கப்பட்டவுடன், {{vcLabel}} உங்கள் மொபைலில் பாதுகாப்பாகச் சேமிக்கப்பட்டு, எந்த நேரத்திலும் மறுபெயரிடலாம் அல்லது பகிரலாம்.",
|
||||
"stepOneText": "உங்கள் டிஜிட்டல் நற்சான்றிதழை எப்போதும் உங்களுடன் வைத்திருக்கவும். தொடங்குவதற்கு, உங்கள் சுயவிவரத்தில் அட்டைகள்ஐச் சேர்க்கவும்.",
|
||||
"stepTwoTitle": "அட்டை மேலாண்மை",
|
||||
"stepTwoText": "உருவாக்கப்பட்டவுடன், அட்டைகள் உங்கள் மொபைலில் பாதுகாப்பாகச் சேமிக்கப்பட்டு, எந்த நேரத்திலும் மறுபெயரிடலாம் அல்லது பகிரலாம்.",
|
||||
"stepThreeTitle": "எளிதான பகிர்வு",
|
||||
"stepThreeText": "QR குறியீடுகளை ஸ்கேன் செய்ய உங்கள் ஃபோன் கேமராவைப் பயன்படுத்தி {{vcLabel}} switflyயைப் பகிரவும் மற்றும் பெறவும்.",
|
||||
"stepThreeButton": "தொடங்கவும் {{vcLabel}}ஐச் சேர்க்கவும்"
|
||||
"stepThreeText": "QR குறியீடுகளை ஸ்கேன் செய்ய உங்கள் ஃபோன் கேமராவைப் பயன்படுத்தி விரைவாக அட்டைகளைப் பகிரவும் மற்றும் பெறவும்.",
|
||||
"stepThreeButton": "தொடங்கவும் அட்டைஐச் சேர்க்கவும்"
|
||||
},
|
||||
"ReceivedVcsTab": {
|
||||
"noReceivedVcsTitle": "இன்னும் {{vcLabel}} கிடைக்கவில்லை",
|
||||
"noReceivedVcsText": "{{vcLabel}} பெறுவதற்கு கீழே உள்ள கோரிக்கையைத் தட்டவும்"
|
||||
"noReceivedVcsTitle": "இன்னும் அட்டைகள் கிடைக்கவில்லை",
|
||||
"noReceivedVcsText": "அட்டை பெறுவதற்கு கீழே உள்ள கோரிக்கையைத் தட்டவும்"
|
||||
},
|
||||
"ViewVcModal": {
|
||||
"cancel": "ரத்து செய்",
|
||||
@@ -201,8 +203,8 @@
|
||||
"redirecting": "வழிமாற்று...",
|
||||
"inProgress": "ஏற்றுகிறது...",
|
||||
"success": {
|
||||
"unlocked": "{{vcLabel}} வெற்றிகரமாக திறக்கப்பட்டது",
|
||||
"locked": "{{vcLabel}} வெற்றிகரமாக பூட்டப்பட்டது",
|
||||
"unlocked": "அட்டை வெற்றிகரமாக திறக்கப்பட்டது",
|
||||
"locked": "அட்டை வெற்றிகரமாக பூட்டப்பட்டது",
|
||||
"revoked": "VID {{vid}} has been revoked. அதைக் கொண்ட எந்த நற்சான்றிதழும் பணப்பையிலிருந்து தானாகவே அகற்றப்படும்"
|
||||
}
|
||||
},
|
||||
@@ -220,8 +222,7 @@
|
||||
"AppMetaData": {
|
||||
"header": "இன்ஜி பற்றி",
|
||||
"version": "பதிப்பு",
|
||||
"useBle": "Powered by BLE",
|
||||
"useGoogleNearby": "Powered by GoogleNearby"
|
||||
"useBle": "Powered by BLE"
|
||||
},
|
||||
"ProfileScreen": {
|
||||
"name": "பெயர்",
|
||||
@@ -246,7 +247,7 @@
|
||||
"checkDomain": "மேலும், முகவரிப் பட்டியில் பூட்டு ஐகான் உள்ளதா எனச் சரிபார்க்கவும்.",
|
||||
"domainHead": "https://",
|
||||
"selectId": "ஐடியைத் தேர்ந்தெடுக்கவும்",
|
||||
"noBindedVc": "சரிபார்க்க, பிணைக்கப்பட்ட {{vcLabel}} எதுவும் இல்லை",
|
||||
"noBindedVc": "சரிபார்க்க, பிணைக்கப்பட்ட அட்டைகள் எதுவும் இல்லை",
|
||||
"back": "திரும்பி செல்",
|
||||
"confirm": "உறுதிப்படுத்தவும்",
|
||||
"verify": "சரிபார்க்கவும்",
|
||||
@@ -260,37 +261,46 @@
|
||||
"okay": "சரி"
|
||||
},
|
||||
"ReceiveVcScreen": {
|
||||
"header": "{{vcLabel}} விவரங்கள்",
|
||||
"acceptRequest": "கோரிக்கையை ஏற்று {{vcLabel}} ஐப் பெறவும்",
|
||||
"header": "அட்டை விவரங்கள்",
|
||||
"save": "அட்டையைச் சேமிக்கவும்",
|
||||
"acceptRequest": "கோரிக்கையை ஏற்று அட்டை ஐப் பெறவும்",
|
||||
"acceptRequestAndVerify": "கோரிக்கையை ஏற்று சரிபார்க்கவும்",
|
||||
"reject": "நிராகரிக்கவும்",
|
||||
"discard": "நிராகரிக்கவும்",
|
||||
"goToReceivedVCTab": "பெறப்பட்ட {{vcLabel}}களைப் பார்க்கவும் ",
|
||||
"goToReceivedVCTab": "பெறப்பட்ட அட்டைகளைப் பார்க்கவும் ",
|
||||
"saving": "சேமிப்பு",
|
||||
"errors": {
|
||||
"savingFailed": {
|
||||
"title": "{{vcLabelSingular}}ஐ சேமிப்பதில் தோல்வி",
|
||||
"message": "கடையில் {{vcLabelSingular}}ஐ சேமிக்கும் போது ஏதோ தவறு ஏற்பட்டது."
|
||||
"title": "அட்டைஐ சேமிப்பதில் தோல்வி",
|
||||
"message": "கடையில் அட்டைஐ சேமிக்கும் போது ஏதோ தவறு ஏற்பட்டது."
|
||||
},
|
||||
"diskFullError": {
|
||||
"title": "{{vcLabelSingular}}ஐ சேமிக்க முடியவில்லை",
|
||||
"message": "ஆப்ஸ் டேட்டா நிரம்பியதால் {{vcLabelPlural}} பெறவோ சேமிக்கவோ முடியாது."
|
||||
"title": "அட்டைஐ சேமிக்க முடியவில்லை",
|
||||
"message": "ஆப்ஸ் டேட்டா நிரம்பியதால் அட்டைகள் பெறவோ சேமிக்கவோ முடியாது."
|
||||
}
|
||||
}
|
||||
},
|
||||
"RequestScreen": {
|
||||
"bluetoothDenied": "{{vcLabel}}ஐக் கோர புளூடூத்தை இயக்கவும்",
|
||||
"showQrCode": "குடியுரிமை {{vcLabel}}ஐக் கோர இந்த QR குறியீட்டைக் காட்டு",
|
||||
"incomingVc": "உள்வரும் {{vcLabel}}",
|
||||
"bluetoothDenied": "அட்டைஐக் கோர புளூடூத்தை இயக்கவும்",
|
||||
"bluetoothStateAndroid": "உள்ளூர் பகிர்வை ஆதரிக்க விரைவான அமைப்புகளிலிருந்து புளூடூத்தை இயக்கவும்",
|
||||
"bluetoothStateIos": "உள்ளூர் பகிர்வை ஆதரிக்க, கட்டுப்பாட்டு மையத்திலிருந்து புளூடூத்தை இயக்கவும்",
|
||||
"showQrCode": "குடியுரிமை அட்டைஐக் கோர இந்த QR குறியீட்டைக் காட்டு",
|
||||
"incomingVc": "உள்வரும் அட்டை",
|
||||
"request": "கோரிக்கை",
|
||||
"errors": {
|
||||
"nearbyDevicesPermissionDenied": {
|
||||
"message": "அட்டைகள் கோருவதற்கு அருகிலுள்ள சாதனங்களின் அனுமதி தேவை",
|
||||
"button": "அனுமதி அனுமதி"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
"accepted": {
|
||||
"title": "வெற்றி!",
|
||||
"message": "{{vcLabel}} ஆனது {{sender}} இடமிருந்து வெற்றிகரமாகப் பெறப்பட்டது"
|
||||
"message": "அட்டை ஆனது வாலட் இடமிருந்து வெற்றிகரமாகப் பெறப்பட்டது"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "அறிவிப்பு",
|
||||
"message": "நீங்கள் {{sender}} இன் {{vcLabel}} ஐ நிராகரித்தீர்கள்"
|
||||
"message": "நீங்கள் வாலட் இன் அட்டை ஐ நிராகரித்தீர்கள்"
|
||||
},
|
||||
"disconnected": {
|
||||
"title": "துண்டிக்கப்பட்டது",
|
||||
@@ -302,7 +312,7 @@
|
||||
"timeoutHint": "சாதனத் தகவலைப் பரிமாறிக்கொள்ள அதிக நேரம் எடுக்கிறது..."
|
||||
},
|
||||
"connected": {
|
||||
"message": "சாதனத்துடன் இணைக்கப்பட்டது. {{vcLabel}}க்காகக் காத்திருக்கிறது...",
|
||||
"message": "சாதனத்துடன் இணைக்கப்பட்டது. அட்டைக்காகக் காத்திருக்கிறது...",
|
||||
"timeoutHint": "இதுவரை தரவு எதுவும் பெறப்படவில்லை. சாதனத்தை அனுப்புவது இன்னும் இணைக்கப்பட்டுள்ளதா?"
|
||||
},
|
||||
"offline": {
|
||||
@@ -310,7 +320,7 @@
|
||||
},
|
||||
"bleError": {
|
||||
"title": "இடமாற்றம் செய்ய முடியவில்லை",
|
||||
"message": "{{vcLabel}} ஐ மாற்றும்போது ஏதோ தவறு ஏற்பட்டது. தயவு செய்து மீண்டும் முயற்சிக்கவும்.",
|
||||
"message": "அட்டை ஐ மாற்றும்போது ஏதோ தவறு ஏற்பட்டது. தயவு செய்து மீண்டும் முயற்சிக்கவும்.",
|
||||
"hint": "பிழை: {{code}}"
|
||||
}
|
||||
},
|
||||
@@ -320,12 +330,12 @@
|
||||
},
|
||||
"ScanScreen": {
|
||||
"header": "QR குறியீட்டை ஸ்கேன் செய்",
|
||||
"noShareableVcs": "பகிரக்கூடிய {{vcLabel}} எதுவும் இல்லை.",
|
||||
"noShareableVcs": "பகிரக்கூடிய அட்டைகள் எதுவும் இல்லை.",
|
||||
"bluetoothStateAndroid": "உள்ளூர் பகிர்வை ஆதரிக்க விரைவான அமைப்புகளிலிருந்து புளூடூத்தை இயக்கவும்",
|
||||
"bluetoothStateIos": "உள்ளூர் பகிர்வை ஆதரிக்க, கட்டுப்பாட்டு மையத்திலிருந்து புளூடூத்தை இயக்கவும்",
|
||||
"enableBluetoothMessage": "உள்ளூர் பகிர்வை ஆதரிக்க புளூடூத் அனுமதிகளை இயக்கவும்",
|
||||
"enableBluetoothButtonText": "புளூடூத் அனுமதிகளை அனுமதிக்கவும்",
|
||||
"sharingVc": "பகிர்தல் {{vcLabel}}",
|
||||
"sharingVc": "பகிர்தல் அட்டை",
|
||||
"errors": {
|
||||
"locationDisabled": {
|
||||
"message": "ஸ்கேனிங் செயல்பாட்டிற்கு இருப்பிடச் சேவைகள் இயக்கப்பட வேண்டும்",
|
||||
@@ -334,6 +344,10 @@
|
||||
"locationDenied": {
|
||||
"message": "ஸ்கேனிங் செயல்பாட்டிற்கு இருப்பிட அனுமதி தேவை",
|
||||
"button": "இருப்பிடம் அணுகலை அனுமதி"
|
||||
},
|
||||
"nearbyDevicesPermissionDenied": {
|
||||
"message": "ஸ்கேனிங் செயல்பாட்டிற்கு அருகிலுள்ள சாதனங்களின் அனுமதி தேவை",
|
||||
"button": "அனுமதி அனுமதி"
|
||||
}
|
||||
},
|
||||
"status": {
|
||||
@@ -343,8 +357,8 @@
|
||||
"exchangingDeviceInfoTimeout": "சாதனத் தகவலைப் பரிமாறிக்கொள்ள சிறிது நேரம் ஆகும். நீங்கள் மீண்டும் இணைக்க வேண்டியிருக்கலாம்.",
|
||||
"invalid": "தவறான QR குறியீடு",
|
||||
"offline": "ஆன்லைன் பகிர்வு பயன்முறையைப் பயன்படுத்தி QR குறியீடுகளை ஸ்கேன் செய்ய இணையத்துடன் இணைக்கவும்",
|
||||
"sent": "{{ vcLabel }} அனுப்பப்பட்டது...",
|
||||
"sentHint": "ரிசீவர் உங்கள் {{ vcLabel }} ஐ சேமிக்க அல்லது நிராகரிக்க காத்திருக்கிறது",
|
||||
"sent": "அட்டை அனுப்பப்பட்டது...",
|
||||
"sentHint": "ரிசீவர் உங்கள் அட்டை ஐ சேமிக்க அல்லது நிராகரிக்க காத்திருக்கிறது",
|
||||
"sharing": {
|
||||
"title": "பகிர்கிறது...",
|
||||
"hint": "பெறும் சாதனம் பங்கை ஏற்க அல்லது நிராகரிக்க காத்திருக்கவும்.",
|
||||
@@ -352,22 +366,22 @@
|
||||
},
|
||||
"accepted": {
|
||||
"title": "வெற்றி!",
|
||||
"message": "உங்கள் {{vcLabel}} வெற்றிகரமாக {{receiver}} உடன் பகிரப்பட்டது"
|
||||
"message": "உங்கள் அட்டை வெற்றிகரமாக சரிபார்ப்பவர் உடன் பகிரப்பட்டது"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "கவனிக்கவும்",
|
||||
"message": "உங்கள் {{vcLabel}}, {{receiver}} ஆல் நிராகரிக்கப்பட்டது"
|
||||
"message": "உங்கள் அட்டை, சரிபார்ப்பவர் ஆல் நிராகரிக்கப்பட்டது"
|
||||
},
|
||||
"bleError": {
|
||||
"title": "இடமாற்றம் செய்ய முடியவில்லை",
|
||||
"message": "{{vcLabel}} ஐ மாற்றும்போது ஏதோ தவறு ஏற்பட்டது. தயவு செய்து மீண்டும் முயற்சிக்கவும்.",
|
||||
"message": "அட்டை ஐ மாற்றும்போது ஏதோ தவறு ஏற்பட்டது. தயவு செய்து மீண்டும் முயற்சிக்கவும்.",
|
||||
"hint": "பிழை: {{code}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SelectVcOverlay": {
|
||||
"header": "பகிர்வு {{vcLabel}}",
|
||||
"chooseVc": "நீங்கள் பகிர விரும்பும் {{vcLabel}} ஐத் தேர்ந்தெடுக்கவும்",
|
||||
"header": "பகிர்வு அட்டை",
|
||||
"chooseVc": "நீங்கள் பகிர விரும்பும் அட்டை ஐத் தேர்ந்தெடுக்கவும்",
|
||||
"share": "பகிர்",
|
||||
"verifyAndShare": "அடையாளத்தைச் சரிபார்த்து பகிரவும்"
|
||||
},
|
||||
@@ -384,11 +398,11 @@
|
||||
},
|
||||
"accepted": {
|
||||
"title": "வெற்றி!",
|
||||
"message": "உங்கள் {{vcLabel}} வெற்றிகரமாக {{receiver}} உடன் பகிரப்பட்டது"
|
||||
"message": "உங்கள் அட்டை வெற்றிகரமாக {{receiver}} உடன் பகிரப்பட்டது"
|
||||
},
|
||||
"rejected": {
|
||||
"title": "கவனிக்கவும்",
|
||||
"message": "உங்கள் {{vcLabel}}, {{receiver}} ஆல் நிராகரிக்கப்பட்டது"
|
||||
"message": "உங்கள் அட்டை, {{receiver}} ஆல் நிராகரிக்கப்பட்டது"
|
||||
}
|
||||
},
|
||||
"consentToPhotoVerification": "அங்கீகாரத்திற்காக எனது புகைப்படத்தை எடுக்க நான் ஒப்புதல் அளிக்கிறேன்"
|
||||
@@ -409,18 +423,18 @@
|
||||
},
|
||||
"SendVcModal": {
|
||||
"reasonForSharing": "பகிர்வதற்கான காரணம் (விரும்பினால்)",
|
||||
"acceptRequest": "கோரிக்கையை ஏற்று {{vcLabel}} என்பதைத் தேர்ந்தெடுக்கவும்",
|
||||
"acceptRequest": "கோரிக்கையை ஏற்று அட்டை என்பதைத் தேர்ந்தெடுக்கவும்",
|
||||
"reject": "நிராகரி",
|
||||
"statusSharing": {
|
||||
"title": "பகிர்வு..."
|
||||
},
|
||||
"statusAccepted": {
|
||||
"title": "வெற்றி!",
|
||||
"message": "உங்கள் {{vcLabel}} வெற்றிகரமாக {{receiver}} உடன் பகிரப்பட்டது"
|
||||
"message": "உங்கள் அட்டை வெற்றிகரமாக {{receiver}} உடன் பகிரப்பட்டது"
|
||||
},
|
||||
"statusRejected": {
|
||||
"title": "அறிவிப்பு",
|
||||
"message": "உங்கள் {{vcLabel}} ஆனது {{receiver}} ஆல் நிராகரிக்கப்பட்டது"
|
||||
"message": "உங்கள் அட்டை ஆனது {{receiver}} ஆல் நிராகரிக்கப்பட்டது"
|
||||
}
|
||||
},
|
||||
"WelcomeScreen": {
|
||||
|
||||
@@ -12,16 +12,16 @@ import { createSettingsMachine, settingsMachine } from './settings';
|
||||
import { StoreEvents, storeMachine } from './store';
|
||||
import { createVcMachine, vcMachine } from './vc';
|
||||
import { createActivityLogMachine, activityLogMachine } from './activityLog';
|
||||
import { createRequestMachine, requestMachine } from './request';
|
||||
import * as BLERequest from './openIdBle/request';
|
||||
import * as BLEScan from './openIdBle/scan';
|
||||
import { createScanMachine, scanMachine } from './scan';
|
||||
import {
|
||||
createRequestMachine,
|
||||
requestMachine,
|
||||
} from './bleShare/request/requestMachine';
|
||||
import { createScanMachine, scanMachine } from './bleShare/scan/scanMachine';
|
||||
import { createRevokeMachine, revokeVidsMachine } from './revoke';
|
||||
|
||||
import { pure, respond } from 'xstate/lib/actions';
|
||||
import { AppServices } from '../shared/GlobalContext';
|
||||
import { request } from '../shared/request';
|
||||
import { isBLEEnabled } from '../lib/smartshare';
|
||||
import {
|
||||
changeCrendetialRegistry,
|
||||
SETTINGS_STORE_KEY,
|
||||
@@ -212,19 +212,17 @@ export const appMachine = model.createMachine(
|
||||
activityLogMachine.id
|
||||
);
|
||||
|
||||
serviceRefs.scan = isBLEEnabled
|
||||
? spawn(
|
||||
BLEScan.createScanMachine(serviceRefs),
|
||||
BLEScan.scanMachine.id
|
||||
)
|
||||
: spawn(createScanMachine(serviceRefs), scanMachine.id);
|
||||
serviceRefs.scan = spawn(
|
||||
createScanMachine(serviceRefs),
|
||||
scanMachine.id
|
||||
);
|
||||
|
||||
serviceRefs.request = isBLEEnabled
|
||||
? spawn(
|
||||
BLERequest.createRequestMachine(serviceRefs),
|
||||
BLERequest.requestMachine.id
|
||||
)
|
||||
: spawn(createRequestMachine(serviceRefs), requestMachine.id);
|
||||
if (Platform.OS === 'android') {
|
||||
serviceRefs.request = spawn(
|
||||
createRequestMachine(serviceRefs),
|
||||
requestMachine.id
|
||||
);
|
||||
}
|
||||
|
||||
serviceRefs.revoke = spawn(
|
||||
createRevokeMachine(serviceRefs),
|
||||
@@ -242,7 +240,11 @@ export const appMachine = model.createMachine(
|
||||
context.serviceRefs.settings.subscribe(logState);
|
||||
context.serviceRefs.activityLog.subscribe(logState);
|
||||
context.serviceRefs.scan.subscribe(logState);
|
||||
context.serviceRefs.request.subscribe(logState);
|
||||
|
||||
if (Platform.OS === 'android') {
|
||||
context.serviceRefs.request.subscribe(logState);
|
||||
}
|
||||
|
||||
context.serviceRefs.revoke.subscribe(logState);
|
||||
}
|
||||
},
|
||||
@@ -348,6 +350,7 @@ interface AppInfo {
|
||||
deviceId: string;
|
||||
deviceName: string;
|
||||
}
|
||||
|
||||
interface BackendInfo {
|
||||
application: {
|
||||
name: string;
|
||||
|
||||
78
machines/bleShare/commonSelectors.ts
Normal file
@@ -0,0 +1,78 @@
|
||||
import { StateFrom } from 'xstate';
|
||||
import { scanMachine } from './scan/scanMachine';
|
||||
import { requestMachine } from './request/requestMachine';
|
||||
|
||||
type State = StateFrom<typeof scanMachine & typeof requestMachine>;
|
||||
|
||||
export function selectIsCancelling(state: State) {
|
||||
return state.matches('cancelling');
|
||||
}
|
||||
|
||||
export function selectIsReviewing(state: State) {
|
||||
return state.matches('reviewing');
|
||||
}
|
||||
|
||||
export function selectIsAccepted(state: State) {
|
||||
return state.matches('reviewing.accepted');
|
||||
}
|
||||
|
||||
export function selectIsRejected(state: State) {
|
||||
return state.matches('reviewing.rejected');
|
||||
}
|
||||
|
||||
export function selectIsVerifyingIdentity(state: State) {
|
||||
return state.matches('reviewing.verifyingIdentity');
|
||||
}
|
||||
|
||||
export function selectIsInvalidIdentity(state: State) {
|
||||
return state.matches('reviewing.invalidIdentity');
|
||||
}
|
||||
|
||||
export function selectIsDisconnected(state: State) {
|
||||
return state.matches('disconnected');
|
||||
}
|
||||
|
||||
export function selectIsBluetoothDenied(state: State) {
|
||||
return state.matches('bluetoothDenied');
|
||||
}
|
||||
|
||||
export function selectBleError(state: State) {
|
||||
return state.context.bleError;
|
||||
}
|
||||
|
||||
// TODO: Remove these selectors and respective UI code once discussed with team
|
||||
export function selectIsExchangingDeviceInfo() {
|
||||
return false;
|
||||
}
|
||||
|
||||
export function selectIsExchangingDeviceInfoTimeout() {
|
||||
return false;
|
||||
}
|
||||
|
||||
export function selectIsDone(state: State) {
|
||||
return state.matches('reviewing.navigatingToHome');
|
||||
}
|
||||
|
||||
export function selectIsOffline() {
|
||||
return false;
|
||||
}
|
||||
|
||||
export function selectIsHandlingBleError(state: State) {
|
||||
return state.matches('handlingBleError');
|
||||
}
|
||||
|
||||
export function selectReadyForBluetoothStateCheck(state: State) {
|
||||
return state.context.readyForBluetoothStateCheck;
|
||||
}
|
||||
|
||||
export function selectIsNearByDevicesPermissionDenied(state: State) {
|
||||
return state.matches('nearByDevicesPermissionDenied');
|
||||
}
|
||||
|
||||
export function selectIsBluetoothPermissionDenied(state: State) {
|
||||
return state.matches('bluetoothPermissionDenied');
|
||||
}
|
||||
|
||||
export function selectIsStartPermissionCheck(state: State) {
|
||||
return state.matches('startPermissionCheck');
|
||||
}
|
||||
789
machines/bleShare/request/requestMachine.ts
Normal file
@@ -9,9 +9,6 @@ export interface Typegen0 {
|
||||
data: unknown;
|
||||
__tip: 'See the XState TS docs to learn how to strongly type this.';
|
||||
};
|
||||
'xstate.after(CONNECTION_TIMEOUT)#request.exchangingDeviceInfo.inProgress': {
|
||||
type: 'xstate.after(CONNECTION_TIMEOUT)#request.exchangingDeviceInfo.inProgress';
|
||||
};
|
||||
'xstate.after(DESTROY_TIMEOUT)#request.clearingConnection': {
|
||||
type: 'xstate.after(DESTROY_TIMEOUT)#request.clearingConnection';
|
||||
};
|
||||
@@ -24,14 +21,14 @@ export interface Typegen0 {
|
||||
'invokeSrcNameMap': {
|
||||
advertiseDevice: 'done.invoke.request.waitingForConnection:invocation[0]';
|
||||
checkBluetoothService: 'done.invoke.request.checkingBluetoothService.checking:invocation[0]';
|
||||
checkNearByDevicesPermission: 'done.invoke.request.checkNearbyDevicesPermission.checking:invocation[0]';
|
||||
disconnect:
|
||||
| 'done.invoke.request.clearingConnection:invocation[0]'
|
||||
| 'done.invoke.request.reviewing.navigatingToHome:invocation[0]';
|
||||
exchangeDeviceInfo: 'done.invoke.request.exchangingDeviceInfo:invocation[0]';
|
||||
monitorConnection: 'done.invoke.request:invocation[0]';
|
||||
receiveVc: 'done.invoke.request.waitingForVc:invocation[0]';
|
||||
requestBluetooth: 'done.invoke.request.checkingBluetoothService.requesting:invocation[0]';
|
||||
sendDisconnect: 'done.invoke.request.cancelling:invocation[0]';
|
||||
requestNearByDevicesPermission: 'done.invoke.request.checkNearbyDevicesPermission.requesting:invocation[0]';
|
||||
sendVcResponse:
|
||||
| 'done.invoke.request.reviewing.accepted:invocation[0]'
|
||||
| 'done.invoke.request.reviewing.rejected:invocation[0]'
|
||||
@@ -55,22 +52,17 @@ export interface Typegen0 {
|
||||
| 'RESET'
|
||||
| 'SCREEN_BLUR'
|
||||
| 'SCREEN_FOCUS'
|
||||
| 'SWITCH_PROTOCOL'
|
||||
| 'xstate.stop';
|
||||
generateConnectionParams:
|
||||
| 'CONNECTION_DESTROYED'
|
||||
| 'DISMISS'
|
||||
| 'xstate.after(DESTROY_TIMEOUT)#request.clearingConnection';
|
||||
logReceived: 'CANCEL' | 'REJECT' | 'STORE_ERROR' | 'STORE_RESPONSE';
|
||||
mergeIncomingVc: 'STORE_RESPONSE';
|
||||
openSettings: 'GOTO_SETTINGS';
|
||||
openAppPermission: 'GOTO_SETTINGS';
|
||||
prependReceivedVc: 'VC_RESPONSE';
|
||||
registerLoggers:
|
||||
| 'CONNECTION_DESTROYED'
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'xstate.after(DESTROY_TIMEOUT)#request.clearingConnection';
|
||||
removeLoggers:
|
||||
| 'CONNECTION_DESTROYED'
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'SCREEN_BLUR'
|
||||
| 'xstate.after(DESTROY_TIMEOUT)#request.clearingConnection'
|
||||
@@ -82,58 +74,57 @@ export interface Typegen0 {
|
||||
| 'FACE_VALID'
|
||||
| 'VC_RECEIVED'
|
||||
| 'done.invoke.request.reviewing.verifyingVp:invocation[0]';
|
||||
requestReceiverInfo: 'CONNECTED';
|
||||
sendVcReceived: 'STORE_RESPONSE';
|
||||
setBleError: 'BLE_ERROR';
|
||||
setIncomingVc: 'VC_RECEIVED';
|
||||
setOpenID4VpUri: 'ADV_STARTED';
|
||||
setReadyForBluetoothStateCheck: 'NEARBY_ENABLED';
|
||||
setReceiveLogTypeDiscarded: 'CANCEL' | 'REJECT' | 'STORE_ERROR';
|
||||
setReceiveLogTypeRegular: 'ACCEPT' | 'STORE_RESPONSE';
|
||||
setReceiveLogTypeUnverified: 'FACE_INVALID';
|
||||
setReceiveLogTypeVerified: 'FACE_VALID';
|
||||
setReceiverInfo: 'RECEIVE_DEVICE_INFO';
|
||||
setSenderInfo: 'EXCHANGE_DONE';
|
||||
setReceiverInfo: 'CONNECTED';
|
||||
setSenderInfo: 'CONNECTED';
|
||||
setStoringError: 'STORE_ERROR';
|
||||
storeVc: 'STORE_RESPONSE';
|
||||
switchProtocol: 'SWITCH_PROTOCOL';
|
||||
};
|
||||
'eventsCausingDelays': {
|
||||
CONNECTION_TIMEOUT: 'RECEIVE_DEVICE_INFO';
|
||||
DESTROY_TIMEOUT: '' | 'DISMISS';
|
||||
SHARING_TIMEOUT: 'EXCHANGE_DONE';
|
||||
SHARING_TIMEOUT: 'CONNECTED';
|
||||
};
|
||||
'eventsCausingGuards': {
|
||||
hasExistingVc: 'VC_RESPONSE';
|
||||
};
|
||||
'eventsCausingServices': {
|
||||
advertiseDevice:
|
||||
| 'CONNECTION_DESTROYED'
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'xstate.after(DESTROY_TIMEOUT)#request.clearingConnection';
|
||||
checkBluetoothService: 'RESET' | 'SCREEN_FOCUS' | 'SWITCH_PROTOCOL';
|
||||
checkBluetoothService: 'NEARBY_ENABLED';
|
||||
checkNearByDevicesPermission: 'APP_ACTIVE' | 'RESET' | 'SCREEN_FOCUS';
|
||||
disconnect: '' | 'DISMISS' | 'GO_TO_RECEIVED_VC_TAB';
|
||||
exchangeDeviceInfo: 'RECEIVE_DEVICE_INFO';
|
||||
monitorConnection: 'xstate.init';
|
||||
receiveVc: 'EXCHANGE_DONE';
|
||||
requestBluetooth: 'BLUETOOTH_DISABLED';
|
||||
sendDisconnect: 'CANCEL';
|
||||
receiveVc: 'CONNECTED';
|
||||
requestBluetooth: 'BLUETOOTH_STATE_DISABLED';
|
||||
requestNearByDevicesPermission: 'NEARBY_DISABLED';
|
||||
sendVcResponse: 'CANCEL' | 'REJECT' | 'STORE_ERROR' | 'STORE_RESPONSE';
|
||||
verifyVp: never;
|
||||
};
|
||||
'matchesStates':
|
||||
| 'bluetoothDenied'
|
||||
| 'cancelling'
|
||||
| 'checkNearbyDevicesPermission'
|
||||
| 'checkNearbyDevicesPermission.checking'
|
||||
| 'checkNearbyDevicesPermission.requesting'
|
||||
| 'checkingBluetoothService'
|
||||
| 'checkingBluetoothService.checking'
|
||||
| 'checkingBluetoothService.enabled'
|
||||
| 'checkingBluetoothService.requesting'
|
||||
| 'clearingConnection'
|
||||
| 'disconnected'
|
||||
| 'exchangingDeviceInfo'
|
||||
| 'exchangingDeviceInfo.inProgress'
|
||||
| 'exchangingDeviceInfo.timeout'
|
||||
| 'handlingBleError'
|
||||
| 'inactive'
|
||||
| 'preparingToExchangeInfo'
|
||||
| 'nearByDevicesPermissionDenied'
|
||||
| 'reviewing'
|
||||
| 'reviewing.accepted'
|
||||
| 'reviewing.accepting'
|
||||
@@ -156,8 +147,8 @@ export interface Typegen0 {
|
||||
| 'waitingForVc.inProgress'
|
||||
| 'waitingForVc.timeout'
|
||||
| {
|
||||
checkNearbyDevicesPermission?: 'checking' | 'requesting';
|
||||
checkingBluetoothService?: 'checking' | 'enabled' | 'requesting';
|
||||
exchangingDeviceInfo?: 'inProgress' | 'timeout';
|
||||
reviewing?:
|
||||
| 'accepted'
|
||||
| 'accepting'
|
||||
60
machines/bleShare/request/selectors.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
import { StateFrom } from 'xstate';
|
||||
import { requestMachine } from './requestMachine';
|
||||
|
||||
type State = StateFrom<typeof requestMachine>;
|
||||
|
||||
export function selectSenderInfo(state: State) {
|
||||
return state.context.senderInfo;
|
||||
}
|
||||
|
||||
export function selectIncomingVc(state: State) {
|
||||
return state.context.incomingVc;
|
||||
}
|
||||
|
||||
export function selectSharingProtocol(state: State) {
|
||||
return state.context.sharingProtocol;
|
||||
}
|
||||
|
||||
export function selectIsIncomingVp(state: State) {
|
||||
return state.context.incomingVc?.verifiablePresentation != null;
|
||||
}
|
||||
|
||||
export function selectIsReviewingInIdle(state: State) {
|
||||
return state.matches('reviewing.idle');
|
||||
}
|
||||
|
||||
export function selectIsWaitingForConnection(state: State) {
|
||||
return state.matches('waitingForConnection');
|
||||
}
|
||||
|
||||
export function selectIsCheckingBluetoothService(state: State) {
|
||||
return state.matches('checkingBluetoothService');
|
||||
}
|
||||
|
||||
export function selectIsWaitingForVc(state: State) {
|
||||
return state.matches('waitingForVc.inProgress');
|
||||
}
|
||||
|
||||
export function selectIsWaitingForVcTimeout(state: State) {
|
||||
return state.matches('waitingForVc.timeout');
|
||||
}
|
||||
|
||||
export function selectOpenId4VpUri(state: State) {
|
||||
return state.context.openId4VpUri;
|
||||
}
|
||||
|
||||
export function selectIsAccepting(state: State) {
|
||||
return state.matches('reviewing.accepting');
|
||||
}
|
||||
|
||||
export function selectIsSavingFailedInIdle(state: State) {
|
||||
return state.matches('reviewing.savingFailed.idle');
|
||||
}
|
||||
|
||||
export function selectIsSavingFailedInViewingVc(state: State) {
|
||||
return state.matches('reviewing.savingFailed.viewingVc');
|
||||
}
|
||||
|
||||
export function selectStoreError(state: State) {
|
||||
return state.context.storeError;
|
||||
}
|
||||
@@ -17,9 +17,6 @@ export interface Typegen0 {
|
||||
'xstate.after(CONNECTION_TIMEOUT)#scan.connecting.inProgress': {
|
||||
type: 'xstate.after(CONNECTION_TIMEOUT)#scan.connecting.inProgress';
|
||||
};
|
||||
'xstate.after(CONNECTION_TIMEOUT)#scan.exchangingDeviceInfo': {
|
||||
type: 'xstate.after(CONNECTION_TIMEOUT)#scan.exchangingDeviceInfo';
|
||||
};
|
||||
'xstate.after(DESTROY_TIMEOUT)#scan.clearingConnection': {
|
||||
type: 'xstate.after(DESTROY_TIMEOUT)#scan.clearingConnection';
|
||||
};
|
||||
@@ -35,18 +32,16 @@ export interface Typegen0 {
|
||||
checkLocationStatus: 'done.invoke.scan.checkingLocationService.checkingStatus:invocation[0]';
|
||||
createVp: 'done.invoke.scan.reviewing.creatingVp:invocation[0]';
|
||||
disconnect: 'done.invoke.scan.clearingConnection:invocation[0]';
|
||||
discoverDevice: 'done.invoke.scan.connecting:invocation[0]';
|
||||
exchangeDeviceInfo: 'done.invoke.scan.exchangingDeviceInfo:invocation[0]';
|
||||
monitorConnection: 'done.invoke.scan:invocation[0]';
|
||||
requestBluetooth: 'done.invoke.scan.checkingBluetoothService.requesting:invocation[0]';
|
||||
sendDisconnect: 'done.invoke.scan.reviewing.cancelling:invocation[0]';
|
||||
sendVc: 'done.invoke.scan.reviewing.sendingVc:invocation[0]';
|
||||
startConnection: 'done.invoke.scan.connecting:invocation[0]';
|
||||
};
|
||||
'missingImplementations': {
|
||||
actions: never;
|
||||
delays: never;
|
||||
guards: never;
|
||||
services: 'QrLogin';
|
||||
services: never;
|
||||
};
|
||||
'eventsCausingActions': {
|
||||
clearCreatedVp:
|
||||
@@ -65,8 +60,8 @@ export interface Typegen0 {
|
||||
| 'SCREEN_BLUR'
|
||||
| 'SCREEN_FOCUS'
|
||||
| 'xstate.stop';
|
||||
clearScannedQrParams:
|
||||
| 'CONNECTION_DESTROYED'
|
||||
clearUri:
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'xstate.after(DESTROY_TIMEOUT)#scan.clearingConnection';
|
||||
logFailedVerification: 'FACE_INVALID';
|
||||
@@ -74,43 +69,37 @@ export interface Typegen0 {
|
||||
openBluetoothSettings: 'GOTO_SETTINGS';
|
||||
openSettings: 'LOCATION_REQUEST';
|
||||
registerLoggers:
|
||||
| 'CONNECTION_DESTROYED'
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'xstate.after(DESTROY_TIMEOUT)#scan.clearingConnection';
|
||||
removeLoggers:
|
||||
| 'CONNECTION_DESTROYED'
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'SCREEN_BLUR'
|
||||
| 'xstate.after(DESTROY_TIMEOUT)#scan.clearingConnection'
|
||||
| 'xstate.init';
|
||||
requestSenderInfo: 'SCAN';
|
||||
requestToEnableLocation: 'LOCATION_DISABLED' | 'LOCATION_REQUEST';
|
||||
resetShouldVerifyPresence: 'CANCEL' | 'EXCHANGE_DONE';
|
||||
resetShouldVerifyPresence: 'CANCEL' | 'CONNECTED';
|
||||
sendScanData: 'SCAN';
|
||||
setBleError: 'BLE_ERROR';
|
||||
setChildRef:
|
||||
| 'CONNECTION_DESTROYED'
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'xstate.after(DESTROY_TIMEOUT)#scan.clearingConnection';
|
||||
setConnectionParams: 'SCAN';
|
||||
setCreatedVp: 'done.invoke.scan.reviewing.creatingVp:invocation[0]';
|
||||
setLinkCode: 'SCAN';
|
||||
setReason: 'UPDATE_REASON';
|
||||
setReceiverInfo: 'EXCHANGE_DONE';
|
||||
setScannedQrParams: 'SCAN';
|
||||
setReceiverInfo: 'CONNECTED';
|
||||
setSelectedVc: 'SELECT_VC';
|
||||
setSenderInfo: 'RECEIVE_DEVICE_INFO';
|
||||
setSenderInfo: 'CONNECTED';
|
||||
setShareLogTypeUnverified: 'ACCEPT_REQUEST';
|
||||
setShareLogTypeVerified: 'FACE_VALID';
|
||||
setUri: 'SCAN';
|
||||
storeLoginItem: 'done.invoke.QrLogin';
|
||||
storingActivityLog: 'STORE_RESPONSE';
|
||||
toggleShouldVerifyPresence: 'TOGGLE_USER_CONSENT';
|
||||
};
|
||||
'eventsCausingDelays': {
|
||||
CONNECTION_TIMEOUT:
|
||||
| 'CONNECTED'
|
||||
| 'RECEIVE_DEVICE_INFO'
|
||||
| 'xstate.after(CONNECTION_TIMEOUT)#scan.exchangingDeviceInfo';
|
||||
CONNECTION_TIMEOUT: 'SCAN';
|
||||
DESTROY_TIMEOUT: '' | 'DISMISS' | 'LOCATION_ENABLED';
|
||||
SHARING_TIMEOUT:
|
||||
| 'ACCEPT_REQUEST'
|
||||
@@ -118,9 +107,8 @@ export interface Typegen0 {
|
||||
| 'done.invoke.scan.reviewing.creatingVp:invocation[0]';
|
||||
};
|
||||
'eventsCausingGuards': {
|
||||
isOpenIdQr: 'SCAN';
|
||||
isQrLogin: 'SCAN';
|
||||
isQrOffline: 'SCAN';
|
||||
isQrOnline: 'SCAN';
|
||||
};
|
||||
'eventsCausingServices': {
|
||||
QrLogin: 'SCAN';
|
||||
@@ -129,17 +117,13 @@ export interface Typegen0 {
|
||||
checkLocationStatus: '';
|
||||
createVp: never;
|
||||
disconnect: '' | 'DISMISS' | 'LOCATION_ENABLED';
|
||||
discoverDevice: 'RECEIVE_DEVICE_INFO';
|
||||
exchangeDeviceInfo:
|
||||
| 'CONNECTED'
|
||||
| 'xstate.after(CONNECTION_TIMEOUT)#scan.exchangingDeviceInfo';
|
||||
monitorConnection: 'xstate.init';
|
||||
requestBluetooth: never;
|
||||
sendDisconnect: 'CANCEL';
|
||||
sendVc:
|
||||
| 'ACCEPT_REQUEST'
|
||||
| 'FACE_VALID'
|
||||
| 'done.invoke.scan.reviewing.creatingVp:invocation[0]';
|
||||
startConnection: 'SCAN';
|
||||
};
|
||||
'matchesStates':
|
||||
| 'bluetoothDenied'
|
||||
@@ -158,14 +142,10 @@ export interface Typegen0 {
|
||||
| 'connecting.inProgress'
|
||||
| 'connecting.timeout'
|
||||
| 'disconnected'
|
||||
| 'exchangingDeviceInfo'
|
||||
| 'exchangingDeviceInfo.inProgress'
|
||||
| 'exchangingDeviceInfo.timeout'
|
||||
| 'findingConnection'
|
||||
| 'handlingBleError'
|
||||
| 'inactive'
|
||||
| 'invalid'
|
||||
| 'preparingToConnect'
|
||||
| 'reviewing'
|
||||
| 'reviewing.accepted'
|
||||
| 'reviewing.cancelling'
|
||||
@@ -192,7 +172,6 @@ export interface Typegen0 {
|
||||
| 'disabled'
|
||||
| 'requestingToEnable';
|
||||
connecting?: 'inProgress' | 'timeout';
|
||||
exchangingDeviceInfo?: 'inProgress' | 'timeout';
|
||||
reviewing?:
|
||||
| 'accepted'
|
||||
| 'cancelling'
|
||||
76
machines/bleShare/scan/selectors.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
import { StateFrom } from 'xstate';
|
||||
import { scanMachine } from './scanMachine';
|
||||
|
||||
type State = StateFrom<typeof scanMachine>;
|
||||
|
||||
export function selectReceiverInfo(state: State) {
|
||||
return state.context.receiverInfo;
|
||||
}
|
||||
|
||||
export function selectReason(state: State) {
|
||||
return state.context.reason;
|
||||
}
|
||||
|
||||
export function selectVcName(state: State) {
|
||||
return state.context.vcName;
|
||||
}
|
||||
|
||||
export function selectSelectedVc(state: State) {
|
||||
return state.context.selectedVc;
|
||||
}
|
||||
|
||||
export function selectQrLoginRef(state: State) {
|
||||
return state.context.QrLoginRef;
|
||||
}
|
||||
|
||||
export function selectIsScanning(state: State) {
|
||||
return state.matches('findingConnection');
|
||||
}
|
||||
|
||||
export function selectIsConnecting(state: State) {
|
||||
return state.matches('connecting.inProgress');
|
||||
}
|
||||
|
||||
export function selectIsConnectingTimeout(state: State) {
|
||||
return state.matches('connecting.timeout');
|
||||
}
|
||||
|
||||
export function selectIsSelectingVc(state: State) {
|
||||
return state.matches('reviewing.selectingVc');
|
||||
}
|
||||
|
||||
export function selectIsSendingVc(state: State) {
|
||||
return state.matches('reviewing.sendingVc.inProgress');
|
||||
}
|
||||
|
||||
export function selectIsSendingVcTimeout(state: State) {
|
||||
return state.matches('reviewing.sendingVc.timeout');
|
||||
}
|
||||
|
||||
export function selectIsSent(state: State) {
|
||||
return state.matches('reviewing.sendingVc.sent');
|
||||
}
|
||||
|
||||
export function selectIsInvalid(state: State) {
|
||||
return state.matches('invalid');
|
||||
}
|
||||
|
||||
export function selectIsLocationDenied(state: State) {
|
||||
return state.matches('checkingLocationService.denied');
|
||||
}
|
||||
|
||||
export function selectIsLocationDisabled(state: State) {
|
||||
return state.matches('checkingLocationService.disabled');
|
||||
}
|
||||
|
||||
export function selectIsShowQrLogin(state: State) {
|
||||
return state.matches('showQrLogin');
|
||||
}
|
||||
|
||||
export function selectIsQrLoginDone(state: State) {
|
||||
return state.matches('showQrLogin.navigatingToHome');
|
||||
}
|
||||
|
||||
export function selectIsQrLoginStoring(state: State) {
|
||||
return state.matches('showQrLogin.storing');
|
||||
}
|
||||
4
machines/bleShare/types.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export interface BLEError {
|
||||
message?: string;
|
||||
code?: string;
|
||||
}
|
||||
1006
machines/request.ts
@@ -1,186 +0,0 @@
|
||||
// This file was automatically generated. Edits will be overwritten
|
||||
|
||||
export interface Typegen0 {
|
||||
'@@xstate/typegen': true;
|
||||
'internalEvents': {
|
||||
'': { type: '' };
|
||||
'done.invoke.request.reviewing.verifyingVp:invocation[0]': {
|
||||
type: 'done.invoke.request.reviewing.verifyingVp:invocation[0]';
|
||||
data: unknown;
|
||||
__tip: 'See the XState TS docs to learn how to strongly type this.';
|
||||
};
|
||||
'xstate.after(CANCEL_TIMEOUT)#request.cancelling': {
|
||||
type: 'xstate.after(CANCEL_TIMEOUT)#request.cancelling';
|
||||
};
|
||||
'xstate.after(CLEAR_DELAY)#request.clearingConnection': {
|
||||
type: 'xstate.after(CLEAR_DELAY)#request.clearingConnection';
|
||||
};
|
||||
'xstate.after(CONNECTION_TIMEOUT)#request.exchangingDeviceInfo.inProgress': {
|
||||
type: 'xstate.after(CONNECTION_TIMEOUT)#request.exchangingDeviceInfo.inProgress';
|
||||
};
|
||||
'xstate.after(SHARING_TIMEOUT)#request.waitingForVc.inProgress': {
|
||||
type: 'xstate.after(SHARING_TIMEOUT)#request.waitingForVc.inProgress';
|
||||
};
|
||||
'xstate.init': { type: 'xstate.init' };
|
||||
'xstate.stop': { type: 'xstate.stop' };
|
||||
};
|
||||
'invokeSrcNameMap': {
|
||||
advertiseDevice: 'done.invoke.request.waitingForConnection:invocation[0]';
|
||||
checkBluetoothService: 'done.invoke.request.checkingBluetoothService.checking:invocation[0]';
|
||||
checkNetwork: 'done.invoke.request.checkingNetwork:invocation[0]';
|
||||
exchangeDeviceInfo: 'done.invoke.request.exchangingDeviceInfo:invocation[0]';
|
||||
monitorConnection: 'done.invoke.request:invocation[0]';
|
||||
receiveVc: 'done.invoke.request.waitingForVc:invocation[0]';
|
||||
requestBluetooth: 'done.invoke.request.checkingBluetoothService.requesting:invocation[0]';
|
||||
sendDisconnect: 'done.invoke.request.cancelling:invocation[0]';
|
||||
sendVcResponse:
|
||||
| 'done.invoke.request.reviewing.accepted:invocation[0]'
|
||||
| 'done.invoke.request.reviewing.rejected:invocation[0]';
|
||||
verifyVp: 'done.invoke.request.reviewing.verifyingVp:invocation[0]';
|
||||
};
|
||||
'missingImplementations': {
|
||||
actions: never;
|
||||
delays: never;
|
||||
guards: never;
|
||||
services: never;
|
||||
};
|
||||
'eventsCausingActions': {
|
||||
clearShouldVerifyPresence:
|
||||
| 'ACCEPT'
|
||||
| 'CANCEL'
|
||||
| 'FACE_INVALID'
|
||||
| 'FACE_VALID'
|
||||
| 'REJECT'
|
||||
| 'SCREEN_BLUR'
|
||||
| 'SCREEN_FOCUS'
|
||||
| 'SWITCH_PROTOCOL'
|
||||
| 'xstate.stop';
|
||||
disconnect:
|
||||
| ''
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'SCREEN_BLUR'
|
||||
| 'SCREEN_FOCUS'
|
||||
| 'SWITCH_PROTOCOL'
|
||||
| 'xstate.after(CANCEL_TIMEOUT)#request.cancelling'
|
||||
| 'xstate.stop';
|
||||
generateConnectionParams:
|
||||
| 'DISMISS'
|
||||
| 'xstate.after(CLEAR_DELAY)#request.clearingConnection';
|
||||
logReceived: 'CANCEL' | 'REJECT' | 'STORE_RESPONSE';
|
||||
mergeIncomingVc: 'STORE_RESPONSE';
|
||||
openSettings: 'GOTO_SETTINGS';
|
||||
prependReceivedVc: 'VC_RESPONSE';
|
||||
registerLoggers:
|
||||
| 'DISMISS'
|
||||
| 'xstate.after(CLEAR_DELAY)#request.clearingConnection';
|
||||
removeLoggers:
|
||||
| 'DISMISS'
|
||||
| 'SCREEN_BLUR'
|
||||
| 'xstate.after(CLEAR_DELAY)#request.clearingConnection'
|
||||
| 'xstate.init';
|
||||
requestExistingVc: 'VC_RESPONSE';
|
||||
requestReceivedVcs:
|
||||
| 'ACCEPT'
|
||||
| 'DISMISS'
|
||||
| 'FACE_VALID'
|
||||
| 'done.invoke.request.reviewing.verifyingVp:invocation[0]';
|
||||
requestReceiverInfo: 'CONNECTED';
|
||||
setIncomingVc: 'VC_RECEIVED';
|
||||
setPairId: 'CONNECTED';
|
||||
setReceiveLogTypeDiscarded: 'CANCEL' | 'REJECT';
|
||||
setReceiveLogTypeRegular: 'ACCEPT';
|
||||
setReceiveLogTypeUnverified: 'FACE_INVALID';
|
||||
setReceiveLogTypeVerified: 'FACE_VALID';
|
||||
setReceiverInfo: 'RECEIVE_DEVICE_INFO';
|
||||
setSenderInfo: 'EXCHANGE_DONE';
|
||||
storeVc: 'STORE_RESPONSE';
|
||||
switchProtocol: 'SWITCH_PROTOCOL';
|
||||
updateReceivedVcs: 'STORE_RESPONSE';
|
||||
};
|
||||
'eventsCausingDelays': {
|
||||
CANCEL_TIMEOUT: 'CANCEL';
|
||||
CLEAR_DELAY: '';
|
||||
CONNECTION_TIMEOUT: 'RECEIVE_DEVICE_INFO';
|
||||
SHARING_TIMEOUT: 'EXCHANGE_DONE';
|
||||
};
|
||||
'eventsCausingGuards': {
|
||||
hasExistingVc: 'VC_RESPONSE';
|
||||
isModeOnline: 'SCREEN_FOCUS' | 'SWITCH_PROTOCOL';
|
||||
};
|
||||
'eventsCausingServices': {
|
||||
advertiseDevice:
|
||||
| 'DISMISS'
|
||||
| 'xstate.after(CLEAR_DELAY)#request.clearingConnection';
|
||||
checkBluetoothService:
|
||||
| 'ONLINE'
|
||||
| 'SCREEN_FOCUS'
|
||||
| 'SWITCH_PROTOCOL'
|
||||
| 'xstate.after(CANCEL_TIMEOUT)#request.cancelling';
|
||||
checkNetwork: 'APP_ACTIVE' | 'SCREEN_FOCUS' | 'SWITCH_PROTOCOL';
|
||||
exchangeDeviceInfo: 'RECEIVE_DEVICE_INFO';
|
||||
monitorConnection: 'xstate.init';
|
||||
receiveVc: 'EXCHANGE_DONE';
|
||||
requestBluetooth: 'BLUETOOTH_DISABLED';
|
||||
sendDisconnect: 'CANCEL';
|
||||
sendVcResponse: 'CANCEL' | 'REJECT' | 'STORE_RESPONSE';
|
||||
verifyVp: never;
|
||||
};
|
||||
'matchesStates':
|
||||
| 'bluetoothDenied'
|
||||
| 'cancelling'
|
||||
| 'checkingBluetoothService'
|
||||
| 'checkingBluetoothService.checking'
|
||||
| 'checkingBluetoothService.enabled'
|
||||
| 'checkingBluetoothService.requesting'
|
||||
| 'checkingNetwork'
|
||||
| 'clearingConnection'
|
||||
| 'disconnected'
|
||||
| 'exchangingDeviceInfo'
|
||||
| 'exchangingDeviceInfo.inProgress'
|
||||
| 'exchangingDeviceInfo.timeout'
|
||||
| 'inactive'
|
||||
| 'offline'
|
||||
| 'preparingToExchangeInfo'
|
||||
| 'reviewing'
|
||||
| 'reviewing.accepted'
|
||||
| 'reviewing.accepting'
|
||||
| 'reviewing.accepting.mergingIncomingVc'
|
||||
| 'reviewing.accepting.prependingReceivedVc'
|
||||
| 'reviewing.accepting.requestingExistingVc'
|
||||
| 'reviewing.accepting.requestingReceivedVcs'
|
||||
| 'reviewing.accepting.storingVc'
|
||||
| 'reviewing.idle'
|
||||
| 'reviewing.invalidIdentity'
|
||||
| 'reviewing.navigatingToHome'
|
||||
| 'reviewing.rejected'
|
||||
| 'reviewing.verifyingIdentity'
|
||||
| 'reviewing.verifyingVp'
|
||||
| 'waitingForConnection'
|
||||
| 'waitingForVc'
|
||||
| 'waitingForVc.inProgress'
|
||||
| 'waitingForVc.timeout'
|
||||
| {
|
||||
checkingBluetoothService?: 'checking' | 'enabled' | 'requesting';
|
||||
exchangingDeviceInfo?: 'inProgress' | 'timeout';
|
||||
reviewing?:
|
||||
| 'accepted'
|
||||
| 'accepting'
|
||||
| 'idle'
|
||||
| 'invalidIdentity'
|
||||
| 'navigatingToHome'
|
||||
| 'rejected'
|
||||
| 'verifyingIdentity'
|
||||
| 'verifyingVp'
|
||||
| {
|
||||
accepting?:
|
||||
| 'mergingIncomingVc'
|
||||
| 'prependingReceivedVc'
|
||||
| 'requestingExistingVc'
|
||||
| 'requestingReceivedVcs'
|
||||
| 'storingVc';
|
||||
};
|
||||
waitingForVc?: 'inProgress' | 'timeout';
|
||||
};
|
||||
'tags': never;
|
||||
}
|
||||
1182
machines/scan.ts
@@ -1,230 +0,0 @@
|
||||
// This file was automatically generated. Edits will be overwritten
|
||||
|
||||
export interface Typegen0 {
|
||||
'@@xstate/typegen': true;
|
||||
'internalEvents': {
|
||||
'done.invoke.QrLogin': {
|
||||
type: 'done.invoke.QrLogin';
|
||||
data: unknown;
|
||||
__tip: 'See the XState TS docs to learn how to strongly type this.';
|
||||
};
|
||||
'done.invoke.scan.reviewing.creatingVp:invocation[0]': {
|
||||
type: 'done.invoke.scan.reviewing.creatingVp:invocation[0]';
|
||||
data: unknown;
|
||||
__tip: 'See the XState TS docs to learn how to strongly type this.';
|
||||
};
|
||||
'error.platform.scan.reviewing.creatingVp:invocation[0]': {
|
||||
type: 'error.platform.scan.reviewing.creatingVp:invocation[0]';
|
||||
data: unknown;
|
||||
};
|
||||
'xstate.after(CANCEL_TIMEOUT)#scan.reviewing.cancelling': {
|
||||
type: 'xstate.after(CANCEL_TIMEOUT)#scan.reviewing.cancelling';
|
||||
};
|
||||
'xstate.after(CLEAR_DELAY)#scan.clearingConnection': {
|
||||
type: 'xstate.after(CLEAR_DELAY)#scan.clearingConnection';
|
||||
};
|
||||
'xstate.after(CONNECTION_TIMEOUT)#scan.connecting.inProgress': {
|
||||
type: 'xstate.after(CONNECTION_TIMEOUT)#scan.connecting.inProgress';
|
||||
};
|
||||
'xstate.after(CONNECTION_TIMEOUT)#scan.exchangingDeviceInfo': {
|
||||
type: 'xstate.after(CONNECTION_TIMEOUT)#scan.exchangingDeviceInfo';
|
||||
};
|
||||
'xstate.after(SHARING_TIMEOUT)#scan.reviewing.sendingVc.inProgress': {
|
||||
type: 'xstate.after(SHARING_TIMEOUT)#scan.reviewing.sendingVc.inProgress';
|
||||
};
|
||||
'xstate.init': { type: 'xstate.init' };
|
||||
'xstate.stop': { type: 'xstate.stop' };
|
||||
};
|
||||
'invokeSrcNameMap': {
|
||||
checkLocationPermission: 'done.invoke.scan.checkingLocationService.checkingPermission:invocation[0]';
|
||||
checkLocationStatus: 'done.invoke.scan.checkingLocationService.checkingStatus:invocation[0]';
|
||||
checkNetwork: 'done.invoke.scan.checkingNetwork:invocation[0]';
|
||||
createVp: 'done.invoke.scan.reviewing.creatingVp:invocation[0]';
|
||||
discoverDevice: 'done.invoke.scan.connecting:invocation[0]';
|
||||
exchangeDeviceInfo: 'done.invoke.scan.exchangingDeviceInfo:invocation[0]';
|
||||
monitorCancellation: 'done.invoke.scan.reviewing.selectingVc:invocation[0]';
|
||||
monitorConnection: 'done.invoke.scan:invocation[0]';
|
||||
sendDisconnect: 'done.invoke.scan.reviewing.cancelling:invocation[0]';
|
||||
sendVc: 'done.invoke.scan.reviewing.sendingVc:invocation[0]';
|
||||
};
|
||||
'missingImplementations': {
|
||||
actions: never;
|
||||
delays: never;
|
||||
guards: never;
|
||||
services: 'QrLogin';
|
||||
};
|
||||
'eventsCausingActions': {
|
||||
clearCreatedVp:
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'SCREEN_BLUR'
|
||||
| 'SCREEN_FOCUS'
|
||||
| 'xstate.after(CANCEL_TIMEOUT)#scan.reviewing.cancelling'
|
||||
| 'xstate.stop';
|
||||
clearReason:
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'SCREEN_BLUR'
|
||||
| 'SCREEN_FOCUS'
|
||||
| 'xstate.after(CANCEL_TIMEOUT)#scan.reviewing.cancelling'
|
||||
| 'xstate.stop';
|
||||
clearScannedQrParams:
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'xstate.after(CANCEL_TIMEOUT)#scan.reviewing.cancelling'
|
||||
| 'xstate.after(CLEAR_DELAY)#scan.clearingConnection';
|
||||
disconnect:
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'LOCATION_ENABLED'
|
||||
| 'SCREEN_BLUR'
|
||||
| 'SCREEN_FOCUS'
|
||||
| 'xstate.after(CANCEL_TIMEOUT)#scan.reviewing.cancelling'
|
||||
| 'xstate.stop';
|
||||
logFailedVerification: 'FACE_INVALID';
|
||||
logShared: 'VC_ACCEPTED';
|
||||
onlineUnsubscribe:
|
||||
| 'ACCEPT_REQUEST'
|
||||
| 'CANCEL'
|
||||
| 'DISCONNECT'
|
||||
| 'SCREEN_BLUR'
|
||||
| 'SCREEN_FOCUS'
|
||||
| 'VERIFY_AND_ACCEPT_REQUEST'
|
||||
| 'xstate.stop';
|
||||
openSettings: 'LOCATION_REQUEST';
|
||||
registerLoggers:
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'xstate.after(CANCEL_TIMEOUT)#scan.reviewing.cancelling'
|
||||
| 'xstate.after(CLEAR_DELAY)#scan.clearingConnection';
|
||||
removeLoggers:
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'SCREEN_BLUR'
|
||||
| 'xstate.after(CANCEL_TIMEOUT)#scan.reviewing.cancelling'
|
||||
| 'xstate.after(CLEAR_DELAY)#scan.clearingConnection'
|
||||
| 'xstate.init';
|
||||
requestSenderInfo: 'ONLINE' | 'SCAN';
|
||||
requestToEnableLocation: 'LOCATION_DISABLED' | 'LOCATION_REQUEST';
|
||||
resetShouldVerifyPresence: 'CANCEL' | 'EXCHANGE_DONE';
|
||||
sendScanData: 'SCAN';
|
||||
setChildRef:
|
||||
| 'DISCONNECT'
|
||||
| 'DISMISS'
|
||||
| 'xstate.after(CANCEL_TIMEOUT)#scan.reviewing.cancelling'
|
||||
| 'xstate.after(CLEAR_DELAY)#scan.clearingConnection';
|
||||
setConnectionParams: 'SCAN';
|
||||
setCreatedVp: 'done.invoke.scan.reviewing.creatingVp:invocation[0]';
|
||||
setLinkCode: 'SCAN';
|
||||
setReason: 'UPDATE_REASON';
|
||||
setReceiverInfo: 'EXCHANGE_DONE';
|
||||
setScannedQrParams: 'SCAN';
|
||||
setSelectedVc: 'SELECT_VC';
|
||||
setSenderInfo: 'RECEIVE_DEVICE_INFO';
|
||||
setShareLogTypeUnverified: 'ACCEPT_REQUEST';
|
||||
setShareLogTypeVerified: 'FACE_VALID';
|
||||
storeLoginItem: 'done.invoke.QrLogin';
|
||||
storingActivityLog: 'STORE_RESPONSE';
|
||||
toggleShouldVerifyPresence: 'TOGGLE_USER_CONSENT';
|
||||
};
|
||||
'eventsCausingDelays': {
|
||||
CANCEL_TIMEOUT: 'CANCEL';
|
||||
CLEAR_DELAY: 'LOCATION_ENABLED';
|
||||
CONNECTION_TIMEOUT:
|
||||
| 'CONNECTED'
|
||||
| 'RECEIVE_DEVICE_INFO'
|
||||
| 'xstate.after(CONNECTION_TIMEOUT)#scan.exchangingDeviceInfo';
|
||||
SHARING_TIMEOUT:
|
||||
| 'ACCEPT_REQUEST'
|
||||
| 'FACE_VALID'
|
||||
| 'done.invoke.scan.reviewing.creatingVp:invocation[0]';
|
||||
};
|
||||
'eventsCausingGuards': {
|
||||
isQrLogin: 'SCAN';
|
||||
isQrOffline: 'SCAN';
|
||||
isQrOnline: 'SCAN';
|
||||
};
|
||||
'eventsCausingServices': {
|
||||
QrLogin: 'SCAN';
|
||||
checkLocationPermission: 'APP_ACTIVE' | 'LOCATION_ENABLED';
|
||||
checkLocationStatus: 'SCREEN_FOCUS';
|
||||
checkNetwork: 'SCAN';
|
||||
createVp: never;
|
||||
discoverDevice: 'RECEIVE_DEVICE_INFO';
|
||||
exchangeDeviceInfo:
|
||||
| 'CONNECTED'
|
||||
| 'xstate.after(CONNECTION_TIMEOUT)#scan.exchangingDeviceInfo';
|
||||
monitorCancellation:
|
||||
| 'CANCEL'
|
||||
| 'DISMISS'
|
||||
| 'EXCHANGE_DONE'
|
||||
| 'error.platform.scan.reviewing.creatingVp:invocation[0]';
|
||||
monitorConnection: 'xstate.init';
|
||||
sendDisconnect: 'CANCEL';
|
||||
sendVc:
|
||||
| 'ACCEPT_REQUEST'
|
||||
| 'FACE_VALID'
|
||||
| 'done.invoke.scan.reviewing.creatingVp:invocation[0]';
|
||||
};
|
||||
'matchesStates':
|
||||
| 'checkingLocationService'
|
||||
| 'checkingLocationService.checkingPermission'
|
||||
| 'checkingLocationService.checkingStatus'
|
||||
| 'checkingLocationService.denied'
|
||||
| 'checkingLocationService.disabled'
|
||||
| 'checkingLocationService.requestingToEnable'
|
||||
| 'checkingNetwork'
|
||||
| 'clearingConnection'
|
||||
| 'connecting'
|
||||
| 'connecting.inProgress'
|
||||
| 'connecting.timeout'
|
||||
| 'disconnected'
|
||||
| 'exchangingDeviceInfo'
|
||||
| 'exchangingDeviceInfo.inProgress'
|
||||
| 'exchangingDeviceInfo.timeout'
|
||||
| 'findingConnection'
|
||||
| 'inactive'
|
||||
| 'invalid'
|
||||
| 'offline'
|
||||
| 'preparingToConnect'
|
||||
| 'reviewing'
|
||||
| 'reviewing.accepted'
|
||||
| 'reviewing.cancelling'
|
||||
| 'reviewing.creatingVp'
|
||||
| 'reviewing.invalidIdentity'
|
||||
| 'reviewing.navigatingToHome'
|
||||
| 'reviewing.rejected'
|
||||
| 'reviewing.selectingVc'
|
||||
| 'reviewing.sendingVc'
|
||||
| 'reviewing.sendingVc.inProgress'
|
||||
| 'reviewing.sendingVc.sent'
|
||||
| 'reviewing.sendingVc.timeout'
|
||||
| 'reviewing.verifyingIdentity'
|
||||
| 'showQrLogin'
|
||||
| 'showQrLogin.idle'
|
||||
| 'showQrLogin.navigatingToHome'
|
||||
| 'showQrLogin.storing'
|
||||
| {
|
||||
checkingLocationService?:
|
||||
| 'checkingPermission'
|
||||
| 'checkingStatus'
|
||||
| 'denied'
|
||||
| 'disabled'
|
||||
| 'requestingToEnable';
|
||||
connecting?: 'inProgress' | 'timeout';
|
||||
exchangingDeviceInfo?: 'inProgress' | 'timeout';
|
||||
reviewing?:
|
||||
| 'accepted'
|
||||
| 'cancelling'
|
||||
| 'creatingVp'
|
||||
| 'invalidIdentity'
|
||||
| 'navigatingToHome'
|
||||
| 'rejected'
|
||||
| 'selectingVc'
|
||||
| 'sendingVc'
|
||||
| 'verifyingIdentity'
|
||||
| { sendingVc?: 'inProgress' | 'sent' | 'timeout' };
|
||||
showQrLogin?: 'idle' | 'navigatingToHome' | 'storing';
|
||||
};
|
||||
'tags': never;
|
||||
}
|
||||
4
package-lock.json
generated
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"name": "mosip-resident-app",
|
||||
"name": "inji",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "mosip-resident-app",
|
||||
"name": "inji",
|
||||
"version": "1.0.0",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
"react-native-keychain": "^8.0.0",
|
||||
"react-native-location-enabler": "^4.1.0",
|
||||
"react-native-mmkv-storage": "0.8.0",
|
||||
"react-native-openid4vp-ble": "github:mosip/tuvali#v0.4.0",
|
||||
"react-native-tuvali": "github:mosip/tuvali#v0.4.0",
|
||||
"react-native-permissions": "^3.6.0",
|
||||
"react-native-popable": "^0.4.3",
|
||||
"react-native-qrcode-svg": "^6.1.1",
|
||||
|
||||
@@ -10,7 +10,6 @@ import { RequestLayout } from '../screens/Request/RequestLayout';
|
||||
import { ScanLayout } from '../screens/Scan/ScanLayout';
|
||||
import i18n from '../i18n';
|
||||
import { Platform } from 'react-native';
|
||||
import { isGoogleNearbyEnabled } from '../lib/smartshare';
|
||||
|
||||
const home: TabScreen = {
|
||||
name: 'Home',
|
||||
@@ -51,7 +50,7 @@ export const mainRoutes: TabScreen[] = [];
|
||||
mainRoutes.push(home);
|
||||
mainRoutes.push(scan);
|
||||
|
||||
if (Platform.OS !== 'ios' || isGoogleNearbyEnabled) {
|
||||
if (Platform.OS !== 'ios') {
|
||||
mainRoutes.push(request);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"myVcsTab": "My\n{{vcLabel}}",
|
||||
"receivedVcsTab": "Received\n{{vcLabel}}",
|
||||
"myVcsTab": "My\nCards",
|
||||
"receivedVcsTab": "Received\nCards",
|
||||
"historyTab": "History"
|
||||
}
|
||||
@@ -24,8 +24,8 @@ export const HomeScreen: React.FC<HomeRouteProps> = (props) => {
|
||||
value={controller.activeTab}
|
||||
onChange={controller.SELECT_TAB}
|
||||
indicatorStyle={Theme.Styles.tabIndicator}>
|
||||
{TabItem(t('myVcsTab', { vcLabel: controller.vcLabel.plural }))}
|
||||
{TabItem(t('receivedVcsTab', { vcLabel: controller.vcLabel.plural }))}
|
||||
{TabItem(t('myVcsTab'))}
|
||||
{TabItem(t('receivedVcsTab'))}
|
||||
{TabItem(t('historyTab'))}
|
||||
</Tab>
|
||||
{controller.haveTabsLoaded && (
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { useInterpret, useSelector } from '@xstate/react';
|
||||
import { useContext, useEffect, useRef } from 'react';
|
||||
import { selectVcLabel } from '../../machines/settings';
|
||||
import { HomeRouteProps } from '../../routes/main';
|
||||
import { GlobalContext } from '../../shared/GlobalContext';
|
||||
import {
|
||||
@@ -23,7 +22,6 @@ export function useHomeScreen(props: HomeRouteProps) {
|
||||
})
|
||||
);
|
||||
const service = useInterpret(machine.current);
|
||||
const settingsService = appService.children.get('settings');
|
||||
const vcService = appService.children.get('vc');
|
||||
|
||||
useEffect(() => {
|
||||
@@ -36,7 +34,6 @@ export function useHomeScreen(props: HomeRouteProps) {
|
||||
service,
|
||||
|
||||
activeTab: useSelector(service, selectActiveTab),
|
||||
vcLabel: useSelector(settingsService, selectVcLabel),
|
||||
selectedVc: useSelector(service, selectSelectedVc),
|
||||
tabRefs: useSelector(service, selectTabRefs),
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"header": "Downloading your {{vcLabel}}",
|
||||
"bodyText": "This may take some time, we will notify you when your {{vcLabel}} has been downloaded and is available",
|
||||
"header": "Downloading your Card",
|
||||
"bodyText": "This may take some time, we will notify you when your Card has been downloaded and is available",
|
||||
"backButton": "Back home"
|
||||
}
|
||||
@@ -2,11 +2,9 @@ import React from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Button, Column, Text } from '../../../components/ui';
|
||||
import { Modal, ModalProps } from '../../../components/ui/Modal';
|
||||
import { useDownloadingVcModal } from './DownloadingVcModalController';
|
||||
|
||||
export const DownloadingVcModal: React.FC<ModalProps> = (props) => {
|
||||
const { t } = useTranslation('DownloadingVcModal');
|
||||
const controller = useDownloadingVcModal();
|
||||
|
||||
return (
|
||||
<Modal
|
||||
@@ -16,11 +14,9 @@ export const DownloadingVcModal: React.FC<ModalProps> = (props) => {
|
||||
<Column fill pY={32} pX={24} align="space-between">
|
||||
<Column fill>
|
||||
<Text weight="semibold" align="center">
|
||||
{t('header', { vcLabel: controller.vcLabel.singular })}
|
||||
</Text>
|
||||
<Text align="center">
|
||||
{t('bodyText', { vcLabel: controller.vcLabel.singular })}
|
||||
{t('header')}
|
||||
</Text>
|
||||
<Text align="center">{t('bodyText')}</Text>
|
||||
</Column>
|
||||
<Column fill align="flex-end">
|
||||
<Button title={t('backButton')} onPress={props.onDismiss} />
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
import { useSelector } from '@xstate/react';
|
||||
import { useContext } from 'react';
|
||||
import { selectVcLabel } from '../../../machines/settings';
|
||||
import { GlobalContext } from '../../../shared/GlobalContext';
|
||||
|
||||
export function useDownloadingVcModal() {
|
||||
const { appService } = useContext(GlobalContext);
|
||||
const settingsService = appService.children.get('settings');
|
||||
|
||||
return {
|
||||
vcLabel: useSelector(settingsService, selectVcLabel),
|
||||
};
|
||||
}
|
||||
@@ -17,9 +17,7 @@ export const GetIdInputModal: React.FC<GetIdInputModalProps> = (props) => {
|
||||
const { t } = useTranslation('GetIdInputModal');
|
||||
const controller = useGetIdInputModal(props);
|
||||
|
||||
const inputLabel = t('applicationId', {
|
||||
vcLabel: controller.vcLabel.singular,
|
||||
});
|
||||
const inputLabel = t('applicationId');
|
||||
|
||||
return (
|
||||
<Modal onDismiss={props.onDismiss} isVisible={props.isVisible}>
|
||||
@@ -27,9 +25,7 @@ export const GetIdInputModal: React.FC<GetIdInputModalProps> = (props) => {
|
||||
style={{ flex: 1 }}
|
||||
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}>
|
||||
<Column fill align="space-between" padding="32 24">
|
||||
<Text align="center">
|
||||
{t('header', { vcLabel: controller.vcLabel.singular })}
|
||||
</Text>
|
||||
<Text align="center">{t('header')}</Text>
|
||||
<Column>
|
||||
<Row crossAlign="flex-end">
|
||||
<Column fill>
|
||||
@@ -51,13 +47,7 @@ export const GetIdInputModal: React.FC<GetIdInputModalProps> = (props) => {
|
||||
keyboardType="number-pad"
|
||||
rightIcon={
|
||||
<Tooltip
|
||||
popover={
|
||||
<Text>
|
||||
{t('qstnMarkToolTip', {
|
||||
vcLabel: controller.vcLabel.singular,
|
||||
})}
|
||||
</Text>
|
||||
}
|
||||
popover={<Text>{t('qstnMarkToolTip')}</Text>}
|
||||
width={Dimensions.get('screen').width * 0.8}
|
||||
height={Dimensions.get('screen').height * 0.2}
|
||||
backgroundColor={'lightgray'}
|
||||
@@ -98,7 +88,7 @@ export const GetIdInputModal: React.FC<GetIdInputModalProps> = (props) => {
|
||||
</Column>
|
||||
</Row>
|
||||
<Button
|
||||
title={t('getUIN', { vcLabel: controller.vcLabel.singular })}
|
||||
title={t('getUIN')}
|
||||
margin="24 0 0 0"
|
||||
onPress={controller.VALIDATE_INPUT}
|
||||
loading={controller.isRequestingOtp}
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
import { useContext } from 'react';
|
||||
import { useSelector } from '@xstate/react';
|
||||
import { selectVcLabel } from '../../../machines/settings';
|
||||
import { GlobalContext } from '../../../shared/GlobalContext';
|
||||
import { ActorRefFrom } from 'xstate';
|
||||
import { TextInput } from 'react-native';
|
||||
import { ModalProps } from '../../../components/ui/Modal';
|
||||
@@ -19,13 +16,9 @@ import {
|
||||
} from './GetVcModalMachine';
|
||||
|
||||
export function useGetIdInputModal({ service }: GetIdInputModalProps) {
|
||||
const { appService } = useContext(GlobalContext);
|
||||
const settingsService = appService.children.get('settings');
|
||||
|
||||
return {
|
||||
id: useSelector(service, selectId),
|
||||
idInputRef: useSelector(service, selectIdInputRef),
|
||||
vcLabel: useSelector(settingsService, selectVcLabel),
|
||||
idError: useSelector(service, selectIdError),
|
||||
otpError: useSelector(service, selectOtpError),
|
||||
iconColor: useSelector(service, selectIconColor),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"header": "Enter your UIN/VID to download your {{vcLabel}}",
|
||||
"generateVc": "Generate My {{vcLabel}}",
|
||||
"header": "Enter your UIN/VID to download your Card",
|
||||
"generateVc": "Generate My Card",
|
||||
"enterId": "Enter your {{idType}}",
|
||||
"noUIN/VID": "Don't have your UIN/VID? Get it here",
|
||||
"requestingOTP": "Requesting OTP..."
|
||||
|
||||
@@ -44,9 +44,7 @@ export const IdInputModal: React.FC<IdInputModalProps> = (props) => {
|
||||
style={{ flex: 1 }}
|
||||
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}>
|
||||
<Column fill align="space-between" pY={32} pX={24}>
|
||||
<Text align="center">
|
||||
{t('header', { vcLabel: controller.vcLabel.singular })}
|
||||
</Text>
|
||||
<Text align="center">{t('header')}</Text>
|
||||
<Column>
|
||||
<Row crossAlign="flex-end">
|
||||
<Column
|
||||
@@ -100,7 +98,7 @@ export const IdInputModal: React.FC<IdInputModalProps> = (props) => {
|
||||
</Column>
|
||||
</Row>
|
||||
<Button
|
||||
title={t('generateVc', { vcLabel: controller.vcLabel.singular })}
|
||||
title={t('generateVc')}
|
||||
margin="24 0 0 0"
|
||||
onPress={controller.VALIDATE_INPUT}
|
||||
loading={controller.isRequestingOtp}
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
import { useContext } from 'react';
|
||||
import { useSelector } from '@xstate/react';
|
||||
import { selectVcLabel } from '../../../machines/settings';
|
||||
import { GlobalContext } from '../../../shared/GlobalContext';
|
||||
import { ActorRefFrom } from 'xstate';
|
||||
import { TextInput } from 'react-native';
|
||||
import { ModalProps } from '../../../components/ui/Modal';
|
||||
@@ -20,14 +17,10 @@ import {
|
||||
import { VcIdType } from '../../../types/vc';
|
||||
|
||||
export function useIdInputModal({ service }: IdInputModalProps) {
|
||||
const { appService } = useContext(GlobalContext);
|
||||
const settingsService = appService.children.get('settings');
|
||||
|
||||
return {
|
||||
id: useSelector(service, selectId),
|
||||
idType: useSelector(service, selectIdType),
|
||||
idInputRef: useSelector(service, selectIdInputRef),
|
||||
vcLabel: useSelector(settingsService, selectVcLabel),
|
||||
idError: useSelector(service, selectIdError),
|
||||
otpError: useSelector(service, selectOtpError),
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"addVcButton": "Add {{vcLabel}}",
|
||||
"generateVc": "Generate your {{vcLabel}}",
|
||||
"generateVcDescription": "Tap on \"Add {{vcLabel}}\" below to download your {{vcLabel}}"
|
||||
"addVcButton": "Add Card",
|
||||
"generateVc": "Generate your Cards",
|
||||
"generateVcDescription": "Tap on \"Add Card\" below to download your Card"
|
||||
}
|
||||
@@ -64,9 +64,7 @@ export const MyVcsTab: React.FC<HomeScreenTabProps> = (props) => {
|
||||
<Button
|
||||
type="clear"
|
||||
disabled={controller.isRefreshingVcs}
|
||||
title={t('addVcButton', {
|
||||
vcLabel: controller.vcLabel.singular,
|
||||
})}
|
||||
title={t('addVcButton')}
|
||||
onPress={controller.ADD_VC}
|
||||
/>
|
||||
</Column>
|
||||
@@ -76,12 +74,10 @@ export const MyVcsTab: React.FC<HomeScreenTabProps> = (props) => {
|
||||
<React.Fragment>
|
||||
<Centered fill>
|
||||
<Text weight="semibold" margin="0 0 8 0">
|
||||
{t('generateVc', { vcLabel: controller.vcLabel.plural })}
|
||||
{t('generateVc')}
|
||||
</Text>
|
||||
<Text color={Theme.Colors.textLabel} align="center">
|
||||
{t('generateVcDescription', {
|
||||
vcLabel: controller.vcLabel.singular,
|
||||
})}
|
||||
{t('generateVcDescription')}
|
||||
</Text>
|
||||
<Icon
|
||||
name="arrow-downward"
|
||||
@@ -93,9 +89,7 @@ export const MyVcsTab: React.FC<HomeScreenTabProps> = (props) => {
|
||||
<Button
|
||||
type="addId"
|
||||
disabled={controller.isRefreshingVcs}
|
||||
title={t('addVcButton', {
|
||||
vcLabel: controller.vcLabel.singular,
|
||||
})}
|
||||
title={t('addVcButton')}
|
||||
onPress={controller.ADD_VC}
|
||||
/>
|
||||
</React.Fragment>
|
||||
@@ -129,7 +123,6 @@ export const MyVcsTab: React.FC<HomeScreenTabProps> = (props) => {
|
||||
isVisible={controller.isSavingFailedInIdle}
|
||||
error={storeErrorTranslationPath}
|
||||
onDismiss={controller.DISMISS}
|
||||
vcLabel={controller.vcLabel}
|
||||
/>
|
||||
</React.Fragment>
|
||||
);
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { useSelector } from '@xstate/react';
|
||||
import { useContext } from 'react';
|
||||
import { ActorRefFrom } from 'xstate';
|
||||
import { selectVcLabel } from '../../machines/settings';
|
||||
import {
|
||||
selectIsRefreshingMyVcs,
|
||||
selectMyVcs,
|
||||
@@ -24,7 +23,6 @@ import {
|
||||
export function useMyVcsTab(props: HomeScreenTabProps) {
|
||||
const service = props.service as ActorRefFrom<typeof MyVcsTabMachine>;
|
||||
const { appService } = useContext(GlobalContext);
|
||||
const settingsService = appService.children.get('settings');
|
||||
const vcService = appService.children.get('vc');
|
||||
|
||||
return {
|
||||
@@ -33,7 +31,6 @@ export function useMyVcsTab(props: HomeScreenTabProps) {
|
||||
GetVcModalService: useSelector(service, selectGetVcModal),
|
||||
|
||||
vcKeys: useSelector(vcService, selectMyVcs),
|
||||
vcLabel: useSelector(settingsService, selectVcLabel),
|
||||
|
||||
isRefreshingVcs: useSelector(vcService, selectIsRefreshingMyVcs),
|
||||
isRequestSuccessful: useSelector(service, selectIsRequestSuccessful),
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"stepOneTitle": "Welcome!",
|
||||
"stepOneText": "Keep your digital credential with you at all times. To get started, add {{vcLabel}} to your profile.",
|
||||
"stepTwoTitle": "{{vcLabel}} management",
|
||||
"stepTwoText": "Once generated, {{vcLabel}} are safely stored on your mobile and can be renamed or shared at any time.",
|
||||
"stepOneText": "Keep your digital credential with you at all times. To get started, add Cards to your profile.",
|
||||
"stepTwoTitle": "Card management",
|
||||
"stepTwoText": "Once generated, Cards are safely stored on your mobile and can be renamed or shared at any time.",
|
||||
"stepThreeTitle": "Easy sharing",
|
||||
"stepThreeText": "Share and receive {{vcLabel}} switfly using your phone camera to scan QR codes.",
|
||||
"stepThreeButton": "Get started and add {{vcLabel}}"
|
||||
"stepThreeText": "Share and receive Cards switfly using your phone camera to scan QR codes.",
|
||||
"stepThreeButton": "Get started and add Card"
|
||||
}
|
||||
@@ -1,43 +1,37 @@
|
||||
import React, { useRef, useContext } from 'react';
|
||||
import React, { useRef } from 'react';
|
||||
import AppIntroSlider from 'react-native-app-intro-slider';
|
||||
import { SafeAreaView, ScrollView, View } from 'react-native';
|
||||
import { Icon, Overlay } from 'react-native-elements';
|
||||
import { Button, Column, Text } from '../../components/ui';
|
||||
import { Theme } from '../../components/ui/styleUtils';
|
||||
import { useSelector } from '@xstate/react';
|
||||
import { GlobalContext } from '../../shared/GlobalContext';
|
||||
import { selectVcLabel } from '../../machines/settings';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
export const OnboardingOverlay: React.FC<OnboardingProps> = (props) => {
|
||||
const slider = useRef<AppIntroSlider>();
|
||||
|
||||
const { t } = useTranslation('OnboardingOverlay');
|
||||
const { appService } = useContext(GlobalContext);
|
||||
const settingsService = appService.children.get('settings');
|
||||
const vcLabel = useSelector(settingsService, selectVcLabel);
|
||||
|
||||
const slides = [
|
||||
{
|
||||
key: 'one',
|
||||
title: t('stepOneTitle'),
|
||||
text: t('stepOneText', { vcLabel: vcLabel.plural }),
|
||||
text: t('stepOneText'),
|
||||
},
|
||||
{
|
||||
key: 'two',
|
||||
title: t('stepTwoTitle', { vcLabel: vcLabel.singular }),
|
||||
text: t('stepTwoText', { vcLabel: vcLabel.plural }),
|
||||
title: t('stepTwoTitle'),
|
||||
text: t('stepTwoText'),
|
||||
},
|
||||
{
|
||||
key: 'three',
|
||||
title: t('stepThreeTitle'),
|
||||
text: t('stepThreeText', { vcLabel: vcLabel.plural }),
|
||||
text: t('stepThreeText'),
|
||||
footer: (
|
||||
<Button
|
||||
margin="24 0 0 0"
|
||||
raised
|
||||
type="outline"
|
||||
title={t('stepThreeButton', { vcLabel: vcLabel.singular })}
|
||||
title={t('stepThreeButton')}
|
||||
onPress={props.onAddVc}
|
||||
/>
|
||||
),
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"noReceivedVcsTitle": "No {{vcLabel}} available yet",
|
||||
"noReceivedVcsText": "Tap on Request below to receive {{vcLabel}}"
|
||||
"noReceivedVcsTitle": "No Cards available yet",
|
||||
"noReceivedVcsText": "Tap on Request below to receive Card"
|
||||
}
|
||||