@pmate/account-sdk 0.5.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/package.json +18 -20
  2. package/src/api/AccountService.ts +97 -0
  3. package/src/api/Api.ts +99 -0
  4. package/src/api/AppService.ts +71 -0
  5. package/src/api/EntityService.ts +41 -0
  6. package/src/api/ProfileService.ts +133 -0
  7. package/src/api/cacheInMem.ts +73 -0
  8. package/src/api/index.ts +5 -0
  9. package/src/atoms/accountAtom.ts +18 -0
  10. package/src/atoms/accountProfileAtom.ts +13 -0
  11. package/src/atoms/atomWithLoadable.ts +48 -0
  12. package/src/atoms/createProfileAtom.ts +27 -0
  13. package/src/atoms/index.ts +16 -0
  14. package/src/atoms/learningLangAtom.ts +8 -0
  15. package/src/atoms/localStorageAtom.ts +39 -0
  16. package/src/atoms/loginAtom.ts +8 -0
  17. package/src/atoms/motherTongueAtom.ts +8 -0
  18. package/src/atoms/profileAtom.ts +24 -0
  19. package/src/atoms/profileDraftAtom.ts +7 -0
  20. package/src/atoms/profilesAtom.ts +20 -0
  21. package/src/atoms/sessionCheckAtom.ts +10 -0
  22. package/src/atoms/switchProfileAtom.ts +9 -0
  23. package/src/atoms/updateProfileAtom.ts +35 -0
  24. package/src/atoms/uploadAvatarAtom.ts +49 -0
  25. package/src/atoms/userLogoutAtom.ts +8 -0
  26. package/src/atoms/userSettingsAtom.ts +58 -0
  27. package/src/components/AuthProviderV2.tsx +315 -0
  28. package/src/components/Button.tsx +39 -0
  29. package/src/components/Drawer.tsx +80 -0
  30. package/src/components/index.ts +1 -0
  31. package/src/constants.ts +1 -0
  32. package/src/hooks/index.ts +5 -0
  33. package/src/hooks/useAppBackgroundStyle.ts +25 -0
  34. package/src/hooks/useAppConfig.ts +44 -0
  35. package/src/hooks/useAuthApp.ts +165 -0
  36. package/src/hooks/useAuthSnapshot.ts +84 -0
  37. package/src/hooks/useIsAuthenticated.ts +19 -0
  38. package/src/hooks/useProfileStepFlow.ts +59 -0
  39. package/src/i18n/index.ts +59 -0
  40. package/src/index.ts +9 -0
  41. package/src/locales/ar-SA.json +183 -0
  42. package/src/locales/de-DE.json +183 -0
  43. package/src/locales/el-GR.json +183 -0
  44. package/src/locales/en.json +183 -0
  45. package/src/locales/es-ES.json +183 -0
  46. package/src/locales/fi-FI.json +183 -0
  47. package/src/locales/fil-PH.json +183 -0
  48. package/src/locales/fr-FR.json +183 -0
  49. package/src/locales/hi-IN.json +183 -0
  50. package/src/locales/ja-JP.json +183 -0
  51. package/src/locales/ko-KR.json +183 -0
  52. package/src/locales/pt-BR.json +183 -0
  53. package/src/locales/pt-PT.json +183 -0
  54. package/src/locales/ru-RU.json +183 -0
  55. package/src/locales/ta-IN.json +183 -0
  56. package/src/locales/uk-UA.json +183 -0
  57. package/src/locales/zh-CN.json +183 -0
  58. package/src/locales/zh-TW.json +183 -0
  59. package/src/types/account.types.ts +28 -0
  60. package/src/types/app.ts +22 -0
  61. package/src/types/profile.ts +6 -0
  62. package/src/utils/AccountManagerV2.ts +349 -0
  63. package/src/utils/Redirect.ts +17 -0
  64. package/src/utils/accountStorage.ts +46 -0
  65. package/src/utils/errors.ts +1 -0
  66. package/src/utils/index.ts +11 -0
  67. package/src/utils/location.ts +34 -0
  68. package/src/utils/profileStep.ts +26 -0
  69. package/src/utils/resolveAppId.ts +13 -0
  70. package/src/utils/selectedProfileStorage.ts +46 -0
  71. package/src/utils/tokenStorage.ts +47 -0
  72. package/dist/index.cjs.js +0 -22
  73. package/dist/index.cjs.js.map +0 -1
  74. package/dist/index.d.ts +0 -302
  75. package/dist/index.es.js +0 -8884
  76. package/dist/index.es.js.map +0 -1
@@ -0,0 +1,183 @@
1
+ {
2
+ "Tree Hole": "Tree Hole (Anonymous Corner)",
3
+ "Chat": "Chat",
4
+ "Contacts": "Contacts",
5
+ "Please choose an image file": "Please select an image file.",
6
+ "Image sent": "Image sent successfully.",
7
+ "Failed to upload image": "Failed to upload image. Please try again.",
8
+ "Remove Contact": "Remove Contact",
9
+ "Exit Group": "Leave Group",
10
+ "Chat Settings": "Chat Settings",
11
+ "Awaiting friend confirmation": "Waiting for friend to confirm",
12
+ "Revision failed": "Revision failed. Please try again.",
13
+ "Please use English": "Please use English.",
14
+ "Speech recognition failed. Please try again.": "Speech recognition failed. Please try again.",
15
+ "analyzing...": "Analyzing...",
16
+ "analyzing grammar structure": "Analyzing grammar structure",
17
+ "understanding pronunciation": "Analyzing pronunciation",
18
+ "optimizing and restructuring": "Optimizing and restructuring",
19
+ "Loading profiles...": "Loading profiles...",
20
+ "Add Friend": "Add Friend",
21
+ "Create Group": "Create Group",
22
+ "Logout": "Log out",
23
+ "Copied username to clipboard": "Username copied to clipboard",
24
+ "Switch Identity": "Switch profile",
25
+ "Function": "Features",
26
+ "My QR Code": "My QR code",
27
+ "Let friends scan to fill your username automatically": "Let friends scan to auto-fill your username",
28
+ "Quote": "Quote",
29
+ "No Chats": "No chats yet",
30
+ "Instructions(Optional)": "Instructions (optional)",
31
+ "joined the room": "joined the room",
32
+ "left the room": "left the room",
33
+ "Unable to load image": "Unable to load image",
34
+ "Loading image...": "Loading image...",
35
+ "Shared image": "Shared image",
36
+ "View": "View",
37
+ "Recall": "Recall",
38
+ "Hide Translation": "Hide translation",
39
+ "Translate": "Translate",
40
+ "Collapse": "Collapse",
41
+ "Before you accept, she won’t know you've seen any messages.": "Before you accept, they won't know you've seen any messages.",
42
+ "Allow {{name}} to send you messages and share your name and profile picture?": "Allow {{name}} to send you messages and view your name and profile picture?",
43
+ "QR scanning is unavailable in this environment": "QR scanning isn't supported in this environment",
44
+ "Camera access is not supported on this device": "This device doesn't support camera access",
45
+ "Unable to access the camera": "Unable to access your camera",
46
+ "No QR code found in the selected image": "No QR code detected in the selected image",
47
+ "Unable to read QR code from the selected image": "Couldn't read the QR code from the selected image",
48
+ "Message": "Messages",
49
+ "Study": "Study",
50
+ "Discover": "Explore",
51
+ "Me": "Profile",
52
+ "coming soon": "Coming soon",
53
+ "This feature is under": "This feature is under",
54
+ "development": "development",
55
+ "Back": "Back",
56
+ "Search contacts or groups": "Search for contacts or groups",
57
+ "Groups": "Groups",
58
+ "No Results": "No results found",
59
+ "Say Hi": "Say hello",
60
+ "Add": "Add",
61
+ "Username captured from QR code": "Username detected from QR code",
62
+ "Find Friend": "Find Friends",
63
+ "Input Username": "Enter username",
64
+ "my account: ": "My account: ",
65
+ "Already Applied": "Request already sent",
66
+ "User is blocked": "This user is blocked",
67
+ "Initializing camera...": "Initializing camera...",
68
+ "Scan QR Code": "Scan QR code",
69
+ "Align the QR code within the frame to capture a username automatically.": "Place the QR code inside the frame to automatically capture the username.",
70
+ "Failed": "Operation failed",
71
+ "Please select at least one member": "Please select at least one member.",
72
+ "Group created": "Group created successfully",
73
+ "Group Name": "Group name",
74
+ "Group Name is required": "Please enter a group name",
75
+ "Create": "Create",
76
+ "Group updated": "Group updated successfully",
77
+ "Update Group": "Update group",
78
+ "Loading...": "Loading...",
79
+ "Update": "Update",
80
+ "ParrotMate": "ParrotMate",
81
+ "Speak Different": "Speak differently",
82
+ "Not logged in": "You're not signed in",
83
+ "User Name": "Username",
84
+ "copy": "Copy",
85
+ "Network is slow, enable offline mode?": "Network is slow. Switch to Offline Mode?",
86
+ "Enable offline mode": "Turn on Offline Mode",
87
+ "PChip Reader": "PChip Reader",
88
+ "male": "Male",
89
+ "female": "Female",
90
+ "popular neutral": "Popular (Neutral)",
91
+ "Offline mode": "Offline Mode",
92
+ "Change nickname": "Change nickname",
93
+ "UI Language": "Interface Language",
94
+ "Word": "Word",
95
+ "Date": "Date",
96
+ "My bookshelf": "My Bookshelf",
97
+ "Title too short": "Title is too short",
98
+ "Modification successful": "Changes saved successfully",
99
+ "No books in your shelf yet": "No books on your shelf yet",
100
+ "Tap the search icon above to browse books and add them to your shelf!": "Tap the search icon above to browse and add books to your shelf!",
101
+ "Read with experts to help you understand,": "Read with experts to help you understand.",
102
+ "Comprehensive training in English listening and reading.": "Comprehensive English listening and reading training.",
103
+ "Hi, {{nickName}}! Welcome!": "Hi, {{nickName}}! Welcome!",
104
+ "Browse library": "Browse the library",
105
+ "Add your own TXT/PDF": "Add your own TXT or PDF file",
106
+ "Already have an account?": "Already have an account?",
107
+ "Click here to login": "Click here to log in",
108
+ "We detected this is your first time using PChip Reader. Add some books!": "It looks like this is your first time using PChip Reader. Add some books to get started!",
109
+ "Upload Book": "Upload a Book",
110
+ "Click here to upload local EPUB/MOBI/PDF/TXT": "Click here to upload a local EPUB, MOBI, PDF, or TXT file",
111
+ "Only EPUB/MOBI/PDF/TXT is supported": "Only EPUB, MOBI, PDF, and TXT formats are supported.",
112
+ "Upload successful": "Upload completed successfully",
113
+ "Book upload failed": "Book upload failed. Please try again.",
114
+ "We only store your files locally!": "We only store your files locally.",
115
+ "New words": "New vocabulary",
116
+ "Total reading": "Total reading time",
117
+ "Today's reading": "Today's reading time",
118
+ "Login Success": "Login successful",
119
+ "please enter your phone number": "please enter your phone number",
120
+ "Please enter your phone number": "Please enter your phone number",
121
+ "Login": "Sign in",
122
+ "Terms&Conditions": "Terms & Conditions",
123
+ "and": "and",
124
+ "Privacy Policy": "Privacy Policy",
125
+ "Unregistered phone numbers will automatically create an account": "If your phone number isn't registered, an account will be created automatically.",
126
+ "Please enter the verification code": "Please enter the verification code.",
127
+ "Send verification code": "Send verification code",
128
+ "seconds": "seconds",
129
+ "Send Code": "Send Code",
130
+ "Please enter the correct phone number": "Please enter a valid phone number.",
131
+ "Verification code sent": "Verification code sent",
132
+ "Add Profile": "Add a profile",
133
+ "Practitioner": "Learner",
134
+ "I want to practice languages and chat with others": "I want to practice languages and chat with others.",
135
+ "Mate": "Mate",
136
+ "I can guide language learning and provide companionship": "I can guide language learning and offer companionship.",
137
+ "Translation": "Translation",
138
+ "Interpretation": "Interpretation",
139
+ "Key Vocabulary & Terms": "Key Vocabulary & Terms",
140
+ "Grammar": "Grammar",
141
+ "Unknown error": "An unknown error occurred. Please try again.",
142
+ "Language": "Language",
143
+ "Skip": "Skip for now",
144
+ "Continue": "Continue",
145
+ "Are you 18 or older?": "Are you 18 or older?",
146
+ "Yes": "Yes",
147
+ "No": "No",
148
+ "Please select language what you want to learn": "Please choose the language you'd like to learn",
149
+ "Please enter your age": "Please enter your age",
150
+ "Age": "Age",
151
+ "Please select your gender": "Please select your gender",
152
+ "Female": "Female",
153
+ "Male": "Male",
154
+ "Your {{langShort}} name": "Your name in {{langShort}}",
155
+ "Create your own name or choose from the recommendations": "Create your own name or choose from our suggestions",
156
+ "Enter your nickname here...": "Enter your nickname...",
157
+ "Learning Language": "Language you're learning",
158
+ "Finish": "Finish",
159
+ "Nickname is required": "Please enter a nickname",
160
+ "Nickname must be at least 3 characters": "Nickname must be at least 3 characters long",
161
+ "Confirm": "Confirm",
162
+ "Account Phone": "Phone number",
163
+ "Gender": "Gender",
164
+ "Education": "Education level",
165
+ "Job": "Occupation",
166
+ "Hobby": "Hobbies",
167
+ "Select your role": "Choose your role",
168
+ "Please choose your identity": "Please select your profile type",
169
+ "English": "English",
170
+ "Chinese": "Chinese",
171
+ "Spanish": "Spanish",
172
+ "Korean": "Korean",
173
+ "French": "French",
174
+ "Japanese": "Japanese",
175
+ "German": "German",
176
+ "Arabic": "Arabic",
177
+ "DM_ACL_REJECT": "Please wait for the other user's response before continuing this direct message.",
178
+ "GROUP_ACL_REJECT": "You haven't joined this group yet. Please wait for the group owner's approval.",
179
+ "Profile Step: Nickname": "Nickname",
180
+ "Profile Step: Learning Language": "Language you're learning",
181
+ "Profile Step: Mother Tongue": "Native language",
182
+ "By signing up, you agree with ": "By signing up, you agree to "
183
+ }
@@ -0,0 +1,183 @@
1
+ {
2
+ "seconds": "segundos",
3
+ "Send Code": "Enviar código",
4
+ "Add Profile": "Añadir perfil",
5
+ "Practitioner": "Tutor",
6
+ "I want to practice languages and chat with others": "Quiero practicar idiomas y conversar con otras personas",
7
+ "Mate": "Compañero",
8
+ "I can guide language learning and provide companionship": "Puedo guiar el aprendizaje de idiomas y ofrecer compañía",
9
+ "Unknown error": "Error desconocido",
10
+ "English": "Inglés",
11
+ "Chinese": "Chino",
12
+ "Spanish": "Español",
13
+ "Korean": "Coreano",
14
+ "French": "Francés",
15
+ "Japanese": "Japonés",
16
+ "German": "Alemán",
17
+ "Arabic": "Árabe",
18
+ "Translation": "Traducción",
19
+ "Interpretation": "Interpretación",
20
+ "Key Vocabulary & Terms": "Vocabulario y términos clave",
21
+ "Grammar": "Gramática",
22
+ "DM_ACL_REJECT": "Debes esperar la respuesta de la otra persona para continuar con el mensaje directo.",
23
+ "GROUP_ACL_REJECT": "Aún no estás en este grupo. Espera a que el propietario apruebe tu solicitud.",
24
+ "Tree Hole": "Rincón confidencial",
25
+ "Chat": "Chat",
26
+ "Contacts": "Contactos",
27
+ "Remove Contact": "Eliminar contacto",
28
+ "Exit Group": "Salir del grupo",
29
+ "Chat Settings": "Ajustes del chat",
30
+ "Awaiting friend confirmation": "Esperando confirmación de amistad",
31
+ "Revision failed": "Revisión fallida",
32
+ "Please use English": "Por favor, usa inglés",
33
+ "Speech recognition failed. Please try again.": "El reconocimiento de voz falló. Inténtalo de nuevo.",
34
+ "analyzing...": "Analizando...",
35
+ "Loading profiles...": "Cargando perfiles...",
36
+ "Add Friend": "Añadir amigo",
37
+ "Create Group": "Crear grupo",
38
+ "Logout": "Cerrar sesión",
39
+ "Copied username to clipboard": "Nombre de usuario copiado al portapapeles",
40
+ "Switch Identity": "Cambiar identidad",
41
+ "Function": "Función",
42
+ "Quote": "Citar",
43
+ "Instructions(Optional)": "Instrucciones (opcional)",
44
+ "joined the room": "se unió a la sala",
45
+ "left the room": "salió de la sala",
46
+ "View": "Ver",
47
+ "Recall": "Retirar",
48
+ "Hide Translation": "Ocultar traducción",
49
+ "Translate": "Traducir",
50
+ "Collapse": "Contraer",
51
+ "Before you accept, she won’t know you've seen any messages.": "Antes de que aceptes, ella no sabrá que has visto ningún mensaje.",
52
+ "Allow {{name}} to send you messages and share your name and profile picture?": "¿Permitir que {{name}} te envíe mensajes y vea tu nombre y foto de perfil?",
53
+ "Message": "Mensajes",
54
+ "Study": "Estudiar",
55
+ "Discover": "Descubrir",
56
+ "Me": "Perfil",
57
+ "coming soon": "Próximamente",
58
+ "This feature is under": "Esta función está en",
59
+ "development": "desarrollo",
60
+ "Back": "Volver",
61
+ "Search contacts or groups": "Buscar contactos o grupos",
62
+ "Groups": "Grupos",
63
+ "No Results": "No hay resultados",
64
+ "Say Hi": "Di hola",
65
+ "Add": "Añadir",
66
+ "Find Friend": "Buscar amigo",
67
+ "Input Username": "Introduce el nombre de usuario",
68
+ "my account: ": "mi cuenta: ",
69
+ "Already Applied": "Solicitud ya enviada",
70
+ "User is blocked": "Usuario bloqueado",
71
+ "Failed": "Error",
72
+ "Please select at least one member": "Por favor, selecciona al menos un miembro",
73
+ "Group created": "Grupo creado",
74
+ "Group Name": "Nombre del grupo",
75
+ "Group Name is required": "El nombre del grupo es obligatorio",
76
+ "Loading...": "Cargando...",
77
+ "Create": "Crear",
78
+ "Group updated": "Grupo actualizado",
79
+ "Update Group": "Actualizar grupo",
80
+ "Update": "Actualizar",
81
+ "No Chats": "No hay chats",
82
+ "ParrotMate": "ParrotMate",
83
+ "Speak Different": "Habla distinto",
84
+ "Not logged in": "No has iniciado sesión",
85
+ "User Name": "Nombre de usuario",
86
+ "copy": "Copiar",
87
+ "Network is slow, enable offline mode?": "La conexión es lenta, ¿activar el modo sin conexión?",
88
+ "Enable offline mode": "Activar el modo sin conexión",
89
+ "PChip Reader": "PChip Reader",
90
+ "male": "Masculino",
91
+ "female": "Femenino",
92
+ "popular neutral": "Popular (neutro)",
93
+ "Offline mode": "Modo sin conexión",
94
+ "Change nickname": "Cambiar apodo",
95
+ "UI Language": "Idioma de la interfaz",
96
+ "Word": "Palabra",
97
+ "Date": "Fecha",
98
+ "My bookshelf": "Mi estantería",
99
+ "Title too short": "Título demasiado corto",
100
+ "Modification successful": "Modificación realizada con éxito",
101
+ "No books in your shelf yet": "Aún no hay libros en tu estantería",
102
+ "Tap the search icon above to browse books and add them to your shelf!": "Pulsa el icono de búsqueda de arriba para explorar libros y añadirlos a tu estantería.",
103
+ "Read with experts to help you understand,": "Lee junto a expertos que te ayuden a comprender,",
104
+ "Comprehensive training in English listening and reading.": "Entrenamiento integral en comprensión auditiva y lectora en inglés.",
105
+ "Hi, {{nickName}}! Welcome!": "¡Hola, {{nickName}}! ¡Bienvenido!",
106
+ "Browse library": "Explorar la biblioteca",
107
+ "Add your own TXT/PDF": "Añade tus propios archivos TXT/PDF",
108
+ "Already have an account?": "¿Ya tienes una cuenta?",
109
+ "Click here to login": "Haz clic aquí para iniciar sesión",
110
+ "We detected this is your first time using PChip Reader. Add some books!": "Hemos detectado que es la primera vez que usas PChip Reader. ¡Añade algunos libros!",
111
+ "Upload Book": "Subir libro",
112
+ "Click here to upload local EPUB/MOBI/PDF/TXT": "Haz clic aquí para subir archivos locales EPUB/MOBI/PDF/TXT",
113
+ "Only EPUB/MOBI/PDF/TXT is supported": "Solo se admiten EPUB, MOBI, PDF y TXT",
114
+ "Upload successful": "Subida realizada con éxito",
115
+ "Book upload failed": "Error al subir el libro",
116
+ "We only store your files locally!": "¡Solo almacenamos tus archivos localmente!",
117
+ "New words": "Nuevas palabras",
118
+ "Total reading": "Lectura total",
119
+ "Today's reading": "Lectura de hoy",
120
+ "Please choose an image file": "Por favor, selecciona un archivo de imagen",
121
+ "Image sent": "Imagen enviada",
122
+ "Failed to upload image": "No se pudo subir la imagen",
123
+ "analyzing grammar structure": "analizando la estructura gramatical",
124
+ "understanding pronunciation": "analizando la pronunciación",
125
+ "optimizing and restructuring": "optimizando y reestructurando",
126
+ "My QR Code": "Mi código QR",
127
+ "Let friends scan to fill your username automatically": "Permite que tus amigos escaneen para rellenar tu nombre de usuario automáticamente",
128
+ "Unable to load image": "No se puede cargar la imagen",
129
+ "Loading image...": "Cargando imagen...",
130
+ "Shared image": "Imagen compartida",
131
+ "QR scanning is unavailable in this environment": "El escaneo de códigos QR no está disponible en este entorno",
132
+ "Camera access is not supported on this device": "El acceso a la cámara no es compatible con este dispositivo",
133
+ "Unable to access the camera": "No se puede acceder a la cámara",
134
+ "No QR code found in the selected image": "No se encontró ningún código QR en la imagen seleccionada",
135
+ "Unable to read QR code from the selected image": "No se pudo leer el código QR de la imagen seleccionada",
136
+ "Username captured from QR code": "Nombre de usuario obtenido del código QR",
137
+ "Initializing camera...": "Iniciando la cámara...",
138
+ "Scan QR Code": "Escanear código QR",
139
+ "Align the QR code within the frame to capture a username automatically.": "Alinea el código QR dentro del marco para capturar el nombre de usuario automáticamente.",
140
+ "Login Success": "Sesión iniciada",
141
+ "please enter your phone number": "por favor, introduce tu número de teléfono",
142
+ "Please enter your phone number": "Por favor, introduce tu número de teléfono",
143
+ "Login": "Iniciar sesión",
144
+ "Terms&Conditions": "Términos y condiciones",
145
+ "and": "y",
146
+ "Privacy Policy": "Política de privacidad",
147
+ "Unregistered phone numbers will automatically create an account": "Los números de teléfono no registrados crearán automáticamente una cuenta",
148
+ "Please enter the verification code": "Por favor, introduce el código de verificación",
149
+ "Send verification code": "Enviar código de verificación",
150
+ "Please enter the correct phone number": "Por favor, introduce un número de teléfono válido",
151
+ "Verification code sent": "Código de verificación enviado",
152
+ "Language": "Idioma",
153
+ "Skip": "Omitir",
154
+ "Continue": "Continuar",
155
+ "Are you 18 or older?": "¿Tienes 18 años o más?",
156
+ "Yes": "Sí",
157
+ "No": "No",
158
+ "Please select language what you want to learn": "Por favor, selecciona el idioma que quieres aprender",
159
+ "Please enter your age": "Por favor, indica tu edad",
160
+ "Age": "Edad",
161
+ "Please select your gender": "Selecciona tu género",
162
+ "Female": "Mujer",
163
+ "Male": "Hombre",
164
+ "Your {{langShort}} name": "Tu nombre en {{langShort}}",
165
+ "Create your own name or choose from the recommendations": "Crea tu propio nombre o elige una de las recomendaciones",
166
+ "Enter your nickname here...": "Introduce tu apodo aquí...",
167
+ "Learning Language": "Idioma que aprendes",
168
+ "Finish": "Finalizar",
169
+ "Nickname is required": "El apodo es obligatorio",
170
+ "Nickname must be at least 3 characters": "El apodo debe tener al menos 3 caracteres",
171
+ "Confirm": "Confirmar",
172
+ "Account Phone": "Teléfono de la cuenta",
173
+ "Gender": "Género",
174
+ "Education": "Formación",
175
+ "Job": "Ocupación",
176
+ "Hobby": "Afición",
177
+ "Select your role": "Selecciona tu rol",
178
+ "Please choose your identity": "Por favor, selecciona tu identidad",
179
+ "Profile Step: Nickname": "Apodo",
180
+ "Profile Step: Learning Language": "Idioma que aprendes",
181
+ "Profile Step: Mother Tongue": "Lengua materna",
182
+ "By signing up, you agree with ": "Al registrarte, aceptas "
183
+ }
@@ -0,0 +1,183 @@
1
+ {
2
+ "seconds": "sekuntia",
3
+ "Send Code": "Lähetä koodi",
4
+ "Add Profile": "Lisää profiili",
5
+ "Practitioner": "Ohjaaja",
6
+ "I want to practice languages and chat with others": "Haluan harjoitella kieliä ja keskustella muiden kanssa",
7
+ "Mate": "Kielikumppani",
8
+ "I can guide language learning and provide companionship": "Voin opastaa kielten oppimisessa ja tarjota seuraa",
9
+ "Unknown error": "Tuntematon virhe",
10
+ "English": "Englanti",
11
+ "Chinese": "Kiina",
12
+ "Spanish": "Espanja",
13
+ "Korean": "Korea",
14
+ "French": "Ranska",
15
+ "Japanese": "Japani",
16
+ "German": "Saksa",
17
+ "Arabic": "Arabia",
18
+ "Translation": "Käännös",
19
+ "Interpretation": "Tulkinta",
20
+ "Key Vocabulary & Terms": "Keskeiset sanat ja termit",
21
+ "Grammar": "Kielioppi",
22
+ "DM_ACL_REJECT": "Sinun täytyy odottaa toisen vastausta, jotta voit jatkaa yksityisviestikeskustelua.",
23
+ "GROUP_ACL_REJECT": "Et ole vielä tässä ryhmässä. Odota, että ryhmän omistaja hyväksyy liittymispyyntösi.",
24
+ "Tree Hole": "Puun kolo",
25
+ "Chat": "Keskustelu",
26
+ "Contacts": "Yhteystiedot",
27
+ "Remove Contact": "Poista yhteystieto",
28
+ "Exit Group": "Poistu ryhmästä",
29
+ "Chat Settings": "Keskustelun asetukset",
30
+ "Awaiting friend confirmation": "Odotetaan ystävän vahvistusta",
31
+ "Revision failed": "Tarkistus epäonnistui",
32
+ "Please use English": "Käytäthän englantia",
33
+ "Speech recognition failed. Please try again.": "Puheentunnistus epäonnistui. Yritä uudelleen.",
34
+ "analyzing...": "analysoidaan...",
35
+ "Loading profiles...": "Ladataan profiileja...",
36
+ "Add Friend": "Lisää ystäväksi",
37
+ "Create Group": "Luo ryhmä",
38
+ "Logout": "Kirjaudu ulos",
39
+ "Copied username to clipboard": "Käyttäjänimi kopioitu leikepöydälle",
40
+ "Switch Identity": "Vaihda profiilia",
41
+ "Function": "Toiminto",
42
+ "Quote": "Lainaa",
43
+ "Instructions(Optional)": "Ohjeet (valinnainen)",
44
+ "joined the room": "liittyi huoneeseen",
45
+ "left the room": "lähti huoneesta",
46
+ "View": "Näytä",
47
+ "Recall": "Peruuta lähetys",
48
+ "Hide Translation": "Piilota käännös",
49
+ "Translate": "Käännä",
50
+ "Collapse": "Sulje",
51
+ "Before you accept, she won’t know you've seen any messages.": "Ennen kuin hyväksyt, hän ei tiedä, että olet nähnyt viestejä.",
52
+ "Allow {{name}} to send you messages and share your name and profile picture?": "Sallitaanko, että {{name}} lähettää sinulle viestejä ja näkee nimesi ja profiilikuvasi?",
53
+ "Message": "Viestit",
54
+ "Study": "Opiskelu",
55
+ "Discover": "Tutustu",
56
+ "Me": "Profiili",
57
+ "coming soon": "tulossa pian",
58
+ "This feature is under": "Tämä ominaisuus on",
59
+ "development": "kehitteillä",
60
+ "Back": "Takaisin",
61
+ "Search contacts or groups": "Etsi yhteystietoja tai ryhmiä",
62
+ "Groups": "Ryhmät",
63
+ "No Results": "Ei tuloksia",
64
+ "Say Hi": "Sano hei",
65
+ "Add": "Lisää",
66
+ "Find Friend": "Etsi ystävä",
67
+ "Input Username": "Kirjoita käyttäjänimi",
68
+ "my account: ": "Tilini: ",
69
+ "Already Applied": "Hakemus lähetetty",
70
+ "User is blocked": "Käyttäjä on estetty",
71
+ "Failed": "Epäonnistui",
72
+ "Please select at least one member": "Valitse vähintään yksi jäsen",
73
+ "Group created": "Ryhmä luotu",
74
+ "Group Name": "Ryhmän nimi",
75
+ "Group Name is required": "Anna ryhmän nimi",
76
+ "Loading...": "Ladataan...",
77
+ "Create": "Luo",
78
+ "Group updated": "Ryhmä päivitetty",
79
+ "Update Group": "Päivitä ryhmä",
80
+ "Update": "Päivitä",
81
+ "No Chats": "Ei keskusteluja",
82
+ "ParrotMate": "ParrotMate",
83
+ "Speak Different": "Puhu eri tavalla",
84
+ "Not logged in": "Et ole kirjautunut sisään",
85
+ "User Name": "Käyttäjänimi",
86
+ "copy": "kopioi",
87
+ "Network is slow, enable offline mode?": "Verkkoyhteys on hidas. Ota offline-tila käyttöön?",
88
+ "Enable offline mode": "Ota offline-tila käyttöön",
89
+ "PChip Reader": "PChip Reader",
90
+ "male": "mies",
91
+ "female": "nainen",
92
+ "popular neutral": "Suosittu (neutraali)",
93
+ "Offline mode": "Offline-tila",
94
+ "Change nickname": "Vaihda nimimerkkiä",
95
+ "UI Language": "Käyttöliittymän kieli",
96
+ "Word": "Sana",
97
+ "Date": "Päivämäärä",
98
+ "My bookshelf": "Kirjahyllyni",
99
+ "Title too short": "Otsikko on liian lyhyt",
100
+ "Modification successful": "Muokkaus onnistui",
101
+ "No books in your shelf yet": "Hyllyssäsi ei ole vielä kirjoja",
102
+ "Tap the search icon above to browse books and add them to your shelf!": "Napauta yläreunan hakukuvaketta, niin voit selata kirjoja ja lisätä niitä hyllyysi!",
103
+ "Read with experts to help you understand,": "Lue asiantuntijoiden kanssa, jotka auttavat sinua ymmärtämään,",
104
+ "Comprehensive training in English listening and reading.": "Kattava englannin kuuntelu- ja lukuharjoittelu.",
105
+ "Hi, {{nickName}}! Welcome!": "Hei, {{nickName}}! Tervetuloa!",
106
+ "Browse library": "Selaa kirjastoa",
107
+ "Add your own TXT/PDF": "Lisää omat TXT-/PDF-tiedostot",
108
+ "Already have an account?": "Onko sinulla jo tili?",
109
+ "Click here to login": "Kirjaudu sisään tästä",
110
+ "We detected this is your first time using PChip Reader. Add some books!": "Huomasimme, että käytät PChip Readeriä ensimmäistä kertaa. Lisää muutama kirja!",
111
+ "Upload Book": "Lataa kirja",
112
+ "Click here to upload local EPUB/MOBI/PDF/TXT": "Klikkaa tästä ladataksesi paikallisen EPUB/MOBI/PDF/TXT-tiedoston",
113
+ "Only EPUB/MOBI/PDF/TXT is supported": "Tuetut tiedostomuodot: EPUB, MOBI, PDF, TXT",
114
+ "Upload successful": "Lataus onnistui",
115
+ "Book upload failed": "Kirjan lataus epäonnistui",
116
+ "We only store your files locally!": "Tallennamme tiedostosi vain paikallisesti!",
117
+ "New words": "Uudet sanat",
118
+ "Total reading": "Yhteensä luettu",
119
+ "Today's reading": "Tänään luettu",
120
+ "Please choose an image file": "Valitse kuvatiedosto",
121
+ "Image sent": "Kuva lähetetty",
122
+ "Failed to upload image": "Kuvan lähettäminen epäonnistui",
123
+ "analyzing grammar structure": "Kieliopin rakenteen analysointi",
124
+ "understanding pronunciation": "Ääntämisen ymmärtäminen",
125
+ "optimizing and restructuring": "Sisällön optimointi ja uudelleenjärjestely",
126
+ "My QR Code": "Oma QR-koodini",
127
+ "Let friends scan to fill your username automatically": "Anna ystävien skannata, niin käyttäjänimesi täytetään automaattisesti",
128
+ "Unable to load image": "Kuvaa ei voi ladata",
129
+ "Loading image...": "Ladataan kuvaa...",
130
+ "Shared image": "Jaettu kuva",
131
+ "QR scanning is unavailable in this environment": "QR-koodin skannaus ei ole käytettävissä tässä ympäristössä",
132
+ "Camera access is not supported on this device": "Kameran käyttö ei ole tuettu tässä laitteessa",
133
+ "Unable to access the camera": "Kameraan ei saada yhteyttä",
134
+ "No QR code found in the selected image": "Valitusta kuvasta ei löytynyt QR-koodia",
135
+ "Unable to read QR code from the selected image": "QR-koodia ei voitu lukea valitusta kuvasta",
136
+ "Username captured from QR code": "Käyttäjänimi luettu QR-koodista",
137
+ "Initializing camera...": "Alustetaan kameraa...",
138
+ "Scan QR Code": "Skannaa QR-koodi",
139
+ "Align the QR code within the frame to capture a username automatically.": "Kohdista QR-koodi kehyksen sisälle, niin käyttäjänimi luetaan automaattisesti.",
140
+ "Login Success": "Kirjautuminen onnistui",
141
+ "please enter your phone number": "anna puhelinnumerosi",
142
+ "Please enter your phone number": "Anna puhelinnumerosi",
143
+ "Login": "Kirjaudu sisään",
144
+ "Terms&Conditions": "Käyttöehdot",
145
+ "and": "ja",
146
+ "Privacy Policy": "Tietosuojakäytäntö",
147
+ "Unregistered phone numbers will automatically create an account": "Jos puhelinnumeroa ei ole rekisteröity, tilille luodaan automaattisesti.",
148
+ "Please enter the verification code": "Syötä vahvistuskoodi",
149
+ "Send verification code": "Lähetä vahvistuskoodi",
150
+ "Please enter the correct phone number": "Syötä oikea puhelinnumero",
151
+ "Verification code sent": "Vahvistuskoodi lähetetty",
152
+ "Language": "Kieli",
153
+ "Skip": "Ohita",
154
+ "Continue": "Jatka",
155
+ "Are you 18 or older?": "Oletko vähintään 18-vuotias?",
156
+ "Yes": "Kyllä",
157
+ "No": "Ei",
158
+ "Please select language what you want to learn": "Valitse kieli, jota haluat oppia",
159
+ "Please enter your age": "Anna ikäsi",
160
+ "Age": "Ikä",
161
+ "Please select your gender": "Valitse sukupuolesi",
162
+ "Female": "Nainen",
163
+ "Male": "Mies",
164
+ "Your {{langShort}} name": "Nimesi {{langShort}}-kielellä",
165
+ "Create your own name or choose from the recommendations": "Luo oma nimesi tai valitse suosituksista",
166
+ "Enter your nickname here...": "Syötä nimimerkkisi tähän...",
167
+ "Learning Language": "Opiskeltava kieli",
168
+ "Finish": "Valmis",
169
+ "Nickname is required": "Nimimerkki on pakollinen",
170
+ "Nickname must be at least 3 characters": "Nimimerkin tulee olla vähintään 3 merkkiä",
171
+ "Confirm": "Vahvista",
172
+ "Account Phone": "Tilin puhelinnumero",
173
+ "Gender": "Sukupuoli",
174
+ "Education": "Koulutus",
175
+ "Job": "Ammatti",
176
+ "Hobby": "Harrastus",
177
+ "Select your role": "Valitse roolisi",
178
+ "Please choose your identity": "Valitse identiteettisi",
179
+ "Profile Step: Nickname": "Lempinimi",
180
+ "Profile Step: Learning Language": "Oppimiskieli",
181
+ "Profile Step: Mother Tongue": "Äidinkieli",
182
+ "By signing up, you agree with ": "Rekisteröitymällä hyväksyt "
183
+ }