shutro-erp 0.3.2 → 0.3.4
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.
- package/dist/account_portal/.kosh/bindings.js +1 -1
- package/dist/account_portal/.kosh/schema.d.ts +156 -1
- package/dist/accounting/.kosh/bindings.js +1 -1
- package/dist/accounting/.kosh/schema.d.ts +156 -1
- package/dist/assistant/index.js +1 -1
- package/dist/contacts/.kosh/bindings.js +1 -1
- package/dist/contacts/.kosh/schema.d.ts +156 -1
- package/dist/integrations/index.js +12 -0
- package/dist/integrations/web/OAuthAppsPage.d.ts +9 -0
- package/dist/integrations/web/OAuthAppsPage.js +79 -0
- package/dist/integrations/web/index.d.ts +1 -0
- package/dist/integrations/web/index.js +3 -0
- package/dist/integrations/web/messages.js +58 -0
- package/dist/l10n_bd/.kosh/bindings.js +1 -1
- package/dist/l10n_bd/.kosh/schema.d.ts +156 -1
- package/dist/l10n_in/.kosh/bindings.js +1 -1
- package/dist/l10n_in/.kosh/schema.d.ts +156 -4
- package/dist/l10n_in/module.d.ts +0 -62
- package/dist/l10n_in/module.js +2 -4
- package/dist/messaging/web/index.js +1 -1
- package/dist/notify/web/index.js +1 -1
- package/dist/payment/.kosh/bindings.js +1 -1
- package/dist/payment/.kosh/schema.d.ts +157 -2
- package/dist/payment/bkash.d.ts +28 -0
- package/dist/payment/bkash.js +169 -0
- package/dist/payment/index.d.ts +4 -0
- package/dist/payment/index.js +80 -24
- package/dist/payment/module.d.ts +7 -4
- package/dist/payment/module.js +3 -0
- package/dist/payment/money.d.ts +7 -0
- package/dist/payment/money.js +37 -0
- package/dist/payment/providers.d.ts +13 -2
- package/dist/payment/razorpay.d.ts +12 -0
- package/dist/payment/razorpay.js +149 -0
- package/dist/payment/sslcommerz.js +1 -1
- package/dist/payment/stripe.d.ts +15 -0
- package/dist/payment/stripe.js +182 -0
- package/dist/permissions/admin.d.ts +3 -0
- package/dist/permissions/admin.js +108 -10
- package/dist/permissions/index.d.ts +1 -0
- package/dist/permissions/index.js +3 -0
- package/dist/permissions/roles.d.ts +2 -0
- package/dist/permissions/roles.js +236 -0
- package/dist/portal/.kosh/bindings.js +1 -1
- package/dist/portal/.kosh/schema.d.ts +156 -1
- package/dist/product/.kosh/bindings.js +1 -1
- package/dist/product/.kosh/schema.d.ts +156 -1
- package/dist/project/.kosh/bindings.js +1 -1
- package/dist/project/.kosh/schema.d.ts +156 -1
- package/dist/project_portal/.kosh/bindings.js +1 -1
- package/dist/project_portal/.kosh/schema.d.ts +156 -1
- package/dist/purchase/.kosh/bindings.js +1 -1
- package/dist/purchase/.kosh/schema.d.ts +156 -1
- package/dist/purchase_account/.kosh/bindings.js +1 -1
- package/dist/purchase_account/.kosh/schema.d.ts +156 -1
- package/dist/purchase_portal/.kosh/bindings.js +1 -1
- package/dist/purchase_portal/.kosh/schema.d.ts +156 -1
- package/dist/sale_account/.kosh/bindings.js +1 -1
- package/dist/sale_account/.kosh/schema.d.ts +156 -1
- package/dist/sale_portal/.kosh/bindings.js +1 -1
- package/dist/sale_portal/.kosh/schema.d.ts +156 -1
- package/dist/sale_project/.kosh/bindings.js +1 -1
- package/dist/sale_project/.kosh/schema.d.ts +156 -1
- package/dist/sales/.kosh/bindings.js +1 -1
- package/dist/sales/.kosh/schema.d.ts +156 -1
- package/dist/server/auth/base.js +98 -0
- package/dist/server/auth/oauth.d.ts +21 -0
- package/dist/server/auth/oauth.js +579 -0
- package/dist/server/auth/routes.d.ts +3 -0
- package/dist/server/auth/routes.js +29 -0
- package/dist/server/auth/service.d.ts +56 -0
- package/dist/server/auth/service.js +185 -3
- package/dist/server/identity.d.ts +4 -0
- package/dist/server/images.d.ts +12 -0
- package/dist/server/images.js +139 -0
- package/dist/server/index.d.ts +2 -1
- package/dist/server/index.js +1 -0
- package/dist/server/server.d.ts +4 -0
- package/dist/server/server.js +20 -4
- package/dist/settings/company.d.ts +34 -0
- package/dist/settings/company.js +189 -0
- package/dist/settings/index.d.ts +10 -10
- package/dist/settings/index.js +159 -30
- package/dist/settings/people.d.ts +16 -0
- package/dist/settings/people.js +507 -0
- package/dist/settings/security.d.ts +13 -0
- package/dist/settings/security.js +158 -0
- package/dist/settings/web/AuditPage.d.ts +8 -0
- package/dist/settings/web/AuditPage.js +74 -0
- package/dist/settings/web/CompaniesPage.d.ts +8 -0
- package/dist/settings/web/CompaniesPage.js +52 -0
- package/dist/settings/web/CompanyPage.d.ts +9 -0
- package/dist/settings/web/CompanyPage.js +105 -0
- package/dist/settings/web/ConnectedAppsPage.d.ts +7 -0
- package/dist/settings/web/ConnectedAppsPage.js +33 -0
- package/dist/settings/web/OverviewPage.d.ts +9 -0
- package/dist/settings/web/OverviewPage.js +77 -0
- package/dist/settings/web/PeoplePage.d.ts +9 -0
- package/dist/settings/web/PeoplePage.js +154 -0
- package/dist/settings/web/ProfilePage.d.ts +14 -0
- package/dist/settings/web/ProfilePage.js +196 -0
- package/dist/settings/web/RolesEditor.d.ts +35 -0
- package/dist/settings/web/RolesEditor.js +49 -0
- package/dist/settings/web/RolesPage.d.ts +9 -0
- package/dist/settings/web/RolesPage.js +296 -0
- package/dist/settings/web/SecurityPage.d.ts +8 -0
- package/dist/settings/web/SecurityPage.js +81 -0
- package/dist/settings/web/index.d.ts +10 -0
- package/dist/settings/web/index.js +31 -1
- package/dist/settings/web/messages.js +594 -0
- package/dist/ui/api.d.ts +8 -0
- package/dist/ui/app.d.ts +5 -0
- package/dist/ui/app.js +143 -33
- package/dist/ui/components/AppIcon.js +11 -1
- package/dist/ui/components/Avatar.d.ts +21 -0
- package/dist/ui/components/Avatar.js +71 -0
- package/dist/ui/components/primitives.d.ts +9 -1
- package/dist/ui/components/primitives.js +12 -4
- package/dist/ui/context.d.ts +10 -1
- package/dist/ui/context.js +60 -2
- package/dist/ui/i18n/messages.d.ts +76 -0
- package/dist/ui/i18n/messages.js +152 -0
- package/dist/ui/index.d.ts +3 -1
- package/dist/ui/index.js +3 -1
- package/dist/ui/lib/accent.d.ts +13 -0
- package/dist/ui/lib/accent.js +36 -0
- package/dist/ui/registry.d.ts +7 -1
- package/dist/ui/registry.js +10 -1
- package/dist/ui/search/ViewTabs.d.ts +14 -0
- package/dist/ui/search/ViewTabs.js +42 -0
- package/dist/ui/shell/Activate.d.ts +6 -0
- package/dist/ui/shell/Activate.js +39 -0
- package/dist/ui/shell/CommandPalette.d.ts +7 -1
- package/dist/ui/shell/CommandPalette.js +16 -2
- package/dist/ui/shell/Consent.d.ts +5 -0
- package/dist/ui/shell/Consent.js +35 -0
- package/dist/ui/shell/Home.js +85 -16
- package/dist/ui/shell/Sidebar.d.ts +27 -0
- package/dist/ui/shell/Sidebar.js +77 -0
- package/dist/ui/shell/TwoFactorSetup.d.ts +5 -0
- package/dist/ui/shell/TwoFactorSetup.js +32 -0
- package/dist/ui/shell/shortcuts.d.ts +3 -0
- package/dist/ui/shell/shortcuts.js +13 -4
- package/dist/ui/styles.css +70 -28
- package/dist/ui/views/DateField.d.ts +10 -0
- package/dist/ui/views/DateField.js +129 -0
- package/dist/ui/views/FormView.js +161 -21
- package/dist/ui/views/ListView.d.ts +2 -0
- package/dist/ui/views/ListView.js +57 -25
- package/dist/ui/views/StatusChip.d.ts +10 -0
- package/dist/ui/views/StatusChip.js +22 -0
- package/dist/ui/views/widgets.d.ts +3 -0
- package/dist/ui/views/widgets.js +26 -8
- package/dist/views/types.d.ts +7 -0
- package/dist/views/validate.js +4 -0
- package/package.json +2 -2
|
@@ -1,6 +1,303 @@
|
|
|
1
1
|
/** Messages of the Settings app (namespace `settings`). */
|
|
2
2
|
export const messages = {
|
|
3
3
|
en: {
|
|
4
|
+
connected: {
|
|
5
|
+
title: 'Connected apps',
|
|
6
|
+
intro: 'Apps you allowed to act for you. They can never do more than you may; remove one and its access ends at once.',
|
|
7
|
+
none: 'You have not allowed any app.',
|
|
8
|
+
since: 'allowed {{when}}',
|
|
9
|
+
lastUsed: 'last used {{when}}',
|
|
10
|
+
neverUsed: 'not used yet',
|
|
11
|
+
revoke: 'Remove access',
|
|
12
|
+
revokeApp: 'Remove the access of {{app}}',
|
|
13
|
+
homepage: 'About {{app}}',
|
|
14
|
+
},
|
|
15
|
+
roles: {
|
|
16
|
+
title: 'Roles & permissions',
|
|
17
|
+
intro: 'What each role lets people open and do. Changes are previewed before they are saved.',
|
|
18
|
+
adminsOnly: 'Only administrators manage roles and permissions.',
|
|
19
|
+
new: 'New role',
|
|
20
|
+
newTitle: 'A new role',
|
|
21
|
+
newHint: 'Start from scratch or copy a role, then choose what it opens.',
|
|
22
|
+
name: 'Name',
|
|
23
|
+
copyFrom: 'Copy from',
|
|
24
|
+
fromScratch: 'Nothing (start from scratch)',
|
|
25
|
+
create: 'Create',
|
|
26
|
+
search: 'Search roles',
|
|
27
|
+
kind: 'Kind',
|
|
28
|
+
filter: { all: 'All', custom: 'Custom', builtIn: 'Built-in' },
|
|
29
|
+
builtIn: 'Built-in',
|
|
30
|
+
custom: 'Custom',
|
|
31
|
+
builtInHint: 'A built-in role comes with its app. Its app access is fixed; you can add rights to it under Advanced.',
|
|
32
|
+
holders_one: '{{count}} person',
|
|
33
|
+
holders_other: '{{count}} people',
|
|
34
|
+
nobody: 'No one holds it yet.',
|
|
35
|
+
nobodyYet: 'No one holds this role yet: these rights apply to whoever gets it.',
|
|
36
|
+
heldBy: 'Held by {{names}}',
|
|
37
|
+
apps: 'Apps it opens',
|
|
38
|
+
advanced: 'Advanced: rights per model, permissions, record rules',
|
|
39
|
+
technical: 'Technical',
|
|
40
|
+
models: 'Rights per model',
|
|
41
|
+
model: 'Model',
|
|
42
|
+
lockedHint: 'Ticked and greyed rights come from the app or from roles this one includes.',
|
|
43
|
+
perm: {
|
|
44
|
+
read: 'Read',
|
|
45
|
+
create: 'Create',
|
|
46
|
+
write: 'Edit',
|
|
47
|
+
unlink: 'Delete',
|
|
48
|
+
export: 'Export',
|
|
49
|
+
import: 'Import',
|
|
50
|
+
},
|
|
51
|
+
permissions: 'Feature permissions',
|
|
52
|
+
rules: 'Record rules',
|
|
53
|
+
rulesHint: 'Limit which records this role sees or changes, with a condition (Shutro domain).',
|
|
54
|
+
noRules: 'No record rules of its own.',
|
|
55
|
+
ruleApplies: 'Applies to',
|
|
56
|
+
ruleCondition: 'Condition',
|
|
57
|
+
addRule: 'Add the rule',
|
|
58
|
+
deleteRule: 'Delete the rule on {{model}}',
|
|
59
|
+
fields: 'Field security',
|
|
60
|
+
mayEdit: 'may edit',
|
|
61
|
+
mayRead: 'may read',
|
|
62
|
+
review: 'Review the changes',
|
|
63
|
+
preview: 'What saving changes',
|
|
64
|
+
noEffect: 'Nobody gains or loses anything.',
|
|
65
|
+
gains: 'gains {{what}}',
|
|
66
|
+
loses: 'loses {{what}}',
|
|
67
|
+
keepEditing: 'Keep editing',
|
|
68
|
+
confirmSave: 'Save',
|
|
69
|
+
saved: 'Saved: the change applies at once.',
|
|
70
|
+
delete: 'Delete the role',
|
|
71
|
+
deleteConfirm: 'Deleting it takes it from {{count}} people.',
|
|
72
|
+
},
|
|
73
|
+
people: {
|
|
74
|
+
title: 'People',
|
|
75
|
+
intro: 'Who works here, what they can open, and how they sign in.',
|
|
76
|
+
invite: 'Invite',
|
|
77
|
+
inviteTitle: 'Invite someone',
|
|
78
|
+
inviteHint: 'They get a link to choose their password; it works for 7 days.',
|
|
79
|
+
send: 'Send the invitation',
|
|
80
|
+
done: 'Done',
|
|
81
|
+
emailed: 'The invitation is on its way to {{to}}. You can also pass on the link:',
|
|
82
|
+
notEmailed: 'Mail is not set up here: pass on this link (email, chat, WhatsApp).',
|
|
83
|
+
copy: 'Copy',
|
|
84
|
+
copied: 'Copied',
|
|
85
|
+
search: 'Search by name or email',
|
|
86
|
+
status: 'Status',
|
|
87
|
+
filter: { all: 'All', active: 'Active', invited: 'Invited', deactivated: 'Deactivated' },
|
|
88
|
+
active: 'Active',
|
|
89
|
+
invited: 'Invited',
|
|
90
|
+
deactivated: 'Deactivated',
|
|
91
|
+
administrator: 'Administrator',
|
|
92
|
+
twoFactor: 'Two-factor on',
|
|
93
|
+
expires: 'invitation until {{when}}',
|
|
94
|
+
never: 'never signed in',
|
|
95
|
+
empty: 'No one matches.',
|
|
96
|
+
roles: 'Roles',
|
|
97
|
+
details: 'Details',
|
|
98
|
+
technical: 'Technical access (storage, notifications, permissions…)',
|
|
99
|
+
rolesIn: 'Roles in',
|
|
100
|
+
everyCompany: 'Every company',
|
|
101
|
+
noAccess: 'No access',
|
|
102
|
+
otherRoles: 'Other roles',
|
|
103
|
+
administratorHint: 'full access; only administrators give it',
|
|
104
|
+
saveRoles: 'Save the roles',
|
|
105
|
+
notYourOwn: 'Someone else changes your roles.',
|
|
106
|
+
access: 'Access',
|
|
107
|
+
resend: 'Send the invitation again',
|
|
108
|
+
newLink: 'Send a new sign-in link',
|
|
109
|
+
reset2fa: 'Reset two-factor sign-in',
|
|
110
|
+
resetConfirm: 'Their two-factor sign-in is turned off and they are signed out everywhere; they set it up again.',
|
|
111
|
+
deactivate: 'Deactivate',
|
|
112
|
+
deactivateConfirm: 'They are signed out everywhere and cannot sign in until reactivated. Their records stay.',
|
|
113
|
+
reactivate: 'Reactivate',
|
|
114
|
+
activity: 'Recent activity',
|
|
115
|
+
canDo: 'What can they do?',
|
|
116
|
+
canDoAll: 'Everything: they are an administrator.',
|
|
117
|
+
canDoNothing: 'Nothing yet: no role opens a model.',
|
|
118
|
+
hiddenFields_one: '({{count}} field hidden)',
|
|
119
|
+
hiddenFields_other: '({{count}} fields hidden)',
|
|
120
|
+
noActivity: 'Nothing yet.',
|
|
121
|
+
},
|
|
122
|
+
overview: {
|
|
123
|
+
title: 'Settings',
|
|
124
|
+
search: 'Search settings',
|
|
125
|
+
nothing: 'No setting matches “{{query}}”.',
|
|
126
|
+
other: 'Other',
|
|
127
|
+
you: 'You',
|
|
128
|
+
profile: 'Your details, language and time zone, password, two-factor sign-in and signed-in devices.',
|
|
129
|
+
profileKeywords: 'profile password two-factor 2fa authenticator sessions devices language time zone email phone',
|
|
130
|
+
about: {
|
|
131
|
+
'settings.action_company': {
|
|
132
|
+
description: 'Name, address, details, number grouping and brand colour: how the company appears to everyone here.',
|
|
133
|
+
keywords: 'company name address phone email website brand colour color accent logo lakh crore grouping numbers',
|
|
134
|
+
},
|
|
135
|
+
'settings.action_security': {
|
|
136
|
+
description: 'Two-factor sign-in for administrators or everyone, how long a sign-in lasts, signed-in devices.',
|
|
137
|
+
keywords: 'security two-factor 2fa mfa policy sessions devices sign out',
|
|
138
|
+
},
|
|
139
|
+
'settings.action_audit': {
|
|
140
|
+
description: 'Sign-ins, permission changes, exports and sensitive actions; filtered and exported.',
|
|
141
|
+
keywords: 'audit log history events who did what logins export csv',
|
|
142
|
+
},
|
|
143
|
+
'settings.action_companies': {
|
|
144
|
+
description: 'Every company, its currency and people; switch between them or add one.',
|
|
145
|
+
keywords: 'companies multi-company branches new company switch',
|
|
146
|
+
},
|
|
147
|
+
'settings.action_people': {
|
|
148
|
+
description: 'Invite people, give them roles per app and company, deactivate them, reset their two-factor sign-in.',
|
|
149
|
+
keywords: 'people users employees invite invitation roles deactivate 2fa reset',
|
|
150
|
+
},
|
|
151
|
+
'settings.action_roles': {
|
|
152
|
+
description: 'What each role opens and allows, rights per model, record rules; previewed before saving.',
|
|
153
|
+
keywords: 'roles permissions access rights groups record rules field security acl',
|
|
154
|
+
},
|
|
155
|
+
'settings.action_apps': {
|
|
156
|
+
description: 'Install, disable and upgrade apps; nobody gets access until a role gives it.',
|
|
157
|
+
keywords: 'apps modules install uninstall disable upgrade',
|
|
158
|
+
},
|
|
159
|
+
'assistant.action_settings': {
|
|
160
|
+
description: 'Turn the AI assistant on for this company, its budget and what it may read.',
|
|
161
|
+
keywords: 'ai assistant budget tokens ask summarize',
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
profile: {
|
|
166
|
+
title: 'Your profile',
|
|
167
|
+
signedInAs: 'Signed in as {{login}}',
|
|
168
|
+
details: 'Your details',
|
|
169
|
+
name: 'Name',
|
|
170
|
+
email: 'Email',
|
|
171
|
+
phone: 'Phone',
|
|
172
|
+
region: 'Language and region',
|
|
173
|
+
regionHint: 'The language of the app and your emails; the time zone of your dates and reports.',
|
|
174
|
+
language: 'Language',
|
|
175
|
+
timeZone: 'Time zone',
|
|
176
|
+
defaultCompany: 'Default company',
|
|
177
|
+
save: 'Save',
|
|
178
|
+
saved: 'Saved.',
|
|
179
|
+
passwordTitle: 'Password',
|
|
180
|
+
passwordHint: 'At least 12 characters. Changing it signs out your other devices.',
|
|
181
|
+
currentPassword: 'Current password',
|
|
182
|
+
newPassword: 'New password',
|
|
183
|
+
repeatPassword: 'Repeat the new password',
|
|
184
|
+
changePassword: 'Change the password',
|
|
185
|
+
passwordChanged: 'Password changed; your other devices are signed out.',
|
|
186
|
+
twoFactor: 'Two-factor sign-in',
|
|
187
|
+
twoFactorHint: 'A code from an authenticator app, besides your password, each time you sign in.',
|
|
188
|
+
twoFactorOn: 'On',
|
|
189
|
+
twoFactorOff: 'Off',
|
|
190
|
+
adminNeeds: 'Administrators need it for their rights to apply.',
|
|
191
|
+
setUp: 'Set up',
|
|
192
|
+
step1: 'Add an account in your authenticator app (Google Authenticator, Microsoft Authenticator, 1Password…):',
|
|
193
|
+
openApp: 'open it in the app',
|
|
194
|
+
step2: 'or type this key:',
|
|
195
|
+
step3: 'Enter the 6-digit code it shows.',
|
|
196
|
+
code: 'Code',
|
|
197
|
+
turnOn: 'Turn on',
|
|
198
|
+
cancel: 'Cancel',
|
|
199
|
+
turnOff: 'Turn off two-factor sign-in',
|
|
200
|
+
password: 'Password',
|
|
201
|
+
recoveryCodes: 'Your recovery codes: each signs you in once if you lose your phone. Keep them somewhere safe; they are shown only now.',
|
|
202
|
+
photo: 'Photo',
|
|
203
|
+
sessions: 'Signed-in devices',
|
|
204
|
+
sessionsHint: 'Where you are signed in now. Sign out a device you do not recognise.',
|
|
205
|
+
thisDevice: 'This device',
|
|
206
|
+
lastActive: 'last active {{when}}',
|
|
207
|
+
unknownDevice: 'A device',
|
|
208
|
+
signOut: 'Sign out',
|
|
209
|
+
signOutDevice: 'Sign out {{device}}',
|
|
210
|
+
signOutOthers: 'Sign out all other devices',
|
|
211
|
+
},
|
|
212
|
+
company: {
|
|
213
|
+
title: 'Company',
|
|
214
|
+
intro: 'How the company appears to everyone who works in it here.',
|
|
215
|
+
identity: 'Identity',
|
|
216
|
+
name: 'Name',
|
|
217
|
+
grouping: 'Number grouping',
|
|
218
|
+
international: 'International (1,234,567)',
|
|
219
|
+
lakh: 'Lakh and crore (12,34,567)',
|
|
220
|
+
brand: 'Brand colour',
|
|
221
|
+
brandHint: 'The accent of buttons, links and selections for everyone in this company. Text stays readable whatever the colour.',
|
|
222
|
+
hex: 'Colour',
|
|
223
|
+
picker: 'Pick a colour',
|
|
224
|
+
default: 'Use the default',
|
|
225
|
+
light: 'Light',
|
|
226
|
+
dark: 'Dark',
|
|
227
|
+
sampleAction: 'Confirm',
|
|
228
|
+
sampleBadge: 'Sent',
|
|
229
|
+
sampleLink: 'A link',
|
|
230
|
+
sampleSelected: 'A selected row',
|
|
231
|
+
save: 'Save',
|
|
232
|
+
saved: 'Saved: everyone sees the change when they next load a page.',
|
|
233
|
+
details: 'Details',
|
|
234
|
+
detailsHint: 'Address, contacts and what the installed apps need (tax ids, fiscal year…). Currency: {{currency}}.',
|
|
235
|
+
notSet: 'Not set',
|
|
236
|
+
},
|
|
237
|
+
security: {
|
|
238
|
+
title: 'Security',
|
|
239
|
+
intro: 'How people sign in here, and who is signed in where. Every change is in the audit log.',
|
|
240
|
+
policy: 'Sign-in policy',
|
|
241
|
+
policyHint: 'The server enforces it on every request.',
|
|
242
|
+
twoFactorFor: 'Two-factor sign-in is required of',
|
|
243
|
+
administrators: 'Administrators only',
|
|
244
|
+
administratorsHint: 'Recommended to start with: everyone else may turn it on in their profile.',
|
|
245
|
+
everyone: 'Everyone',
|
|
246
|
+
everyoneHint: 'People without it can only set it up when they next open the back-office; nobody can turn it off. Portal users are not concerned.',
|
|
247
|
+
wouldStop_one: '{{count}} person has no two-factor sign-in yet ({{names}}): they will set it up before anything else.',
|
|
248
|
+
wouldStop_other: '{{count}} people have no two-factor sign-in yet ({{names}}): they will set it up before anything else.',
|
|
249
|
+
sessionDays: 'A sign-in lasts at most (days)',
|
|
250
|
+
sessionDaysHint: 'From 1 to 90 days, for new sign-ins; empty: the server’s setting.',
|
|
251
|
+
serverDefault: 'Default',
|
|
252
|
+
save: 'Save',
|
|
253
|
+
saved: 'Saved: it applies from now on.',
|
|
254
|
+
sessions: 'Signed-in devices',
|
|
255
|
+
sessionsHint: 'Everyone’s active sign-ins. Sign out one you do not trust; the person signs in again.',
|
|
256
|
+
searchSessions: 'Search by person or address',
|
|
257
|
+
signOutOf: 'Sign {{name}} out of {{device}}',
|
|
258
|
+
noSessions: 'No signed-in devices match.',
|
|
259
|
+
},
|
|
260
|
+
audit: {
|
|
261
|
+
title: 'Audit log',
|
|
262
|
+
intro: 'Sign-ins, permission changes, exports and sensitive actions — kept, never changed.',
|
|
263
|
+
export: 'Export CSV',
|
|
264
|
+
kind: 'Kind',
|
|
265
|
+
all: 'All kinds',
|
|
266
|
+
families: {
|
|
267
|
+
auth: 'Sign-ins',
|
|
268
|
+
security: 'Security and permissions',
|
|
269
|
+
people: 'People',
|
|
270
|
+
settings: 'Settings',
|
|
271
|
+
data: 'Exports and data',
|
|
272
|
+
admin: 'Administration',
|
|
273
|
+
},
|
|
274
|
+
person: 'Person',
|
|
275
|
+
everyone: 'Everyone',
|
|
276
|
+
from: 'From',
|
|
277
|
+
to: 'To',
|
|
278
|
+
words: 'Words',
|
|
279
|
+
when: 'When',
|
|
280
|
+
what: 'What',
|
|
281
|
+
ip: 'Address',
|
|
282
|
+
system: 'System',
|
|
283
|
+
none: 'No events match.',
|
|
284
|
+
more: 'Show more',
|
|
285
|
+
},
|
|
286
|
+
companies: {
|
|
287
|
+
title: 'Companies',
|
|
288
|
+
intro: 'Every company of this installation. Switch to one to work in it; its settings follow.',
|
|
289
|
+
new: 'New company',
|
|
290
|
+
newTitle: 'A new company',
|
|
291
|
+
newHint: 'The installed apps set it up (journals, sequences, taxes). Administrators can switch to it at once; give others access in People.',
|
|
292
|
+
currency: 'Currency',
|
|
293
|
+
chooseCurrency: 'Choose its currency',
|
|
294
|
+
create: 'Create',
|
|
295
|
+
current: 'Current',
|
|
296
|
+
people_one: '{{count}} person',
|
|
297
|
+
people_other: '{{count}} people',
|
|
298
|
+
switch: 'Switch',
|
|
299
|
+
switchTo: 'Switch to {{name}}',
|
|
300
|
+
},
|
|
4
301
|
apiKeys: {
|
|
5
302
|
title: 'API keys',
|
|
6
303
|
intro: 'Keys let scripts and other systems call the API as you, within the scopes you give them. Your own rights still apply; a key can never do more than you.',
|
|
@@ -87,6 +384,303 @@ export const messages = {
|
|
|
87
384
|
version: 'Version {{version}}',
|
|
88
385
|
},
|
|
89
386
|
bn: {
|
|
387
|
+
connected: {
|
|
388
|
+
title: 'সংযুক্ত অ্যাপস',
|
|
389
|
+
intro: 'যে অ্যাপগুলোকে আপনি আপনার হয়ে কাজ করতে দিয়েছেন। সরিয়ে দিলে সাথে সাথে প্রবেশাধিকার শেষ।',
|
|
390
|
+
none: 'আপনি কোনো অ্যাপকে অনুমতি দেননি।',
|
|
391
|
+
since: '{{when}} থেকে অনুমতি',
|
|
392
|
+
lastUsed: 'সর্বশেষ ব্যবহার {{when}}',
|
|
393
|
+
neverUsed: 'এখনো ব্যবহার হয়নি',
|
|
394
|
+
revoke: 'প্রবেশাধিকার সরান',
|
|
395
|
+
revokeApp: '{{app}}-এর প্রবেশাধিকার সরান',
|
|
396
|
+
homepage: '{{app}} সম্পর্কে',
|
|
397
|
+
},
|
|
398
|
+
roles: {
|
|
399
|
+
title: 'রোল ও অনুমতি',
|
|
400
|
+
intro: 'প্রতিটি রোল মানুষকে কী খুলতে ও করতে দেয়। সংরক্ষণের আগে পরিবর্তন দেখানো হয়।',
|
|
401
|
+
adminsOnly: 'শুধু অ্যাডমিনিস্ট্রেটর রোল ও অনুমতি পরিচালনা করেন।',
|
|
402
|
+
new: 'নতুন রোল',
|
|
403
|
+
newTitle: 'নতুন রোল',
|
|
404
|
+
newHint: 'শূন্য থেকে শুরু করুন বা একটি রোল কপি করুন, তারপর কী খুলবে বেছে নিন।',
|
|
405
|
+
name: 'নাম',
|
|
406
|
+
copyFrom: 'যেখান থেকে কপি',
|
|
407
|
+
fromScratch: 'কিছু না (শূন্য থেকে)',
|
|
408
|
+
create: 'তৈরি করুন',
|
|
409
|
+
search: 'রোল খুঁজুন',
|
|
410
|
+
kind: 'ধরন',
|
|
411
|
+
filter: { all: 'সব', custom: 'নিজস্ব', builtIn: 'অন্তর্নির্মিত' },
|
|
412
|
+
builtIn: 'অন্তর্নির্মিত',
|
|
413
|
+
custom: 'নিজস্ব',
|
|
414
|
+
builtInHint: 'অন্তর্নির্মিত রোল তার অ্যাপের সাথে আসে। অ্যাপের প্রবেশাধিকার স্থির; উন্নত অংশে অধিকার যোগ করতে পারেন।',
|
|
415
|
+
holders_one: '{{count}} জন',
|
|
416
|
+
holders_other: '{{count}} জন',
|
|
417
|
+
nobody: 'এখনো কারো কাছে নেই।',
|
|
418
|
+
nobodyYet: 'এই রোল এখনো কারো কাছে নেই: যিনি পাবেন তাঁর জন্য এই অধিকার প্রযোজ্য।',
|
|
419
|
+
heldBy: '{{names}}-এর কাছে আছে',
|
|
420
|
+
apps: 'যে অ্যাপ খোলে',
|
|
421
|
+
advanced: 'উন্নত: মডেল অনুযায়ী অধিকার, অনুমতি, রেকর্ড নিয়ম',
|
|
422
|
+
technical: 'প্রযুক্তিগত',
|
|
423
|
+
models: 'মডেল অনুযায়ী অধিকার',
|
|
424
|
+
model: 'মডেল',
|
|
425
|
+
lockedHint: 'টিক দেওয়া ধূসর অধিকার অ্যাপ বা এর অন্তর্ভুক্ত রোল থেকে আসে।',
|
|
426
|
+
perm: {
|
|
427
|
+
read: 'পড়া',
|
|
428
|
+
create: 'তৈরি',
|
|
429
|
+
write: 'সম্পাদনা',
|
|
430
|
+
unlink: 'মুছা',
|
|
431
|
+
export: 'রপ্তানি',
|
|
432
|
+
import: 'আমদানি',
|
|
433
|
+
},
|
|
434
|
+
permissions: 'বৈশিষ্ট্য অনুমতি',
|
|
435
|
+
rules: 'রেকর্ড নিয়ম',
|
|
436
|
+
rulesHint: 'এই রোল কোন রেকর্ড দেখে বা বদলায় তা একটি শর্তে সীমিত করুন (Shutro ডোমেইন)।',
|
|
437
|
+
noRules: 'নিজস্ব কোনো রেকর্ড নিয়ম নেই।',
|
|
438
|
+
ruleApplies: 'যেখানে প্রযোজ্য',
|
|
439
|
+
ruleCondition: 'শর্ত',
|
|
440
|
+
addRule: 'নিয়ম যোগ করুন',
|
|
441
|
+
deleteRule: '{{model}}-এর নিয়ম মুছুন',
|
|
442
|
+
fields: 'ফিল্ড নিরাপত্তা',
|
|
443
|
+
mayEdit: 'সম্পাদনা করতে পারে',
|
|
444
|
+
mayRead: 'পড়তে পারে',
|
|
445
|
+
review: 'পরিবর্তন দেখুন',
|
|
446
|
+
preview: 'সংরক্ষণে যা বদলাবে',
|
|
447
|
+
noEffect: 'কেউ কিছু পান না বা হারান না।',
|
|
448
|
+
gains: 'পাবেন {{what}}',
|
|
449
|
+
loses: 'হারাবেন {{what}}',
|
|
450
|
+
keepEditing: 'সম্পাদনা চালিয়ে যান',
|
|
451
|
+
confirmSave: 'সংরক্ষণ করুন',
|
|
452
|
+
saved: 'সংরক্ষিত: পরিবর্তন সাথে সাথে কার্যকর।',
|
|
453
|
+
delete: 'রোল মুছুন',
|
|
454
|
+
deleteConfirm: 'মুছলে {{count}} জনের কাছ থেকে চলে যাবে।',
|
|
455
|
+
},
|
|
456
|
+
people: {
|
|
457
|
+
title: 'মানুষ',
|
|
458
|
+
intro: 'এখানে কারা কাজ করেন, কী খুলতে পারেন এবং কীভাবে সাইন ইন করেন।',
|
|
459
|
+
invite: 'আমন্ত্রণ',
|
|
460
|
+
inviteTitle: 'কাউকে আমন্ত্রণ জানান',
|
|
461
|
+
inviteHint: 'তাঁরা পাসওয়ার্ড বেছে নেওয়ার একটি লিংক পাবেন; এটি ৭ দিন কাজ করে।',
|
|
462
|
+
send: 'আমন্ত্রণ পাঠান',
|
|
463
|
+
done: 'সম্পন্ন',
|
|
464
|
+
emailed: 'আমন্ত্রণ {{to}}-এ যাচ্ছে। লিংকটি আপনিও পাঠাতে পারেন:',
|
|
465
|
+
notEmailed: 'এখানে মেইল চালু নেই: এই লিংকটি পাঠান (ইমেইল, চ্যাট, হোয়াটসঅ্যাপ)।',
|
|
466
|
+
copy: 'কপি',
|
|
467
|
+
copied: 'কপি হয়েছে',
|
|
468
|
+
search: 'নাম বা ইমেইল দিয়ে খুঁজুন',
|
|
469
|
+
status: 'অবস্থা',
|
|
470
|
+
filter: { all: 'সব', active: 'সক্রিয়', invited: 'আমন্ত্রিত', deactivated: 'নিষ্ক্রিয়' },
|
|
471
|
+
active: 'সক্রিয়',
|
|
472
|
+
invited: 'আমন্ত্রিত',
|
|
473
|
+
deactivated: 'নিষ্ক্রিয়',
|
|
474
|
+
administrator: 'অ্যাডমিনিস্ট্রেটর',
|
|
475
|
+
twoFactor: 'দুই-ধাপ চালু',
|
|
476
|
+
expires: '{{when}} পর্যন্ত আমন্ত্রণ',
|
|
477
|
+
never: 'কখনো সাইন ইন করেননি',
|
|
478
|
+
empty: 'কেউ মেলেনি।',
|
|
479
|
+
roles: 'রোল',
|
|
480
|
+
details: 'বিস্তারিত',
|
|
481
|
+
technical: 'প্রযুক্তিগত প্রবেশাধিকার (স্টোরেজ, বিজ্ঞপ্তি, অনুমতি…)',
|
|
482
|
+
rolesIn: 'যে প্রতিষ্ঠানে রোল',
|
|
483
|
+
everyCompany: 'সব প্রতিষ্ঠান',
|
|
484
|
+
noAccess: 'প্রবেশাধিকার নেই',
|
|
485
|
+
otherRoles: 'অন্যান্য রোল',
|
|
486
|
+
administratorHint: 'সম্পূর্ণ প্রবেশাধিকার; শুধু অ্যাডমিনিস্ট্রেটর দিতে পারেন',
|
|
487
|
+
saveRoles: 'রোল সংরক্ষণ করুন',
|
|
488
|
+
notYourOwn: 'আপনার রোল অন্য কেউ পরিবর্তন করবেন।',
|
|
489
|
+
access: 'প্রবেশাধিকার',
|
|
490
|
+
resend: 'আবার আমন্ত্রণ পাঠান',
|
|
491
|
+
newLink: 'নতুন সাইন-ইন লিংক পাঠান',
|
|
492
|
+
reset2fa: 'দুই-ধাপের সাইন ইন রিসেট করুন',
|
|
493
|
+
resetConfirm: 'তাঁর দুই-ধাপের সাইন ইন বন্ধ হবে এবং সব জায়গা থেকে সাইন আউট হবেন; তিনি আবার চালু করবেন।',
|
|
494
|
+
deactivate: 'নিষ্ক্রিয় করুন',
|
|
495
|
+
deactivateConfirm: 'তিনি সব জায়গা থেকে সাইন আউট হবেন এবং আবার সক্রিয় না করা পর্যন্ত সাইন ইন করতে পারবেন না। তাঁর রেকর্ড থাকবে।',
|
|
496
|
+
reactivate: 'আবার সক্রিয় করুন',
|
|
497
|
+
activity: 'সাম্প্রতিক কার্যকলাপ',
|
|
498
|
+
canDo: 'তিনি কী করতে পারেন?',
|
|
499
|
+
canDoAll: 'সবকিছু: তিনি অ্যাডমিনিস্ট্রেটর।',
|
|
500
|
+
canDoNothing: 'এখনো কিছু না: কোনো রোল কোনো মডেল খোলে না।',
|
|
501
|
+
hiddenFields_one: '({{count}}টি ফিল্ড লুকানো)',
|
|
502
|
+
hiddenFields_other: '({{count}}টি ফিল্ড লুকানো)',
|
|
503
|
+
noActivity: 'এখনো কিছু নেই।',
|
|
504
|
+
},
|
|
505
|
+
overview: {
|
|
506
|
+
title: 'সেটিংস',
|
|
507
|
+
search: 'সেটিংস খুঁজুন',
|
|
508
|
+
nothing: '“{{query}}” এর সাথে কোনো সেটিং মেলেনি।',
|
|
509
|
+
other: 'অন্যান্য',
|
|
510
|
+
you: 'আপনি',
|
|
511
|
+
profile: 'আপনার তথ্য, ভাষা ও সময় অঞ্চল, পাসওয়ার্ড, দুই-ধাপের সাইন ইন এবং সাইন ইন করা ডিভাইস।',
|
|
512
|
+
profileKeywords: 'প্রোফাইল পাসওয়ার্ড দুই-ধাপ ডিভাইস ভাষা সময় ইমেইল ফোন profile password two-factor 2fa',
|
|
513
|
+
about: {
|
|
514
|
+
'settings.action_company': {
|
|
515
|
+
description: 'নাম, ঠিকানা, বিবরণ, সংখ্যার বিভাজন ও ব্র্যান্ডের রং: এখানে সবার কাছে প্রতিষ্ঠান যেভাবে দেখায়।',
|
|
516
|
+
keywords: 'প্রতিষ্ঠান নাম ঠিকানা রং লাখ কোটি company address brand colour lakh',
|
|
517
|
+
},
|
|
518
|
+
'settings.action_security': {
|
|
519
|
+
description: 'অ্যাডমিনিস্ট্রেটর বা সবার জন্য দুই-ধাপের সাইন-ইন, সাইন-ইনের মেয়াদ, সাইন ইন করা ডিভাইস।',
|
|
520
|
+
keywords: 'নিরাপত্তা security 2fa sessions',
|
|
521
|
+
},
|
|
522
|
+
'settings.action_audit': {
|
|
523
|
+
description: 'সাইন-ইন, অনুমতি পরিবর্তন, রপ্তানি ও সংবেদনশীল কাজ।',
|
|
524
|
+
keywords: 'অডিট লগ audit log events export',
|
|
525
|
+
},
|
|
526
|
+
'settings.action_companies': {
|
|
527
|
+
description: 'সব প্রতিষ্ঠান, তাদের মুদ্রা ও মানুষ; একটি থেকে অন্যটিতে যান বা নতুন যোগ করুন।',
|
|
528
|
+
keywords: 'প্রতিষ্ঠানসমূহ শাখা companies multi-company switch',
|
|
529
|
+
},
|
|
530
|
+
'settings.action_people': {
|
|
531
|
+
description: 'মানুষকে আমন্ত্রণ জানান, অ্যাপ ও প্রতিষ্ঠান অনুযায়ী রোল দিন, নিষ্ক্রিয় করুন, দুই-ধাপ রিসেট করুন।',
|
|
532
|
+
keywords: 'মানুষ ব্যবহারকারী আমন্ত্রণ রোল people users invite roles',
|
|
533
|
+
},
|
|
534
|
+
'settings.action_roles': {
|
|
535
|
+
description: 'প্রতিটি রোল কী খোলে ও অনুমতি দেয়, মডেল অনুযায়ী অধিকার, রেকর্ড নিয়ম; সংরক্ষণের আগে দেখা যায়।',
|
|
536
|
+
keywords: 'রোল অনুমতি অধিকার roles permissions access rules',
|
|
537
|
+
},
|
|
538
|
+
'settings.action_apps': {
|
|
539
|
+
description: 'অ্যাপ ইনস্টল, বন্ধ ও হালনাগাদ করুন; রোল না দিলে কেউ ব্যবহার করতে পারে না।',
|
|
540
|
+
keywords: 'অ্যাপ মডিউল ইনস্টল apps modules install',
|
|
541
|
+
},
|
|
542
|
+
'assistant.action_settings': {
|
|
543
|
+
description: 'এই প্রতিষ্ঠানের জন্য এআই সহকারী চালু করুন, এর বাজেট ও যা পড়তে পারে।',
|
|
544
|
+
keywords: 'এআই সহকারী ai assistant budget',
|
|
545
|
+
},
|
|
546
|
+
},
|
|
547
|
+
},
|
|
548
|
+
profile: {
|
|
549
|
+
title: 'আপনার প্রোফাইল',
|
|
550
|
+
signedInAs: '{{login}} হিসেবে সাইন ইন',
|
|
551
|
+
details: 'আপনার তথ্য',
|
|
552
|
+
name: 'নাম',
|
|
553
|
+
email: 'ইমেইল',
|
|
554
|
+
phone: 'ফোন',
|
|
555
|
+
region: 'ভাষা ও অঞ্চল',
|
|
556
|
+
regionHint: 'অ্যাপ ও আপনার ইমেইলের ভাষা; আপনার তারিখ ও রিপোর্টের সময় অঞ্চল।',
|
|
557
|
+
language: 'ভাষা',
|
|
558
|
+
timeZone: 'সময় অঞ্চল',
|
|
559
|
+
defaultCompany: 'ডিফল্ট প্রতিষ্ঠান',
|
|
560
|
+
save: 'সংরক্ষণ করুন',
|
|
561
|
+
saved: 'সংরক্ষিত।',
|
|
562
|
+
passwordTitle: 'পাসওয়ার্ড',
|
|
563
|
+
passwordHint: 'কমপক্ষে ১২ অক্ষর। পরিবর্তন করলে আপনার অন্য ডিভাইসগুলো সাইন আউট হবে।',
|
|
564
|
+
currentPassword: 'বর্তমান পাসওয়ার্ড',
|
|
565
|
+
newPassword: 'নতুন পাসওয়ার্ড',
|
|
566
|
+
repeatPassword: 'নতুন পাসওয়ার্ড আবার লিখুন',
|
|
567
|
+
changePassword: 'পাসওয়ার্ড পরিবর্তন করুন',
|
|
568
|
+
passwordChanged: 'পাসওয়ার্ড পরিবর্তিত; আপনার অন্য ডিভাইসগুলো সাইন আউট হয়েছে।',
|
|
569
|
+
twoFactor: 'দুই-ধাপের সাইন ইন',
|
|
570
|
+
twoFactorHint: 'প্রতিবার সাইন ইনে পাসওয়ার্ডের সাথে একটি অথেন্টিকেটর অ্যাপের কোড।',
|
|
571
|
+
twoFactorOn: 'চালু',
|
|
572
|
+
twoFactorOff: 'বন্ধ',
|
|
573
|
+
adminNeeds: 'অ্যাডমিনিস্ট্রেটরের অধিকার কার্যকর হতে এটি লাগে।',
|
|
574
|
+
setUp: 'চালু করুন',
|
|
575
|
+
step1: 'আপনার অথেন্টিকেটর অ্যাপে একটি অ্যাকাউন্ট যোগ করুন:',
|
|
576
|
+
openApp: 'অ্যাপে খুলুন',
|
|
577
|
+
step2: 'অথবা এই কী লিখুন:',
|
|
578
|
+
step3: 'অ্যাপের দেখানো ৬ অঙ্কের কোড লিখুন।',
|
|
579
|
+
code: 'কোড',
|
|
580
|
+
turnOn: 'চালু করুন',
|
|
581
|
+
cancel: 'বাতিল',
|
|
582
|
+
turnOff: 'দুই-ধাপের সাইন ইন বন্ধ করুন',
|
|
583
|
+
password: 'পাসওয়ার্ড',
|
|
584
|
+
recoveryCodes: 'আপনার রিকভারি কোড: ফোন হারালে প্রতিটি একবার সাইন ইন করায়। নিরাপদে রাখুন; শুধু এখনই দেখানো হচ্ছে।',
|
|
585
|
+
photo: 'ছবি',
|
|
586
|
+
sessions: 'সাইন ইন করা ডিভাইস',
|
|
587
|
+
sessionsHint: 'এখন যেখানে আপনি সাইন ইন আছেন। অচেনা ডিভাইস সাইন আউট করুন।',
|
|
588
|
+
thisDevice: 'এই ডিভাইস',
|
|
589
|
+
lastActive: 'সর্বশেষ সক্রিয় {{when}}',
|
|
590
|
+
unknownDevice: 'একটি ডিভাইস',
|
|
591
|
+
signOut: 'সাইন আউট',
|
|
592
|
+
signOutDevice: '{{device}} সাইন আউট করুন',
|
|
593
|
+
signOutOthers: 'অন্য সব ডিভাইস সাইন আউট করুন',
|
|
594
|
+
},
|
|
595
|
+
company: {
|
|
596
|
+
title: 'প্রতিষ্ঠান',
|
|
597
|
+
intro: 'এখানে কাজ করা সবার কাছে প্রতিষ্ঠানটি যেভাবে দেখায়।',
|
|
598
|
+
identity: 'পরিচয়',
|
|
599
|
+
name: 'নাম',
|
|
600
|
+
grouping: 'সংখ্যার বিভাজন',
|
|
601
|
+
international: 'আন্তর্জাতিক (1,234,567)',
|
|
602
|
+
lakh: 'লাখ ও কোটি (12,34,567)',
|
|
603
|
+
brand: 'ব্র্যান্ডের রং',
|
|
604
|
+
brandHint: 'এই প্রতিষ্ঠানের সবার জন্য বোতাম, লিংক ও নির্বাচনের রং। যে রংই হোক, লেখা পড়া যায়।',
|
|
605
|
+
hex: 'রং',
|
|
606
|
+
picker: 'রং বাছুন',
|
|
607
|
+
default: 'ডিফল্ট রং',
|
|
608
|
+
light: 'হালকা',
|
|
609
|
+
dark: 'গাঢ়',
|
|
610
|
+
sampleAction: 'নিশ্চিত করুন',
|
|
611
|
+
sampleBadge: 'পাঠানো',
|
|
612
|
+
sampleLink: 'একটি লিংক',
|
|
613
|
+
sampleSelected: 'একটি নির্বাচিত সারি',
|
|
614
|
+
save: 'সংরক্ষণ করুন',
|
|
615
|
+
saved: 'সংরক্ষিত: পরের বার পাতা খুললে সবাই পরিবর্তন দেখবেন।',
|
|
616
|
+
details: 'বিবরণ',
|
|
617
|
+
detailsHint: 'ঠিকানা, যোগাযোগ ও ইনস্টল করা অ্যাপের যা দরকার (কর নম্বর, অর্থবছর…)। মুদ্রা: {{currency}}।',
|
|
618
|
+
notSet: 'নির্ধারিত নয়',
|
|
619
|
+
},
|
|
620
|
+
security: {
|
|
621
|
+
title: 'নিরাপত্তা',
|
|
622
|
+
intro: 'এখানে মানুষ কীভাবে সাইন ইন করেন, আর কে কোথায় সাইন ইন আছেন। প্রতিটি পরিবর্তন অডিট লগে থাকে।',
|
|
623
|
+
policy: 'সাইন-ইন নীতি',
|
|
624
|
+
policyHint: 'সার্ভার প্রতিটি অনুরোধে এটি প্রয়োগ করে।',
|
|
625
|
+
twoFactorFor: 'দুই-ধাপের সাইন-ইন যাদের জন্য বাধ্যতামূলক',
|
|
626
|
+
administrators: 'শুধু অ্যাডমিনিস্ট্রেটর',
|
|
627
|
+
administratorsHint: 'শুরুতে প্রস্তাবিত: বাকিরা প্রোফাইল থেকে চালু করতে পারেন।',
|
|
628
|
+
everyone: 'সবাই',
|
|
629
|
+
everyoneHint: 'যাদের নেই তারা পরের বার ব্যাক-অফিস খুললে শুধু এটি চালু করতে পারবেন; কেউ বন্ধ করতে পারবেন না। পোর্টাল ব্যবহারকারীরা এর বাইরে।',
|
|
630
|
+
wouldStop_one: '{{count}} জনের এখনো দুই-ধাপের সাইন-ইন নেই ({{names}}): অন্য কিছুর আগে তারা এটি চালু করবেন।',
|
|
631
|
+
wouldStop_other: '{{count}} জনের এখনো দুই-ধাপের সাইন-ইন নেই ({{names}}): অন্য কিছুর আগে তারা এটি চালু করবেন।',
|
|
632
|
+
sessionDays: 'একটি সাইন-ইন সর্বোচ্চ (দিন)',
|
|
633
|
+
sessionDaysHint: 'নতুন সাইন-ইনের জন্য ১ থেকে ৯০ দিন; খালি: সার্ভারের সেটিং।',
|
|
634
|
+
serverDefault: 'ডিফল্ট',
|
|
635
|
+
save: 'সংরক্ষণ করুন',
|
|
636
|
+
saved: 'সংরক্ষিত: এখন থেকে কার্যকর।',
|
|
637
|
+
sessions: 'সাইন ইন করা ডিভাইস',
|
|
638
|
+
sessionsHint: 'সবার সক্রিয় সাইন-ইন। অবিশ্বস্ত কোনোটি সাইন আউট করুন; ব্যক্তি আবার সাইন ইন করবেন।',
|
|
639
|
+
searchSessions: 'ব্যক্তি বা ঠিকানা দিয়ে খুঁজুন',
|
|
640
|
+
signOutOf: '{{device}} থেকে {{name}}-কে সাইন আউট করুন',
|
|
641
|
+
noSessions: 'মিলে এমন কোনো ডিভাইস নেই।',
|
|
642
|
+
},
|
|
643
|
+
audit: {
|
|
644
|
+
title: 'অডিট লগ',
|
|
645
|
+
intro: 'সাইন-ইন, অনুমতি পরিবর্তন, রপ্তানি ও সংবেদনশীল কাজ — সংরক্ষিত, কখনো বদলানো হয় না।',
|
|
646
|
+
export: 'CSV রপ্তানি',
|
|
647
|
+
kind: 'ধরন',
|
|
648
|
+
all: 'সব ধরন',
|
|
649
|
+
families: {
|
|
650
|
+
auth: 'সাইন-ইন',
|
|
651
|
+
security: 'নিরাপত্তা ও অনুমতি',
|
|
652
|
+
people: 'মানুষ',
|
|
653
|
+
settings: 'সেটিংস',
|
|
654
|
+
data: 'রপ্তানি ও ডেটা',
|
|
655
|
+
admin: 'প্রশাসন',
|
|
656
|
+
},
|
|
657
|
+
person: 'ব্যক্তি',
|
|
658
|
+
everyone: 'সবাই',
|
|
659
|
+
from: 'থেকে',
|
|
660
|
+
to: 'পর্যন্ত',
|
|
661
|
+
words: 'শব্দ',
|
|
662
|
+
when: 'কখন',
|
|
663
|
+
what: 'কী',
|
|
664
|
+
ip: 'ঠিকানা',
|
|
665
|
+
system: 'সিস্টেম',
|
|
666
|
+
none: 'মিলে এমন কোনো ঘটনা নেই।',
|
|
667
|
+
more: 'আরও দেখুন',
|
|
668
|
+
},
|
|
669
|
+
companies: {
|
|
670
|
+
title: 'প্রতিষ্ঠানসমূহ',
|
|
671
|
+
intro: 'এই ইনস্টলেশনের সব প্রতিষ্ঠান। কাজ করতে একটিতে যান; তার সেটিংস সাথে আসে।',
|
|
672
|
+
new: 'নতুন প্রতিষ্ঠান',
|
|
673
|
+
newTitle: 'নতুন প্রতিষ্ঠান',
|
|
674
|
+
newHint: 'ইনস্টল করা অ্যাপ এটি প্রস্তুত করে (জার্নাল, ক্রম, কর)। অ্যাডমিনিস্ট্রেটররা সাথে সাথে যেতে পারেন; অন্যদের প্রবেশাধিকার দিন মানুষ অংশে।',
|
|
675
|
+
currency: 'মুদ্রা',
|
|
676
|
+
chooseCurrency: 'মুদ্রা বেছে নিন',
|
|
677
|
+
create: 'তৈরি করুন',
|
|
678
|
+
current: 'বর্তমান',
|
|
679
|
+
people_one: '{{count}} জন',
|
|
680
|
+
people_other: '{{count}} জন',
|
|
681
|
+
switch: 'যান',
|
|
682
|
+
switchTo: '{{name}}-এ যান',
|
|
683
|
+
},
|
|
90
684
|
apiKeys: {
|
|
91
685
|
title: 'এপিআই কী',
|
|
92
686
|
intro: 'কী দিয়ে স্ক্রিপ্ট ও অন্য সিস্টেম আপনার হয়ে এপিআই ব্যবহার করে, আপনার দেওয়া পরিসরের মধ্যে। আপনার নিজের অধিকারই প্রযোজ্য; কোনো কী আপনার চেয়ে বেশি করতে পারে না।',
|
package/dist/ui/api.d.ts
CHANGED
|
@@ -67,9 +67,17 @@ export interface CurrentUser {
|
|
|
67
67
|
readonly companies: readonly number[];
|
|
68
68
|
/** Number grouping per company (RFC 0016); older servers send none. */
|
|
69
69
|
readonly groupings?: Readonly<Record<string, 'international' | 'lakh'>>;
|
|
70
|
+
/** Each company's brand colour (`#rrggbb`), when it has one (RFC 0018). */
|
|
71
|
+
readonly accents?: Readonly<Record<string, string>>;
|
|
70
72
|
readonly twoFactorEnabled: boolean;
|
|
71
73
|
readonly administrator: boolean;
|
|
72
74
|
readonly administratorNeedsSecondFactor: boolean;
|
|
75
|
+
/** The policy requires two-factor sign-in of everyone and it is not on (RFC 0019 §3.5); older servers send none. */
|
|
76
|
+
readonly twoFactorSetupRequired?: boolean;
|
|
77
|
+
/** The user's photo version, or null (older servers send none). */
|
|
78
|
+
readonly avatar?: string | null;
|
|
79
|
+
/** Each company's logo version, when it has one. */
|
|
80
|
+
readonly logos?: Readonly<Record<string, string>>;
|
|
73
81
|
}
|
|
74
82
|
export interface AppEntry {
|
|
75
83
|
readonly code: string;
|
package/dist/ui/app.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { type ReactElement, type ReactNode } from 'react';
|
|
2
2
|
import { type KoshApi } from './api.js';
|
|
3
3
|
import type { Registry } from './registry.js';
|
|
4
|
+
/** The app's language and its switch (as the language menu does: direction, the server's labels). */
|
|
5
|
+
export declare function useLanguage(): {
|
|
6
|
+
readonly lang: string;
|
|
7
|
+
setLang(lang: string): void;
|
|
8
|
+
};
|
|
4
9
|
export interface KoshAppProps {
|
|
5
10
|
readonly api: KoshApi;
|
|
6
11
|
readonly registry: Registry;
|