@fayz-ai/saas 0.1.6

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 (645) hide show
  1. package/dist/app/AdminShell.d.ts +31 -0
  2. package/dist/app/AdminShell.d.ts.map +1 -0
  3. package/dist/app/LoginPage.d.ts +17 -0
  4. package/dist/app/LoginPage.d.ts.map +1 -0
  5. package/dist/app/config.d.ts +83 -0
  6. package/dist/app/config.d.ts.map +1 -0
  7. package/dist/app/createFayzApp.d.ts +11 -0
  8. package/dist/app/createFayzApp.d.ts.map +1 -0
  9. package/dist/app/routing.d.ts +10 -0
  10. package/dist/app/routing.d.ts.map +1 -0
  11. package/dist/app/scaffold.d.ts +17 -0
  12. package/dist/app/scaffold.d.ts.map +1 -0
  13. package/dist/archetype-lookup.d.ts +30 -0
  14. package/dist/archetype-lookup.d.ts.map +1 -0
  15. package/dist/billing/index.cjs +12 -0
  16. package/dist/billing/index.cjs.map +1 -0
  17. package/dist/billing/index.d.ts +3 -0
  18. package/dist/billing/index.d.ts.map +1 -0
  19. package/dist/billing/index.js +3 -0
  20. package/dist/billing/index.js.map +1 -0
  21. package/dist/billing/store.d.ts +35 -0
  22. package/dist/billing/store.d.ts.map +1 -0
  23. package/dist/chunk-4XTQ4V5L.cjs +124 -0
  24. package/dist/chunk-4XTQ4V5L.cjs.map +1 -0
  25. package/dist/chunk-5GYQK5IW.js +21 -0
  26. package/dist/chunk-5GYQK5IW.js.map +1 -0
  27. package/dist/chunk-DJW67TCY.js +781 -0
  28. package/dist/chunk-DJW67TCY.js.map +1 -0
  29. package/dist/chunk-KYID2MR6.cjs +23 -0
  30. package/dist/chunk-KYID2MR6.cjs.map +1 -0
  31. package/dist/chunk-QGMDVLLW.cjs +816 -0
  32. package/dist/chunk-QGMDVLLW.cjs.map +1 -0
  33. package/dist/chunk-XNWCGJYH.js +97 -0
  34. package/dist/chunk-XNWCGJYH.js.map +1 -0
  35. package/dist/components/shared/PersonLink.d.ts +18 -0
  36. package/dist/components/shared/PersonLink.d.ts.map +1 -0
  37. package/dist/crud/CrudCardGrid.d.ts +13 -0
  38. package/dist/crud/CrudCardGrid.d.ts.map +1 -0
  39. package/dist/crud/CrudDetailPage.d.ts +18 -0
  40. package/dist/crud/CrudDetailPage.d.ts.map +1 -0
  41. package/dist/crud/CrudFormPage.d.ts +18 -0
  42. package/dist/crud/CrudFormPage.d.ts.map +1 -0
  43. package/dist/crud/CrudListView.d.ts +51 -0
  44. package/dist/crud/CrudListView.d.ts.map +1 -0
  45. package/dist/crud/CrudPage.d.ts +20 -0
  46. package/dist/crud/CrudPage.d.ts.map +1 -0
  47. package/dist/crud/DeleteConfirmDialog.d.ts +11 -0
  48. package/dist/crud/DeleteConfirmDialog.d.ts.map +1 -0
  49. package/dist/crud/EntityOverview.d.ts +14 -0
  50. package/dist/crud/EntityOverview.d.ts.map +1 -0
  51. package/dist/crud/ImportWizard.d.ts +18 -0
  52. package/dist/crud/ImportWizard.d.ts.map +1 -0
  53. package/dist/crud/archetypes/ActiveToggle.d.ts +8 -0
  54. package/dist/crud/archetypes/ActiveToggle.d.ts.map +1 -0
  55. package/dist/crud/archetypes/ArchetypeStatusBar.d.ts +11 -0
  56. package/dist/crud/archetypes/ArchetypeStatusBar.d.ts.map +1 -0
  57. package/dist/crud/archetypes/BlockSettingsPopover.d.ts +15 -0
  58. package/dist/crud/archetypes/BlockSettingsPopover.d.ts.map +1 -0
  59. package/dist/crud/archetypes/EntityLink.d.ts +32 -0
  60. package/dist/crud/archetypes/EntityLink.d.ts.map +1 -0
  61. package/dist/crud/archetypes/LocationDetailTabs.d.ts +11 -0
  62. package/dist/crud/archetypes/LocationDetailTabs.d.ts.map +1 -0
  63. package/dist/crud/archetypes/LocationFormLayout.d.ts +12 -0
  64. package/dist/crud/archetypes/LocationFormLayout.d.ts.map +1 -0
  65. package/dist/crud/archetypes/PersonDetailTabs.d.ts +22 -0
  66. package/dist/crud/archetypes/PersonDetailTabs.d.ts.map +1 -0
  67. package/dist/crud/archetypes/PersonFormLayout.d.ts +13 -0
  68. package/dist/crud/archetypes/PersonFormLayout.d.ts.map +1 -0
  69. package/dist/crud/archetypes/PersonPicker.d.ts +23 -0
  70. package/dist/crud/archetypes/PersonPicker.d.ts.map +1 -0
  71. package/dist/crud/archetypes/ProductDetailTabs.d.ts +11 -0
  72. package/dist/crud/archetypes/ProductDetailTabs.d.ts.map +1 -0
  73. package/dist/crud/archetypes/ProductFormLayout.d.ts +12 -0
  74. package/dist/crud/archetypes/ProductFormLayout.d.ts.map +1 -0
  75. package/dist/crud/archetypes/ScheduleEditor.d.ts +7 -0
  76. package/dist/crud/archetypes/ScheduleEditor.d.ts.map +1 -0
  77. package/dist/crud/archetypes/ServiceDetailTabs.d.ts +10 -0
  78. package/dist/crud/archetypes/ServiceDetailTabs.d.ts.map +1 -0
  79. package/dist/crud/archetypes/ServiceFormLayout.d.ts +12 -0
  80. package/dist/crud/archetypes/ServiceFormLayout.d.ts.map +1 -0
  81. package/dist/crud/archetypes/SubjectDetailTabs.d.ts +12 -0
  82. package/dist/crud/archetypes/SubjectDetailTabs.d.ts.map +1 -0
  83. package/dist/crud/archetypes/SubjectFormLayout.d.ts +14 -0
  84. package/dist/crud/archetypes/SubjectFormLayout.d.ts.map +1 -0
  85. package/dist/crud/createCrudPage.d.ts +20 -0
  86. package/dist/crud/createCrudPage.d.ts.map +1 -0
  87. package/dist/crud/csv-export.d.ts +3 -0
  88. package/dist/crud/csv-export.d.ts.map +1 -0
  89. package/dist/crud/fieldToColumn.d.ts +14 -0
  90. package/dist/crud/fieldToColumn.d.ts.map +1 -0
  91. package/dist/crud/index.d.ts +12 -0
  92. package/dist/crud/index.d.ts.map +1 -0
  93. package/dist/hooks/useFieldRules.d.ts +5 -0
  94. package/dist/hooks/useFieldRules.d.ts.map +1 -0
  95. package/dist/hooks/useModuleNavigation.d.ts +25 -0
  96. package/dist/hooks/useModuleNavigation.d.ts.map +1 -0
  97. package/dist/hooks/usePluginPrefs.d.ts +23 -0
  98. package/dist/hooks/usePluginPrefs.d.ts.map +1 -0
  99. package/dist/index.cjs +13880 -0
  100. package/dist/index.cjs.map +1 -0
  101. package/dist/index.d.ts +46 -0
  102. package/dist/index.d.ts.map +1 -0
  103. package/dist/index.js +13730 -0
  104. package/dist/index.js.map +1 -0
  105. package/dist/lib/currency.d.ts +13 -0
  106. package/dist/lib/currency.d.ts.map +1 -0
  107. package/dist/lib/entity-routes.d.ts +24 -0
  108. package/dist/lib/entity-routes.d.ts.map +1 -0
  109. package/dist/lib/schedule-config.d.ts +32 -0
  110. package/dist/lib/schedule-config.d.ts.map +1 -0
  111. package/dist/lib/schedule-service.d.ts +76 -0
  112. package/dist/lib/schedule-service.d.ts.map +1 -0
  113. package/dist/org/adapters/mock.d.ts +4 -0
  114. package/dist/org/adapters/mock.d.ts.map +1 -0
  115. package/dist/org/adapters/supabase.d.ts +7 -0
  116. package/dist/org/adapters/supabase.d.ts.map +1 -0
  117. package/dist/org/context.d.ts +29 -0
  118. package/dist/org/context.d.ts.map +1 -0
  119. package/dist/org/index.cjs +44 -0
  120. package/dist/org/index.cjs.map +1 -0
  121. package/dist/org/index.d.ts +8 -0
  122. package/dist/org/index.d.ts.map +1 -0
  123. package/dist/org/index.js +3 -0
  124. package/dist/org/index.js.map +1 -0
  125. package/dist/org/store.d.ts +16 -0
  126. package/dist/org/store.d.ts.map +1 -0
  127. package/dist/permissions/PermissionGate.d.ts +12 -0
  128. package/dist/permissions/PermissionGate.d.ts.map +1 -0
  129. package/dist/permissions/context.d.ts +37 -0
  130. package/dist/permissions/context.d.ts.map +1 -0
  131. package/dist/permissions/index.cjs +32 -0
  132. package/dist/permissions/index.cjs.map +1 -0
  133. package/dist/permissions/index.d.ts +5 -0
  134. package/dist/permissions/index.d.ts.map +1 -0
  135. package/dist/permissions/index.js +3 -0
  136. package/dist/permissions/index.js.map +1 -0
  137. package/dist/permissions/store.d.ts +21 -0
  138. package/dist/permissions/store.d.ts.map +1 -0
  139. package/dist/placeholder.d.ts +7 -0
  140. package/dist/placeholder.d.ts.map +1 -0
  141. package/dist/plugins/ModuleActionBar.d.ts +27 -0
  142. package/dist/plugins/ModuleActionBar.d.ts.map +1 -0
  143. package/dist/plugins/PluginRegistryManager.d.ts +13 -0
  144. package/dist/plugins/PluginRegistryManager.d.ts.map +1 -0
  145. package/dist/plugins/QuickActionsButton.d.ts +12 -0
  146. package/dist/plugins/QuickActionsButton.d.ts.map +1 -0
  147. package/dist/plugins/SettingsGroup.d.ts +25 -0
  148. package/dist/plugins/SettingsGroup.d.ts.map +1 -0
  149. package/dist/plugins/WidgetSlot.d.ts +8 -0
  150. package/dist/plugins/WidgetSlot.d.ts.map +1 -0
  151. package/dist/plugins/createPluginContext.d.ts +28 -0
  152. package/dist/plugins/createPluginContext.d.ts.map +1 -0
  153. package/dist/plugins/createViewRouter.d.ts +38 -0
  154. package/dist/plugins/createViewRouter.d.ts.map +1 -0
  155. package/dist/shell/components/auth/CenteredLogin.d.ts +13 -0
  156. package/dist/shell/components/auth/CenteredLogin.d.ts.map +1 -0
  157. package/dist/shell/components/auth/LoginForm.d.ts +12 -0
  158. package/dist/shell/components/auth/LoginForm.d.ts.map +1 -0
  159. package/dist/shell/components/auth/LoginPage.d.ts +15 -0
  160. package/dist/shell/components/auth/LoginPage.d.ts.map +1 -0
  161. package/dist/shell/components/auth/OAuthButtons.d.ts +10 -0
  162. package/dist/shell/components/auth/OAuthButtons.d.ts.map +1 -0
  163. package/dist/shell/components/auth/ProtectedRoute.d.ts +11 -0
  164. package/dist/shell/components/auth/ProtectedRoute.d.ts.map +1 -0
  165. package/dist/shell/components/auth/RecoveryForm.d.ts +9 -0
  166. package/dist/shell/components/auth/RecoveryForm.d.ts.map +1 -0
  167. package/dist/shell/components/auth/SignupForm.d.ts +10 -0
  168. package/dist/shell/components/auth/SignupForm.d.ts.map +1 -0
  169. package/dist/shell/components/auth/SplitLogin.d.ts +14 -0
  170. package/dist/shell/components/auth/SplitLogin.d.ts.map +1 -0
  171. package/dist/shell/components/auth/index.d.ts +7 -0
  172. package/dist/shell/components/auth/index.d.ts.map +1 -0
  173. package/dist/shell/components/billing/BillingPage.d.ts +7 -0
  174. package/dist/shell/components/billing/BillingPage.d.ts.map +1 -0
  175. package/dist/shell/components/billing/InvoiceList.d.ts +9 -0
  176. package/dist/shell/components/billing/InvoiceList.d.ts.map +1 -0
  177. package/dist/shell/components/billing/PaywallGate.d.ts +11 -0
  178. package/dist/shell/components/billing/PaywallGate.d.ts.map +1 -0
  179. package/dist/shell/components/billing/PlanSelector.d.ts +13 -0
  180. package/dist/shell/components/billing/PlanSelector.d.ts.map +1 -0
  181. package/dist/shell/components/billing/SubscriptionCard.d.ts +12 -0
  182. package/dist/shell/components/billing/SubscriptionCard.d.ts.map +1 -0
  183. package/dist/shell/components/billing/index.d.ts +6 -0
  184. package/dist/shell/components/billing/index.d.ts.map +1 -0
  185. package/dist/shell/components/chat/ChatFab.d.ts +9 -0
  186. package/dist/shell/components/chat/ChatFab.d.ts.map +1 -0
  187. package/dist/shell/components/chat/ChatPanel.d.ts +10 -0
  188. package/dist/shell/components/chat/ChatPanel.d.ts.map +1 -0
  189. package/dist/shell/components/chat/ChatSuggestions.d.ts +14 -0
  190. package/dist/shell/components/chat/ChatSuggestions.d.ts.map +1 -0
  191. package/dist/shell/components/chat/index.d.ts +3 -0
  192. package/dist/shell/components/chat/index.d.ts.map +1 -0
  193. package/dist/shell/components/crud/archetypes/ClientOrdersTab.d.ts +16 -0
  194. package/dist/shell/components/crud/archetypes/ClientOrdersTab.d.ts.map +1 -0
  195. package/dist/shell/components/layout/BottomNav.d.ts +24 -0
  196. package/dist/shell/components/layout/BottomNav.d.ts.map +1 -0
  197. package/dist/shell/components/layout/CommandPalette.d.ts +29 -0
  198. package/dist/shell/components/layout/CommandPalette.d.ts.map +1 -0
  199. package/dist/shell/components/layout/LocationSwitchOverlay.d.ts +3 -0
  200. package/dist/shell/components/layout/LocationSwitchOverlay.d.ts.map +1 -0
  201. package/dist/shell/components/layout/MockModeBanner.d.ts +3 -0
  202. package/dist/shell/components/layout/MockModeBanner.d.ts.map +1 -0
  203. package/dist/shell/components/layout/PrintChrome.d.ts +10 -0
  204. package/dist/shell/components/layout/PrintChrome.d.ts.map +1 -0
  205. package/dist/shell/components/layout/index.d.ts +6 -0
  206. package/dist/shell/components/layout/index.d.ts.map +1 -0
  207. package/dist/shell/components/notifications/ChangelogFeed.d.ts +8 -0
  208. package/dist/shell/components/notifications/ChangelogFeed.d.ts.map +1 -0
  209. package/dist/shell/components/notifications/NotificationBell.d.ts +9 -0
  210. package/dist/shell/components/notifications/NotificationBell.d.ts.map +1 -0
  211. package/dist/shell/components/notifications/NotificationInbox.d.ts +13 -0
  212. package/dist/shell/components/notifications/NotificationInbox.d.ts.map +1 -0
  213. package/dist/shell/components/notifications/ToastProvider.d.ts +2 -0
  214. package/dist/shell/components/notifications/ToastProvider.d.ts.map +1 -0
  215. package/dist/shell/components/notifications/index.d.ts +5 -0
  216. package/dist/shell/components/notifications/index.d.ts.map +1 -0
  217. package/dist/shell/components/organization/ImpersonationBanner.d.ts +3 -0
  218. package/dist/shell/components/organization/ImpersonationBanner.d.ts.map +1 -0
  219. package/dist/shell/components/organization/InviteMemberDialog.d.ts +10 -0
  220. package/dist/shell/components/organization/InviteMemberDialog.d.ts.map +1 -0
  221. package/dist/shell/components/organization/OrgInitializer.d.ts +7 -0
  222. package/dist/shell/components/organization/OrgInitializer.d.ts.map +1 -0
  223. package/dist/shell/components/organization/OrgSwitcher.d.ts +7 -0
  224. package/dist/shell/components/organization/OrgSwitcher.d.ts.map +1 -0
  225. package/dist/shell/components/organization/PermissionGate.d.ts +11 -0
  226. package/dist/shell/components/organization/PermissionGate.d.ts.map +1 -0
  227. package/dist/shell/components/organization/PermissionMatrixEditor.d.ts +17 -0
  228. package/dist/shell/components/organization/PermissionMatrixEditor.d.ts.map +1 -0
  229. package/dist/shell/components/organization/PermissionProfilesTab.d.ts +3 -0
  230. package/dist/shell/components/organization/PermissionProfilesTab.d.ts.map +1 -0
  231. package/dist/shell/components/organization/TeamTab.d.ts +3 -0
  232. package/dist/shell/components/organization/TeamTab.d.ts.map +1 -0
  233. package/dist/shell/components/organization/TenantOnboarding.d.ts +9 -0
  234. package/dist/shell/components/organization/TenantOnboarding.d.ts.map +1 -0
  235. package/dist/shell/components/organization/index.d.ts +8 -0
  236. package/dist/shell/components/organization/index.d.ts.map +1 -0
  237. package/dist/shell/components/plugins/PluginSettingsPanel.d.ts +23 -0
  238. package/dist/shell/components/plugins/PluginSettingsPanel.d.ts.map +1 -0
  239. package/dist/shell/components/settings/BrandingSettings.d.ts +12 -0
  240. package/dist/shell/components/settings/BrandingSettings.d.ts.map +1 -0
  241. package/dist/shell/components/settings/CompanySettings.d.ts +13 -0
  242. package/dist/shell/components/settings/CompanySettings.d.ts.map +1 -0
  243. package/dist/shell/components/settings/ConnectedBrandingSettings.d.ts +2 -0
  244. package/dist/shell/components/settings/ConnectedBrandingSettings.d.ts.map +1 -0
  245. package/dist/shell/components/settings/ConnectedCompanySettings.d.ts +2 -0
  246. package/dist/shell/components/settings/ConnectedCompanySettings.d.ts.map +1 -0
  247. package/dist/shell/components/settings/ConnectedFieldRulesSettings.d.ts +2 -0
  248. package/dist/shell/components/settings/ConnectedFieldRulesSettings.d.ts.map +1 -0
  249. package/dist/shell/components/settings/ConnectedHolidaysSettings.d.ts +3 -0
  250. package/dist/shell/components/settings/ConnectedHolidaysSettings.d.ts.map +1 -0
  251. package/dist/shell/components/settings/ConnectedLocationsOverview.d.ts +3 -0
  252. package/dist/shell/components/settings/ConnectedLocationsOverview.d.ts.map +1 -0
  253. package/dist/shell/components/settings/ConnectedSecuritySettings.d.ts +2 -0
  254. package/dist/shell/components/settings/ConnectedSecuritySettings.d.ts.map +1 -0
  255. package/dist/shell/components/settings/ConnectedUserProfile.d.ts +2 -0
  256. package/dist/shell/components/settings/ConnectedUserProfile.d.ts.map +1 -0
  257. package/dist/shell/components/settings/FieldRulesSettings.d.ts +11 -0
  258. package/dist/shell/components/settings/FieldRulesSettings.d.ts.map +1 -0
  259. package/dist/shell/components/settings/HolidaysSettings.d.ts +21 -0
  260. package/dist/shell/components/settings/HolidaysSettings.d.ts.map +1 -0
  261. package/dist/shell/components/settings/LocationsCrudPage.d.ts +6 -0
  262. package/dist/shell/components/settings/LocationsCrudPage.d.ts.map +1 -0
  263. package/dist/shell/components/settings/LocationsOverview.d.ts +19 -0
  264. package/dist/shell/components/settings/LocationsOverview.d.ts.map +1 -0
  265. package/dist/shell/components/settings/SecuritySettings.d.ts +17 -0
  266. package/dist/shell/components/settings/SecuritySettings.d.ts.map +1 -0
  267. package/dist/shell/components/settings/SettingsPage.d.ts +18 -0
  268. package/dist/shell/components/settings/SettingsPage.d.ts.map +1 -0
  269. package/dist/shell/components/settings/UserProfile.d.ts +12 -0
  270. package/dist/shell/components/settings/UserProfile.d.ts.map +1 -0
  271. package/dist/shell/components/settings/index.d.ts +11 -0
  272. package/dist/shell/components/settings/index.d.ts.map +1 -0
  273. package/dist/shell/config/index.d.ts +7 -0
  274. package/dist/shell/config/index.d.ts.map +1 -0
  275. package/dist/shell/config/permissions.d.ts +7 -0
  276. package/dist/shell/config/permissions.d.ts.map +1 -0
  277. package/dist/shell/config/tailwind-preset.d.ts +4 -0
  278. package/dist/shell/config/tailwind-preset.d.ts.map +1 -0
  279. package/dist/shell/config/theme/dark.d.ts +3 -0
  280. package/dist/shell/config/theme/dark.d.ts.map +1 -0
  281. package/dist/shell/config/theme/index.d.ts +6 -0
  282. package/dist/shell/config/theme/index.d.ts.map +1 -0
  283. package/dist/shell/config/theme/light.d.ts +3 -0
  284. package/dist/shell/config/theme/light.d.ts.map +1 -0
  285. package/dist/shell/config/theme/tokens.d.ts +97 -0
  286. package/dist/shell/config/theme/tokens.d.ts.map +1 -0
  287. package/dist/shell/config/theme/utils.d.ts +23 -0
  288. package/dist/shell/config/theme/utils.d.ts.map +1 -0
  289. package/dist/shell/createSaasApp.d.ts +145 -0
  290. package/dist/shell/createSaasApp.d.ts.map +1 -0
  291. package/dist/shell/hooks/index.d.ts +19 -0
  292. package/dist/shell/hooks/index.d.ts.map +1 -0
  293. package/dist/shell/hooks/useAITools.d.ts +21 -0
  294. package/dist/shell/hooks/useAITools.d.ts.map +1 -0
  295. package/dist/shell/hooks/useAuth.d.ts +16 -0
  296. package/dist/shell/hooks/useAuth.d.ts.map +1 -0
  297. package/dist/shell/hooks/useBilling.d.ts +14 -0
  298. package/dist/shell/hooks/useBilling.d.ts.map +1 -0
  299. package/dist/shell/hooks/useChat.d.ts +16 -0
  300. package/dist/shell/hooks/useChat.d.ts.map +1 -0
  301. package/dist/shell/hooks/useFieldRules.d.ts +6 -0
  302. package/dist/shell/hooks/useFieldRules.d.ts.map +1 -0
  303. package/dist/shell/hooks/useFormatters.d.ts +7 -0
  304. package/dist/shell/hooks/useFormatters.d.ts.map +1 -0
  305. package/dist/shell/hooks/useLayout.d.ts +16 -0
  306. package/dist/shell/hooks/useLayout.d.ts.map +1 -0
  307. package/dist/shell/hooks/useModuleNavigation.d.ts +25 -0
  308. package/dist/shell/hooks/useModuleNavigation.d.ts.map +1 -0
  309. package/dist/shell/hooks/useNotifications.d.ts +11 -0
  310. package/dist/shell/hooks/useNotifications.d.ts.map +1 -0
  311. package/dist/shell/hooks/usePermission.d.ts +16 -0
  312. package/dist/shell/hooks/usePermission.d.ts.map +1 -0
  313. package/dist/shell/hooks/usePluginPrefs.d.ts +23 -0
  314. package/dist/shell/hooks/usePluginPrefs.d.ts.map +1 -0
  315. package/dist/shell/hooks/usePlugins.d.ts +5 -0
  316. package/dist/shell/hooks/usePlugins.d.ts.map +1 -0
  317. package/dist/shell/hooks/useTenant.d.ts +23 -0
  318. package/dist/shell/hooks/useTenant.d.ts.map +1 -0
  319. package/dist/shell/hooks/useTenantPlugins.d.ts +10 -0
  320. package/dist/shell/hooks/useTenantPlugins.d.ts.map +1 -0
  321. package/dist/shell/hooks/useTranslation.d.ts +5 -0
  322. package/dist/shell/hooks/useTranslation.d.ts.map +1 -0
  323. package/dist/shell/lib/api.d.ts +28 -0
  324. package/dist/shell/lib/api.d.ts.map +1 -0
  325. package/dist/shell/lib/apply-field-rules.d.ts +4 -0
  326. package/dist/shell/lib/apply-field-rules.d.ts.map +1 -0
  327. package/dist/shell/lib/auth-adapters/mock.d.ts +3 -0
  328. package/dist/shell/lib/auth-adapters/mock.d.ts.map +1 -0
  329. package/dist/shell/lib/auth-adapters/supabase.d.ts +3 -0
  330. package/dist/shell/lib/auth-adapters/supabase.d.ts.map +1 -0
  331. package/dist/shell/lib/auth-context.d.ts +5 -0
  332. package/dist/shell/lib/auth-context.d.ts.map +1 -0
  333. package/dist/shell/lib/cache.d.ts +18 -0
  334. package/dist/shell/lib/cache.d.ts.map +1 -0
  335. package/dist/shell/lib/cn.d.ts +2 -0
  336. package/dist/shell/lib/cn.d.ts.map +1 -0
  337. package/dist/shell/lib/core-ai-tools.d.ts +15 -0
  338. package/dist/shell/lib/core-ai-tools.d.ts.map +1 -0
  339. package/dist/shell/lib/create-client-orders-provider.d.ts +3 -0
  340. package/dist/shell/lib/create-client-orders-provider.d.ts.map +1 -0
  341. package/dist/shell/lib/csv.d.ts +14 -0
  342. package/dist/shell/lib/csv.d.ts.map +1 -0
  343. package/dist/shell/lib/dedup.d.ts +2 -0
  344. package/dist/shell/lib/dedup.d.ts.map +1 -0
  345. package/dist/shell/lib/entity-registry.d.ts +19 -0
  346. package/dist/shell/lib/entity-registry.d.ts.map +1 -0
  347. package/dist/shell/lib/entity-routes.d.ts +24 -0
  348. package/dist/shell/lib/entity-routes.d.ts.map +1 -0
  349. package/dist/shell/lib/format.d.ts +7 -0
  350. package/dist/shell/lib/format.d.ts.map +1 -0
  351. package/dist/shell/lib/i18n.d.ts +4 -0
  352. package/dist/shell/lib/i18n.d.ts.map +1 -0
  353. package/dist/shell/lib/locale-config.d.ts +8 -0
  354. package/dist/shell/lib/locale-config.d.ts.map +1 -0
  355. package/dist/shell/lib/org-adapters/mock.d.ts +4 -0
  356. package/dist/shell/lib/org-adapters/mock.d.ts.map +1 -0
  357. package/dist/shell/lib/org-adapters/supabase.d.ts +3 -0
  358. package/dist/shell/lib/org-adapters/supabase.d.ts.map +1 -0
  359. package/dist/shell/lib/org-context.d.ts +5 -0
  360. package/dist/shell/lib/org-context.d.ts.map +1 -0
  361. package/dist/shell/lib/plugins.d.ts +2 -0
  362. package/dist/shell/lib/plugins.d.ts.map +1 -0
  363. package/dist/shell/lib/router.d.ts +15 -0
  364. package/dist/shell/lib/router.d.ts.map +1 -0
  365. package/dist/shell/lib/schedule-config.d.ts +32 -0
  366. package/dist/shell/lib/schedule-config.d.ts.map +1 -0
  367. package/dist/shell/lib/schedule-service.d.ts +76 -0
  368. package/dist/shell/lib/schedule-service.d.ts.map +1 -0
  369. package/dist/shell/lib/supabase.d.ts +9 -0
  370. package/dist/shell/lib/supabase.d.ts.map +1 -0
  371. package/dist/shell/stores/auth.store.d.ts +12 -0
  372. package/dist/shell/stores/auth.store.d.ts.map +1 -0
  373. package/dist/shell/stores/billing.store.d.ts +2 -0
  374. package/dist/shell/stores/billing.store.d.ts.map +1 -0
  375. package/dist/shell/stores/chat.store.d.ts +20 -0
  376. package/dist/shell/stores/chat.store.d.ts.map +1 -0
  377. package/dist/shell/stores/index.d.ts +13 -0
  378. package/dist/shell/stores/index.d.ts.map +1 -0
  379. package/dist/shell/stores/invite.store.d.ts +11 -0
  380. package/dist/shell/stores/invite.store.d.ts.map +1 -0
  381. package/dist/shell/stores/layout.store.d.ts +2 -0
  382. package/dist/shell/stores/layout.store.d.ts.map +1 -0
  383. package/dist/shell/stores/locale.store.d.ts +7 -0
  384. package/dist/shell/stores/locale.store.d.ts.map +1 -0
  385. package/dist/shell/stores/location.store.d.ts +20 -0
  386. package/dist/shell/stores/location.store.d.ts.map +1 -0
  387. package/dist/shell/stores/notifications.store.d.ts +12 -0
  388. package/dist/shell/stores/notifications.store.d.ts.map +1 -0
  389. package/dist/shell/stores/organization.store.d.ts +2 -0
  390. package/dist/shell/stores/organization.store.d.ts.map +1 -0
  391. package/dist/shell/stores/permissions.store.d.ts +2 -0
  392. package/dist/shell/stores/permissions.store.d.ts.map +1 -0
  393. package/dist/shell/stores/plugin.store.d.ts +24 -0
  394. package/dist/shell/stores/plugin.store.d.ts.map +1 -0
  395. package/dist/shell/stores/tenant.store.d.ts +11 -0
  396. package/dist/shell/stores/tenant.store.d.ts.map +1 -0
  397. package/dist/shell/stores/theme.store.d.ts +17 -0
  398. package/dist/shell/stores/theme.store.d.ts.map +1 -0
  399. package/dist/shell/test-setup.d.ts +2 -0
  400. package/dist/shell/test-setup.d.ts.map +1 -0
  401. package/dist/shell/types/auth-adapter.d.ts +14 -0
  402. package/dist/shell/types/auth-adapter.d.ts.map +1 -0
  403. package/dist/shell/types/auth.d.ts +34 -0
  404. package/dist/shell/types/auth.d.ts.map +1 -0
  405. package/dist/shell/types/billing.d.ts +74 -0
  406. package/dist/shell/types/billing.d.ts.map +1 -0
  407. package/dist/shell/types/client-orders.d.ts +43 -0
  408. package/dist/shell/types/client-orders.d.ts.map +1 -0
  409. package/dist/shell/types/crud.d.ts +122 -0
  410. package/dist/shell/types/crud.d.ts.map +1 -0
  411. package/dist/shell/types/entities.d.ts +150 -0
  412. package/dist/shell/types/entities.d.ts.map +1 -0
  413. package/dist/shell/types/entity-lookup.d.ts +18 -0
  414. package/dist/shell/types/entity-lookup.d.ts.map +1 -0
  415. package/dist/shell/types/index.d.ts +17 -0
  416. package/dist/shell/types/index.d.ts.map +1 -0
  417. package/dist/shell/types/integrations.d.ts +48 -0
  418. package/dist/shell/types/integrations.d.ts.map +1 -0
  419. package/dist/shell/types/invite.d.ts +23 -0
  420. package/dist/shell/types/invite.d.ts.map +1 -0
  421. package/dist/shell/types/layout.d.ts +26 -0
  422. package/dist/shell/types/layout.d.ts.map +1 -0
  423. package/dist/shell/types/notifications.d.ts +31 -0
  424. package/dist/shell/types/notifications.d.ts.map +1 -0
  425. package/dist/shell/types/org-adapter.d.ts +72 -0
  426. package/dist/shell/types/org-adapter.d.ts.map +1 -0
  427. package/dist/shell/types/permissions.d.ts +39 -0
  428. package/dist/shell/types/permissions.d.ts.map +1 -0
  429. package/dist/shell/types/platform.d.ts +25 -0
  430. package/dist/shell/types/platform.d.ts.map +1 -0
  431. package/dist/shell/types/plugins.d.ts +308 -0
  432. package/dist/shell/types/plugins.d.ts.map +1 -0
  433. package/dist/shell/types/tenant.d.ts +74 -0
  434. package/dist/shell/types/tenant.d.ts.map +1 -0
  435. package/dist/stores/createCrudStore.d.ts +32 -0
  436. package/dist/stores/createCrudStore.d.ts.map +1 -0
  437. package/dist/supabase/client.d.ts +18 -0
  438. package/dist/supabase/client.d.ts.map +1 -0
  439. package/package.json +72 -0
  440. package/src/app/AdminShell.tsx +449 -0
  441. package/src/app/LoginPage.tsx +264 -0
  442. package/src/app/config.ts +146 -0
  443. package/src/app/createFayzApp.tsx +254 -0
  444. package/src/app/routing.tsx +65 -0
  445. package/src/app/scaffold.tsx +175 -0
  446. package/src/archetype-lookup.ts +160 -0
  447. package/src/billing/index.ts +7 -0
  448. package/src/billing/store.ts +62 -0
  449. package/src/components/shared/PersonLink.tsx +199 -0
  450. package/src/crud/CrudCardGrid.tsx +92 -0
  451. package/src/crud/CrudDetailPage.tsx +366 -0
  452. package/src/crud/CrudFormPage.tsx +467 -0
  453. package/src/crud/CrudListView.tsx +223 -0
  454. package/src/crud/CrudPage.tsx +491 -0
  455. package/src/crud/DeleteConfirmDialog.tsx +41 -0
  456. package/src/crud/EntityOverview.tsx +230 -0
  457. package/src/crud/ImportWizard.tsx +690 -0
  458. package/src/crud/archetypes/ActiveToggle.tsx +23 -0
  459. package/src/crud/archetypes/ArchetypeStatusBar.tsx +58 -0
  460. package/src/crud/archetypes/BlockSettingsPopover.tsx +322 -0
  461. package/src/crud/archetypes/EntityLink.tsx +74 -0
  462. package/src/crud/archetypes/LocationDetailTabs.tsx +72 -0
  463. package/src/crud/archetypes/LocationFormLayout.tsx +173 -0
  464. package/src/crud/archetypes/PersonDetailTabs.tsx +87 -0
  465. package/src/crud/archetypes/PersonFormLayout.tsx +184 -0
  466. package/src/crud/archetypes/PersonPicker.tsx +299 -0
  467. package/src/crud/archetypes/ProductDetailTabs.tsx +72 -0
  468. package/src/crud/archetypes/ProductFormLayout.tsx +197 -0
  469. package/src/crud/archetypes/ScheduleEditor.tsx +796 -0
  470. package/src/crud/archetypes/ServiceDetailTabs.tsx +60 -0
  471. package/src/crud/archetypes/ServiceFormLayout.tsx +155 -0
  472. package/src/crud/archetypes/SubjectDetailTabs.tsx +142 -0
  473. package/src/crud/archetypes/SubjectFormLayout.tsx +164 -0
  474. package/src/crud/createCrudPage.tsx +65 -0
  475. package/src/crud/csv-export.ts +17 -0
  476. package/src/crud/fieldToColumn.tsx +109 -0
  477. package/src/crud/index.ts +11 -0
  478. package/src/hooks/useFieldRules.ts +10 -0
  479. package/src/hooks/useModuleNavigation.ts +124 -0
  480. package/src/hooks/usePluginPrefs.ts +113 -0
  481. package/src/index.ts +168 -0
  482. package/src/lib/currency.ts +19 -0
  483. package/src/lib/entity-routes.ts +53 -0
  484. package/src/lib/schedule-config.ts +42 -0
  485. package/src/lib/schedule-service.ts +307 -0
  486. package/src/org/adapters/mock.ts +353 -0
  487. package/src/org/adapters/supabase.ts +509 -0
  488. package/src/org/context.tsx +174 -0
  489. package/src/org/index.ts +19 -0
  490. package/src/org/store.ts +70 -0
  491. package/src/permissions/PermissionGate.tsx +17 -0
  492. package/src/permissions/context.tsx +126 -0
  493. package/src/permissions/index.ts +13 -0
  494. package/src/permissions/store.ts +68 -0
  495. package/src/placeholder.ts +32 -0
  496. package/src/plugins/ModuleActionBar.tsx +57 -0
  497. package/src/plugins/PluginRegistryManager.tsx +110 -0
  498. package/src/plugins/QuickActionsButton.tsx +73 -0
  499. package/src/plugins/SettingsGroup.tsx +100 -0
  500. package/src/plugins/WidgetSlot.tsx +38 -0
  501. package/src/plugins/createPluginContext.tsx +68 -0
  502. package/src/plugins/createViewRouter.tsx +45 -0
  503. package/src/shell/components/auth/CenteredLogin.tsx +86 -0
  504. package/src/shell/components/auth/LoginForm.tsx +129 -0
  505. package/src/shell/components/auth/LoginPage.tsx +22 -0
  506. package/src/shell/components/auth/OAuthButtons.tsx +66 -0
  507. package/src/shell/components/auth/ProtectedRoute.tsx +52 -0
  508. package/src/shell/components/auth/RecoveryForm.tsx +110 -0
  509. package/src/shell/components/auth/SignupForm.tsx +170 -0
  510. package/src/shell/components/auth/SplitLogin.tsx +124 -0
  511. package/src/shell/components/auth/index.ts +6 -0
  512. package/src/shell/components/billing/BillingPage.tsx +56 -0
  513. package/src/shell/components/billing/InvoiceList.tsx +123 -0
  514. package/src/shell/components/billing/PaywallGate.tsx +80 -0
  515. package/src/shell/components/billing/PlanSelector.tsx +125 -0
  516. package/src/shell/components/billing/SubscriptionCard.tsx +108 -0
  517. package/src/shell/components/billing/index.ts +5 -0
  518. package/src/shell/components/chat/ChatFab.tsx +195 -0
  519. package/src/shell/components/chat/ChatPanel.tsx +170 -0
  520. package/src/shell/components/chat/ChatSuggestions.tsx +102 -0
  521. package/src/shell/components/chat/index.ts +2 -0
  522. package/src/shell/components/crud/archetypes/ClientOrdersTab.tsx +212 -0
  523. package/src/shell/components/layout/BottomNav.tsx +131 -0
  524. package/src/shell/components/layout/CommandPalette.tsx +257 -0
  525. package/src/shell/components/layout/LocationSwitchOverlay.tsx +64 -0
  526. package/src/shell/components/layout/MockModeBanner.tsx +17 -0
  527. package/src/shell/components/layout/PrintChrome.tsx +200 -0
  528. package/src/shell/components/layout/index.ts +5 -0
  529. package/src/shell/components/notifications/ChangelogFeed.tsx +85 -0
  530. package/src/shell/components/notifications/NotificationBell.tsx +44 -0
  531. package/src/shell/components/notifications/NotificationInbox.tsx +175 -0
  532. package/src/shell/components/notifications/ToastProvider.tsx +2 -0
  533. package/src/shell/components/notifications/index.ts +4 -0
  534. package/src/shell/components/organization/ImpersonationBanner.tsx +29 -0
  535. package/src/shell/components/organization/InviteMemberDialog.tsx +161 -0
  536. package/src/shell/components/organization/OrgInitializer.tsx +179 -0
  537. package/src/shell/components/organization/OrgSwitcher.tsx +177 -0
  538. package/src/shell/components/organization/PermissionGate.tsx +16 -0
  539. package/src/shell/components/organization/PermissionMatrixEditor.tsx +206 -0
  540. package/src/shell/components/organization/PermissionProfilesTab.tsx +148 -0
  541. package/src/shell/components/organization/TeamTab.tsx +243 -0
  542. package/src/shell/components/organization/TenantOnboarding.tsx +179 -0
  543. package/src/shell/components/organization/index.ts +7 -0
  544. package/src/shell/components/plugins/PluginSettingsPanel.tsx +189 -0
  545. package/src/shell/components/settings/BrandingSettings.tsx +255 -0
  546. package/src/shell/components/settings/CompanySettings.tsx +188 -0
  547. package/src/shell/components/settings/ConnectedBrandingSettings.tsx +82 -0
  548. package/src/shell/components/settings/ConnectedCompanySettings.tsx +63 -0
  549. package/src/shell/components/settings/ConnectedFieldRulesSettings.tsx +47 -0
  550. package/src/shell/components/settings/ConnectedHolidaysSettings.tsx +99 -0
  551. package/src/shell/components/settings/ConnectedLocationsOverview.tsx +57 -0
  552. package/src/shell/components/settings/ConnectedSecuritySettings.tsx +59 -0
  553. package/src/shell/components/settings/ConnectedUserProfile.tsx +59 -0
  554. package/src/shell/components/settings/FieldRulesSettings.tsx +511 -0
  555. package/src/shell/components/settings/HolidaysSettings.tsx +141 -0
  556. package/src/shell/components/settings/LocationsCrudPage.ts +36 -0
  557. package/src/shell/components/settings/LocationsOverview.tsx +171 -0
  558. package/src/shell/components/settings/SecuritySettings.tsx +208 -0
  559. package/src/shell/components/settings/SettingsPage.tsx +162 -0
  560. package/src/shell/components/settings/UserProfile.tsx +151 -0
  561. package/src/shell/components/settings/index.ts +10 -0
  562. package/src/shell/config/index.ts +6 -0
  563. package/src/shell/config/permissions.ts +31 -0
  564. package/src/shell/config/tailwind-preset.ts +164 -0
  565. package/src/shell/config/theme/dark.ts +63 -0
  566. package/src/shell/config/theme/index.ts +5 -0
  567. package/src/shell/config/theme/light.ts +63 -0
  568. package/src/shell/config/theme/tokens.ts +105 -0
  569. package/src/shell/config/theme/utils.ts +249 -0
  570. package/src/shell/createSaasApp.tsx +922 -0
  571. package/src/shell/hooks/index.ts +18 -0
  572. package/src/shell/hooks/useAITools.ts +139 -0
  573. package/src/shell/hooks/useAuth.ts +109 -0
  574. package/src/shell/hooks/useBilling.ts +151 -0
  575. package/src/shell/hooks/useChat.ts +84 -0
  576. package/src/shell/hooks/useFieldRules.ts +19 -0
  577. package/src/shell/hooks/useFormatters.ts +56 -0
  578. package/src/shell/hooks/useLayout.ts +76 -0
  579. package/src/shell/hooks/useModuleNavigation.ts +124 -0
  580. package/src/shell/hooks/useNotifications.ts +114 -0
  581. package/src/shell/hooks/usePermission.ts +101 -0
  582. package/src/shell/hooks/usePluginPrefs.ts +113 -0
  583. package/src/shell/hooks/usePlugins.ts +18 -0
  584. package/src/shell/hooks/useTenant.ts +106 -0
  585. package/src/shell/hooks/useTenantPlugins.ts +103 -0
  586. package/src/shell/hooks/useTranslation.ts +10 -0
  587. package/src/shell/lib/api.ts +67 -0
  588. package/src/shell/lib/apply-field-rules.ts +14 -0
  589. package/src/shell/lib/auth-adapters/mock.ts +97 -0
  590. package/src/shell/lib/auth-adapters/supabase.ts +96 -0
  591. package/src/shell/lib/auth-context.ts +18 -0
  592. package/src/shell/lib/cache.ts +124 -0
  593. package/src/shell/lib/cn.ts +1 -0
  594. package/src/shell/lib/core-ai-tools.ts +90 -0
  595. package/src/shell/lib/create-client-orders-provider.ts +105 -0
  596. package/src/shell/lib/csv.ts +54 -0
  597. package/src/shell/lib/dedup.ts +17 -0
  598. package/src/shell/lib/entity-registry.ts +39 -0
  599. package/src/shell/lib/entity-routes.ts +53 -0
  600. package/src/shell/lib/format.ts +58 -0
  601. package/src/shell/lib/i18n.ts +3723 -0
  602. package/src/shell/lib/locale-config.ts +14 -0
  603. package/src/shell/lib/org-adapters/mock.ts +318 -0
  604. package/src/shell/lib/org-adapters/supabase.ts +533 -0
  605. package/src/shell/lib/org-context.ts +18 -0
  606. package/src/shell/lib/plugins.ts +11 -0
  607. package/src/shell/lib/router.ts +86 -0
  608. package/src/shell/lib/schedule-config.ts +42 -0
  609. package/src/shell/lib/schedule-service.ts +307 -0
  610. package/src/shell/lib/supabase.ts +19 -0
  611. package/src/shell/stores/auth.store.ts +29 -0
  612. package/src/shell/stores/billing.store.ts +1 -0
  613. package/src/shell/stores/chat.store.ts +45 -0
  614. package/src/shell/stores/index.ts +12 -0
  615. package/src/shell/stores/invite.store.ts +18 -0
  616. package/src/shell/stores/layout.store.ts +1 -0
  617. package/src/shell/stores/locale.store.ts +24 -0
  618. package/src/shell/stores/location.store.ts +89 -0
  619. package/src/shell/stores/notifications.store.ts +48 -0
  620. package/src/shell/stores/organization.store.ts +3 -0
  621. package/src/shell/stores/permissions.store.ts +1 -0
  622. package/src/shell/stores/plugin.store.ts +50 -0
  623. package/src/shell/stores/tenant.store.ts +26 -0
  624. package/src/shell/stores/theme.store.ts +162 -0
  625. package/src/shell/styles.css +433 -0
  626. package/src/shell/test-setup.ts +1 -0
  627. package/src/shell/types/auth-adapter.ts +11 -0
  628. package/src/shell/types/auth.ts +38 -0
  629. package/src/shell/types/billing.ts +90 -0
  630. package/src/shell/types/client-orders.ts +58 -0
  631. package/src/shell/types/crud.ts +134 -0
  632. package/src/shell/types/entities.ts +169 -0
  633. package/src/shell/types/entity-lookup.ts +25 -0
  634. package/src/shell/types/index.ts +16 -0
  635. package/src/shell/types/integrations.ts +51 -0
  636. package/src/shell/types/invite.ts +23 -0
  637. package/src/shell/types/layout.ts +29 -0
  638. package/src/shell/types/notifications.ts +33 -0
  639. package/src/shell/types/org-adapter.ts +72 -0
  640. package/src/shell/types/permissions.ts +64 -0
  641. package/src/shell/types/platform.ts +25 -0
  642. package/src/shell/types/plugins.ts +359 -0
  643. package/src/shell/types/tenant.ts +79 -0
  644. package/src/stores/createCrudStore.ts +138 -0
  645. package/src/supabase/client.ts +54 -0
@@ -0,0 +1,3723 @@
1
+ // Provider + config hook now come from @fayz-ai/core (unified i18n). This file
2
+ // keeps only the locale DATA (defaultTranslations + builtInLocales), which the
3
+ // native createSaasApp registers into @fayz-ai/core via registerTranslations.
4
+ export { I18nProvider, useI18nConfig } from '@fayz-ai/core'
5
+
6
+ // Default EN translations for saas-core components
7
+ export const defaultTranslations: Record<string, string> = {
8
+ // ---------------------------------------------------------------------------
9
+ // common.*
10
+ // ---------------------------------------------------------------------------
11
+ 'common.save': 'Save',
12
+ 'common.saveChanges': 'Save Changes',
13
+ 'common.saving': 'Saving...',
14
+ 'common.cancel': 'Cancel',
15
+ 'common.delete': 'Delete',
16
+ 'common.edit': 'Edit',
17
+ 'common.close': 'Close',
18
+ 'common.confirm': 'Confirm',
19
+ 'common.back': 'Back',
20
+ 'common.add': 'Add',
21
+ 'common.loading': 'Loading...',
22
+ 'common.error': 'Something went wrong',
23
+ 'common.noResults': 'No results found.',
24
+ 'common.search': 'Search',
25
+ 'common.actions': 'Actions',
26
+ 'common.continue': 'Continue',
27
+ 'common.done': 'Done',
28
+ 'common.yes': 'Yes',
29
+ 'common.no': 'No',
30
+ 'common.active': 'Active',
31
+ 'common.inactive': 'Inactive',
32
+ 'common.overview': 'Overview',
33
+ 'common.notFound': 'Not Found',
34
+ 'common.untitled': 'Untitled',
35
+ 'common.noContentYet': 'No content yet',
36
+ 'common.selectDate': 'Select date',
37
+ 'common.plugins': 'Plugins',
38
+
39
+ // ---------------------------------------------------------------------------
40
+ // auth.login.*
41
+ // ---------------------------------------------------------------------------
42
+ 'auth.login.title': 'Sign in',
43
+ 'auth.login.titleCentered': 'Welcome Back',
44
+ 'auth.login.subtitle': 'Enter your credentials to access your account',
45
+ 'auth.login.emailLabel': 'Email',
46
+ 'auth.login.emailPlaceholder': 'you@example.com',
47
+ 'auth.login.passwordLabel': 'Password',
48
+ 'auth.login.passwordPlaceholder': 'Enter your password',
49
+ 'auth.login.forgotPassword': 'Forgot password?',
50
+ 'auth.login.submit': 'Sign in',
51
+ 'auth.login.submitting': 'Signing in...',
52
+ 'auth.login.error': 'Failed to sign in. Please try again.',
53
+ 'auth.login.oauthDivider': 'or continue with',
54
+ 'auth.login.noAccount': "Don't have an account?",
55
+ 'auth.login.noAccountCentered': "Don't have an account yet?",
56
+ 'auth.login.signUpLink': 'Sign up',
57
+ 'auth.login.socialProof': 'Join thousands of businesses already using {{appName}}',
58
+
59
+ // ---------------------------------------------------------------------------
60
+ // auth.signup.*
61
+ // ---------------------------------------------------------------------------
62
+ 'auth.signup.title': 'Create account',
63
+ 'auth.signup.titleCentered': 'Create Account',
64
+ 'auth.signup.subtitle': 'Get started with your new account',
65
+ 'auth.signup.nameLabel': 'Full name',
66
+ 'auth.signup.namePlaceholder': 'John Doe',
67
+ 'auth.signup.emailLabel': 'Email',
68
+ 'auth.signup.emailPlaceholder': 'you@example.com',
69
+ 'auth.signup.passwordLabel': 'Password',
70
+ 'auth.signup.passwordPlaceholder': 'At least 8 characters',
71
+ 'auth.signup.confirmPasswordLabel': 'Confirm password',
72
+ 'auth.signup.confirmPasswordPlaceholder': 'Repeat your password',
73
+ 'auth.signup.termsPrefix': 'By creating an account, you agree to our',
74
+ 'auth.signup.termsOfService': 'Terms of Service',
75
+ 'auth.signup.privacyPolicy': 'Privacy Policy',
76
+ 'auth.signup.submit': 'Create account',
77
+ 'auth.signup.submitting': 'Creating account...',
78
+ 'auth.signup.error': 'Failed to create account. Please try again.',
79
+ 'auth.signup.passwordMismatch': 'Passwords do not match.',
80
+ 'auth.signup.passwordTooShort': 'Password must be at least 8 characters.',
81
+ 'auth.signup.success': 'Account created for {{email}}. Check your inbox to confirm your email before signing in.',
82
+ 'auth.signup.hasAccount': 'Already have an account?',
83
+ 'auth.signup.signInLink': 'Sign in',
84
+
85
+ // ---------------------------------------------------------------------------
86
+ // auth.recovery.*
87
+ // ---------------------------------------------------------------------------
88
+ 'auth.recovery.title': 'Reset password',
89
+ 'auth.recovery.titleCentered': 'Reset Password',
90
+ 'auth.recovery.instruction': 'Enter your email address and we will send you a link to reset your password.',
91
+ 'auth.recovery.subtitle': "We'll send you a reset link",
92
+ 'auth.recovery.emailLabel': 'Email',
93
+ 'auth.recovery.emailPlaceholder': 'you@example.com',
94
+ 'auth.recovery.submit': 'Send reset link',
95
+ 'auth.recovery.submitting': 'Sending...',
96
+ 'auth.recovery.error': 'Failed to send reset email. Please try again.',
97
+ 'auth.recovery.successHeading': 'Check your email',
98
+ 'auth.recovery.successMessage': 'We sent a password reset link to {{email}}. Please check your inbox and follow the instructions.',
99
+ 'auth.recovery.backToLogin': 'Back to login',
100
+
101
+ // ---------------------------------------------------------------------------
102
+ // auth.oauth.*
103
+ // ---------------------------------------------------------------------------
104
+ 'auth.oauth.continueWith': 'Continue with {{provider}}',
105
+
106
+ // ---------------------------------------------------------------------------
107
+ // auth (legacy — kept for backward compat)
108
+ // ---------------------------------------------------------------------------
109
+ 'auth.signIn': 'Sign In',
110
+ 'auth.signUp': 'Sign Up',
111
+ 'auth.signOut': 'Sign Out',
112
+ 'auth.email': 'Email',
113
+ 'auth.password': 'Password',
114
+ 'auth.forgotPassword': 'Forgot Password?',
115
+
116
+ // ---------------------------------------------------------------------------
117
+ // crud.list.*
118
+ // ---------------------------------------------------------------------------
119
+ 'crud.list.empty': 'No {{entities}} yet',
120
+ 'crud.list.addFirst': 'Add your first {{entity}}',
121
+ 'crud.list.totalCount': '{{count}} total {{entities}}',
122
+ 'crud.list.searchPlaceholder': 'Search {{entities}}...',
123
+ 'crud.list.addButton': '+ Add {{entity}}',
124
+
125
+ // ---------------------------------------------------------------------------
126
+ // crud.detail.*
127
+ // ---------------------------------------------------------------------------
128
+ 'crud.detail.notFound': '{{entity}} not found.',
129
+ 'crud.detail.backTo': 'Back to {{entities}}',
130
+
131
+ // ---------------------------------------------------------------------------
132
+ // crud.form.*
133
+ // ---------------------------------------------------------------------------
134
+ 'crud.form.addTitle': 'Add {{entity}}',
135
+ 'crud.form.editTitle': 'Edit {{entity}}',
136
+ 'crud.form.createSubtitle': 'Create a new {{entity}}.',
137
+ 'crud.form.editSubtitle': 'Update {{entity}} details.',
138
+ 'crud.form.newBreadcrumb': 'New {{entity}}',
139
+ 'crud.form.selectPlaceholder': 'Select {{label}}...',
140
+ 'crud.form.saveError': 'Failed to save {{entity}}',
141
+ 'crud.form.saving': 'Saving...',
142
+ 'crud.form.requiredIndicator': '*',
143
+
144
+ // ---------------------------------------------------------------------------
145
+ // crud.import.*
146
+ // ---------------------------------------------------------------------------
147
+ 'crud.import.action': 'Import',
148
+ 'crud.import.title': 'Import {{entity}}',
149
+ 'crud.import.step.download': 'Template',
150
+ 'crud.import.step.upload': 'Upload',
151
+ 'crud.import.step.mapping': 'Mapping',
152
+ 'crud.import.step.importing': 'Import',
153
+ 'crud.import.downloadTitle': 'Download the template',
154
+ 'crud.import.downloadDescription': 'Download a CSV template with all available fields for {{entity}}. Fill it in and upload it in the next step.',
155
+ 'crud.import.downloadTemplate': 'Download CSV template',
156
+ 'crud.import.downloadHint': '{{count}} fields available',
157
+ 'crud.import.alreadyHaveFile': 'I already have a file',
158
+ 'crud.import.uploadTitle': 'Drop your CSV file here or click to browse',
159
+ 'crud.import.uploadHint': 'Only .csv files are accepted',
160
+ 'crud.import.invalidFile': 'Please upload a .csv file.',
161
+ 'crud.import.emptyFile': 'The file appears to be empty.',
162
+ 'crud.import.noRows': 'The file has headers but no data rows.',
163
+ 'crud.import.mappingTitle': 'Map your columns',
164
+ 'crud.import.mappingDescription': '{{file}} — {{columns}} columns, {{rows}} rows',
165
+ 'crud.import.mappedCount': '{{count}} of {{total}} mapped',
166
+ 'crud.import.csvColumn': 'CSV Column',
167
+ 'crud.import.mapsTo': 'Maps to',
168
+ 'crud.import.preview': 'Preview',
169
+ 'crud.import.skip': '— Skip this column',
170
+ 'crud.import.startImport': 'Start import',
171
+ 'crud.import.importing': 'Importing...',
172
+ 'crud.import.importingHint': 'Processing {{count}} rows',
173
+ 'crud.import.progressCount': '{{processed}} of {{total}} rows processed',
174
+ 'crud.import.doneSuccess': 'Import complete!',
175
+ 'crud.import.doneWithErrors': 'Import completed with errors',
176
+ 'crud.import.doneCount': '{{success}} of {{total}} rows imported successfully',
177
+ 'crud.import.rowNumber': 'Row {{row}}:',
178
+ 'crud.import.toastSuccess': '{{count}} records imported',
179
+ 'crud.import.noConnection': 'Not connected to the database. Import requires an active connection.',
180
+
181
+ // ---------------------------------------------------------------------------
182
+ // crud.export.*
183
+ // ---------------------------------------------------------------------------
184
+ 'crud.export.action': 'Export',
185
+ 'crud.export.noData': 'No data to export.',
186
+ 'crud.export.toastSuccess': '{{count}} records exported',
187
+
188
+ // ---------------------------------------------------------------------------
189
+ // crud.delete.*
190
+ // ---------------------------------------------------------------------------
191
+ 'crud.delete.title': 'Delete {{entity}}?',
192
+ 'crud.delete.confirmNamed': 'Are you sure you want to delete "{{displayValue}}"? This action cannot be undone.',
193
+ 'crud.delete.confirmGeneric': 'Are you sure you want to delete this {{entity}}? This action cannot be undone.',
194
+ 'crud.delete.cancel': 'Cancel',
195
+ 'crud.delete.delete': 'Delete',
196
+
197
+ // ---------------------------------------------------------------------------
198
+ // crud.tabs.*
199
+ // ---------------------------------------------------------------------------
200
+ 'crud.tabs.access': 'Access',
201
+ 'crud.tabs.schedule': 'Schedule',
202
+ 'crud.tabs.documents': 'Documents',
203
+ 'crud.tabs.activity': 'Activity',
204
+ 'crud.tabs.inventory': 'Inventory',
205
+ 'crud.tabs.suppliers': 'Suppliers',
206
+ 'crud.tabs.pricing': 'Pricing',
207
+ 'crud.tabs.members': 'Team',
208
+ 'crud.tabs.stats': 'Statistics',
209
+ 'crud.tabs.availability': 'Availability',
210
+ 'crud.tabs.orders': 'Orders',
211
+
212
+ // crud.orders.* — Client orders/documents tab (stage-based)
213
+ 'crud.orders.all': 'All',
214
+ 'crud.orders.columnDate': 'Date',
215
+ 'crud.orders.columnStage': 'Stage',
216
+ 'crud.orders.columnDescription': 'Description',
217
+ 'crud.orders.columnAmount': 'Amount',
218
+ 'crud.orders.searchPlaceholder': 'Search orders...',
219
+ 'crud.orders.noDocuments': 'No orders yet',
220
+ // Stage labels
221
+ 'crud.orders.stage.draft': 'Draft',
222
+ 'crud.orders.stage.quoted': 'Quoted',
223
+ 'crud.orders.stage.booked': 'Booked',
224
+ 'crud.orders.stage.invoiced': 'Invoiced',
225
+ 'crud.orders.stage.paid': 'Paid',
226
+ 'crud.orders.stage.partial': 'Partial',
227
+ 'crud.orders.stage.overdue': 'Overdue',
228
+ 'crud.orders.stage.cancelled': 'Cancelled',
229
+ 'crud.orders.stage.no_show': 'No Show',
230
+ 'crud.orders.stage.completed': 'Completed',
231
+
232
+ // ---------------------------------------------------------------------------
233
+ // layout.userMenu.*
234
+ // ---------------------------------------------------------------------------
235
+ 'layout.userMenu.profile': 'Profile',
236
+ 'layout.userMenu.settings': 'Settings',
237
+ 'layout.userMenu.billing': 'Billing',
238
+ 'layout.userMenu.help': 'Help',
239
+ 'layout.userMenu.lightMode': 'Light mode',
240
+ 'layout.userMenu.darkMode': 'Dark mode',
241
+ 'layout.userMenu.systemMode': 'System',
242
+ 'layout.userMenu.language': 'Language',
243
+ 'layout.userMenu.selectLocation': 'Select location',
244
+ 'layout.switchingLocation': 'Switching location…',
245
+ 'layout.userMenu.signOut': 'Sign out',
246
+
247
+ // ---------------------------------------------------------------------------
248
+ // layout.topbar.*
249
+ // ---------------------------------------------------------------------------
250
+ 'layout.topbar.searchPlaceholder': 'Search...',
251
+ 'layout.topbar.keyboardShortcut': '\u2318K',
252
+
253
+ // ---------------------------------------------------------------------------
254
+ // layout.sidebar.*
255
+ // ---------------------------------------------------------------------------
256
+ 'layout.sidebar.collapse': 'Collapse sidebar',
257
+ 'layout.sidebar.expand': 'Expand sidebar',
258
+
259
+ // ---------------------------------------------------------------------------
260
+ // layout.commandPalette.*
261
+ // ---------------------------------------------------------------------------
262
+ 'layout.commandPalette.placeholder': 'Search pages, people, products, services...',
263
+ 'layout.commandPalette.resultsCount': '{{count}} result{{plural}}',
264
+ 'layout.commandPalette.commandsCount': '{{count}} command{{plural}}',
265
+ 'layout.commandPalette.noResults': 'No results found.',
266
+ 'layout.commandPalette.searching': 'Searching\u2026',
267
+ 'layout.commandPalette.navigate': 'navigate',
268
+ 'layout.commandPalette.open': 'open',
269
+
270
+ // ---------------------------------------------------------------------------
271
+ // billing.*
272
+ // ---------------------------------------------------------------------------
273
+ 'billing.title': 'Billing',
274
+ 'billing.subtitle': 'Manage your subscription and billing.',
275
+ 'billing.currentPlan': 'Current Plan',
276
+ 'billing.upgrade': 'Upgrade',
277
+ 'billing.downgrade': 'Downgrade',
278
+ 'billing.monthly': 'Monthly',
279
+ 'billing.yearly': 'Yearly',
280
+ 'billing.yearlySave': 'Save 20%',
281
+ 'billing.free': 'Free',
282
+ 'billing.cancelSubscription': 'Cancel Subscription',
283
+ 'billing.canceling': 'Canceling...',
284
+ 'billing.resumeSubscription': 'Resume Subscription',
285
+ 'billing.resuming': 'Resuming...',
286
+ 'billing.features': 'Features',
287
+ 'billing.perMonth': '/mo',
288
+ 'billing.perYear': '/yr',
289
+ 'billing.getStarted': 'Get Started',
290
+ 'billing.processing': 'Processing...',
291
+ 'billing.mostPopular': 'Most Popular',
292
+ 'billing.nextBilling': 'Next billing: {{date}}',
293
+ 'billing.cancelsOn': 'Cancels on {{date}}',
294
+ 'billing.trialEnds': 'Trial ends {{date}}',
295
+ 'billing.pastDueWarning': 'Your payment is past due. Please update your payment method to avoid service interruption.',
296
+ 'billing.status.active': 'Active',
297
+ 'billing.status.trialing': 'Trial',
298
+ 'billing.status.pastDue': 'Past Due',
299
+ 'billing.status.canceled': 'Canceled',
300
+ 'billing.status.paused': 'Paused',
301
+
302
+ // ---------------------------------------------------------------------------
303
+ // organization.*
304
+ // ---------------------------------------------------------------------------
305
+ 'organization.invite': 'Invite',
306
+ 'organization.members': 'Members',
307
+ 'organization.memberCount': '{{count}} member{{plural}} in this organization.',
308
+ 'organization.role': 'Role',
309
+ 'organization.emailPlaceholder': 'team@example.com',
310
+ 'organization.sendInvites': 'Send Invites',
311
+ 'organization.sending': 'Sending...',
312
+ 'organization.pending': 'Pending Invites',
313
+ 'organization.remove': 'Remove member',
314
+ 'organization.resend': 'Resend',
315
+ 'organization.revoke': 'Revoke',
316
+ 'organization.inviteTitle': 'Invite Team Members',
317
+ 'organization.inviteDescription': 'Send invites to join your organization.',
318
+ 'organization.inviteSent': 'Invitations sent',
319
+ 'organization.inviteSentDescription': 'Your team members will receive an email with instructions to join.',
320
+ 'organization.emailAddresses': 'Email addresses',
321
+ 'organization.addAnother': 'Add another',
322
+ 'organization.selectRole': 'Select a role',
323
+ 'organization.sent': 'Sent {{date}}',
324
+ 'organization.you': '(you)',
325
+ 'organization.joined': 'Joined',
326
+ 'organization.failedInvites': 'Failed to send invites',
327
+ 'organization.onboarding.title': 'Set up your workspace',
328
+ 'organization.onboarding.namePrompt': 'What should we call your workspace?',
329
+ 'organization.onboarding.preferencesPrompt': 'Regional preferences',
330
+ 'organization.onboarding.workspaceName': 'Workspace name',
331
+ 'organization.onboarding.workspaceNamePlaceholder': 'My Company',
332
+ 'organization.onboarding.timezone': 'Timezone',
333
+ 'organization.onboarding.currency': 'Currency',
334
+ 'organization.onboarding.creating': 'Setting up your workspace',
335
+ 'organization.onboarding.creatingDescription': 'This will only take a moment...',
336
+ 'organization.onboarding.createWorkspace': 'Create Workspace',
337
+ 'organization.onboarding.failedCreate': 'Failed to create workspace',
338
+
339
+ // ---------------------------------------------------------------------------
340
+ // settings.*
341
+ // ---------------------------------------------------------------------------
342
+ 'settings.title': 'Settings',
343
+ 'settings.subtitle': 'Manage your account and organization preferences.',
344
+ 'settings.general': 'General',
345
+ 'settings.profile': 'Profile',
346
+ 'settings.branding': 'Branding',
347
+ 'settings.security': 'Security',
348
+ 'settings.team': 'Team',
349
+ 'settings.permissions': 'Permissions',
350
+ 'settings.locations': 'Locations',
351
+ 'settings.holidays': 'Holidays',
352
+ 'settings.notifications': 'Notifications',
353
+ 'settings.save': 'Save Changes',
354
+ 'settings.saving': 'Saving...',
355
+ 'settings.companyInfo': 'Company Information',
356
+ 'settings.companyInfoDescription': 'Update your organization details and regional preferences.',
357
+ 'settings.companyName': 'Company Name',
358
+ 'settings.companyNamePlaceholder': 'Acme Inc.',
359
+ 'settings.timezone': 'Timezone',
360
+ 'settings.timezonePlaceholder': 'Select timezone',
361
+ 'settings.currency': 'Currency',
362
+ 'settings.currencyPlaceholder': 'Select currency',
363
+ 'settings.locale': 'Locale',
364
+ 'settings.localePlaceholder': 'Select locale',
365
+ 'settings.uploadLogo': 'Upload Logo',
366
+ 'settings.uiLanguage': 'Interface Language',
367
+ 'settings.uiLanguageDescription': 'Choose the language for the user interface. This applies to your session only.',
368
+
369
+ // ---------------------------------------------------------------------------
370
+ // notifications.*
371
+ // ---------------------------------------------------------------------------
372
+ 'notifications.title': 'Notifications',
373
+ 'notifications.markAllRead': 'Mark all read',
374
+ 'notifications.empty': 'No notifications',
375
+ 'notifications.whatsNew': "What's New",
376
+ 'notifications.inbox': 'Inbox',
377
+
378
+ // ---------------------------------------------------------------------------
379
+ // user.* (legacy — kept for backward compat)
380
+ // ---------------------------------------------------------------------------
381
+ 'user.profile': 'Profile',
382
+ 'user.settings': 'Settings',
383
+ 'user.help': 'Help',
384
+ 'user.shortcuts': 'Keyboard Shortcuts',
385
+ 'user.theme': 'Theme',
386
+ 'user.themeLight': 'Light',
387
+ 'user.themeDark': 'Dark',
388
+ 'user.themeSystem': 'System',
389
+
390
+ // ---------------------------------------------------------------------------
391
+ // app.*
392
+ // ---------------------------------------------------------------------------
393
+ 'app.notFound.title': '404',
394
+ 'app.notFound.heading': 'Page not found',
395
+ 'app.notFound.message': "The page you're looking for doesn't exist or has been moved.",
396
+ 'app.notFound.goToDashboard': 'Go to Dashboard',
397
+ 'app.accessDenied.heading': 'Access Denied',
398
+ 'app.accessDenied.message': "You don't have permission to view this page.",
399
+
400
+ // ---------------------------------------------------------------------------
401
+ // Additional keys from component/plugin extraction
402
+ // ---------------------------------------------------------------------------
403
+ 'agenda.appointment.addDescription': 'Add description...',
404
+ 'agenda.appointment.addService': 'Add service',
405
+ 'agenda.appointment.cancel': 'Cancel',
406
+ 'agenda.appointment.clientTab': 'Client',
407
+ 'agenda.appointment.noClientData': 'No client data available',
408
+ 'agenda.appointment.client': 'Client',
409
+ 'agenda.appointment.conflict': 'Time conflict — this professional is already booked at this time.',
410
+ 'agenda.appointment.create': 'Create',
411
+ 'agenda.appointment.createClientFailed': 'Failed to create client',
412
+ 'agenda.appointment.creating': 'Creating...',
413
+ 'agenda.appointment.delete': 'Delete',
414
+ 'agenda.appointment.deleteConfirm': 'Delete this appointment?',
415
+ 'agenda.appointment.confirmDelete': 'Delete',
416
+ 'agenda.appointment.deleting': 'Deleting…',
417
+ 'agenda.appointment.edit': 'Edit Appointment',
418
+ 'agenda.appointment.emailOptional': 'Email (optional)',
419
+ 'agenda.appointment.location': 'Location',
420
+ 'agenda.appointment.name': 'Name',
421
+ 'agenda.appointment.new': 'New Appointment',
422
+ 'agenda.appointment.newClient': 'New client',
423
+ 'agenda.appointment.notes': 'Notes',
424
+ 'agenda.appointment.phone': 'Phone',
425
+ 'agenda.appointment.professional': 'Professional',
426
+ 'agenda.appointment.save': 'Save',
427
+ 'agenda.appointment.saving': 'Saving...',
428
+ 'agenda.appointment.searchClient': 'Search client...',
429
+ 'agenda.appointment.searchService': 'Search service to add...',
430
+ 'agenda.appointment.selectLocation': 'Select location...',
431
+ 'agenda.appointment.selectProfessional': 'Select professional...',
432
+ 'agenda.appointment.services': 'Services',
433
+ 'agenda.appointment.status': 'Status',
434
+ 'agenda.appointment.to': 'to',
435
+ 'agenda.appointment.total': 'Total',
436
+ 'agenda.appointment.update': 'Update',
437
+ 'agenda.payment.title': 'Payment',
438
+ 'agenda.payment.generateInvoice': 'Generate invoice',
439
+ 'agenda.payment.generating': 'Generating…',
440
+ 'agenda.payment.pending': 'Pending',
441
+ 'agenda.payment.partial': 'Partial',
442
+ 'agenda.payment.paid': 'Paid',
443
+ 'agenda.payment.collect': 'Collect',
444
+ 'agenda.payment.overdue': 'Overdue',
445
+ 'agenda.payment.cancelled': 'Cancelled',
446
+ 'agenda.payment.none': 'Payment',
447
+ 'agenda.payment.pay': 'Pay',
448
+ 'agenda.payment.paying': 'Paying…',
449
+ 'agenda.payment.remaining': 'Remaining',
450
+ 'agenda.payment.installment': 'Installment',
451
+ 'agenda.payment.total': 'Total',
452
+ 'agenda.payment.noInvoice': 'No invoice generated',
453
+ 'agenda.payment.selectAccount': 'Select account',
454
+ 'agenda.payment.registerPayment': 'Register payment',
455
+ 'agenda.payment.registerPaymentHint': 'Record a payment for this appointment',
456
+ 'agenda.payment.pendingHint': 'Invoice generated, awaiting payment',
457
+ 'agenda.payment.partialHint': 'Partially paid, tap to complete',
458
+ 'agenda.payment.paidHint': 'Payment completed',
459
+ 'agenda.payment.overdueHint': 'Payment overdue',
460
+ 'agenda.payment.backToAppointment': 'Back to appointment',
461
+ 'agenda.payment.checkout': 'Confirm',
462
+ 'agenda.payment.checkingOut': 'Processing…',
463
+ 'agenda.payment.serviceSummary': 'Service summary',
464
+ 'agenda.payment.paymentMethod': 'Payment method',
465
+ 'agenda.payment.checkoutComplete': 'Payment confirmed',
466
+ 'agenda.payment.card': 'Card',
467
+ 'agenda.payment.method': 'Method',
468
+ 'agenda.payment.select': 'Select…',
469
+ 'agenda.payment.cardBrand': 'Brand',
470
+ 'agenda.payment.selectBrand': 'Select brand…',
471
+ 'agenda.payment.cardInstallments': 'Installments',
472
+ 'agenda.payment.bankAccount': 'Account',
473
+ 'agenda.payment.viewInvoice': 'View invoice details',
474
+ 'agenda.calendar.agendas': 'Agendas',
475
+ 'agenda.calendar.create': 'Create',
476
+ 'agenda.calendar.next': 'Next',
477
+ 'agenda.calendar.previous': 'Previous',
478
+ 'agenda.calendar.status': 'Status',
479
+ 'agenda.calendar.today': 'Today',
480
+ 'agenda.calendar.viewAgenda': 'Agenda',
481
+ 'agenda.calendar.viewDay': 'Day',
482
+ 'agenda.calendar.viewMonth': 'Month',
483
+ 'agenda.calendar.viewWeek': 'Week',
484
+ 'agenda.confirmations.confirmed': 'Confirmed:',
485
+ 'agenda.confirmations.empty': 'No pending confirmations',
486
+ 'agenda.confirmations.emptySubtitle': 'All upcoming appointments have been confirmed',
487
+ 'agenda.confirmations.loading': 'Loading...',
488
+ 'agenda.confirmations.subtitle': 'Upcoming appointments pending confirmation',
489
+ 'agenda.confirmations.unknownClient': 'Unknown client',
490
+ 'agenda.confirmations.sendWhatsApp': 'Send WhatsApp',
491
+ 'agenda.confirmations.call': 'Call',
492
+ 'agenda.confirmations.markConfirmed': 'Mark Confirmed',
493
+ 'agenda.confirmations.markCancelled': 'Mark Cancelled',
494
+ 'agenda.contextMenu.changeStatus': 'Change status',
495
+ 'agenda.contextMenu.delete': 'Delete',
496
+ 'agenda.contextMenu.edit': 'Edit',
497
+ 'agenda.contextMenu.notAvailable': '(not available)',
498
+ 'agenda.index.settingsSubtitle': 'Working hours, scheduling preferences, and confirmations',
499
+ 'agenda.index.settingsTitle': 'Agenda Settings',
500
+ 'agenda.popover.unknown': 'Unknown',
501
+ 'agenda.settings.autoConfirm': 'Auto-confirm new bookings',
502
+ 'agenda.settings.autoConfirmDesc': 'Automatically mark new appointments as confirmed',
503
+ 'agenda.settings.autoCreateOrder': 'Auto-create service order',
504
+ 'agenda.settings.autoCreateOrderDesc': 'Create a financial record when booking is completed',
505
+ 'agenda.settings.blockOutside': 'Block outside hours',
506
+ 'agenda.settings.blockOutsideDesc': 'Prevent booking outside of defined working hours',
507
+ 'agenda.settings.calendarDisplay': 'Calendar Display',
508
+ 'agenda.settings.calendarDisplayDesc': 'Visual preferences for the agenda view',
509
+ 'agenda.settings.cancelAlerts': 'Cancellation alerts',
510
+ 'agenda.settings.cancelAlertsDesc': 'Alert when a client cancels an appointment',
511
+ 'agenda.settings.compact': 'Compact time slots',
512
+ 'agenda.settings.compactDesc': 'Use smaller time slots for a denser calendar view',
513
+ 'agenda.settings.confirmations': 'Confirmations',
514
+ 'agenda.settings.confirmationsDesc': 'Appointment reminders and confirmations',
515
+ 'agenda.settings.conflictDetection': 'Conflict detection',
516
+ 'agenda.settings.conflictDetectionDesc': 'Warn when appointments overlap for the same professional',
517
+ 'agenda.settings.dragDrop': 'Drag and drop rescheduling',
518
+ 'agenda.settings.dragDropDesc': 'Allow dragging appointments to reschedule on the calendar',
519
+ 'agenda.settings.enableConfirmations': 'Enable confirmations',
520
+ 'agenda.settings.enableConfirmationsDesc': 'Send reminders and track confirmation status',
521
+ 'agenda.settings.enableLocation': 'Enable location selection',
522
+ 'agenda.settings.enableLocationDesc': 'Assign locations to schedules and bookings',
523
+ 'agenda.settings.enableWorkingHours': 'Enable working hours',
524
+ 'agenda.settings.enableWorkingHoursDesc': 'Manage staff availability and show non-working hours on calendar',
525
+ 'agenda.settings.locations': 'Locations',
526
+ 'agenda.settings.locationsDesc': 'Room and location assignment for schedules and bookings',
527
+ 'agenda.settings.newBookingNotif': 'New booking notification',
528
+ 'agenda.settings.newBookingNotifDesc': 'Notify when a new appointment is created',
529
+ 'agenda.settings.noShowTracking': 'No-show tracking',
530
+ 'agenda.settings.noShowTrackingDesc': 'Flag clients who frequently miss appointments',
531
+ 'agenda.settings.notifications': 'Notifications',
532
+ 'agenda.settings.notificationsDesc': 'Alerts for staff and management',
533
+ 'agenda.settings.reminder': 'Reminder before appointment',
534
+ 'agenda.settings.reminderDesc': 'Send a reminder notification before the appointment',
535
+ 'agenda.settings.scheduling': 'Scheduling',
536
+ 'agenda.settings.schedulingDesc': 'Calendar behavior and booking preferences',
537
+ 'agenda.settings.showCancelled': 'Show cancelled appointments',
538
+ 'agenda.settings.showCancelledDesc': 'Display cancelled bookings on the calendar (dimmed)',
539
+ 'agenda.settings.showNoShow': 'Show no-show appointments',
540
+ 'agenda.settings.showNoShowDesc': 'Display no-show bookings on the calendar',
541
+ 'agenda.settings.workingHours': 'Working Hours',
542
+ 'agenda.settings.workingHoursDesc': 'Staff schedule and availability',
543
+ 'agenda.sidebar.agendas': 'Agendas',
544
+ 'agenda.sidebar.allLocations': 'All locations',
545
+ 'agenda.sidebar.create': 'Create',
546
+ 'agenda.sidebar.location': 'Location',
547
+ 'agenda.sidebar.status': 'Status',
548
+ 'agenda.toolbar.next': 'Next',
549
+ 'agenda.toolbar.previous': 'Previous',
550
+ 'agenda.toolbar.today': 'Today',
551
+ 'agenda.workingHours.addBreak': 'Add break',
552
+ 'agenda.workingHours.copyToAll': 'Copy to all',
553
+ 'agenda.workingHours.dayOff': 'Day off',
554
+ 'agenda.workingHours.removePeriod': 'Remove period',
555
+ 'agenda.workingHours.professional': 'Professional',
556
+ 'agenda.workingHours.save': 'Save',
557
+ 'agenda.workingHours.saveFailed': 'Failed to save',
558
+ 'agenda.workingHours.saved': 'Working hours saved',
559
+ 'agenda.workingHours.saving': 'Saving...',
560
+ 'agenda.workingHours.subtitle': 'Manage working hours per professional',
561
+ 'agenda.workingHours.to': 'to',
562
+ 'auth.login.enterCredentials': 'Enter your credentials to access your account',
563
+ 'auth.login.failedDefault': 'Failed to sign in. Please try again.',
564
+ 'auth.login.failedWithProvider': 'Failed to sign in with {{provider}}.',
565
+ 'auth.login.orContinueWith': 'or continue with',
566
+ 'auth.login.placeholder.email': 'you@example.com',
567
+ 'auth.login.placeholder.password': 'Enter your password',
568
+ 'auth.login.signingIn': 'Signing in...',
569
+ 'auth.login.welcomeBack': 'Welcome Back',
570
+ 'auth.login.welcomeTo': 'Welcome to {{appName}}',
571
+ 'auth.recovery.checkEmail': 'Check your email',
572
+ 'auth.recovery.description': 'Enter your email address and we will send you a link to reset your password.',
573
+ 'auth.recovery.failedDefault': 'Failed to send reset email. Please try again.',
574
+ 'auth.recovery.resetLinkSent': 'We sent a password reset link to <strong>{{email}}</strong>. Please check your inbox and follow the instructions.',
575
+ 'auth.recovery.sendResetLink': 'Send reset link',
576
+ 'auth.recovery.sending': 'Sending...',
577
+ 'auth.signup.confirmPassword': 'Confirm password',
578
+ 'auth.signup.creating': 'Creating account...',
579
+ 'auth.signup.emailVerification': 'Account created for {{email}}. Check your inbox to confirm your email before signing in.',
580
+ 'auth.signup.failedDefault': 'Failed to create account. Please try again.',
581
+ 'auth.signup.fullName': 'Full name',
582
+ 'auth.signup.getStarted': 'Get started with your new account',
583
+ 'auth.signup.passwordMinLength': 'Password must be at least 8 characters.',
584
+ 'auth.signup.passwordsMismatch': 'Passwords do not match.',
585
+ 'auth.signup.placeholder.confirm': 'Repeat your password',
586
+ 'auth.signup.placeholder.name': 'John Doe',
587
+ 'auth.signup.placeholder.password': 'At least 8 characters',
588
+ 'auth.signup.termsAgreement': 'By creating an account, you agree to our',
589
+ 'billing.invoice.amount': 'Amount',
590
+ 'billing.invoice.date': 'Date',
591
+ 'billing.invoice.invoice': 'Invoice',
592
+ 'billing.invoice.noInvoices': 'No invoices yet',
593
+ 'billing.invoice.status': 'Status',
594
+ 'billing.paywall.notAvailable': 'This feature is not available on your current plan.',
595
+ 'billing.paywall.requiresPlan': 'This feature requires the {{plan}} plan or higher.',
596
+ 'billing.paywall.upgradeRequired': 'Upgrade Required',
597
+ 'billing.paywall.viewPlans': 'View Plans',
598
+ 'chat.defaultTitle': 'Assistant',
599
+ 'chat.tryAsking': 'Try asking',
600
+ 'chat.fab.tryIt': 'Try it',
601
+ 'chat.messagePlaceholder': 'Message...',
602
+ 'chat.toolsAvailable': '{{count}} tools available',
603
+ // Dashboard
604
+ 'chat.suggestion.dashboard.kpi-summary.0': 'How is my business doing today?',
605
+ 'chat.suggestion.dashboard.kpi-summary.1': "What's my revenue today?",
606
+ 'chat.suggestion.dashboard.kpi-summary.2': 'Give me a summary of today',
607
+ // Agenda
608
+ 'chat.suggestion.agenda.list-appointments.0': "What's on the agenda today?",
609
+ 'chat.suggestion.agenda.list-appointments.1': "Show me tomorrow's appointments",
610
+ 'chat.suggestion.agenda.list-appointments.2': 'Who has the most bookings this week?',
611
+ 'chat.suggestion.agenda.create-appointment.0': 'Book a haircut for Sarah tomorrow at 10am',
612
+ 'chat.suggestion.agenda.check-availability.0': 'When is Ana available tomorrow?',
613
+ 'chat.suggestion.agenda.check-availability.1': 'Find a 90-minute slot for Carlos this week',
614
+ // Financial
615
+ 'chat.suggestion.financial.get-revenue.0': 'How much did we make today?',
616
+ 'chat.suggestion.financial.get-revenue.1': "What's this month's revenue?",
617
+ 'chat.suggestion.financial.get-revenue.2': "Compare this week's revenue to last week",
618
+ 'chat.suggestion.financial.create-invoice.0': 'Create an invoice for a new client',
619
+ 'chat.suggestion.financial.list-payables.0': 'Show me overdue bills',
620
+ 'chat.suggestion.financial.list-payables.1': 'What bills are due this week?',
621
+ // Inventory
622
+ 'chat.suggestion.inventory.low-stock.0': 'Which products are running low?',
623
+ 'chat.suggestion.inventory.low-stock.1': 'Show me a stock summary',
624
+ 'chat.suggestion.inventory.low-stock.2': 'What are my most used products?',
625
+ // CRM
626
+ 'chat.suggestion.crm.count-customers.0': 'How many customers do we have?',
627
+ 'chat.suggestion.crm.count-customers.1': 'Who are my top customers?',
628
+ 'chat.suggestion.crm.list-leads.0': 'Show new leads from this week',
629
+ 'chat.suggestion.crm.list-leads.1': 'Which leads need follow-up?',
630
+ 'chat.suggestion.crm.list-leads.2': "What's our conversion rate?",
631
+ // Custom Forms
632
+ 'chat.suggestion.custom_forms.list-templates.0': 'What forms do we have?',
633
+ 'chat.suggestion.custom_forms.list-templates.1': 'Show me anamnesis templates',
634
+ 'chat.suggestion.custom_forms.list-documents.0': "Show this client's documents",
635
+ 'common.create': 'Create',
636
+ 'common.feature': 'Feature',
637
+ 'common.message': 'Message...',
638
+ 'common.more': 'More',
639
+ 'common.noContent': 'No content yet',
640
+ 'crm.activities.activitiesLogged': 'Activities are logged from lead and deal interactions',
641
+ 'crm.activities.all': 'All',
642
+ 'crm.activities.completedFilter': 'Completed',
643
+ 'crm.activities.done': 'Done',
644
+ 'crm.activities.noActivities': 'No activities',
645
+ 'crm.activities.noActivitiesOfType': 'No activities of type "{{type}}"',
646
+ 'crm.activities.overdue': 'overdue',
647
+ 'crm.activities.overdueLabel': 'Overdue',
648
+ 'crm.activities.pending': 'pending',
649
+ 'crm.activities.pendingFilter': 'Pending',
650
+ 'crm.activities.title': 'Activities',
651
+ 'crm.dashboard.activeDeals': '{{count}} active deals',
652
+ 'crm.dashboard.avgDealValue': 'Avg deal value',
653
+ 'crm.dashboard.leadsCount': '{{count}} leads',
654
+ 'crm.dashboard.quotesCount': '{{count}} quotes',
655
+ 'crm.dashboard.conversionRate': 'Conversion Rate',
656
+ 'crm.dashboard.conversionRateLabel': 'Conversion rate',
657
+ 'crm.dashboard.createFirstLead': 'Create your first lead to see the funnel',
658
+ 'crm.dashboard.dealsWon': 'Deals won this month',
659
+ 'crm.dashboard.leadToDeal': 'Lead to deal',
660
+ 'crm.dashboard.newThisMonth': '{{count}} new this month',
661
+ 'crm.dashboard.noLeadsYet': 'No leads yet. Capture your first lead to get started.',
662
+ 'crm.dashboard.noPipelineData': 'No pipeline data yet',
663
+ 'crm.dashboard.noQuotesYet': 'No quotes yet.',
664
+ 'crm.dashboard.openPipeline': 'Open Pipeline',
665
+ 'crm.dashboard.overdueCount': '{{count}} overdue',
666
+ 'crm.dashboard.pendingTasks': 'Pending Tasks',
667
+ 'crm.dashboard.performance': 'Performance',
668
+ 'crm.dashboard.pipelineOverview': 'Pipeline Overview',
669
+ 'crm.dashboard.pipelineValue': 'Pipeline Value',
670
+ 'crm.dashboard.recentLeads': 'Recent Leads',
671
+ 'crm.dashboard.recentQuotes': 'Recent Quotes',
672
+ 'crm.dashboard.revenueWon': 'Revenue won',
673
+ 'crm.dashboard.totalDeals': '{{count}} total deals',
674
+ 'crm.dashboard.totalLeads': 'Total Leads',
675
+ 'crm.dealSidebar.activitiesAppear': 'Activities will appear here as they are logged',
676
+ 'crm.dealSidebar.activity': 'Activity',
677
+ 'crm.dealSidebar.assignedTo': 'Assigned to',
678
+ 'crm.dealSidebar.contact': 'Contact',
679
+ 'crm.dealSidebar.created': 'Created',
680
+ 'crm.dealSidebar.deal': 'Deal',
681
+ 'crm.dealSidebar.dealNotFound': 'Deal not found',
682
+ 'crm.dealSidebar.expectedClose': 'Expected close',
683
+ 'crm.dealSidebar.noActivities': 'No activities yet',
684
+ 'crm.dealSidebar.noQuotes': 'No quotes linked',
685
+ 'crm.dealSidebar.notes': 'Notes',
686
+ 'crm.dealSidebar.overview': 'Overview',
687
+ 'crm.dealSidebar.probability': 'Probability',
688
+ 'crm.dealSidebar.quotes': 'Quotes',
689
+ 'crm.dealSidebar.quotesAppear': 'Quotes created for this lead will appear here',
690
+ 'crm.dealSidebar.stage': 'Stage',
691
+ 'crm.dealSidebar.tags': 'Tags',
692
+ 'crm.dealSidebar.updated': 'Updated',
693
+ 'crm.dealSidebar.value': 'Value',
694
+ 'crm.dealSidebar.viewLeadProfile': 'View Full Lead Profile',
695
+ 'crm.leadDetail.assignedTo': 'Assigned to',
696
+ 'crm.leadDetail.backToList': 'Back to list',
697
+ 'crm.leadDetail.company': 'Company',
698
+ 'crm.leadDetail.contactInfo': 'Contact Information',
699
+ 'crm.leadDetail.createQuote': 'Create Quote',
700
+ 'crm.leadDetail.created': 'Created',
701
+ 'crm.leadDetail.dealStatus': 'Deal status',
702
+ 'crm.leadDetail.dealValue': 'Deal value',
703
+ 'crm.leadDetail.details': 'Details',
704
+ 'crm.leadDetail.email': 'Email',
705
+ 'crm.leadDetail.leadNotFound': 'Lead not found',
706
+ 'crm.leadDetail.leads': 'Leads',
707
+ 'crm.leadDetail.loading': 'Loading...',
708
+ 'crm.leadDetail.notFound': 'Not found',
709
+ 'crm.leadDetail.notes': 'Notes',
710
+ 'crm.leadDetail.phone': 'Phone',
711
+ 'crm.leadDetail.pipeline': 'Pipeline',
712
+ 'crm.leadDetail.probability': 'Probability',
713
+ 'crm.leadDetail.quotes': 'Quotes',
714
+ 'crm.leadDetail.source': 'Source',
715
+ 'crm.leadDetail.stage': 'Stage',
716
+ 'crm.leadDetail.tags': 'Tags',
717
+ 'crm.leadDetail.updated': 'Updated',
718
+ 'crm.leadDetail.value': 'Value',
719
+ 'crm.leadForm.cancel': 'Cancel',
720
+ 'crm.leadForm.company': 'Company',
721
+ 'crm.leadForm.companyPlaceholder': 'Company name',
722
+ 'crm.leadForm.email': 'Email',
723
+ 'crm.leadForm.emailPlaceholder': 'email@example.com',
724
+ 'crm.leadForm.name': 'Name *',
725
+ 'crm.leadForm.namePlaceholder': 'Contact name',
726
+ 'crm.leadForm.notes': 'Notes',
727
+ 'crm.leadForm.notesPlaceholder': 'Additional notes...',
728
+ 'crm.leadForm.phone': 'Phone',
729
+ 'crm.leadForm.phonePlaceholder': '+55 11 99999-9999',
730
+ 'crm.leadForm.save': 'Save',
731
+ 'crm.leadForm.saving': 'Saving...',
732
+ 'crm.leadForm.subtitle': 'Capture a new lead',
733
+ 'crm.leadForm.title': 'New Lead',
734
+ 'crm.leads.captureFirst': 'Capture your first lead',
735
+ 'crm.leads.contactCol': 'Contact',
736
+ 'crm.leads.name': 'Name',
737
+ 'crm.leads.newLead': 'New Lead',
738
+ 'crm.leads.noLeads': 'No leads yet',
739
+ 'crm.leads.searchPlaceholder': 'Search leads...',
740
+ 'crm.leads.source': 'Source',
741
+ 'crm.leads.statusCol': 'Status',
742
+ 'crm.leads.title': 'Leads',
743
+ 'crm.page.logActivity': 'Log Activity',
744
+ 'crm.page.logActivityDesc': 'Record a call, email, or note',
745
+ 'crm.page.newDeal': 'New Deal',
746
+ 'crm.page.newDealDesc': 'Create a deal from pipeline',
747
+ 'crm.page.newLead': 'New Lead',
748
+ 'crm.page.newLeadDesc': 'Capture a new lead',
749
+ 'crm.page.newQuote': 'New Quote',
750
+ 'crm.page.newQuoteDesc': 'Send a proposal',
751
+ 'crm.page.settingsSubtitle': 'Configure pipeline, lead management, and registries',
752
+ 'crm.page.settingsTitle': 'Sales & CRM Settings',
753
+ 'crm.pipeline.dropHere': 'Drop here',
754
+ 'crm.pipeline.moveFailed': 'Failed to move deal',
755
+ 'crm.pipeline.movedTo': 'Moved to {{stage}}',
756
+ 'crm.pipeline.noDeals': 'No deals',
757
+ 'crm.pipeline.subtitle': 'Drag deals between stages',
758
+ 'crm.pipeline.title': 'Pipeline',
759
+ 'crm.quoteDetail.backToList': 'Back to list',
760
+ 'crm.quoteDetail.client': 'Client',
761
+ 'crm.quoteDetail.date': 'Date',
762
+ 'crm.quoteDetail.description': 'Description',
763
+ 'crm.quoteDetail.discount': 'Discount',
764
+ 'crm.quoteDetail.edit': 'Edit',
765
+ 'crm.quoteDetail.send': 'Send',
766
+ 'crm.quoteDetail.sending': 'Sending...',
767
+ 'crm.quoteDetail.sendPrint': 'Print',
768
+ 'crm.quoteDetail.sendEmail': 'Send by E-mail',
769
+ 'crm.quoteDetail.sendWhatsApp': 'Send by WhatsApp',
770
+ 'crm.quoteDetail.approve': 'Approve',
771
+ 'crm.quoteDetail.approving': 'Approving...',
772
+ 'crm.quoteDetail.reject': 'Reject',
773
+ 'crm.quoteDetail.rejecting': 'Rejecting...',
774
+ 'crm.quoteDetail.confirmReject': 'Confirm Rejection',
775
+ 'crm.quoteDetail.rejectDescription': 'Provide a reason for rejecting this quote.',
776
+ 'crm.quoteDetail.rejectReasonPlaceholder': 'Reason for rejection...',
777
+ 'crm.quoteDetail.invoiceCreated': 'Invoice created from this quote',
778
+ 'crm.quoteDetail.items': 'Items',
779
+ 'crm.quoteDetail.loading': 'Loading...',
780
+ 'crm.quoteDetail.notFound': 'Quote not found',
781
+ 'crm.quoteDetail.notes': 'Notes',
782
+ 'crm.quoteDetail.paymentConditions': 'Payment Conditions',
783
+ 'crm.quoteDetail.qty': 'Qty',
784
+ 'crm.quoteDetail.quoteNumber': 'Quote {{number}}',
785
+ 'crm.quoteDetail.rejectionReason': 'Rejection reason',
786
+ 'crm.quoteDetail.subtotal': 'Subtotal',
787
+ 'crm.quoteDetail.title': 'Quotes',
788
+ 'crm.quoteDetail.total': 'Total',
789
+ 'crm.quoteDetail.unitPrice': 'Unit Price',
790
+ 'crm.quoteDetail.validUntil': 'Valid Until',
791
+ 'crm.quoteDetail.viewInvoice': 'View Invoice',
792
+ 'crm.quoteForm.addFirstItem': 'Add your first item',
793
+ 'crm.quoteForm.addItem': 'Add Item',
794
+ 'crm.quoteForm.cancel': 'Cancel',
795
+ 'crm.quoteForm.client': 'Client',
796
+ 'crm.quoteForm.description': 'Description',
797
+ 'crm.quoteForm.discount': 'Discount',
798
+ 'crm.quoteForm.done': 'Done',
799
+ 'crm.quoteForm.editSubtitle': 'Update this proposal',
800
+ 'crm.quoteForm.editTitle': 'Edit Quote',
801
+ 'crm.quoteForm.itemCount': '{{count}} items',
802
+ 'crm.quoteForm.itemDescriptionPlaceholder': 'Item description',
803
+ 'crm.quoteForm.loading': 'Loading...',
804
+ 'crm.quoteForm.newSubtitle': 'Create a proposal for your client',
805
+ 'crm.quoteForm.newTitle': 'New Quote',
806
+ 'crm.quoteForm.noDescription': 'No description',
807
+ 'crm.quoteForm.noItems': 'No items added',
808
+ 'crm.quoteForm.notes': 'Notes',
809
+ 'crm.quoteForm.notesPlaceholder': 'Internal observations...',
810
+ 'crm.quoteForm.paymentConditions': 'Payment Conditions',
811
+ 'crm.quoteForm.paymentConditionsPlaceholder': 'e.g. 50% upfront, 50% on delivery',
812
+ 'crm.quoteForm.qty': 'Qty',
813
+ 'crm.quoteForm.quoteDate': 'Quote Date',
814
+ 'crm.quoteForm.quoteDetails': 'Quote Details',
815
+ 'crm.quoteForm.quoteItems': 'Quote Items',
816
+ 'crm.quoteForm.saveChanges': 'Save Changes',
817
+ 'crm.quoteForm.saveQuote': 'Save Quote',
818
+ 'crm.quoteForm.saving': 'Saving...',
819
+ 'crm.quoteForm.searchClient': 'Search client...',
820
+ 'crm.quoteForm.addAsLead': 'Add as lead',
821
+ 'crm.quoteForm.selectItemType': 'Select item type:',
822
+ 'crm.quoteForm.statusApproved': 'Approved',
823
+ 'crm.quoteForm.statusDraft': 'Draft',
824
+ 'crm.quoteForm.statusExpired': 'Expired',
825
+ 'crm.quoteForm.statusRejected': 'Rejected',
826
+ 'crm.quoteForm.statusSent': 'Sent',
827
+ 'crm.quoteForm.total': 'Total',
828
+ 'crm.quoteForm.unitPrice': 'Unit Price',
829
+ 'crm.quoteForm.validUntil': 'Valid Until',
830
+ 'crm.quotes.amount': 'Amount',
831
+ 'crm.quotes.contact': 'Contact',
832
+ 'crm.quotes.createFirst': 'Create your first quote',
833
+ 'crm.quotes.date': 'Date',
834
+ 'crm.quotes.newQuote': 'New Quote',
835
+ 'crm.quotes.noQuotes': 'No quotes yet',
836
+ 'crm.quotes.quotesCount': '{{count}} quotes',
837
+ 'crm.quotes.status': 'Status',
838
+ 'crm.quotes.title': 'Quotes',
839
+ 'crud.form.createDescription': 'Create a new {{entity}}.',
840
+ 'crud.form.editDescription': 'Update {{entity}} details.',
841
+ 'crud.form.failedToSave': 'Failed to save {{entity}}',
842
+ 'crud.form.saveChanges': 'Save Changes',
843
+ 'crud.form.select': 'Select {{field}}...',
844
+ 'crud.list.addEntity': '+ Add {{entity}}',
845
+ 'crud.list.search': 'Search {{entities}}...',
846
+ 'financial.cards.installment': 'Installment {{current}}/{{total}}',
847
+ 'financial.cards.noTransactions': 'No card transactions',
848
+ 'financial.cards.pending': 'Pending',
849
+ 'financial.cards.received': 'Received',
850
+ 'financial.cards.subtitle': 'Credit and debit card transactions',
851
+ 'financial.cards.title': 'Cards',
852
+ 'financial.cards.transactions': '({{count}} transactions)',
853
+ 'financial.cards.transactionsAppear': 'Card transactions will appear here when payments are made via credit/debit cards',
854
+ 'financial.cashRegisters.addNotes': 'Add notes',
855
+ 'financial.cashRegisters.back': 'Back',
856
+ 'financial.cashRegisters.bills': 'Bills',
857
+ 'financial.cashRegisters.closeSession': 'Close Session',
858
+ 'financial.cashRegisters.closeThisSession': 'Close this session',
859
+ 'financial.cashRegisters.closing': 'Closing...',
860
+ 'financial.cashRegisters.closingBalance': 'Closing Balance',
861
+ 'financial.cashRegisters.closingNotes': 'Closing Notes',
862
+ 'financial.cashRegisters.coins': 'Coins',
863
+ 'financial.cashRegisters.confirmOpen': 'Confirm & Open',
864
+ 'financial.cashRegisters.confirmOpening': 'Confirm Cash Opening',
865
+ 'financial.cashRegisters.count': 'Count',
866
+ 'financial.cashRegisters.countBills': 'Count Bills & Coins',
867
+ 'financial.cashRegisters.countedTotal': 'Counted Total',
868
+ 'financial.cashRegisters.denominationCount': 'Denomination count',
869
+ 'financial.cashRegisters.differenceFromOpening': 'Difference from opening',
870
+ 'financial.cashRegisters.method': 'Method',
871
+ 'financial.cashRegisters.noCashAccounts': 'No cash register accounts found. Create a bank account with type "Cash Register" first.',
872
+ 'financial.cashRegisters.noClosedSessions': 'No closed sessions yet',
873
+ 'financial.cashRegisters.openAnother': 'Open another register',
874
+ 'financial.cashRegisters.openSession': 'Open Session',
875
+ 'financial.cashRegisters.openSessions': 'Open Sessions',
876
+ 'financial.cashRegisters.opened': 'Opened',
877
+ 'financial.cashRegisters.opening': 'Opening...',
878
+ 'financial.cashRegisters.openingBalance': 'Opening Balance',
879
+ 'financial.cashRegisters.quickAmount': 'Quick Amount',
880
+ 'financial.cashRegisters.register': 'Register',
881
+ 'financial.cashRegisters.sessionHistory': 'Session History',
882
+ 'financial.cashRegisters.subtitle': 'Open, count and close cash sessions',
883
+ 'financial.commissions.comingSoon': 'Coming soon',
884
+ 'financial.commissions.subtitle': 'Team commissions',
885
+ 'financial.invoice.accountsPayable': 'Accounts Payable',
886
+ 'financial.invoice.accountsReceivable': 'Accounts Receivable',
887
+ 'financial.invoice.cancelConfirm': 'This action cannot be undone.',
888
+ 'financial.invoice.cancelDesc': 'The invoice will be marked as cancelled. All pending installments will also be cancelled. This invoice will no longer count towards totals.',
889
+ 'financial.invoice.cancelInvoice': 'Cancel Invoice',
890
+ 'financial.invoice.cancelling': 'Cancelling...',
891
+ 'financial.invoice.contact': 'Contact',
892
+ 'financial.invoice.createFirst': 'Create your first invoice',
893
+ 'financial.invoice.date': 'Date',
894
+ 'financial.invoice.booking': 'Booking',
895
+ 'financial.invoice.discount': 'Discount',
896
+ 'financial.invoice.due': 'Due:',
897
+ 'financial.invoice.edit': 'Edit',
898
+ 'financial.invoice.fullyPaid': 'Fully paid',
899
+ 'financial.invoice.installments': 'Installments',
900
+ 'financial.invoice.invoices': '{{count}} invoices',
901
+ 'financial.invoice.items': 'Items',
902
+ 'financial.invoice.keepInvoice': 'Keep Invoice',
903
+ 'financial.invoice.new': 'New',
904
+ 'financial.invoice.noDetails': 'No additional details recorded',
905
+ 'financial.invoice.noInstallments': 'No installments',
906
+ 'financial.invoice.noInvoices': 'No invoices yet',
907
+ 'financial.invoice.summaryTotal': 'Total',
908
+ 'financial.invoice.summaryReceived': 'Received',
909
+ 'financial.invoice.summaryReceivable': 'Receivable',
910
+ 'financial.invoice.summaryPaid': 'Paid',
911
+ 'financial.invoice.summaryPayable': 'Payable',
912
+ 'financial.invoice.notFound': 'Invoice not found',
913
+ 'financial.invoice.notFoundDesc': 'This invoice could not be loaded.',
914
+ 'financial.invoice.notes': 'Notes',
915
+ 'financial.invoice.paidLabel': 'Paid:',
916
+ 'financial.invoice.paidOn': 'Paid on:',
917
+ 'financial.invoice.pay': 'Pay',
918
+ 'financial.invoice.paymentSchedule': 'Payment Schedule',
919
+ 'financial.invoice.remaining': 'Remaining:',
920
+ 'financial.invoice.searchPlaceholder': 'Search by contact or description...',
921
+ 'financial.invoice.showing': 'Showing {{shown}} of {{total}}',
922
+ 'financial.invoice.subtotal': 'Subtotal',
923
+ 'financial.invoice.surcharge': 'Surcharge',
924
+ 'financial.invoice.total': 'Total',
925
+ 'financial.invoice.yesCancel': 'Yes, Cancel',
926
+ 'financial.invoiceForm.addFirstItem': 'Add your first item',
927
+ 'financial.invoiceForm.addItem': 'Add Item',
928
+ 'financial.invoiceForm.addItemsFirst': 'Add items first',
929
+ 'financial.invoiceForm.additionalNotes': 'Additional notes...',
930
+ 'financial.invoiceForm.cancel': 'Cancel',
931
+ 'financial.invoiceForm.close': 'Close',
932
+ 'financial.invoiceForm.creating': 'Creating new invoice',
933
+ 'financial.invoiceForm.date': 'Date',
934
+ 'financial.invoiceForm.description': 'Description',
935
+ 'financial.invoiceForm.discountSurcharge': 'Discount / Surcharge',
936
+ 'financial.invoiceForm.done': 'Done',
937
+ 'financial.invoiceForm.editing': 'Editing invoice',
938
+ 'financial.invoiceForm.fiscalNumber': 'Fiscal Number (optional)',
939
+ 'financial.invoiceForm.headquarters': 'Headquarters',
940
+ 'financial.invoiceForm.installments': 'Installments',
941
+ 'financial.invoiceForm.item': 'Item',
942
+ 'financial.invoiceForm.itemDescription': 'Item description',
943
+ 'financial.invoiceForm.items': 'Items',
944
+ 'financial.invoiceForm.noDescription': 'No description',
945
+ 'financial.invoiceForm.noItems': 'No items added yet',
946
+ 'financial.invoiceForm.noUnitsFound': 'No units found',
947
+ 'financial.invoiceForm.observations': 'Observations',
948
+ 'financial.invoiceForm.payTo': 'Pay to',
949
+ 'financial.invoiceForm.qty': 'Qty',
950
+ 'financial.invoiceForm.receiveFrom': 'Receive from',
951
+ 'financial.invoiceForm.save': 'Save',
952
+ 'financial.invoiceForm.saving': 'Saving...',
953
+ 'financial.invoiceForm.searchType': 'Type to search...',
954
+ 'financial.invoiceForm.searchUnit': 'Search unit...',
955
+ 'financial.invoiceForm.selectInstallments': 'Select installment count above',
956
+ 'financial.invoiceForm.selectItemType': 'Select item type:',
957
+ 'financial.invoiceForm.selectUnit': 'Select unit',
958
+ 'financial.invoiceForm.selectUnitTitle': 'Select Unit',
959
+ 'financial.invoiceForm.unit': 'Unit',
960
+ 'financial.invoiceForm.unitPrice': 'Unit Price',
961
+ 'financial.nav.cards': 'Cards',
962
+ 'financial.nav.cashRegisters': 'Cash Registers',
963
+ 'financial.nav.commissions': 'Commissions',
964
+ 'financial.nav.list': 'List',
965
+ 'financial.nav.new': 'New',
966
+ 'financial.nav.overview': 'Overview',
967
+ 'financial.nav.payables': 'Accounts Payable',
968
+ 'financial.nav.receivables': 'Accounts Receivable',
969
+ 'financial.nav.reconciliation': 'Reconciliation',
970
+ 'financial.nav.recurringExpenses': 'Recurring Expenses',
971
+ 'financial.nav.rules': 'Rules',
972
+ 'financial.nav.statements': 'Statements',
973
+ 'financial.nav.summary': 'Summary',
974
+ 'financial.onboarding.back': 'Back',
975
+ 'financial.onboarding.configureHint': 'You can configure this in detail from the Settings gear icon inside the Financial module.',
976
+ 'financial.onboarding.getStarted': 'Get Started',
977
+ 'financial.onboarding.next': 'Next',
978
+ 'financial.onboarding.startUsing': 'Start using Financial',
979
+ 'financial.onboarding.skip': 'Skip setup',
980
+ 'financial.onboarding.welcome': 'Welcome to Financial',
981
+ 'financial.onboarding.description': "Let's set up your financial module. This quick wizard will help you configure the essentials.",
982
+ 'financial.onboarding.accounts.title': 'Bank Accounts',
983
+ 'financial.onboarding.accounts.description': 'Add your bank accounts, cash registers, and credit cards. You can always add more later from Settings.',
984
+ 'financial.onboarding.payments.title': 'Payment Methods',
985
+ 'financial.onboarding.payments.description': 'Review which payment types you accept. Default types (Cash, PIX, Credit Card, etc.) are already set up.',
986
+ 'financial.onboarding.chart.title': 'Chart of Accounts',
987
+ 'financial.onboarding.chart.description': 'A default chart of accounts template has been created. You can customize it anytime from Settings.',
988
+ 'financial.page.newPayable': 'New Payable',
989
+ 'financial.page.newPayableDesc': 'Record an expense or bill to pay',
990
+ 'financial.page.newReceivable': 'New Receivable',
991
+ 'financial.page.newReceivableDesc': 'Record income or amount to receive',
992
+ 'financial.page.openCash': 'Open Cash Register',
993
+ 'financial.page.openCashDesc': 'Start a new cash session',
994
+ 'financial.page.settingsSubtitle': 'Preferences, payment methods, and accounts',
995
+ 'financial.page.settingsTitle': 'Financial Settings',
996
+ 'financial.payment.amount': 'Amount',
997
+ 'financial.payment.bankAccount': 'Bank Account',
998
+ 'financial.payment.cancel': 'Cancel',
999
+ 'financial.payment.card': 'Card',
1000
+ 'financial.payment.cardBrand': 'Card Brand',
1001
+ 'financial.payment.cardInstallments': 'Installments',
1002
+ 'financial.payment.date': 'Date',
1003
+ 'financial.payment.installment': 'Installment #{{number}}',
1004
+ 'financial.payment.method': 'Payment Method',
1005
+ 'financial.payment.notes': 'Notes',
1006
+ 'financial.payment.optionalNotes': 'Optional notes...',
1007
+ 'financial.payment.payAmount': 'Pay {{amount}}',
1008
+ 'financial.payment.processing': 'Processing...',
1009
+ 'financial.payment.remaining': '{{amount}} remaining',
1010
+ 'financial.payment.select': 'Select...',
1011
+ 'financial.payment.selectAccount': 'Select account...',
1012
+ 'financial.payment.selectBrand': 'Select brand...',
1013
+ 'financial.payment.title': 'Record Payment',
1014
+ 'financial.settings.allowPartial': 'Allow partial payments',
1015
+ 'financial.settings.allowPartialDesc': 'Accept payments less than the full installment amount',
1016
+ 'financial.settings.autoClose': 'Auto-close at end of day',
1017
+ 'financial.settings.autoCloseDesc': 'Remind to close open sessions at the end of business hours',
1018
+ 'financial.settings.autoInstallments': 'Auto-generate installments',
1019
+ 'financial.settings.autoInstallmentsDesc': 'Automatically split invoice total into equal installments',
1020
+ 'financial.settings.cashRegister': 'Cash Register',
1021
+ 'financial.settings.cashRegisterDesc': 'Cash session behavior',
1022
+ 'financial.settings.dailySummary': 'Daily financial summary',
1023
+ 'financial.settings.dailySummaryDesc': 'Send a daily email summary of receivables and payables',
1024
+ 'financial.settings.invoices': 'Invoices',
1025
+ 'financial.settings.invoicesDesc': 'How invoices and payments are handled',
1026
+ 'financial.settings.notifications': 'Notifications',
1027
+ 'financial.settings.notificationsDesc': 'Alerts and reminders',
1028
+ 'financial.settings.overdueAlerts': 'Overdue payment alerts',
1029
+ 'financial.settings.overdueAlertsDesc': 'Notify when invoices pass their due date',
1030
+ 'financial.settings.requireDoc': 'Require document number',
1031
+ 'financial.settings.requireDocDesc': 'Make document/invoice number mandatory on payments',
1032
+ 'financial.settings.requireOpening': 'Require opening balance',
1033
+ 'financial.settings.requireOpeningDesc': 'Opening balance must be confirmed before starting a session',
1034
+ 'financial.settingsPage.subtitle': 'Manage payment methods, accounts, and configurations',
1035
+ 'financial.settingsPage.title': 'Financial Settings',
1036
+ 'financial.statements.account': 'Account',
1037
+ 'financial.statements.from': 'From',
1038
+ 'financial.statements.noTransactions': 'No transactions in this period',
1039
+ 'financial.statements.selectAccount': 'Select account',
1040
+ 'financial.statements.selectToView': 'Select an account to view statement',
1041
+ 'financial.statements.subtitle': 'Bank account transactions and balances',
1042
+ 'financial.statements.title': 'Statements',
1043
+ 'financial.statements.to': 'To',
1044
+ 'financial.summary.allAccounts': 'All accounts',
1045
+ 'financial.summary.cashFlow': 'Cash Flow',
1046
+ 'financial.summary.cashFlowBreakdown': 'Cash Flow Breakdown',
1047
+ 'financial.summary.cashFlowBreakdownSubtitle': 'Receivables vs. payables this month',
1048
+ 'financial.summary.cashFlowSubtitle': 'Monthly income vs expenses',
1049
+ 'financial.summary.expenses': 'Expenses',
1050
+ 'financial.summary.income': 'Income',
1051
+ 'financial.summary.monthlyFlow': 'Monthly Flow',
1052
+ 'financial.summary.negativeBalance': 'Negative balance',
1053
+ 'financial.summary.net': 'Net',
1054
+ 'financial.summary.noOverdue': 'No overdue transactions',
1055
+ 'financial.summary.noTransactions': 'No transactions yet',
1056
+ 'financial.summary.overdue': '{{count}} overdue',
1057
+ 'financial.summary.overduePayable': 'Overdue payable',
1058
+ 'financial.summary.overdueReceivable': 'Overdue receivable',
1059
+ 'financial.summary.overdueTitle': 'Overdue',
1060
+ 'financial.summary.paid': 'Paid',
1061
+ 'financial.summary.payable': 'Payable',
1062
+ 'financial.summary.positiveBalance': 'Positive balance',
1063
+ 'financial.summary.receivable': 'Receivable',
1064
+ 'financial.summary.received': 'Received',
1065
+ 'financial.summary.recentTransactions': 'Recent Transactions',
1066
+ 'financial.summary.totalBalance': 'Total Balance',
1067
+ 'financial.summary.transactionsAppear': 'Transactions will appear here once recorded',
1068
+ 'financial.summary.viewAll': 'View all',
1069
+ 'inventory.dashboard.activeItems': 'Active items',
1070
+ 'inventory.dashboard.belowMinimum': 'Below minimum',
1071
+ 'inventory.dashboard.entries': 'Entries:',
1072
+ 'inventory.dashboard.exits': 'Exits:',
1073
+ 'inventory.dashboard.last7Days': 'Last 7 days',
1074
+ 'inventory.dashboard.lowStock': 'Low Stock',
1075
+ 'inventory.dashboard.needRestocking': 'Need restocking',
1076
+ 'inventory.dashboard.outOfStock': 'Out of Stock',
1077
+ 'inventory.dashboard.quickActions': 'Quick Actions',
1078
+ 'inventory.dashboard.quickActionsDesc': 'Use the sidebar to record stock entries, exits, or manage products.',
1079
+ 'inventory.dashboard.recentActivity': 'Recent Activity',
1080
+ 'inventory.dashboard.stockValue': 'Stock Value',
1081
+ 'inventory.dashboard.totalProducts': 'Total Products',
1082
+ 'inventory.dashboard.totalValue': 'Total inventory value',
1083
+ 'inventory.history.noMovements': 'No movements recorded',
1084
+ 'inventory.history.searchPlaceholder': 'Search movements...',
1085
+ 'inventory.history.subtitle': 'All stock movements',
1086
+ 'inventory.history.title': 'Stock History',
1087
+ 'inventory.nav.dashboard': 'Dashboard',
1088
+ 'inventory.nav.entry': 'Entry',
1089
+ 'inventory.nav.exit': 'Exit',
1090
+ 'inventory.nav.history': 'History',
1091
+ 'inventory.nav.list': 'List',
1092
+ 'inventory.nav.new': 'New',
1093
+ 'inventory.nav.products': 'Products',
1094
+ 'inventory.nav.stock': 'Stock',
1095
+ 'inventory.page.newProduct': 'New Product',
1096
+ 'inventory.page.newProductDesc': 'Add a product to your catalog',
1097
+ 'inventory.page.settingsSubtitle': 'Preferences, suppliers, categories, and units',
1098
+ 'inventory.page.settingsTitle': 'Inventory Settings',
1099
+ 'inventory.page.stockEntry': 'Stock Entry',
1100
+ 'inventory.page.stockEntryDesc': 'Record goods received',
1101
+ 'inventory.page.stockExit': 'Stock Exit',
1102
+ 'inventory.page.stockExitDesc': 'Record goods used or sold',
1103
+ 'inventory.recipeDetail.active': 'Active',
1104
+ 'inventory.recipeDetail.backToList': 'Back to list',
1105
+ 'inventory.recipeDetail.inactive': 'Inactive',
1106
+ 'inventory.recipeDetail.ingredientCount': 'Ingredients',
1107
+ 'inventory.recipeDetail.ingredientsTitle': 'Ingredients',
1108
+ 'inventory.recipeDetail.instructions': 'Instructions',
1109
+ 'inventory.recipeDetail.noIngredients': 'No ingredients defined',
1110
+ 'inventory.recipeDetail.notFound': 'Recipe not found',
1111
+ 'inventory.recipeDetail.prepTime': 'Prep time',
1112
+ 'inventory.recipeDetail.produces': 'Produces',
1113
+ 'inventory.recipeDetail.recipes': 'Recipes',
1114
+ 'inventory.recipeDetail.yield': 'Yield',
1115
+ 'inventory.recipes.createFirst': 'Create your first recipe',
1116
+ 'inventory.recipes.ingredients': '{{count}} ingredients',
1117
+ 'inventory.recipes.newRecipe': 'New Recipe',
1118
+ 'inventory.recipes.noRecipes': 'No recipes yet',
1119
+ 'inventory.recipes.produces': 'Produces:',
1120
+ 'inventory.recipes.productionFormulas': '{{count}} production formulas',
1121
+ 'inventory.recipes.recipesDesc': 'Recipes define how to produce products from ingredients',
1122
+ 'inventory.recipes.title': 'Recipes',
1123
+ 'inventory.recipes.yield': 'Yield:',
1124
+ 'inventory.stock.additionalDetails': 'Additional details (optional)',
1125
+ 'inventory.stock.adjustmentDesc': 'Count correction',
1126
+ 'inventory.stock.adjustmentLabel': 'Adjustment',
1127
+ 'inventory.stock.back': 'Back',
1128
+ 'inventory.stock.batchNumber': 'Batch Number',
1129
+ 'inventory.stock.currentStock': 'Current stock:',
1130
+ 'inventory.stock.destination': 'Destination',
1131
+ 'inventory.stock.document': 'Document',
1132
+ 'inventory.stock.documentNumber': 'Document Number',
1133
+ 'inventory.stock.entry': 'Stock Entry',
1134
+ 'inventory.stock.entryDesc': 'Receiving goods',
1135
+ 'inventory.stock.entryLabel': 'Entry',
1136
+ 'inventory.stock.exit': 'Stock Exit',
1137
+ 'inventory.stock.exitDesc': 'Using or selling',
1138
+ 'inventory.stock.exitLabel': 'Exit',
1139
+ 'inventory.stock.expirationDate': 'Expiration Date',
1140
+ 'inventory.stock.fromLocation': 'From Location',
1141
+ 'inventory.stock.locationLabel': 'Location',
1142
+ 'inventory.stock.lossDesc': 'Waste or damage',
1143
+ 'inventory.stock.lossLabel': 'Loss',
1144
+ 'inventory.stock.movement': 'Stock Movement',
1145
+ 'inventory.stock.movementDetails': 'Movement Details',
1146
+ 'inventory.stock.movementType': 'Movement type',
1147
+ 'inventory.stock.next': 'Next',
1148
+ 'inventory.stock.notes': 'Notes',
1149
+ 'inventory.stock.product': 'Product',
1150
+ 'inventory.stock.quantity': 'Quantity *',
1151
+ 'inventory.stock.quantityLabel': 'Quantity',
1152
+ 'inventory.stock.reason': 'Reason *',
1153
+ 'inventory.stock.reasonLabel': 'Reason',
1154
+ 'inventory.stock.recordMovement': 'Record Movement',
1155
+ 'inventory.stock.recorded': 'Recorded',
1156
+ 'inventory.stock.recording': 'Recording...',
1157
+ 'inventory.stock.searchProduct': 'Search by name, SKU, or barcode...',
1158
+ 'inventory.stock.stepOf': 'Step {{step}} of 3',
1159
+ 'inventory.stock.supplier': 'Supplier',
1160
+ 'inventory.stock.toLocation': 'To Location *',
1161
+ 'inventory.stock.total': 'Total',
1162
+ 'inventory.stock.totalCost': 'Total Cost',
1163
+ 'inventory.stock.transferDesc': 'Between locations',
1164
+ 'inventory.stock.transferLabel': 'Transfer',
1165
+ 'inventory.stock.unitCost': 'Unit Cost',
1166
+ 'inventory.stock.unitCostLabel': 'Unit Cost',
1167
+ 'inventory.onboarding.welcome': 'Welcome to Inventory',
1168
+ 'inventory.onboarding.description': 'Track products, manage stock levels, and monitor movements across your business.',
1169
+ 'inventory.onboarding.skip': 'Skip setup',
1170
+ 'inventory.onboarding.getStarted': 'Get Started',
1171
+ 'inventory.onboarding.units.title': 'Measurement Units',
1172
+ 'inventory.onboarding.units.description': 'Default units (Unit, Box, Kg, L, etc.) are ready. Customize them anytime in Settings.',
1173
+ 'inventory.onboarding.locations.title': 'Stock Locations',
1174
+ 'inventory.onboarding.locations.description': 'A default storage location has been created. Add more for multi-location tracking.',
1175
+ 'inventory.onboarding.start': 'Start using Inventory',
1176
+ 'layout.bottomNav.chat': 'Chat',
1177
+ 'layout.commandPalette.commandCount': '{{count}} command{{plural}}',
1178
+ 'layout.commandPalette.description': 'Search for pages, actions, people, products and services',
1179
+ 'layout.commandPalette.resultCount': '{{count}} result{{plural}}',
1180
+ 'layout.commandPalette.title': 'Command palette',
1181
+ 'layout.mobileDrawer.description': 'Application navigation links',
1182
+ 'layout.mobileDrawer.title': 'Navigation menu',
1183
+ 'layout.topbar.search': 'Search...',
1184
+ 'notifications.noUpdates': 'No updates yet',
1185
+ 'organization.createOrg': 'Create organization',
1186
+ 'organization.createOrgDescription': 'Create a new workspace for your team.',
1187
+ 'organization.createOrgTitle': 'Create Organization',
1188
+ 'organization.creating': 'Creating...',
1189
+ 'organization.invite.addAnother': 'Add another',
1190
+ 'organization.invite.description': 'Send invites to join your organization.',
1191
+ 'organization.invite.emailLabel': 'Email addresses',
1192
+ 'organization.invite.roleLabel': 'Role',
1193
+ 'organization.invite.rolePlaceholder': 'Select a role',
1194
+ 'organization.invite.sendInvites': 'Send Invites',
1195
+ 'organization.invite.sending': 'Sending...',
1196
+ 'organization.invite.sent': 'Invitations sent',
1197
+ 'organization.invite.sentDescription': 'Your team members will receive an email with instructions to join.',
1198
+ 'organization.invite.title': 'Invite Team Members',
1199
+ 'organization.onboarding.oneMoment': 'This will only take a moment...',
1200
+ 'organization.onboarding.preferences': 'Regional preferences',
1201
+ 'organization.onboarding.settingUp': 'Setting up your workspace',
1202
+ 'organization.onboarding.setupWorkspace': 'Set up your workspace',
1203
+ 'organization.onboarding.whatName': 'What should we call your workspace?',
1204
+ 'organization.orgNamePlaceholder': 'Organization name',
1205
+ 'organization.permissions.createCustom': 'Create Custom Profile',
1206
+ 'organization.permissions.createProfile': 'Create Profile',
1207
+ 'organization.permissions.description': 'Description',
1208
+ 'organization.permissions.descriptionPlaceholder': 'Optional description',
1209
+ 'organization.permissions.editProfile': 'Edit: {{name}}',
1210
+ 'organization.permissions.manageBilling': 'Manage Billing',
1211
+ 'organization.permissions.managePermissions': 'Manage Permissions',
1212
+ 'organization.permissions.manageSettings': 'Manage Settings',
1213
+ 'organization.permissions.manageTeam': 'Manage Team',
1214
+ 'organization.permissions.memberCount': '{{count}} member{{plural}}',
1215
+ 'organization.permissions.previewAs': 'Preview as',
1216
+ 'organization.permissions.previewingAs': 'Previewing as',
1217
+ 'organization.permissions.exitPreview': 'Exit Preview',
1218
+ 'organization.permissions.searchFeatures': 'Search features...',
1219
+ 'organization.permissions.profileName': 'Profile Name',
1220
+ 'organization.permissions.profileNamePlaceholder': 'e.g. Custom Role',
1221
+ 'organization.permissions.subtitle': 'Manage roles and their permissions.',
1222
+ 'organization.permissions.system': 'System',
1223
+ 'organization.permissions.systemPermissions': 'System Permissions',
1224
+ 'organization.permissions.title': 'Permission Profiles',
1225
+ 'organization.permissions.updateProfile': 'Update Profile',
1226
+ 'organization.team.invite': 'Invite',
1227
+ 'organization.team.joined': 'Joined',
1228
+ 'organization.team.member': 'Member',
1229
+ 'organization.team.memberCount': '{{count}} member{{plural}} in this organization.',
1230
+ 'organization.team.pendingInvites': 'Pending Invites',
1231
+ 'organization.team.removeMember': 'Remove member',
1232
+ 'organization.team.resend': 'Resend',
1233
+ 'organization.team.revoke': 'Revoke',
1234
+ 'organization.team.role': 'Role',
1235
+ 'organization.team.sent': 'Sent {{date}}',
1236
+ 'organization.team.title': 'Members',
1237
+ 'organization.team.you': '(you)',
1238
+ 'settings.branding.accentColor': 'Accent Color',
1239
+ 'settings.branding.chooseFile': 'Choose File',
1240
+ 'settings.branding.favicon': 'Favicon',
1241
+ 'settings.branding.faviconHint': 'Recommended: 32x32px, PNG or ICO',
1242
+ 'settings.branding.logo': 'Logo',
1243
+ 'settings.branding.logoHint': 'Recommended: 200x50px, PNG or SVG',
1244
+ 'settings.branding.preview': 'Preview',
1245
+ 'settings.branding.primaryColor': 'Primary Color',
1246
+ 'settings.branding.saveBranding': 'Save Branding',
1247
+ 'settings.branding.subtitle': 'Customize the look and feel of your workspace.',
1248
+ 'settings.branding.title': 'Branding',
1249
+ 'settings.company.currency': 'Currency',
1250
+ 'settings.company.currencyPlaceholder': 'Select currency',
1251
+ 'settings.company.locale': 'Locale',
1252
+ 'settings.company.localePlaceholder': 'Select locale',
1253
+ 'settings.company.name': 'Company Name',
1254
+ 'settings.company.subtitle': 'Update your organization details and regional preferences.',
1255
+ 'settings.company.timezone': 'Timezone',
1256
+ 'settings.company.timezonePlaceholder': 'Select timezone',
1257
+ 'settings.company.title': 'Company Information',
1258
+ 'settings.holidays.addHoliday': 'Add Holiday',
1259
+ 'settings.holidays.annual': 'Annual',
1260
+ 'settings.holidays.descriptionPlaceholder': 'Description (optional)',
1261
+ 'settings.holidays.empty': 'No holidays configured yet.',
1262
+ 'settings.holidays.namePlaceholder': 'Holiday name *',
1263
+ 'settings.holidays.newHoliday': 'New Holiday',
1264
+ 'settings.holidays.recurringAnnually': 'Recurring annually',
1265
+ 'settings.holidays.subtitle': 'Non-working days and recurring holidays.',
1266
+ 'settings.holidays.title': 'Holidays',
1267
+ // settings.fieldRules
1268
+ 'settings.fieldRules': 'Field Rules',
1269
+ 'settings.fieldRules.subtitle': 'Configure which fields are required or visible for each register type.',
1270
+ 'settings.fieldRules.required': 'Required',
1271
+ 'settings.fieldRules.inForm': 'Form',
1272
+ 'settings.fieldRules.inTable': 'Table',
1273
+ 'settings.fieldRules.inDetail': 'Detail',
1274
+ 'settings.fieldRules.field': 'Field',
1275
+ 'settings.fieldRules.resetDefaults': 'Reset to Defaults',
1276
+ 'settings.fieldRules.resetConfirm': 'Reset all field rules for {{entity}} to their defaults?',
1277
+ 'settings.fieldRules.saved': 'Field rules saved',
1278
+ 'settings.fieldRules.saveFailed': 'Failed to save field rules',
1279
+ 'settings.fieldRules.modified': '{{count}} modified',
1280
+ 'settings.fieldRules.searchPlaceholder': 'Search register types...',
1281
+ 'settings.fieldRules.noEntities': 'No register types available.',
1282
+ 'settings.fieldRules.coreRegisters': 'Register Types',
1283
+ 'settings.fieldRules.otherRegisters': 'Other',
1284
+ 'settings.fieldRules.showMore': '{{count}} more register types...',
1285
+ 'settings.fieldRules.showLess': 'Show less',
1286
+ 'settings.locations.addFirst': 'Add your first location',
1287
+ 'settings.locations.addLocation': 'Add Location',
1288
+ 'settings.locations.adding': 'Adding...',
1289
+ 'settings.locations.addressPlaceholder': 'Address',
1290
+ 'settings.locations.cityPlaceholder': 'City',
1291
+ 'settings.locations.countDescription': '{{count}} location{{plural}} registered.',
1292
+ 'settings.locations.countryPlaceholder': 'Country',
1293
+ 'settings.locations.empty': 'No locations have been added to this organization yet.',
1294
+ 'settings.locations.headquarters': 'Headquarters',
1295
+ 'settings.locations.namePlaceholder': 'Location name *',
1296
+ 'settings.locations.newLocation': 'New Location',
1297
+ 'settings.locations.noLocations': 'No locations configured yet.',
1298
+ 'settings.locations.phonePlaceholder': 'Phone',
1299
+ 'settings.locations.statePlaceholder': 'State',
1300
+ 'settings.locations.title': 'Locations',
1301
+ 'settings.profile.email': 'Email',
1302
+ 'settings.profile.emailHelp': 'Email cannot be changed directly. Contact support for assistance.',
1303
+ 'settings.profile.fullName': 'Full Name',
1304
+ 'settings.profile.saveProfile': 'Save Profile',
1305
+ 'settings.profile.subtitle': 'Manage your personal information and account settings.',
1306
+ 'settings.profile.title': 'Profile',
1307
+ 'settings.security.inviteOnly': 'Invite-Only Access',
1308
+ 'settings.security.inviteOnlyDescription': 'New users can only join this organization via invite.',
1309
+ 'settings.security.linkSent': 'Link Sent',
1310
+ 'settings.security.orgSecuritySubtitle': 'Security policies applied to all members of this organization.',
1311
+ 'settings.security.orgSecurityTitle': 'Organization Security',
1312
+ 'settings.security.passwordSubtitle': 'Manage your account password. A reset link will be sent to your email.',
1313
+ 'settings.security.passwordTitle': 'Password',
1314
+ 'settings.security.require2FA': 'Require Two-Factor Authentication',
1315
+ 'settings.security.require2FADescription': 'All members must enable 2FA to access this organization.',
1316
+ 'settings.security.resetLinkDescription': 'Send a password reset link to your email address.',
1317
+ 'settings.security.resetLinkSent': 'Reset link sent \u2014 check your inbox.',
1318
+ 'settings.security.resetPassword': 'Reset Password',
1319
+ 'settings.security.sessionTimeout': 'Session Timeout',
1320
+ 'settings.security.sessionTimeoutDescription': 'Automatically sign out inactive users after this period.',
1321
+
1322
+ // ---------------------------------------------------------------------------
1323
+ // financial.quickActions / cash / invoice
1324
+ // ---------------------------------------------------------------------------
1325
+ 'financial.quickActions.newPayable': 'New Payable',
1326
+ 'financial.quickActions.newPayableDesc': 'Record an expense or bill to pay',
1327
+ 'financial.quickActions.newReceivable': 'New Receivable',
1328
+ 'financial.quickActions.newReceivableDesc': 'Record income or amount to receive',
1329
+ 'financial.quickActions.openCashRegister': 'Open Cash Register',
1330
+ 'financial.quickActions.openCashRegisterDesc': 'Start a new cash session',
1331
+
1332
+ 'financial.cash.title': 'Cash Registers',
1333
+ 'financial.cash.subtitle': 'Open, count and close cash sessions',
1334
+ 'financial.cash.bills': 'Bills',
1335
+ 'financial.cash.coins': 'Coins',
1336
+ 'financial.cash.noAccounts': 'No cash register accounts found. Create a bank account with type "Cash Register" first.',
1337
+ 'financial.cash.confirmOpening': 'Confirm Cash Opening',
1338
+ 'financial.cash.register': 'Register',
1339
+ 'financial.cash.openingBalance': 'Opening Balance',
1340
+ 'financial.cash.method': 'Method',
1341
+ 'financial.cash.denominationCount': 'Denomination count',
1342
+ 'financial.cash.notes': 'Notes',
1343
+ 'financial.cash.opening': 'Opening...',
1344
+ 'financial.cash.confirmAndOpen': 'Confirm & Open',
1345
+ 'financial.cash.quickAmount': 'Quick Amount',
1346
+ 'financial.cash.countBillsCoins': 'Count Bills & Coins',
1347
+ 'financial.cash.count': 'Count',
1348
+ 'financial.cash.countedTotal': 'Counted Total',
1349
+ 'financial.cash.addNotes': 'Add notes',
1350
+ 'financial.cash.openingObservations': 'Opening observations...',
1351
+ 'financial.cash.openSession': 'Open Session',
1352
+ 'financial.cash.closingBalance': 'Closing Balance',
1353
+ 'financial.cash.differenceFromOpening': 'Difference from opening',
1354
+ 'financial.cash.closingNotes': 'Closing Notes',
1355
+ 'financial.cash.closingObservations': 'Closing observations...',
1356
+ 'financial.cash.closing': 'Closing...',
1357
+ 'financial.cash.closeSession': 'Close Session',
1358
+ 'financial.cash.openSessions': 'Open Sessions',
1359
+ 'financial.cash.opened': 'Opened',
1360
+ 'financial.cash.by': 'by',
1361
+ 'financial.cash.closeThisSession': 'Close this session',
1362
+ 'financial.cash.sessionHistory': 'Session History',
1363
+ 'financial.cash.noClosedSessions': 'No closed sessions yet',
1364
+ 'financial.cash.openLabel': 'Open',
1365
+ 'financial.cash.closeLabel': 'Close',
1366
+ 'financial.cash.diff': 'Diff',
1367
+ 'financial.cash.openAnother': 'Open another register',
1368
+
1369
+ // ---------------------------------------------------------------------------
1370
+ // crm.quickActions / settings / onboarding
1371
+ // ---------------------------------------------------------------------------
1372
+ 'crm.quickActions.newLead': 'New Lead',
1373
+ 'crm.quickActions.newLeadDesc': 'Capture a new lead',
1374
+ 'crm.quickActions.newDeal': 'New Deal',
1375
+ 'crm.quickActions.newDealDesc': 'Create a deal from pipeline',
1376
+ 'crm.quickActions.newQuote': 'New Quote',
1377
+ 'crm.quickActions.newQuoteDesc': 'Send a proposal',
1378
+ 'crm.quickActions.logActivity': 'Log Activity',
1379
+ 'crm.quickActions.logActivityDesc': 'Record a call, email, or note',
1380
+
1381
+ 'crm.settingsPage.title': 'Sales & CRM Settings',
1382
+ 'crm.settingsPage.subtitle': 'Configure pipeline, lead management, and registries',
1383
+ 'crm.settingsPage.pipeline': 'Pipeline',
1384
+
1385
+ 'crm.onboarding.welcome': 'Welcome to Sales & CRM',
1386
+ 'crm.onboarding.description': 'Track leads, manage your sales pipeline, and close more deals.',
1387
+ 'crm.onboarding.sources.title': 'Lead Sources',
1388
+ 'crm.onboarding.sources.description': 'Default sources (Instagram, WhatsApp, Google, etc.) are ready. Customize them in Settings.',
1389
+ 'crm.onboarding.pipeline.title': 'Sales Pipeline',
1390
+ 'crm.onboarding.pipeline.description': 'Your default pipeline with 7 stages is set up. Customize stages and probabilities anytime.',
1391
+ 'crm.onboarding.startSelling': 'Start selling',
1392
+ 'crm.onboarding.getStarted': 'Get Started',
1393
+ 'crm.onboarding.next': 'Next',
1394
+ 'crm.onboarding.skip': 'Skip setup',
1395
+
1396
+ 'crm.settings.leadManagement': 'Lead Management',
1397
+ 'crm.settings.leadManagementDesc': 'How leads are captured and handled',
1398
+ 'crm.settings.autoAssign': 'Auto-assign leads',
1399
+ 'crm.settings.autoAssignDesc': 'Automatically assign new leads to available team members',
1400
+ 'crm.settings.requireSource': 'Require lead source',
1401
+ 'crm.settings.requireSourceDesc': 'Make source selection mandatory when capturing leads',
1402
+ 'crm.settings.leadScoring': 'Lead scoring',
1403
+ 'crm.settings.leadScoringDesc': 'Automatically score leads based on engagement signals',
1404
+ 'crm.settings.duplicateDetection': 'Duplicate detection',
1405
+ 'crm.settings.duplicateDetectionDesc': 'Warn when a lead with the same email or phone already exists',
1406
+ 'crm.settings.deals': 'Deals',
1407
+ 'crm.settings.dealsDesc': 'Deal pipeline behavior',
1408
+ 'crm.settings.autoCreateDeal': 'Auto-create deal on conversion',
1409
+ 'crm.settings.autoCreateDealDesc': 'Create a deal automatically when a lead is qualified',
1410
+ 'crm.settings.requireCloseDate': 'Require expected close date',
1411
+ 'crm.settings.requireCloseDateDesc': 'Make expected close date mandatory on deals',
1412
+ 'crm.settings.rottingDeals': 'Rotting deals warning',
1413
+ 'crm.settings.rottingDealsDesc': "Highlight deals that haven't been updated in X days",
1414
+ 'crm.settings.weightedPipeline': 'Weighted pipeline value',
1415
+ 'crm.settings.weightedPipelineDesc': 'Calculate pipeline value using stage probability',
1416
+ 'crm.settings.quotes': 'Quotes',
1417
+ 'crm.settings.quotesDesc': 'Quote and proposal behavior',
1418
+ 'crm.settings.autoNumberQuotes': 'Auto-number quotes',
1419
+ 'crm.settings.autoNumberQuotesDesc': 'Automatically generate sequential quote numbers',
1420
+ 'crm.settings.defaultValidity': 'Default validity (30 days)',
1421
+ 'crm.settings.defaultValidityDesc': 'New quotes expire after 30 days by default',
1422
+ 'crm.settings.requireApproval': 'Require approval',
1423
+ 'crm.settings.requireApprovalDesc': 'Quotes need manager approval before sending',
1424
+ 'crm.settings.notifications': 'Notifications',
1425
+ 'crm.settings.notificationsDesc': 'Alerts and reminders',
1426
+ 'crm.settings.overdueAlerts': 'Overdue activity alerts',
1427
+ 'crm.settings.overdueAlertsDesc': 'Notify when activities pass their due date',
1428
+ 'crm.settings.stageChangeAlerts': 'Deal stage change alerts',
1429
+ 'crm.settings.stageChangeAlertsDesc': 'Notify when deals move to a new stage',
1430
+ 'crm.settings.newLeadNotif': 'New lead notification',
1431
+ 'crm.settings.newLeadNotifDesc': 'Alert team when a new lead is captured',
1432
+
1433
+ 'crm.pipelineSettings.title': 'Pipeline Stages',
1434
+ 'crm.pipelineSettings.description': 'Define stages that deals move through. Drag to reorder.',
1435
+ 'crm.pipelineSettings.probability': 'Probability',
1436
+ 'crm.pipelineSettings.winStage': 'Win stage',
1437
+ 'crm.pipelineSettings.lossStage': 'Loss stage',
1438
+ 'crm.pipelineSettings.customizationNote': 'Pipeline stage customization (add, remove, reorder, edit colors and probabilities) will be available when connected to the database.',
1439
+
1440
+ // ---------------------------------------------------------------------------
1441
+ // inventory.quickActions / settings
1442
+ // ---------------------------------------------------------------------------
1443
+ 'inventory.quickActions.newProduct': 'New Product',
1444
+ 'inventory.quickActions.newProductDesc': 'Add a product to your catalog',
1445
+ 'inventory.quickActions.stockEntry': 'Stock Entry',
1446
+ 'inventory.quickActions.stockEntryDesc': 'Record goods received',
1447
+ 'inventory.quickActions.stockExit': 'Stock Exit',
1448
+ 'inventory.quickActions.stockExitDesc': 'Record goods used or sold',
1449
+
1450
+ 'inventory.settingsPage.title': 'Inventory Settings',
1451
+ 'inventory.settingsPage.subtitle': 'Manage units, categories, and stock locations',
1452
+
1453
+ 'inventory.settings.stockManagement': 'Stock Management',
1454
+ 'inventory.settings.stockManagementDesc': 'How stock levels are tracked',
1455
+ 'inventory.settings.lowStockAlerts': 'Low stock alerts',
1456
+ 'inventory.settings.lowStockAlertsDesc': 'Show warnings when products fall below minimum quantity',
1457
+ 'inventory.settings.requireReason': 'Require reason for adjustments',
1458
+ 'inventory.settings.requireReasonDesc': 'Make reason mandatory for stock adjustments and losses',
1459
+ 'inventory.settings.autoDeduct': 'Auto-deduct on service',
1460
+ 'inventory.settings.autoDeductDesc': 'Automatically deduct products when a service is executed',
1461
+ 'inventory.settings.products': 'Products',
1462
+ 'inventory.settings.productsDesc': 'Product catalog behavior',
1463
+ 'inventory.settings.requireSku': 'Require SKU',
1464
+ 'inventory.settings.requireSkuDesc': 'Make SKU mandatory when creating products',
1465
+ 'inventory.settings.allowNegative': 'Allow negative stock',
1466
+ 'inventory.settings.allowNegativeDesc': 'Allow stock quantities to go below zero',
1467
+ 'inventory.settings.notifications': 'Notifications',
1468
+ 'inventory.settings.notificationsDesc': 'Alerts and reminders',
1469
+ 'inventory.settings.lowStockEmail': 'Low stock email alerts',
1470
+ 'inventory.settings.lowStockEmailDesc': 'Send email when products reach minimum quantity',
1471
+ 'inventory.settings.expiryWarnings': 'Expiry date warnings',
1472
+ 'inventory.settings.expiryWarningsDesc': 'Alert before products expire (batch tracking)',
1473
+
1474
+ // ---------------------------------------------------------------------------
1475
+ // inventory.productForm
1476
+ // ---------------------------------------------------------------------------
1477
+ 'inventory.productForm.newProduct': 'New Product',
1478
+ 'inventory.productForm.editProduct': 'Edit Product',
1479
+ 'inventory.productForm.updateDetails': 'Update product details',
1480
+ 'inventory.productForm.addToCatalog': 'Add a product to your catalog',
1481
+ 'inventory.productForm.cancel': 'Cancel',
1482
+ 'inventory.productForm.save': 'Save',
1483
+ 'inventory.productForm.saving': 'Saving...',
1484
+ 'inventory.productForm.generalInfo': 'General Information',
1485
+ 'inventory.productForm.name': 'Name',
1486
+ 'inventory.productForm.namePlaceholder': 'Product name',
1487
+ 'inventory.productForm.brand': 'Brand',
1488
+ 'inventory.productForm.brandPlaceholder': 'Brand name',
1489
+ 'inventory.productForm.sku': 'SKU',
1490
+ 'inventory.productForm.skuPlaceholder': 'Internal code',
1491
+ 'inventory.productForm.barcode': 'Barcode',
1492
+ 'inventory.productForm.barcodePlaceholder': 'EAN / UPC',
1493
+ 'inventory.productForm.description': 'Description',
1494
+ 'inventory.productForm.descriptionPlaceholder': 'Additional information about the product',
1495
+ 'inventory.productForm.classification': 'Classification',
1496
+ 'inventory.productForm.classificationDesc': 'How this product is used in your business',
1497
+ 'inventory.productForm.typeIngredient': 'Raw material used in production or services',
1498
+ 'inventory.productForm.typeSale': 'Sold directly to customers',
1499
+ 'inventory.productForm.typeIntermediate': 'Produced internally from other items',
1500
+ 'inventory.productForm.typeAsset': 'Fixed asset for patrimony tracking',
1501
+ 'inventory.productForm.pricing': 'Pricing',
1502
+ 'inventory.productForm.costPrice': 'Cost Price',
1503
+ 'inventory.productForm.salePrice': 'Sale Price',
1504
+ 'inventory.productForm.margin': 'Margin',
1505
+ 'inventory.productForm.stockLevels': 'Stock Levels',
1506
+ 'inventory.productForm.stockLevelsDesc': 'Minimum and maximum thresholds for alerts',
1507
+ 'inventory.productForm.minQuantity': 'Minimum Quantity',
1508
+ 'inventory.productForm.minQuantityHint': 'Alert when stock falls below this',
1509
+ 'inventory.productForm.maxQuantity': 'Maximum Quantity',
1510
+ 'inventory.productForm.maxQuantityHint': 'Max capacity for this product',
1511
+ 'inventory.productForm.optional': 'Optional',
1512
+
1513
+ // ---------------------------------------------------------------------------
1514
+ // inventory.productList
1515
+ // ---------------------------------------------------------------------------
1516
+ 'inventory.productList.title': 'Products',
1517
+ 'inventory.productList.subtitle': '{{count}} products',
1518
+ 'inventory.productList.product': 'Product',
1519
+ 'inventory.productList.type': 'Type',
1520
+ 'inventory.productList.stock': 'Stock',
1521
+ 'inventory.productList.cost': 'Cost',
1522
+ 'inventory.productList.value': 'Value',
1523
+ 'inventory.productList.searchPlaceholder': 'Search products...',
1524
+ 'inventory.productList.newProduct': 'New Product',
1525
+ 'inventory.productList.empty': 'No products yet',
1526
+ 'inventory.productList.createFirst': 'Create your first product',
1527
+
1528
+ // ---------------------------------------------------------------------------
1529
+ // inventory.stock (additional keys)
1530
+ // ---------------------------------------------------------------------------
1531
+ 'inventory.stock.unknownProduct': 'Unknown Product',
1532
+ 'inventory.stock.reasonLossPlaceholder': 'e.g. Expired, damaged',
1533
+ 'inventory.stock.reasonAdjustPlaceholder': 'e.g. Physical count correction',
1534
+ 'inventory.stock.documentPlaceholder': 'Invoice, receipt, PO...',
1535
+ 'inventory.stock.batchPlaceholder': 'e.g. LOT001',
1536
+ 'inventory.stock.notesPlaceholder': 'Additional notes...',
1537
+
1538
+ // ---------------------------------------------------------------------------
1539
+ // inventory.recipeDetail (additional keys)
1540
+ // ---------------------------------------------------------------------------
1541
+ 'inventory.recipeDetail.loading': 'Loading...',
1542
+ 'inventory.recipeDetail.ingredient': 'Ingredient',
1543
+ 'inventory.recipeDetail.quantity': 'Quantity',
1544
+ 'inventory.recipeDetail.unit': 'Unit',
1545
+ 'inventory.recipeDetail.notes': 'Notes',
1546
+ 'inventory.recipeDetail.created': 'Created',
1547
+ 'inventory.recipeDetail.updated': 'Updated',
1548
+
1549
+ // ---------------------------------------------------------------------------
1550
+ // inventory.recipeForm
1551
+ // ---------------------------------------------------------------------------
1552
+ 'inventory.recipeForm.newRecipe': 'New Recipe',
1553
+ 'inventory.recipeForm.subtitle': 'Define a production formula',
1554
+ 'inventory.recipeForm.cancel': 'Cancel',
1555
+ 'inventory.recipeForm.saveRecipe': 'Save Recipe',
1556
+ 'inventory.recipeForm.saving': 'Saving...',
1557
+ 'inventory.recipeForm.recipeDetails': 'Recipe Details',
1558
+ 'inventory.recipeForm.recipeName': 'Recipe Name',
1559
+ 'inventory.recipeForm.recipeNamePlaceholder': 'e.g. Tomato Sauce',
1560
+ 'inventory.recipeForm.description': 'Description',
1561
+ 'inventory.recipeForm.descriptionPlaceholder': 'Brief description...',
1562
+ 'inventory.recipeForm.produces': 'Produces (Product)',
1563
+ 'inventory.recipeForm.searchProduct': 'Search product...',
1564
+ 'inventory.recipeForm.createProduct': 'Create product',
1565
+ 'inventory.recipeForm.yieldQuantity': 'Yield Quantity',
1566
+ 'inventory.recipeForm.prepTime': 'Prep Time (min)',
1567
+ 'inventory.recipeForm.instructions': 'Instructions',
1568
+ 'inventory.recipeForm.instructionsPlaceholder': 'Step-by-step preparation instructions...',
1569
+ 'inventory.recipeForm.ingredients': 'Ingredients',
1570
+ 'inventory.recipeForm.addIngredient': 'Add Ingredient',
1571
+ 'inventory.recipeForm.noIngredients': 'No ingredients added',
1572
+ 'inventory.recipeForm.addFirstIngredient': 'Add your first ingredient',
1573
+ 'inventory.recipeForm.ingredient': 'Ingredient',
1574
+ 'inventory.recipeForm.quantity': 'Quantity',
1575
+ 'inventory.recipeForm.notes': 'Notes',
1576
+ 'inventory.recipeForm.searchIngredient': 'Search ingredient...',
1577
+ 'inventory.recipeForm.createIngredient': 'Create ingredient',
1578
+ 'inventory.recipeForm.notesPlaceholder': 'e.g. diced, fresh',
1579
+ 'inventory.recipeForm.ingredientsConfigured': '{{configured}} of {{total}} ingredients configured',
1580
+
1581
+ // ---------------------------------------------------------------------------
1582
+ // settings.plugin.*
1583
+ // ---------------------------------------------------------------------------
1584
+ 'settings.plugin.agenda': 'Agenda',
1585
+ 'settings.plugin.financial': 'Financial',
1586
+ 'settings.plugin.inventory': 'Inventory',
1587
+ 'settings.plugin.crm': 'Sales & CRM',
1588
+
1589
+ // ---------------------------------------------------------------------------
1590
+ // financial.invoice status labels
1591
+ // ---------------------------------------------------------------------------
1592
+ 'financial.invoice.statusOpen': 'Open',
1593
+ 'financial.invoice.statusPartial': 'Partial',
1594
+ 'financial.invoice.statusPaid': 'Paid',
1595
+ 'financial.invoice.statusOverdue': 'Overdue',
1596
+ 'financial.invoice.statusCancelled': 'Cancelled',
1597
+ 'financial.invoice.statusPending': 'Pending',
1598
+ 'financial.invoice.statusDraft': 'Draft',
1599
+
1600
+ // ---------------------------------------------------------------------------
1601
+ // financial.invoice column / detail labels
1602
+ // ---------------------------------------------------------------------------
1603
+ 'financial.invoice.columnDate': 'Date',
1604
+ 'financial.invoice.columnDescription': 'Description',
1605
+ 'financial.invoice.columnAmount': 'Amount',
1606
+ 'financial.invoice.columnPaid': 'Paid',
1607
+ 'financial.invoice.columnStatus': 'Status',
1608
+ 'financial.invoice.columnInst': 'Inst.',
1609
+ 'financial.invoice.columnQty': 'Qty',
1610
+ 'financial.invoice.columnUnitPrice': 'Unit Price',
1611
+ 'financial.invoice.columnTotal': 'Total',
1612
+ 'financial.invoice.columnNumber': '#',
1613
+ 'financial.invoice.invoice': 'Invoice',
1614
+ 'financial.invoice.loading': 'Loading...',
1615
+
1616
+ // ---------------------------------------------------------------------------
1617
+ // financial.invoiceForm extra labels
1618
+ // ---------------------------------------------------------------------------
1619
+ 'financial.invoiceForm.cancelInvoice': 'Cancel Invoice',
1620
+ 'financial.invoiceForm.cancelConfirm': 'This action cannot be undone.',
1621
+ 'financial.invoiceForm.cancelDesc': 'The invoice will be marked as cancelled. All pending installments will also be cancelled.',
1622
+ 'financial.invoiceForm.keepInvoice': 'Keep Invoice',
1623
+ 'financial.invoiceForm.yesCancel': 'Yes, Cancel',
1624
+ 'financial.invoiceForm.cancelling': 'Cancelling...',
1625
+ 'financial.invoiceForm.removeAdjustments': 'Remove adjustments',
1626
+ 'financial.invoiceForm.discount': 'Discount',
1627
+ 'financial.invoiceForm.surcharge': 'Surcharge',
1628
+ 'financial.invoiceForm.total': 'Total:',
1629
+ 'financial.invoiceForm.itemCount': '{{count}} item{{plural}}',
1630
+
1631
+ // ---------------------------------------------------------------------------
1632
+ // financial.payment extra labels
1633
+ // ---------------------------------------------------------------------------
1634
+ 'financial.payment.account': 'Account',
1635
+ 'financial.payment.due': 'Due:',
1636
+ 'financial.payment.paidAmount': 'Paid:',
1637
+ 'financial.payment.paidOn': 'Paid on:',
1638
+
1639
+ // ---------------------------------------------------------------------------
1640
+ // crud.archetype — detail tab strings
1641
+ // ---------------------------------------------------------------------------
1642
+ 'crud.archetype.comingSoon': 'Coming Soon',
1643
+
1644
+ // Person tabs
1645
+ 'crud.archetype.access.title': 'Access & Permissions',
1646
+ 'crud.archetype.access.description': 'Manage login credentials, assign permission roles, and control what this person can access in the system.',
1647
+ 'crud.access.accountStatus': 'Account Status',
1648
+ 'crud.access.statusLinked': 'Active',
1649
+ 'crud.access.statusPending': 'Invite pending',
1650
+ 'crud.access.statusAccepted': 'Accepted',
1651
+ 'crud.access.statusExpired': 'Invite expired',
1652
+ 'crud.access.statusRevoked': 'Revoked',
1653
+ 'crud.access.acceptedAt': 'Accepted {{date}}',
1654
+ 'crud.access.revokedDesc': 'Access was revoked. You can send a new invite.',
1655
+ 'crud.access.grantAccess': 'Grant Access',
1656
+ 'crud.access.account': 'Account',
1657
+ 'crud.access.accountDesc': 'Login credentials and account status for this person.',
1658
+ 'crud.access.resetPassword': 'Reset Password',
1659
+ 'crud.access.passwordResetSent': 'Password reset email sent.',
1660
+ 'crud.access.profileUpdated': 'Permission profile updated.',
1661
+ 'crud.access.inviteResent': 'Invite resent.',
1662
+ 'crud.access.inviteRevoked': 'Invite revoked.',
1663
+ 'crud.access.accessRemoved': 'Access removed.',
1664
+ 'crud.access.dangerZone': 'Danger Zone',
1665
+ 'crud.access.dangerZoneDesc': 'Irreversible actions that affect this person\'s access to the system.',
1666
+ 'crud.access.removeAccess': 'Remove Access',
1667
+ 'crud.access.revokeInvite': 'Revoke Invite',
1668
+ 'crud.access.confirmRemoveTitle': 'Are you sure?',
1669
+ 'crud.access.confirmRemoveDesc': 'This person will lose all system access immediately. This action cannot be undone.',
1670
+ 'crud.access.accountLinked': 'Account linked',
1671
+ 'crud.access.noAccount': 'No account linked',
1672
+ 'crud.access.noAccountDesc': 'This person does not have a login account and cannot access the system.',
1673
+ 'crud.access.setupDesc': 'Set up system access for this person by entering their email and choosing a permission profile.',
1674
+ 'crud.access.emailPlaceholder': 'person@example.com',
1675
+ 'crud.access.sendInvite': 'Send Invite',
1676
+ 'crud.access.invitePending': 'Invite pending',
1677
+ 'crud.access.inviteSent': 'Invite sent {{date}}',
1678
+ 'crud.access.permissionProfile': 'Permission Profile',
1679
+ 'crud.access.profileDesc': 'Define what this person can access and do in the system.',
1680
+ 'crud.access.systemAccess': 'System Access',
1681
+ 'crud.access.effectivePermissions': 'Effective Permissions',
1682
+ 'crud.access.effectiveDesc': 'What this person can do based on their assigned profile.',
1683
+ 'crud.access.feature': 'Feature',
1684
+ 'crud.access.joined': 'Joined {{date}}',
1685
+ 'crud.access.noEmail': 'No email address',
1686
+ 'crud.access.noEmailDesc': 'Add an email address to this person to link them to a system account.',
1687
+ 'crud.access.manageTeam': 'Manage Team',
1688
+ 'crud.access.manageBilling': 'Manage Billing',
1689
+ 'crud.access.manageSettings': 'Manage Settings',
1690
+ 'crud.access.managePermissions': 'Manage Permissions',
1691
+ 'crud.archetype.activity.title': 'Activity Timeline',
1692
+ 'crud.archetype.activity.description': 'View a chronological log of all actions, changes, and events related to this person.',
1693
+ 'crud.archetype.documents.title': 'Documents',
1694
+ 'crud.archetype.documents.description': 'Attach and manage files, contracts, certifications, and other documents for this person.',
1695
+ 'crud.archetype.schedule.title': 'Schedule',
1696
+ 'crud.archetype.schedule.description': 'View and manage appointments, shifts, and availability for this person.',
1697
+
1698
+ // Product tabs
1699
+ 'crud.archetype.inventory.title': 'Inventory & Stock',
1700
+ 'crud.archetype.inventory.description': 'Track stock levels, view movement history, set reorder alerts, and manage inventory across locations.',
1701
+ 'crud.archetype.suppliers.title': 'Suppliers',
1702
+ 'crud.archetype.suppliers.description': 'View and manage which suppliers provide this product, compare costs, and track purchase orders.',
1703
+ 'crud.archetype.pricing.title': 'Pricing History',
1704
+ 'crud.archetype.pricing.description': 'View price changes over time, manage promotional pricing, and set location-specific prices.',
1705
+ 'crud.archetype.productActivity.title': 'Activity',
1706
+ 'crud.archetype.productActivity.description': 'View a log of all changes, stock adjustments, and events related to this product.',
1707
+
1708
+ // Service tabs
1709
+ 'crud.archetype.availability.title': 'Availability',
1710
+ 'crud.archetype.availability.description': 'Configure when this service can be booked, set duration rules, and manage capacity limits.',
1711
+ 'crud.archetype.servicePricing.title': 'Pricing Tiers',
1712
+ 'crud.archetype.servicePricing.description': 'Manage pricing tiers, member discounts, and location-specific pricing for this service.',
1713
+ 'crud.archetype.serviceActivity.title': 'Activity',
1714
+ 'crud.archetype.serviceActivity.description': 'View a log of all bookings, changes, and events related to this service.',
1715
+
1716
+ // Location tabs
1717
+ 'crud.archetype.members.title': 'Team Members',
1718
+ 'crud.archetype.members.description': 'View and manage staff assigned to this location, their roles and schedules.',
1719
+ 'crud.archetype.locationSchedule.title': 'Operating Hours',
1720
+ 'crud.archetype.locationSchedule.description': 'Set business hours, holidays, and special schedules for this location.',
1721
+ 'crud.archetype.locationStats.title': 'Statistics',
1722
+ 'crud.archetype.locationStats.description': 'View performance metrics, revenue, and activity for this location.',
1723
+ 'crud.archetype.locationActivity.title': 'Activity',
1724
+ 'crud.archetype.locationActivity.description': 'View a log of all events, changes, and operations at this location.',
1725
+
1726
+ // Subject tabs
1727
+ 'crud.archetype.owner.noOwner': 'No owner assigned',
1728
+ 'crud.archetype.owner.assignHint': 'Edit this record to assign an owner.',
1729
+ 'crud.archetype.owner.name': 'Name',
1730
+ 'crud.archetype.owner.phone': 'Phone',
1731
+ 'crud.archetype.owner.email': 'Email',
1732
+ 'crud.archetype.owner.document': 'Document',
1733
+ 'crud.archetype.owner.address': 'Address',
1734
+ 'crud.archetype.owner.active': 'Active',
1735
+ 'crud.archetype.owner.inactive': 'Inactive',
1736
+ 'crud.archetype.history.title': 'History',
1737
+ 'crud.archetype.history.description': 'View visit history, past reports, treatments, and timeline of events.',
1738
+ 'crud.archetype.subjectDocuments.title': 'Documents',
1739
+ 'crud.archetype.subjectDocuments.description': 'Attach and manage files, lab results, images, and certificates.',
1740
+
1741
+ // ---------------------------------------------------------------------------
1742
+ // schedule.days.*
1743
+ // ---------------------------------------------------------------------------
1744
+ 'schedule.days.sun': 'Sun',
1745
+ 'schedule.days.mon': 'Mon',
1746
+ 'schedule.days.tue': 'Tue',
1747
+ 'schedule.days.wed': 'Wed',
1748
+ 'schedule.days.thu': 'Thu',
1749
+ 'schedule.days.fri': 'Fri',
1750
+ 'schedule.days.sat': 'Sat',
1751
+
1752
+ // ---------------------------------------------------------------------------
1753
+ // schedule.editor.*
1754
+ // ---------------------------------------------------------------------------
1755
+ 'schedule.editor.weeklyTitle': 'Weekly Working Hours',
1756
+ 'schedule.editor.weeklyDescription': 'Set when this professional is regularly available',
1757
+ 'schedule.editor.unavailable': 'Unavailable',
1758
+ 'schedule.editor.newInterval': 'New interval for {{day}}',
1759
+ 'schedule.editor.addHoursFor': 'Add hours for {{day}}',
1760
+ 'schedule.editor.removeInterval': 'Remove interval',
1761
+ 'schedule.editor.copyToAll': 'Copy to all days',
1762
+ 'schedule.editor.bufferTooltip': 'Buffer time between appointments',
1763
+ 'schedule.editor.min': 'min',
1764
+ 'schedule.editor.exceptionsTitle': 'Date Exceptions',
1765
+ 'schedule.editor.exceptionsDescription': 'Override working hours for specific dates',
1766
+ 'schedule.editor.addException': 'Add Exception',
1767
+ 'schedule.editor.noExceptions': 'No date exceptions configured',
1768
+ 'schedule.editor.startDate': 'Start date',
1769
+ 'schedule.editor.endDate': 'End date',
1770
+ 'schedule.editor.type': 'Type',
1771
+ 'schedule.editor.customHours': 'Custom hours',
1772
+ 'schedule.editor.workingHours': 'Working hours',
1773
+ 'schedule.editor.to': 'to',
1774
+ 'schedule.editor.addTimeBlock': 'Add time block',
1775
+ 'schedule.editor.notes': 'Notes',
1776
+ 'schedule.editor.notesPlaceholder': 'e.g. Vacation, Holiday, Training...',
1777
+ 'schedule.editor.saveException': 'Save Exception',
1778
+ 'schedule.editor.removeException': 'Remove exception',
1779
+ 'schedule.editor.failedToLoad': 'Failed to load schedule',
1780
+ 'schedule.editor.saved': 'Working hours saved',
1781
+ 'schedule.editor.failedToSave': 'Failed to save',
1782
+ 'schedule.editor.selectStartDate': 'Please select a start date',
1783
+ 'schedule.editor.endDateAfterStart': 'End date must be after start date',
1784
+ 'schedule.editor.exceptionAdded': 'Exception added',
1785
+ 'schedule.editor.failedToSaveException': 'Failed to save exception',
1786
+ 'schedule.editor.exceptionRemoved': 'Exception removed',
1787
+ 'schedule.editor.failedToDelete': 'Failed to delete',
1788
+
1789
+ // ---------------------------------------------------------------------------
1790
+ // schedule.blockSettings.*
1791
+ // ---------------------------------------------------------------------------
1792
+ 'schedule.blockSettings.title': 'Block Settings',
1793
+ 'schedule.blockSettings.location': 'Location',
1794
+ 'schedule.blockSettings.noLocation': 'No location',
1795
+ 'schedule.blockSettings.maxConcurrent': 'Max concurrent',
1796
+ 'schedule.blockSettings.minAdvance': 'Min advance',
1797
+ 'schedule.blockSettings.maxAdvance': 'Max advance',
1798
+ 'schedule.blockSettings.hrs': 'hrs',
1799
+ 'schedule.blockSettings.days': 'days',
1800
+ 'schedule.blockSettings.label': 'Label',
1801
+ 'schedule.blockSettings.labelPlaceholder': 'e.g. Morning - Cuts only',
1802
+ 'schedule.blockSettings.allowedServices': 'Allowed services',
1803
+ 'schedule.blockSettings.allServices': 'All services',
1804
+ 'schedule.blockSettings.oneService': '1 service',
1805
+ 'schedule.blockSettings.nServices': '{{count}} services',
1806
+
1807
+ // registry — inventory
1808
+ 'registry.suppliers': 'Supplier',
1809
+ 'registry.suppliers.description': 'Manage your product and material suppliers',
1810
+ 'registry.product-categories': 'Product Category',
1811
+ 'registry.product-categories.description': 'Product categories for organization',
1812
+ 'registry.stock-locations': 'Stock Location',
1813
+ 'registry.stock-locations.description': 'Physical storage locations for inventory',
1814
+ 'registry.measurement-units': 'Measurement Unit',
1815
+ 'registry.measurement-units.description': 'Standard units of measure',
1816
+
1817
+ // registry — financial
1818
+ 'registry.payment-methods': 'Payment Method',
1819
+ 'registry.chart-of-accounts': 'Chart of Accounts',
1820
+ 'registry.cost-centers': 'Cost Center',
1821
+ 'registry.bank-accounts': 'Bank Account',
1822
+ 'registry.commission-rules': 'Commission Rule',
1823
+ 'registry.price-tables': 'Price Table',
1824
+ 'registry.price-variations': 'Price Variation',
1825
+ 'registry.payment-method-types': 'Payment Type',
1826
+ 'registry.card-brands': 'Card Brand',
1827
+
1828
+ // registry — crm
1829
+ 'registry.lead-sources': 'Lead Source',
1830
+ 'registry.tags': 'Tag',
1831
+ 'registry.activity-types': 'Activity Type',
1832
+
1833
+ // ---------------------------------------------------------------------------
1834
+ // org.connectionError.*
1835
+ // ---------------------------------------------------------------------------
1836
+ 'org.connectionError.title': 'Connection failed',
1837
+ 'org.connectionError.description': 'Unable to connect to the server. Please check your internet connection and try again.',
1838
+ 'org.connectionError.retry': 'Try again',
1839
+
1840
+ // ---------------------------------------------------------------------------
1841
+ // app.mockMode.*
1842
+ // ---------------------------------------------------------------------------
1843
+ 'app.mockMode.banner': 'You are in offline mode. Data shown may not be up to date.',
1844
+ }
1845
+
1846
+ // ---------------------------------------------------------------------------
1847
+ // Built-in locale packs
1848
+ // ---------------------------------------------------------------------------
1849
+
1850
+ export const builtInLocales: Record<string, Record<string, string>> = {
1851
+ 'pt-BR': {
1852
+ // common
1853
+ 'common.save': 'Salvar',
1854
+ 'common.saveChanges': 'Salvar Alterações',
1855
+ 'common.saving': 'Salvando...',
1856
+ 'common.cancel': 'Cancelar',
1857
+ 'common.delete': 'Excluir',
1858
+ 'common.edit': 'Editar',
1859
+ 'common.close': 'Fechar',
1860
+ 'common.confirm': 'Confirmar',
1861
+ 'common.back': 'Voltar',
1862
+ 'common.add': 'Adicionar',
1863
+ 'common.loading': 'Carregando...',
1864
+ 'common.error': 'Algo deu errado',
1865
+ 'common.noResults': 'Nenhum resultado encontrado.',
1866
+ 'common.search': 'Buscar',
1867
+ 'common.actions': 'Ações',
1868
+ 'common.continue': 'Continuar',
1869
+ 'common.done': 'Pronto',
1870
+ 'common.yes': 'Sim',
1871
+ 'common.no': 'Não',
1872
+ 'common.active': 'Ativo',
1873
+ 'common.inactive': 'Inativo',
1874
+ 'common.overview': 'Visão Geral',
1875
+ 'common.notFound': 'Não Encontrado',
1876
+ 'common.untitled': 'Sem título',
1877
+ 'common.noContentYet': 'Nenhum conteúdo ainda',
1878
+ 'common.selectDate': 'Selecionar data',
1879
+ 'common.plugins': 'Plugins',
1880
+
1881
+ // auth.login
1882
+ 'auth.login.title': 'Entrar',
1883
+ 'auth.login.titleCentered': 'Bem-vindo de Volta',
1884
+ 'auth.login.subtitle': 'Insira suas credenciais para acessar sua conta',
1885
+ 'auth.login.emailLabel': 'E-mail',
1886
+ 'auth.login.emailPlaceholder': 'voce@exemplo.com',
1887
+ 'auth.login.passwordLabel': 'Senha',
1888
+ 'auth.login.passwordPlaceholder': 'Digite sua senha',
1889
+ 'auth.login.forgotPassword': 'Esqueceu a senha?',
1890
+ 'auth.login.submit': 'Entrar',
1891
+ 'auth.login.submitting': 'Entrando...',
1892
+ 'auth.login.error': 'Falha ao entrar. Tente novamente.',
1893
+ 'auth.login.oauthDivider': 'ou continue com',
1894
+ 'auth.login.noAccount': 'Não tem uma conta?',
1895
+ 'auth.login.noAccountCentered': 'Ainda não tem uma conta?',
1896
+ 'auth.login.signUpLink': 'Cadastre-se',
1897
+ 'auth.login.socialProof': 'Junte-se a milhares de empresas que já usam {{appName}}',
1898
+
1899
+ // auth.signup
1900
+ 'auth.signup.title': 'Criar conta',
1901
+ 'auth.signup.titleCentered': 'Criar Conta',
1902
+ 'auth.signup.subtitle': 'Comece com sua nova conta',
1903
+ 'auth.signup.nameLabel': 'Nome completo',
1904
+ 'auth.signup.namePlaceholder': 'João Silva',
1905
+ 'auth.signup.emailLabel': 'E-mail',
1906
+ 'auth.signup.emailPlaceholder': 'voce@exemplo.com',
1907
+ 'auth.signup.passwordLabel': 'Senha',
1908
+ 'auth.signup.passwordPlaceholder': 'Pelo menos 8 caracteres',
1909
+ 'auth.signup.confirmPasswordLabel': 'Confirmar senha',
1910
+ 'auth.signup.confirmPasswordPlaceholder': 'Repita sua senha',
1911
+ 'auth.signup.termsPrefix': 'Ao criar uma conta, você concorda com nossos',
1912
+ 'auth.signup.termsOfService': 'Termos de Serviço',
1913
+ 'auth.signup.privacyPolicy': 'Política de Privacidade',
1914
+ 'auth.signup.submit': 'Criar conta',
1915
+ 'auth.signup.submitting': 'Criando conta...',
1916
+ 'auth.signup.error': 'Falha ao criar conta. Tente novamente.',
1917
+ 'auth.signup.passwordMismatch': 'As senhas não conferem.',
1918
+ 'auth.signup.passwordTooShort': 'A senha deve ter pelo menos 8 caracteres.',
1919
+ 'auth.signup.success': 'Conta criada para {{email}}. Verifique sua caixa de entrada para confirmar seu e-mail.',
1920
+ 'auth.signup.hasAccount': 'Já tem uma conta?',
1921
+ 'auth.signup.signInLink': 'Entrar',
1922
+
1923
+ // auth.recovery
1924
+ 'auth.recovery.title': 'Redefinir senha',
1925
+ 'auth.recovery.titleCentered': 'Redefinir Senha',
1926
+ 'auth.recovery.instruction': 'Insira seu e-mail e enviaremos um link para redefinir sua senha.',
1927
+ 'auth.recovery.subtitle': 'Enviaremos um link de redefinição',
1928
+ 'auth.recovery.emailLabel': 'E-mail',
1929
+ 'auth.recovery.emailPlaceholder': 'voce@exemplo.com',
1930
+ 'auth.recovery.submit': 'Enviar link',
1931
+ 'auth.recovery.submitting': 'Enviando...',
1932
+ 'auth.recovery.error': 'Falha ao enviar e-mail. Tente novamente.',
1933
+ 'auth.recovery.successHeading': 'Verifique seu e-mail',
1934
+ 'auth.recovery.successMessage': 'Enviamos um link de redefinição para {{email}}. Verifique sua caixa de entrada e siga as instruções.',
1935
+ 'auth.recovery.backToLogin': 'Voltar ao login',
1936
+
1937
+ // auth.oauth
1938
+ 'auth.oauth.continueWith': 'Continuar com {{provider}}',
1939
+
1940
+ // auth legacy
1941
+ 'auth.signIn': 'Entrar',
1942
+ 'auth.signUp': 'Cadastrar',
1943
+ 'auth.signOut': 'Sair',
1944
+ 'auth.email': 'E-mail',
1945
+ 'auth.password': 'Senha',
1946
+ 'auth.forgotPassword': 'Esqueceu a Senha?',
1947
+
1948
+ // crud.list
1949
+ 'crud.list.empty': 'Nenhum(a) {{entities}} ainda',
1950
+ 'crud.list.addFirst': 'Adicione seu(sua) primeiro(a) {{entity}}',
1951
+ 'crud.list.totalCount': '{{count}} {{entities}} no total',
1952
+ 'crud.list.searchPlaceholder': 'Buscar {{entities}}...',
1953
+ 'crud.list.addButton': '+ Adicionar {{entity}}',
1954
+
1955
+ // crud.detail
1956
+ 'crud.detail.notFound': '{{entity}} não encontrado(a).',
1957
+ 'crud.detail.backTo': 'Voltar para {{entities}}',
1958
+
1959
+ // crud.form
1960
+ 'crud.form.addTitle': 'Adicionar {{entity}}',
1961
+ 'crud.form.editTitle': 'Editar {{entity}}',
1962
+ 'crud.form.createSubtitle': 'Criar um(a) novo(a) {{entity}}.',
1963
+ 'crud.form.editSubtitle': 'Atualizar detalhes de {{entity}}.',
1964
+ 'crud.form.newBreadcrumb': 'Novo(a) {{entity}}',
1965
+ 'crud.form.selectPlaceholder': 'Selecione {{label}}...',
1966
+ 'crud.form.saveError': 'Falha ao salvar {{entity}}',
1967
+ 'crud.form.saving': 'Salvando...',
1968
+
1969
+ // crud.delete
1970
+ 'crud.delete.title': 'Excluir {{entity}}?',
1971
+ 'crud.delete.confirmNamed': 'Tem certeza que deseja excluir "{{displayValue}}"? Esta ação não pode ser desfeita.',
1972
+ 'crud.delete.confirmGeneric': 'Tem certeza que deseja excluir este(a) {{entity}}? Esta ação não pode ser desfeita.',
1973
+ 'crud.delete.cancel': 'Cancelar',
1974
+ 'crud.delete.delete': 'Excluir',
1975
+
1976
+ // crud.tabs
1977
+ 'crud.tabs.access': 'Acesso',
1978
+ 'crud.tabs.schedule': 'Agenda',
1979
+ 'crud.tabs.documents': 'Documentos',
1980
+ 'crud.tabs.activity': 'Atividade',
1981
+ 'crud.tabs.inventory': 'Estoque',
1982
+ 'crud.tabs.suppliers': 'Fornecedores',
1983
+ 'crud.tabs.pricing': 'Preços',
1984
+ 'crud.tabs.members': 'Equipe',
1985
+ 'crud.tabs.stats': 'Estatísticas',
1986
+ 'crud.tabs.availability': 'Disponibilidade',
1987
+ 'crud.tabs.orders': 'Pedidos',
1988
+
1989
+ // crud.orders.*
1990
+ 'crud.orders.all': 'Todos',
1991
+ 'crud.orders.columnDate': 'Data',
1992
+ 'crud.orders.columnStage': 'Etapa',
1993
+ 'crud.orders.columnDescription': 'Descrição',
1994
+ 'crud.orders.columnAmount': 'Valor',
1995
+ 'crud.orders.searchPlaceholder': 'Buscar pedidos...',
1996
+ 'crud.orders.noDocuments': 'Nenhum pedido ainda',
1997
+ 'crud.orders.stage.draft': 'Rascunho',
1998
+ 'crud.orders.stage.quoted': 'Orçado',
1999
+ 'crud.orders.stage.booked': 'Agendado',
2000
+ 'crud.orders.stage.invoiced': 'Faturado',
2001
+ 'crud.orders.stage.paid': 'Pago',
2002
+ 'crud.orders.stage.partial': 'Parcial',
2003
+ 'crud.orders.stage.overdue': 'Vencido',
2004
+ 'crud.orders.stage.cancelled': 'Cancelado',
2005
+ 'crud.orders.stage.no_show': 'Não Compareceu',
2006
+ 'crud.orders.stage.completed': 'Concluído',
2007
+
2008
+ // layout.userMenu
2009
+ 'layout.userMenu.profile': 'Perfil',
2010
+ 'layout.userMenu.settings': 'Configurações',
2011
+ 'layout.userMenu.billing': 'Faturamento',
2012
+ 'layout.userMenu.help': 'Ajuda',
2013
+ 'layout.userMenu.lightMode': 'Modo claro',
2014
+ 'layout.userMenu.darkMode': 'Modo escuro',
2015
+ 'layout.userMenu.systemMode': 'Sistema',
2016
+ 'layout.userMenu.language': 'Idioma',
2017
+ 'layout.userMenu.selectLocation': 'Selecionar local',
2018
+ 'layout.switchingLocation': 'Trocando de local…',
2019
+ 'layout.userMenu.signOut': 'Sair',
2020
+
2021
+ // layout.topbar
2022
+ 'layout.topbar.searchPlaceholder': 'Buscar...',
2023
+
2024
+ // layout.sidebar
2025
+ 'layout.sidebar.collapse': 'Recolher barra lateral',
2026
+ 'layout.sidebar.expand': 'Expandir barra lateral',
2027
+
2028
+ // layout.commandPalette
2029
+ 'layout.commandPalette.placeholder': 'Buscar páginas, pessoas, produtos, serviços...',
2030
+ 'layout.commandPalette.resultsCount': '{{count}} resultado{{plural}}',
2031
+ 'layout.commandPalette.noResults': 'Nenhum resultado encontrado.',
2032
+ 'layout.commandPalette.searching': 'Buscando\u2026',
2033
+
2034
+ // billing
2035
+ 'billing.title': 'Faturamento',
2036
+ 'billing.subtitle': 'Gerencie sua assinatura e faturamento.',
2037
+ 'billing.currentPlan': 'Plano Atual',
2038
+ 'billing.upgrade': 'Fazer Upgrade',
2039
+ 'billing.downgrade': 'Fazer Downgrade',
2040
+ 'billing.monthly': 'Mensal',
2041
+ 'billing.yearly': 'Anual',
2042
+ 'billing.yearlySave': 'Economize 20%',
2043
+ 'billing.free': 'Gratuito',
2044
+ 'billing.cancelSubscription': 'Cancelar Assinatura',
2045
+ 'billing.canceling': 'Cancelando...',
2046
+ 'billing.resumeSubscription': 'Retomar Assinatura',
2047
+ 'billing.resuming': 'Retomando...',
2048
+ 'billing.features': 'Recursos',
2049
+ 'billing.perMonth': '/mês',
2050
+ 'billing.perYear': '/ano',
2051
+ 'billing.getStarted': 'Começar',
2052
+ 'billing.processing': 'Processando...',
2053
+ 'billing.mostPopular': 'Mais Popular',
2054
+ 'billing.nextBilling': 'Próxima cobrança: {{date}}',
2055
+ 'billing.cancelsOn': 'Cancela em {{date}}',
2056
+ 'billing.trialEnds': 'Período de teste termina em {{date}}',
2057
+ 'billing.pastDueWarning': 'Seu pagamento está atrasado. Atualize seu método de pagamento para evitar interrupção do serviço.',
2058
+ 'billing.status.active': 'Ativo',
2059
+ 'billing.status.trialing': 'Período de Teste',
2060
+ 'billing.status.pastDue': 'Atrasado',
2061
+ 'billing.status.canceled': 'Cancelado',
2062
+ 'billing.status.paused': 'Pausado',
2063
+
2064
+ // organization
2065
+ 'organization.invite': 'Convidar',
2066
+ 'organization.members': 'Membros',
2067
+ 'organization.memberCount': '{{count}} membro{{plural}} nesta organização.',
2068
+ 'organization.role': 'Função',
2069
+ 'organization.emailPlaceholder': 'equipe@exemplo.com',
2070
+ 'organization.sendInvites': 'Enviar Convites',
2071
+ 'organization.sending': 'Enviando...',
2072
+ 'organization.pending': 'Convites Pendentes',
2073
+ 'organization.remove': 'Remover membro',
2074
+ 'organization.resend': 'Reenviar',
2075
+ 'organization.revoke': 'Revogar',
2076
+ 'organization.inviteTitle': 'Convidar Membros da Equipe',
2077
+ 'organization.inviteDescription': 'Envie convites para entrar na sua organização.',
2078
+ 'organization.inviteSent': 'Convites enviados',
2079
+ 'organization.inviteSentDescription': 'Seus membros receberão um e-mail com instruções para entrar.',
2080
+ 'organization.emailAddresses': 'Endereços de e-mail',
2081
+ 'organization.addAnother': 'Adicionar outro',
2082
+ 'organization.selectRole': 'Selecione uma função',
2083
+ 'organization.you': '(você)',
2084
+ 'organization.joined': 'Entrou',
2085
+ 'organization.onboarding.title': 'Configure seu espaço de trabalho',
2086
+ 'organization.onboarding.namePrompt': 'Como devemos chamar seu espaço de trabalho?',
2087
+ 'organization.onboarding.preferencesPrompt': 'Preferências regionais',
2088
+ 'organization.onboarding.workspaceName': 'Nome do espaço de trabalho',
2089
+ 'organization.onboarding.workspaceNamePlaceholder': 'Minha Empresa',
2090
+ 'organization.onboarding.timezone': 'Fuso horário',
2091
+ 'organization.onboarding.currency': 'Moeda',
2092
+ 'organization.onboarding.creating': 'Configurando seu espaço de trabalho',
2093
+ 'organization.onboarding.creatingDescription': 'Isso levará apenas um momento...',
2094
+ 'organization.onboarding.createWorkspace': 'Criar Espaço de Trabalho',
2095
+
2096
+ // settings
2097
+ 'settings.title': 'Configurações',
2098
+ 'settings.subtitle': 'Gerencie sua conta e preferências da organização.',
2099
+ 'settings.general': 'Geral',
2100
+ 'settings.profile': 'Perfil',
2101
+ 'settings.branding': 'Marca',
2102
+ 'settings.security': 'Segurança',
2103
+ 'settings.team': 'Equipe',
2104
+ 'settings.permissions': 'Permissões',
2105
+ 'settings.locations': 'Locais',
2106
+ 'settings.holidays': 'Feriados',
2107
+ 'settings.fieldRules': 'Regras de Campos',
2108
+ 'settings.notifications': 'Notificações',
2109
+ 'settings.save': 'Salvar Alterações',
2110
+ 'settings.saving': 'Salvando...',
2111
+ 'settings.companyInfo': 'Informações da Empresa',
2112
+ 'settings.companyInfoDescription': 'Atualize os dados da sua organização e preferências regionais.',
2113
+ 'settings.companyName': 'Nome da Empresa',
2114
+ 'settings.companyNamePlaceholder': 'Minha Empresa LTDA',
2115
+ 'settings.timezone': 'Fuso Horário',
2116
+ 'settings.timezonePlaceholder': 'Selecione o fuso horário',
2117
+ 'settings.currency': 'Moeda',
2118
+ 'settings.currencyPlaceholder': 'Selecione a moeda',
2119
+ 'settings.locale': 'Idioma',
2120
+ 'settings.localePlaceholder': 'Selecione o idioma',
2121
+ 'settings.uploadLogo': 'Enviar Logo',
2122
+ 'settings.uiLanguage': 'Idioma da Interface',
2123
+ 'settings.uiLanguageDescription': 'Escolha o idioma da interface. Aplica-se apenas à sua sessão.',
2124
+
2125
+ // notifications
2126
+ 'notifications.title': 'Notificações',
2127
+ 'notifications.markAllRead': 'Marcar todas como lidas',
2128
+ 'notifications.empty': 'Sem notificações',
2129
+ 'notifications.whatsNew': 'Novidades',
2130
+ 'notifications.inbox': 'Caixa de Entrada',
2131
+
2132
+ // app
2133
+ 'app.notFound.title': '404',
2134
+ 'app.notFound.heading': 'Página não encontrada',
2135
+ 'app.notFound.message': 'A página que você procura não existe ou foi movida.',
2136
+ 'app.notFound.goToDashboard': 'Ir para o Painel',
2137
+ 'app.accessDenied.heading': 'Acesso Negado',
2138
+ 'app.accessDenied.message': 'Você não tem permissão para acessar esta página.',
2139
+
2140
+ // crud.form (additional)
2141
+ 'crud.form.requiredIndicator': '*',
2142
+ 'crud.form.createDescription': 'Criar um(a) novo(a) {{entity}}.',
2143
+ 'crud.form.editDescription': 'Atualizar detalhes de {{entity}}.',
2144
+ 'crud.form.failedToSave': 'Falha ao salvar {{entity}}',
2145
+ 'crud.form.saveChanges': 'Salvar Alterações',
2146
+ 'crud.form.select': 'Selecione {{field}}...',
2147
+
2148
+ // crud.list (additional)
2149
+ 'crud.list.addEntity': '+ Adicionar {{entity}}',
2150
+ 'crud.list.search': 'Buscar {{entities}}...',
2151
+
2152
+ // crud.import
2153
+ 'crud.import.action': 'Importar',
2154
+ 'crud.import.title': 'Importar {{entity}}',
2155
+ 'crud.import.step.download': 'Modelo',
2156
+ 'crud.import.step.upload': 'Upload',
2157
+ 'crud.import.step.mapping': 'Mapeamento',
2158
+ 'crud.import.step.importing': 'Importar',
2159
+ 'crud.import.downloadTitle': 'Baixe o modelo',
2160
+ 'crud.import.downloadDescription': 'Baixe um modelo CSV com todos os campos disponíveis para {{entity}}. Preencha e envie no próximo passo.',
2161
+ 'crud.import.downloadTemplate': 'Baixar modelo CSV',
2162
+ 'crud.import.downloadHint': '{{count}} campos disponíveis',
2163
+ 'crud.import.alreadyHaveFile': 'Já tenho um arquivo',
2164
+ 'crud.import.uploadTitle': 'Arraste seu arquivo CSV aqui ou clique para buscar',
2165
+ 'crud.import.uploadHint': 'Apenas arquivos .csv são aceitos',
2166
+ 'crud.import.invalidFile': 'Envie um arquivo .csv.',
2167
+ 'crud.import.emptyFile': 'O arquivo parece estar vazio.',
2168
+ 'crud.import.noRows': 'O arquivo tem cabeçalho mas nenhuma linha de dados.',
2169
+ 'crud.import.mappingTitle': 'Mapeie suas colunas',
2170
+ 'crud.import.mappingDescription': '{{file}} — {{columns}} colunas, {{rows}} linhas',
2171
+ 'crud.import.mappedCount': '{{count}} de {{total}} mapeados',
2172
+ 'crud.import.csvColumn': 'Coluna CSV',
2173
+ 'crud.import.mapsTo': 'Mapeia para',
2174
+ 'crud.import.preview': 'Prévia',
2175
+ 'crud.import.skip': '— Ignorar esta coluna',
2176
+ 'crud.import.startImport': 'Iniciar importação',
2177
+ 'crud.import.importing': 'Importando...',
2178
+ 'crud.import.importingHint': 'Processando {{count}} linhas',
2179
+ 'crud.import.progressCount': '{{processed}} de {{total}} linhas processadas',
2180
+ 'crud.import.doneSuccess': 'Importação concluída!',
2181
+ 'crud.import.doneWithErrors': 'Importação concluída com erros',
2182
+ 'crud.import.doneCount': '{{success}} de {{total}} linhas importadas com sucesso',
2183
+ 'crud.import.rowNumber': 'Linha {{row}}:',
2184
+ 'crud.import.toastSuccess': '{{count}} registros importados',
2185
+ 'crud.import.noConnection': 'Sem conexão com o banco de dados. A importação requer uma conexão ativa.',
2186
+
2187
+ // crud.export
2188
+ 'crud.export.action': 'Exportar',
2189
+ 'crud.export.noData': 'Sem dados para exportar.',
2190
+ 'crud.export.toastSuccess': '{{count}} registros exportados',
2191
+
2192
+ // layout.topbar (additional)
2193
+ 'layout.topbar.keyboardShortcut': '\u2318K',
2194
+ 'layout.topbar.search': 'Buscar...',
2195
+
2196
+ // layout.commandPalette (additional)
2197
+ 'layout.commandPalette.commandsCount': '{{count}} comando{{plural}}',
2198
+ 'layout.commandPalette.navigate': 'navegar',
2199
+ 'layout.commandPalette.open': 'abrir',
2200
+ 'layout.commandPalette.commandCount': '{{count}} comando{{plural}}',
2201
+ 'layout.commandPalette.description': 'Buscar páginas, ações, pessoas, produtos e serviços',
2202
+ 'layout.commandPalette.resultCount': '{{count}} resultado{{plural}}',
2203
+ 'layout.commandPalette.title': 'Paleta de comandos',
2204
+
2205
+ // layout.bottomNav
2206
+ 'layout.bottomNav.chat': 'Chat',
2207
+
2208
+ // layout.mobileDrawer
2209
+ 'layout.mobileDrawer.description': 'Links de navegação do aplicativo',
2210
+ 'layout.mobileDrawer.title': 'Menu de navegação',
2211
+
2212
+ // organization (additional)
2213
+ 'organization.sent': 'Enviado {{date}}',
2214
+ 'organization.failedInvites': 'Falha ao enviar convites',
2215
+ 'organization.onboarding.failedCreate': 'Falha ao criar espaço de trabalho',
2216
+ 'organization.createOrg': 'Criar organização',
2217
+ 'organization.createOrgDescription': 'Crie um novo espaço de trabalho para sua equipe.',
2218
+ 'organization.createOrgTitle': 'Criar Organização',
2219
+ 'organization.creating': 'Criando...',
2220
+ 'organization.orgNamePlaceholder': 'Nome da organização',
2221
+ 'organization.onboarding.oneMoment': 'Isso levará apenas um momento...',
2222
+ 'organization.onboarding.preferences': 'Preferências regionais',
2223
+ 'organization.onboarding.settingUp': 'Configurando seu espaço de trabalho',
2224
+ 'organization.onboarding.setupWorkspace': 'Configure seu espaço de trabalho',
2225
+ 'organization.onboarding.whatName': 'Como devemos chamar seu espaço de trabalho?',
2226
+
2227
+ // organization.invite (additional)
2228
+ 'organization.invite.addAnother': 'Adicionar outro',
2229
+ 'organization.invite.description': 'Envie convites para entrar na sua organização.',
2230
+ 'organization.invite.emailLabel': 'Endereços de e-mail',
2231
+ 'organization.invite.roleLabel': 'Função',
2232
+ 'organization.invite.rolePlaceholder': 'Selecione uma função',
2233
+ 'organization.invite.sendInvites': 'Enviar Convites',
2234
+ 'organization.invite.sending': 'Enviando...',
2235
+ 'organization.invite.sent': 'Convites enviados',
2236
+ 'organization.invite.sentDescription': 'Seus membros receberão um e-mail com instruções para entrar.',
2237
+ 'organization.invite.title': 'Convidar Membros da Equipe',
2238
+
2239
+ // organization.permissions
2240
+ 'organization.permissions.createCustom': 'Criar Perfil Personalizado',
2241
+ 'organization.permissions.createProfile': 'Criar Perfil',
2242
+ 'organization.permissions.description': 'Descrição',
2243
+ 'organization.permissions.descriptionPlaceholder': 'Descrição opcional',
2244
+ 'organization.permissions.editProfile': 'Editar: {{name}}',
2245
+ 'organization.permissions.manageBilling': 'Gerenciar Faturamento',
2246
+ 'organization.permissions.managePermissions': 'Gerenciar Permissões',
2247
+ 'organization.permissions.manageSettings': 'Gerenciar Configurações',
2248
+ 'organization.permissions.manageTeam': 'Gerenciar Equipe',
2249
+ 'organization.permissions.memberCount': '{{count}} membro{{plural}}',
2250
+ 'organization.permissions.previewAs': 'Visualizar como',
2251
+ 'organization.permissions.previewingAs': 'Visualizando como',
2252
+ 'organization.permissions.exitPreview': 'Sair da Visualização',
2253
+ 'organization.permissions.searchFeatures': 'Buscar recursos...',
2254
+ 'organization.permissions.profileName': 'Nome do Perfil',
2255
+ 'organization.permissions.profileNamePlaceholder': 'ex.: Função Personalizada',
2256
+ 'organization.permissions.subtitle': 'Gerencie funções e suas permissões.',
2257
+ 'organization.permissions.system': 'Sistema',
2258
+ 'organization.permissions.systemPermissions': 'Permissões do Sistema',
2259
+ 'organization.permissions.title': 'Perfis de Permissão',
2260
+ 'organization.permissions.updateProfile': 'Atualizar Perfil',
2261
+
2262
+ // organization.team
2263
+ 'organization.team.invite': 'Convidar',
2264
+ 'organization.team.joined': 'Entrou',
2265
+ 'organization.team.member': 'Membro',
2266
+ 'organization.team.memberCount': '{{count}} membro{{plural}} nesta organização.',
2267
+ 'organization.team.pendingInvites': 'Convites Pendentes',
2268
+ 'organization.team.removeMember': 'Remover membro',
2269
+ 'organization.team.resend': 'Reenviar',
2270
+ 'organization.team.revoke': 'Revogar',
2271
+ 'organization.team.role': 'Função',
2272
+ 'organization.team.sent': 'Enviado {{date}}',
2273
+ 'organization.team.title': 'Membros',
2274
+ 'organization.team.you': '(você)',
2275
+
2276
+ // user (legacy)
2277
+ 'user.profile': 'Perfil',
2278
+ 'user.settings': 'Configurações',
2279
+ 'user.help': 'Ajuda',
2280
+ 'user.shortcuts': 'Atalhos de Teclado',
2281
+ 'user.theme': 'Tema',
2282
+ 'user.themeLight': 'Claro',
2283
+ 'user.themeDark': 'Escuro',
2284
+ 'user.themeSystem': 'Sistema',
2285
+
2286
+ // notifications (additional)
2287
+ 'notifications.noUpdates': 'Nenhuma atualização ainda',
2288
+
2289
+ // common (additional)
2290
+ 'common.create': 'Criar',
2291
+ 'common.feature': 'Recurso',
2292
+ 'common.message': 'Mensagem...',
2293
+ 'common.more': 'Mais',
2294
+ 'common.noContent': 'Nenhum conteúdo ainda',
2295
+
2296
+ // chat
2297
+ 'chat.defaultTitle': 'Assistente',
2298
+ 'chat.tryAsking': 'Experimente perguntar',
2299
+ 'chat.fab.tryIt': 'Experimente',
2300
+ 'chat.messagePlaceholder': 'Mensagem...',
2301
+ 'chat.toolsAvailable': '{{count}} ferramentas disponíveis',
2302
+ // Dashboard
2303
+ 'chat.suggestion.dashboard.kpi-summary.0': 'Como está meu negócio hoje?',
2304
+ 'chat.suggestion.dashboard.kpi-summary.1': 'Qual o faturamento de hoje?',
2305
+ 'chat.suggestion.dashboard.kpi-summary.2': 'Me dê um resumo do dia',
2306
+ // Agenda
2307
+ 'chat.suggestion.agenda.list-appointments.0': 'O que tem na agenda hoje?',
2308
+ 'chat.suggestion.agenda.list-appointments.1': 'Mostre os agendamentos de amanhã',
2309
+ 'chat.suggestion.agenda.list-appointments.2': 'Quem tem mais atendimentos esta semana?',
2310
+ 'chat.suggestion.agenda.create-appointment.0': 'Agende um corte para Sarah amanhã às 10h',
2311
+ 'chat.suggestion.agenda.check-availability.0': 'Quando Ana está disponível amanhã?',
2312
+ 'chat.suggestion.agenda.check-availability.1': 'Encontre um horário de 90 minutos para Carlos esta semana',
2313
+ // Financial
2314
+ 'chat.suggestion.financial.get-revenue.0': 'Quanto faturamos hoje?',
2315
+ 'chat.suggestion.financial.get-revenue.1': 'Qual o faturamento deste mês?',
2316
+ 'chat.suggestion.financial.get-revenue.2': 'Compare o faturamento desta semana com a anterior',
2317
+ 'chat.suggestion.financial.create-invoice.0': 'Crie uma fatura para um novo cliente',
2318
+ 'chat.suggestion.financial.list-payables.0': 'Mostre as contas em atraso',
2319
+ 'chat.suggestion.financial.list-payables.1': 'Quais contas vencem esta semana?',
2320
+ // Inventory
2321
+ 'chat.suggestion.inventory.low-stock.0': 'Quais produtos estão com estoque baixo?',
2322
+ 'chat.suggestion.inventory.low-stock.1': 'Mostre um resumo do estoque',
2323
+ 'chat.suggestion.inventory.low-stock.2': 'Quais são os produtos mais usados?',
2324
+ // CRM
2325
+ 'chat.suggestion.crm.count-customers.0': 'Quantos clientes temos?',
2326
+ 'chat.suggestion.crm.count-customers.1': 'Quem são meus melhores clientes?',
2327
+ 'chat.suggestion.crm.list-leads.0': 'Mostre os leads novos desta semana',
2328
+ 'chat.suggestion.crm.list-leads.1': 'Quais leads precisam de follow-up?',
2329
+ 'chat.suggestion.crm.list-leads.2': 'Qual nossa taxa de conversão?',
2330
+ // Custom Forms
2331
+ 'chat.suggestion.custom_forms.list-templates.0': 'Quais formulários temos?',
2332
+ 'chat.suggestion.custom_forms.list-templates.1': 'Mostre os modelos de anamnese',
2333
+ 'chat.suggestion.custom_forms.list-documents.0': 'Mostre os documentos deste cliente',
2334
+
2335
+ // billing (additional)
2336
+ 'billing.invoice.amount': 'Valor',
2337
+ 'billing.invoice.date': 'Data',
2338
+ 'billing.invoice.invoice': 'Fatura',
2339
+ 'billing.invoice.noInvoices': 'Nenhuma fatura ainda',
2340
+ 'billing.invoice.status': 'Status',
2341
+ 'billing.paywall.notAvailable': 'Este recurso não está disponível no seu plano atual.',
2342
+ 'billing.paywall.requiresPlan': 'Este recurso requer o plano {{plan}} ou superior.',
2343
+ 'billing.paywall.upgradeRequired': 'Upgrade Necessário',
2344
+ 'billing.paywall.viewPlans': 'Ver Planos',
2345
+
2346
+ // auth (additional duplicates/variants)
2347
+ 'auth.login.enterCredentials': 'Insira suas credenciais para acessar sua conta',
2348
+ 'auth.login.failedDefault': 'Falha ao entrar. Tente novamente.',
2349
+ 'auth.login.failedWithProvider': 'Falha ao entrar com {{provider}}.',
2350
+ 'auth.login.orContinueWith': 'ou continue com',
2351
+ 'auth.login.placeholder.email': 'voce@exemplo.com',
2352
+ 'auth.login.placeholder.password': 'Digite sua senha',
2353
+ 'auth.login.signingIn': 'Entrando...',
2354
+ 'auth.login.welcomeBack': 'Bem-vindo de Volta',
2355
+ 'auth.login.welcomeTo': 'Bem-vindo ao {{appName}}',
2356
+ 'auth.recovery.checkEmail': 'Verifique seu e-mail',
2357
+ 'auth.recovery.description': 'Insira seu e-mail e enviaremos um link para redefinir sua senha.',
2358
+ 'auth.recovery.failedDefault': 'Falha ao enviar e-mail. Tente novamente.',
2359
+ 'auth.recovery.resetLinkSent': 'Enviamos um link de redefinição para <strong>{{email}}</strong>. Verifique sua caixa de entrada e siga as instruções.',
2360
+ 'auth.recovery.sendResetLink': 'Enviar link de redefinição',
2361
+ 'auth.recovery.sending': 'Enviando...',
2362
+ 'auth.signup.confirmPassword': 'Confirmar senha',
2363
+ 'auth.signup.creating': 'Criando conta...',
2364
+ 'auth.signup.emailVerification': 'Conta criada para {{email}}. Verifique sua caixa de entrada para confirmar seu e-mail.',
2365
+ 'auth.signup.failedDefault': 'Falha ao criar conta. Tente novamente.',
2366
+ 'auth.signup.fullName': 'Nome completo',
2367
+ 'auth.signup.getStarted': 'Comece com sua nova conta',
2368
+ 'auth.signup.passwordMinLength': 'A senha deve ter pelo menos 8 caracteres.',
2369
+ 'auth.signup.passwordsMismatch': 'As senhas não conferem.',
2370
+ 'auth.signup.placeholder.confirm': 'Repita sua senha',
2371
+ 'auth.signup.placeholder.name': 'João Silva',
2372
+ 'auth.signup.placeholder.password': 'Pelo menos 8 caracteres',
2373
+ 'auth.signup.termsAgreement': 'Ao criar uma conta, você concorda com nossos',
2374
+
2375
+ // settings.branding
2376
+ 'settings.branding.accentColor': 'Cor de Destaque',
2377
+ 'settings.branding.chooseFile': 'Escolher Arquivo',
2378
+ 'settings.branding.favicon': 'Favicon',
2379
+ 'settings.branding.faviconHint': 'Recomendado: 32x32px, PNG ou ICO',
2380
+ 'settings.branding.logo': 'Logo',
2381
+ 'settings.branding.logoHint': 'Recomendado: 200x50px, PNG ou SVG',
2382
+ 'settings.branding.preview': 'Pré-visualização',
2383
+ 'settings.branding.primaryColor': 'Cor Primária',
2384
+ 'settings.branding.saveBranding': 'Salvar Marca',
2385
+ 'settings.branding.subtitle': 'Personalize a aparência do seu espaço de trabalho.',
2386
+ 'settings.branding.title': 'Marca',
2387
+
2388
+ // settings.company
2389
+ 'settings.company.currency': 'Moeda',
2390
+ 'settings.company.currencyPlaceholder': 'Selecione a moeda',
2391
+ 'settings.company.locale': 'Idioma',
2392
+ 'settings.company.localePlaceholder': 'Selecione o idioma',
2393
+ 'settings.company.name': 'Nome da Empresa',
2394
+ 'settings.company.subtitle': 'Atualize os dados da sua organização e preferências regionais.',
2395
+ 'settings.company.timezone': 'Fuso Horário',
2396
+ 'settings.company.timezonePlaceholder': 'Selecione o fuso horário',
2397
+ 'settings.company.title': 'Informações da Empresa',
2398
+
2399
+ // settings.holidays
2400
+ 'settings.holidays.addHoliday': 'Adicionar Feriado',
2401
+ 'settings.holidays.annual': 'Anual',
2402
+ 'settings.holidays.descriptionPlaceholder': 'Descrição (opcional)',
2403
+ 'settings.holidays.empty': 'Nenhum feriado configurado ainda.',
2404
+ 'settings.holidays.namePlaceholder': 'Nome do feriado *',
2405
+ 'settings.holidays.newHoliday': 'Novo Feriado',
2406
+ 'settings.holidays.recurringAnnually': 'Recorrente anualmente',
2407
+ 'settings.holidays.subtitle': 'Dias não úteis e feriados recorrentes.',
2408
+ 'settings.holidays.title': 'Feriados',
2409
+
2410
+ // settings.fieldRules
2411
+ 'settings.fieldRules.subtitle': 'Configure quais campos são obrigatórios ou visíveis para cada tipo de cadastro.',
2412
+ 'settings.fieldRules.required': 'Obrigatório',
2413
+ 'settings.fieldRules.inForm': 'Formulário',
2414
+ 'settings.fieldRules.inTable': 'Tabela',
2415
+ 'settings.fieldRules.inDetail': 'Detalhe',
2416
+ 'settings.fieldRules.field': 'Campo',
2417
+ 'settings.fieldRules.resetDefaults': 'Restaurar Padrões',
2418
+ 'settings.fieldRules.resetConfirm': 'Restaurar todas as regras de campos de {{entity}} para seus padrões?',
2419
+ 'settings.fieldRules.saved': 'Regras de campos salvas',
2420
+ 'settings.fieldRules.saveFailed': 'Falha ao salvar regras de campos',
2421
+ 'settings.fieldRules.modified': '{{count}} modificado(s)',
2422
+ 'settings.fieldRules.searchPlaceholder': 'Buscar tipos de cadastro...',
2423
+ 'settings.fieldRules.noEntities': 'Nenhum tipo de cadastro disponível.',
2424
+ 'settings.fieldRules.coreRegisters': 'Tipos de Cadastro',
2425
+ 'settings.fieldRules.otherRegisters': 'Outros',
2426
+ 'settings.fieldRules.showMore': '{{count}} tipos de cadastro a mais...',
2427
+ 'settings.fieldRules.showLess': 'Mostrar menos',
2428
+
2429
+ // settings.locations
2430
+ 'settings.locations.addFirst': 'Adicione seu primeiro local',
2431
+ 'settings.locations.addLocation': 'Adicionar Local',
2432
+ 'settings.locations.adding': 'Adicionando...',
2433
+ 'settings.locations.addressPlaceholder': 'Endereço',
2434
+ 'settings.locations.cityPlaceholder': 'Cidade',
2435
+ 'settings.locations.countDescription': '{{count}} local{{plural}} cadastrado(s).',
2436
+ 'settings.locations.countryPlaceholder': 'País',
2437
+ 'settings.locations.empty': 'Nenhum local foi adicionado a esta organização ainda.',
2438
+ 'settings.locations.headquarters': 'Sede',
2439
+ 'settings.locations.namePlaceholder': 'Nome do local *',
2440
+ 'settings.locations.newLocation': 'Novo Local',
2441
+ 'settings.locations.noLocations': 'Nenhum local configurado ainda.',
2442
+ 'settings.locations.phonePlaceholder': 'Telefone',
2443
+ 'settings.locations.statePlaceholder': 'Estado',
2444
+ 'settings.locations.title': 'Locais',
2445
+
2446
+ // settings.profile
2447
+ 'settings.profile.email': 'E-mail',
2448
+ 'settings.profile.emailHelp': 'O e-mail não pode ser alterado diretamente. Entre em contato com o suporte.',
2449
+ 'settings.profile.fullName': 'Nome Completo',
2450
+ 'settings.profile.saveProfile': 'Salvar Perfil',
2451
+ 'settings.profile.subtitle': 'Gerencie suas informações pessoais e configurações da conta.',
2452
+ 'settings.profile.title': 'Perfil',
2453
+
2454
+ // settings.security
2455
+ 'settings.security.inviteOnly': 'Acesso Apenas por Convite',
2456
+ 'settings.security.inviteOnlyDescription': 'Novos usuários só podem entrar nesta organização via convite.',
2457
+ 'settings.security.linkSent': 'Link Enviado',
2458
+ 'settings.security.orgSecuritySubtitle': 'Políticas de segurança aplicadas a todos os membros desta organização.',
2459
+ 'settings.security.orgSecurityTitle': 'Segurança da Organização',
2460
+ 'settings.security.passwordSubtitle': 'Gerencie a senha da sua conta. Um link de redefinição será enviado para seu e-mail.',
2461
+ 'settings.security.passwordTitle': 'Senha',
2462
+ 'settings.security.require2FA': 'Exigir Autenticação de Dois Fatores',
2463
+ 'settings.security.require2FADescription': 'Todos os membros devem ativar 2FA para acessar esta organização.',
2464
+ 'settings.security.resetLinkDescription': 'Enviar um link de redefinição de senha para seu e-mail.',
2465
+ 'settings.security.resetLinkSent': 'Link de redefinição enviado — verifique sua caixa de entrada.',
2466
+ 'settings.security.resetPassword': 'Redefinir Senha',
2467
+ 'settings.security.sessionTimeout': 'Tempo Limite da Sessão',
2468
+ 'settings.security.sessionTimeoutDescription': 'Desconectar automaticamente usuários inativos após este período.',
2469
+
2470
+ // agenda.appointment
2471
+ 'agenda.appointment.addDescription': 'Adicionar descrição...',
2472
+ 'agenda.appointment.addService': 'Adicionar serviço',
2473
+ 'agenda.appointment.cancel': 'Cancelar',
2474
+ 'agenda.appointment.clientTab': 'Cliente',
2475
+ 'agenda.appointment.noClientData': 'Dados do cliente não disponíveis',
2476
+ 'agenda.appointment.client': 'Cliente',
2477
+ 'agenda.appointment.conflict': 'Conflito de horário — este profissional já está reservado neste horário.',
2478
+ 'agenda.appointment.create': 'Criar',
2479
+ 'agenda.appointment.createClientFailed': 'Falha ao criar cliente',
2480
+ 'agenda.appointment.creating': 'Criando...',
2481
+ 'agenda.appointment.delete': 'Excluir',
2482
+ 'agenda.appointment.deleteConfirm': 'Excluir este agendamento?',
2483
+ 'agenda.appointment.confirmDelete': 'Excluir',
2484
+ 'agenda.appointment.deleting': 'Excluindo…',
2485
+ 'agenda.appointment.edit': 'Editar Agendamento',
2486
+ 'agenda.appointment.emailOptional': 'E-mail (opcional)',
2487
+ 'agenda.appointment.location': 'Local',
2488
+ 'agenda.appointment.name': 'Nome',
2489
+ 'agenda.appointment.new': 'Novo Agendamento',
2490
+ 'agenda.appointment.newClient': 'Novo cliente',
2491
+ 'agenda.appointment.notes': 'Observações',
2492
+ 'agenda.appointment.phone': 'Telefone',
2493
+ 'agenda.appointment.professional': 'Profissional',
2494
+ 'agenda.appointment.save': 'Salvar',
2495
+ 'agenda.appointment.saving': 'Salvando...',
2496
+ 'agenda.appointment.searchClient': 'Buscar cliente...',
2497
+ 'agenda.appointment.searchService': 'Buscar serviço para adicionar...',
2498
+ 'agenda.appointment.selectLocation': 'Selecionar local...',
2499
+ 'agenda.appointment.selectProfessional': 'Selecionar profissional...',
2500
+ 'agenda.appointment.services': 'Serviços',
2501
+ 'agenda.appointment.status': 'Status',
2502
+ 'agenda.appointment.to': 'até',
2503
+ 'agenda.appointment.total': 'Total',
2504
+ 'agenda.appointment.update': 'Atualizar',
2505
+
2506
+ // agenda.payment
2507
+ 'agenda.payment.title': 'Recebimento',
2508
+ 'agenda.payment.generateInvoice': 'Gerar recebimento',
2509
+ 'agenda.payment.generating': 'Gerando…',
2510
+ 'agenda.payment.pending': 'Pendente',
2511
+ 'agenda.payment.partial': 'Parcial',
2512
+ 'agenda.payment.paid': 'Pago',
2513
+ 'agenda.payment.collect': 'Receber',
2514
+ 'agenda.payment.overdue': 'Vencido',
2515
+ 'agenda.payment.cancelled': 'Cancelado',
2516
+ 'agenda.payment.none': 'Recebimento',
2517
+ 'agenda.payment.pay': 'Pagar',
2518
+ 'agenda.payment.paying': 'Pagando…',
2519
+ 'agenda.payment.remaining': 'Restante',
2520
+ 'agenda.payment.installment': 'Parcela',
2521
+ 'agenda.payment.total': 'Total',
2522
+ 'agenda.payment.noInvoice': 'Sem recebimento gerado',
2523
+ 'agenda.payment.selectAccount': 'Selecionar conta',
2524
+ 'agenda.payment.registerPayment': 'Registrar recebimento',
2525
+ 'agenda.payment.registerPaymentHint': 'Registrar pagamento deste agendamento',
2526
+ 'agenda.payment.pendingHint': 'Fatura gerada, aguardando pagamento',
2527
+ 'agenda.payment.partialHint': 'Parcialmente pago, toque para completar',
2528
+ 'agenda.payment.paidHint': 'Pagamento realizado',
2529
+ 'agenda.payment.overdueHint': 'Pagamento vencido',
2530
+ 'agenda.payment.backToAppointment': 'Voltar ao agendamento',
2531
+ 'agenda.payment.checkout': 'Confirmar',
2532
+ 'agenda.payment.checkingOut': 'Processando…',
2533
+ 'agenda.payment.serviceSummary': 'Resumo do atendimento',
2534
+ 'agenda.payment.paymentMethod': 'Forma de pagamento',
2535
+ 'agenda.payment.checkoutComplete': 'Pagamento confirmado',
2536
+ 'agenda.payment.card': 'Cartão',
2537
+ 'agenda.payment.method': 'Método',
2538
+ 'agenda.payment.select': 'Selecionar…',
2539
+ 'agenda.payment.cardBrand': 'Bandeira',
2540
+ 'agenda.payment.selectBrand': 'Selecionar bandeira…',
2541
+ 'agenda.payment.cardInstallments': 'Parcelas',
2542
+ 'agenda.payment.bankAccount': 'Conta',
2543
+ 'agenda.payment.viewInvoice': 'Ver detalhes da fatura',
2544
+
2545
+ // agenda.calendar
2546
+ 'agenda.calendar.agendas': 'Agendas',
2547
+ 'agenda.calendar.create': 'Criar',
2548
+ 'agenda.calendar.next': 'Próximo',
2549
+ 'agenda.calendar.previous': 'Anterior',
2550
+ 'agenda.calendar.status': 'Status',
2551
+ 'agenda.calendar.today': 'Hoje',
2552
+ 'agenda.calendar.viewAgenda': 'Agenda',
2553
+ 'agenda.calendar.viewDay': 'Dia',
2554
+ 'agenda.calendar.viewMonth': 'Mês',
2555
+ 'agenda.calendar.viewWeek': 'Semana',
2556
+
2557
+ // agenda.confirmations
2558
+ 'agenda.confirmations.confirmed': 'Confirmado:',
2559
+ 'agenda.confirmations.empty': 'Nenhuma confirmação pendente',
2560
+ 'agenda.confirmations.emptySubtitle': 'Todos os agendamentos futuros foram confirmados',
2561
+ 'agenda.confirmations.loading': 'Carregando...',
2562
+ 'agenda.confirmations.subtitle': 'Agendamentos futuros pendentes de confirmação',
2563
+ 'agenda.confirmations.unknownClient': 'Cliente desconhecido',
2564
+ 'agenda.confirmations.sendWhatsApp': 'Enviar WhatsApp',
2565
+ 'agenda.confirmations.call': 'Ligar',
2566
+ 'agenda.confirmations.markConfirmed': 'Marcar Confirmado',
2567
+ 'agenda.confirmations.markCancelled': 'Marcar Cancelado',
2568
+
2569
+ // agenda.contextMenu
2570
+ 'agenda.contextMenu.changeStatus': 'Alterar status',
2571
+ 'agenda.contextMenu.delete': 'Excluir',
2572
+ 'agenda.contextMenu.edit': 'Editar',
2573
+ 'agenda.contextMenu.notAvailable': '(indisponível)',
2574
+
2575
+ // agenda.index
2576
+ 'agenda.index.settingsSubtitle': 'Horários de funcionamento, preferências de agendamento e confirmações',
2577
+ 'agenda.index.settingsTitle': 'Configurações da Agenda',
2578
+
2579
+ // agenda.popover
2580
+ 'agenda.popover.unknown': 'Desconhecido',
2581
+
2582
+ // agenda.settings
2583
+ 'agenda.settings.autoConfirm': 'Auto-confirmar novos agendamentos',
2584
+ 'agenda.settings.autoConfirmDesc': 'Marcar automaticamente novos agendamentos como confirmados',
2585
+ 'agenda.settings.autoCreateOrder': 'Criar ordem de serviço automaticamente',
2586
+ 'agenda.settings.autoCreateOrderDesc': 'Criar um registro financeiro quando o agendamento for concluído',
2587
+ 'agenda.settings.blockOutside': 'Bloquear fora do horário',
2588
+ 'agenda.settings.blockOutsideDesc': 'Impedir agendamento fora do horário de funcionamento definido',
2589
+ 'agenda.settings.calendarDisplay': 'Exibição do Calendário',
2590
+ 'agenda.settings.calendarDisplayDesc': 'Preferências visuais para a visualização da agenda',
2591
+ 'agenda.settings.cancelAlerts': 'Alertas de cancelamento',
2592
+ 'agenda.settings.cancelAlertsDesc': 'Alertar quando um cliente cancelar um agendamento',
2593
+ 'agenda.settings.compact': 'Intervalos de tempo compactos',
2594
+ 'agenda.settings.compactDesc': 'Usar intervalos menores para uma visualização mais densa do calendário',
2595
+ 'agenda.settings.confirmations': 'Confirmações',
2596
+ 'agenda.settings.confirmationsDesc': 'Lembretes e confirmações de agendamentos',
2597
+ 'agenda.settings.conflictDetection': 'Detecção de conflitos',
2598
+ 'agenda.settings.conflictDetectionDesc': 'Avisar quando agendamentos se sobrepõem para o mesmo profissional',
2599
+ 'agenda.settings.dragDrop': 'Reagendamento por arrastar e soltar',
2600
+ 'agenda.settings.dragDropDesc': 'Permitir arrastar agendamentos para reagendar no calendário',
2601
+ 'agenda.settings.enableConfirmations': 'Habilitar confirmações',
2602
+ 'agenda.settings.enableConfirmationsDesc': 'Enviar lembretes e acompanhar status de confirmação',
2603
+ 'agenda.settings.enableLocation': 'Habilitar seleção de local',
2604
+ 'agenda.settings.enableLocationDesc': 'Atribuir locais a agendas e agendamentos',
2605
+ 'agenda.settings.enableWorkingHours': 'Habilitar horário de trabalho',
2606
+ 'agenda.settings.enableWorkingHoursDesc': 'Gerenciar disponibilidade da equipe e exibir horários não úteis no calendário',
2607
+ 'agenda.settings.locations': 'Locais',
2608
+ 'agenda.settings.locationsDesc': 'Atribuição de salas e locais para agendas e agendamentos',
2609
+ 'agenda.settings.newBookingNotif': 'Notificação de novo agendamento',
2610
+ 'agenda.settings.newBookingNotifDesc': 'Notificar quando um novo agendamento for criado',
2611
+ 'agenda.settings.noShowTracking': 'Rastreamento de ausências',
2612
+ 'agenda.settings.noShowTrackingDesc': 'Sinalizar clientes que frequentemente faltam a agendamentos',
2613
+ 'agenda.settings.notifications': 'Notificações',
2614
+ 'agenda.settings.notificationsDesc': 'Alertas para equipe e gerência',
2615
+ 'agenda.settings.reminder': 'Lembrete antes do agendamento',
2616
+ 'agenda.settings.reminderDesc': 'Enviar uma notificação de lembrete antes do agendamento',
2617
+ 'agenda.settings.scheduling': 'Agendamento',
2618
+ 'agenda.settings.schedulingDesc': 'Comportamento do calendário e preferências de reserva',
2619
+ 'agenda.settings.showCancelled': 'Mostrar agendamentos cancelados',
2620
+ 'agenda.settings.showCancelledDesc': 'Exibir agendamentos cancelados no calendário (esmaecidos)',
2621
+ 'agenda.settings.showNoShow': 'Mostrar agendamentos com ausência',
2622
+ 'agenda.settings.showNoShowDesc': 'Exibir agendamentos com ausência no calendário',
2623
+ 'agenda.settings.workingHours': 'Horário de Trabalho',
2624
+ 'agenda.settings.workingHoursDesc': 'Horário da equipe e disponibilidade',
2625
+
2626
+ // agenda.sidebar
2627
+ 'agenda.sidebar.agendas': 'Agendas',
2628
+ 'agenda.sidebar.allLocations': 'Todos os locais',
2629
+ 'agenda.sidebar.create': 'Criar',
2630
+ 'agenda.sidebar.location': 'Local',
2631
+ 'agenda.sidebar.status': 'Status',
2632
+
2633
+ // agenda.toolbar
2634
+ 'agenda.toolbar.next': 'Próximo',
2635
+ 'agenda.toolbar.previous': 'Anterior',
2636
+ 'agenda.toolbar.today': 'Hoje',
2637
+
2638
+ // agenda.workingHours
2639
+ 'agenda.workingHours.addBreak': 'Adicionar intervalo',
2640
+ 'agenda.workingHours.copyToAll': 'Copiar para todos',
2641
+ 'agenda.workingHours.dayOff': 'Folga',
2642
+ 'agenda.workingHours.removePeriod': 'Remover período',
2643
+ 'agenda.workingHours.professional': 'Profissional',
2644
+ 'agenda.workingHours.save': 'Salvar',
2645
+ 'agenda.workingHours.saveFailed': 'Falha ao salvar',
2646
+ 'agenda.workingHours.saved': 'Horários de trabalho salvos',
2647
+ 'agenda.workingHours.saving': 'Salvando...',
2648
+ 'agenda.workingHours.subtitle': 'Gerenciar horários de trabalho por profissional',
2649
+ 'agenda.workingHours.to': 'até',
2650
+
2651
+ // crm.activities
2652
+ 'crm.activities.activitiesLogged': 'Atividades são registradas a partir de interações com leads e negócios',
2653
+ 'crm.activities.all': 'Todas',
2654
+ 'crm.activities.completedFilter': 'Concluídas',
2655
+ 'crm.activities.done': 'Concluído',
2656
+ 'crm.activities.noActivities': 'Nenhuma atividade',
2657
+ 'crm.activities.noActivitiesOfType': 'Nenhuma atividade do tipo "{{type}}"',
2658
+ 'crm.activities.overdue': 'atrasada',
2659
+ 'crm.activities.overdueLabel': 'Atrasada',
2660
+ 'crm.activities.pending': 'pendente',
2661
+ 'crm.activities.pendingFilter': 'Pendentes',
2662
+ 'crm.activities.title': 'Atividades',
2663
+
2664
+ // crm.dashboard
2665
+ 'crm.dashboard.activeDeals': '{{count}} negócios ativos',
2666
+ 'crm.dashboard.avgDealValue': 'Valor médio do negócio',
2667
+ 'crm.dashboard.leadsCount': '{{count}} leads',
2668
+ 'crm.dashboard.quotesCount': '{{count}} orçamentos',
2669
+ 'crm.dashboard.conversionRate': 'Taxa de Conversão',
2670
+ 'crm.dashboard.conversionRateLabel': 'Taxa de conversão',
2671
+ 'crm.dashboard.createFirstLead': 'Crie seu primeiro lead para ver o funil',
2672
+ 'crm.dashboard.dealsWon': 'Negócios fechados neste mês',
2673
+ 'crm.dashboard.leadToDeal': 'Lead para negócio',
2674
+ 'crm.dashboard.newThisMonth': '{{count}} novos neste mês',
2675
+ 'crm.dashboard.noLeadsYet': 'Nenhum lead ainda. Capture seu primeiro lead para começar.',
2676
+ 'crm.dashboard.noPipelineData': 'Nenhum dado de pipeline ainda',
2677
+ 'crm.dashboard.noQuotesYet': 'Nenhum orçamento ainda.',
2678
+ 'crm.dashboard.openPipeline': 'Pipeline Aberto',
2679
+ 'crm.dashboard.overdueCount': '{{count}} atrasados',
2680
+ 'crm.dashboard.pendingTasks': 'Tarefas Pendentes',
2681
+ 'crm.dashboard.performance': 'Desempenho',
2682
+ 'crm.dashboard.pipelineOverview': 'Visão Geral do Pipeline',
2683
+ 'crm.dashboard.pipelineValue': 'Valor do Pipeline',
2684
+ 'crm.dashboard.recentLeads': 'Leads Recentes',
2685
+ 'crm.dashboard.recentQuotes': 'Orçamentos Recentes',
2686
+ 'crm.dashboard.revenueWon': 'Receita ganha',
2687
+ 'crm.dashboard.totalDeals': '{{count}} negócios no total',
2688
+ 'crm.dashboard.totalLeads': 'Total de Leads',
2689
+
2690
+ // crm.dealSidebar
2691
+ 'crm.dealSidebar.activitiesAppear': 'As atividades aparecerão aqui conforme forem registradas',
2692
+ 'crm.dealSidebar.activity': 'Atividade',
2693
+ 'crm.dealSidebar.assignedTo': 'Atribuído a',
2694
+ 'crm.dealSidebar.contact': 'Contato',
2695
+ 'crm.dealSidebar.created': 'Criado',
2696
+ 'crm.dealSidebar.deal': 'Negócio',
2697
+ 'crm.dealSidebar.dealNotFound': 'Negócio não encontrado',
2698
+ 'crm.dealSidebar.expectedClose': 'Fechamento previsto',
2699
+ 'crm.dealSidebar.noActivities': 'Nenhuma atividade ainda',
2700
+ 'crm.dealSidebar.noQuotes': 'Nenhum orçamento vinculado',
2701
+ 'crm.dealSidebar.notes': 'Observações',
2702
+ 'crm.dealSidebar.overview': 'Visão Geral',
2703
+ 'crm.dealSidebar.probability': 'Probabilidade',
2704
+ 'crm.dealSidebar.quotes': 'Orçamentos',
2705
+ 'crm.dealSidebar.quotesAppear': 'Orçamentos criados para este lead aparecerão aqui',
2706
+ 'crm.dealSidebar.stage': 'Etapa',
2707
+ 'crm.dealSidebar.tags': 'Tags',
2708
+ 'crm.dealSidebar.updated': 'Atualizado',
2709
+ 'crm.dealSidebar.value': 'Valor',
2710
+ 'crm.dealSidebar.viewLeadProfile': 'Ver Perfil Completo do Lead',
2711
+
2712
+ // crm.leadDetail
2713
+ 'crm.leadDetail.assignedTo': 'Atribuído a',
2714
+ 'crm.leadDetail.backToList': 'Voltar à lista',
2715
+ 'crm.leadDetail.company': 'Empresa',
2716
+ 'crm.leadDetail.contactInfo': 'Informações de Contato',
2717
+ 'crm.leadDetail.createQuote': 'Criar Orçamento',
2718
+ 'crm.leadDetail.created': 'Criado',
2719
+ 'crm.leadDetail.dealStatus': 'Status do negócio',
2720
+ 'crm.leadDetail.dealValue': 'Valor do negócio',
2721
+ 'crm.leadDetail.details': 'Detalhes',
2722
+ 'crm.leadDetail.email': 'E-mail',
2723
+ 'crm.leadDetail.leadNotFound': 'Lead não encontrado',
2724
+ 'crm.leadDetail.leads': 'Leads',
2725
+ 'crm.leadDetail.loading': 'Carregando...',
2726
+ 'crm.leadDetail.notFound': 'Não encontrado',
2727
+ 'crm.leadDetail.notes': 'Observações',
2728
+ 'crm.leadDetail.phone': 'Telefone',
2729
+ 'crm.leadDetail.pipeline': 'Pipeline',
2730
+ 'crm.leadDetail.probability': 'Probabilidade',
2731
+ 'crm.leadDetail.quotes': 'Orçamentos',
2732
+ 'crm.leadDetail.source': 'Origem',
2733
+ 'crm.leadDetail.stage': 'Etapa',
2734
+ 'crm.leadDetail.tags': 'Tags',
2735
+ 'crm.leadDetail.updated': 'Atualizado',
2736
+ 'crm.leadDetail.value': 'Valor',
2737
+
2738
+ // crm.leadForm
2739
+ 'crm.leadForm.cancel': 'Cancelar',
2740
+ 'crm.leadForm.company': 'Empresa',
2741
+ 'crm.leadForm.companyPlaceholder': 'Nome da empresa',
2742
+ 'crm.leadForm.email': 'E-mail',
2743
+ 'crm.leadForm.emailPlaceholder': 'email@exemplo.com',
2744
+ 'crm.leadForm.name': 'Nome *',
2745
+ 'crm.leadForm.namePlaceholder': 'Nome do contato',
2746
+ 'crm.leadForm.notes': 'Observações',
2747
+ 'crm.leadForm.notesPlaceholder': 'Observações adicionais...',
2748
+ 'crm.leadForm.phone': 'Telefone',
2749
+ 'crm.leadForm.phonePlaceholder': '+55 11 99999-9999',
2750
+ 'crm.leadForm.save': 'Salvar',
2751
+ 'crm.leadForm.saving': 'Salvando...',
2752
+ 'crm.leadForm.subtitle': 'Capturar um novo lead',
2753
+ 'crm.leadForm.title': 'Novo Lead',
2754
+
2755
+ // crm.leads
2756
+ 'crm.leads.captureFirst': 'Capture seu primeiro lead',
2757
+ 'crm.leads.contactCol': 'Contato',
2758
+ 'crm.leads.name': 'Nome',
2759
+ 'crm.leads.newLead': 'Novo Lead',
2760
+ 'crm.leads.noLeads': 'Nenhum lead ainda',
2761
+ 'crm.leads.searchPlaceholder': 'Buscar leads...',
2762
+ 'crm.leads.source': 'Origem',
2763
+ 'crm.leads.statusCol': 'Status',
2764
+ 'crm.leads.title': 'Leads',
2765
+
2766
+ // crm.page
2767
+ 'crm.page.logActivity': 'Registrar Atividade',
2768
+ 'crm.page.logActivityDesc': 'Registrar uma ligação, e-mail ou nota',
2769
+ 'crm.page.newDeal': 'Novo Negócio',
2770
+ 'crm.page.newDealDesc': 'Criar um negócio a partir do pipeline',
2771
+ 'crm.page.newLead': 'Novo Lead',
2772
+ 'crm.page.newLeadDesc': 'Capturar um novo lead',
2773
+ 'crm.page.newQuote': 'Novo Orçamento',
2774
+ 'crm.page.newQuoteDesc': 'Enviar uma proposta',
2775
+ 'crm.page.settingsSubtitle': 'Configure pipeline, gestão de leads e cadastros',
2776
+ 'crm.page.settingsTitle': 'Configurações de Vendas e CRM',
2777
+
2778
+ // crm.pipeline
2779
+ 'crm.pipeline.dropHere': 'Solte aqui',
2780
+ 'crm.pipeline.moveFailed': 'Falha ao mover negócio',
2781
+ 'crm.pipeline.movedTo': 'Movido para {{stage}}',
2782
+ 'crm.pipeline.noDeals': 'Nenhum negócio',
2783
+ 'crm.pipeline.subtitle': 'Arraste negócios entre etapas',
2784
+ 'crm.pipeline.title': 'Pipeline',
2785
+
2786
+ // crm.quoteDetail
2787
+ 'crm.quoteDetail.backToList': 'Voltar à lista',
2788
+ 'crm.quoteDetail.client': 'Cliente',
2789
+ 'crm.quoteDetail.date': 'Data',
2790
+ 'crm.quoteDetail.description': 'Descrição',
2791
+ 'crm.quoteDetail.discount': 'Desconto',
2792
+ 'crm.quoteDetail.edit': 'Editar',
2793
+ 'crm.quoteDetail.send': 'Enviar',
2794
+ 'crm.quoteDetail.sending': 'Enviando...',
2795
+ 'crm.quoteDetail.sendPrint': 'Imprimir',
2796
+ 'crm.quoteDetail.sendEmail': 'Enviar por E-mail',
2797
+ 'crm.quoteDetail.sendWhatsApp': 'Enviar por WhatsApp',
2798
+ 'crm.quoteDetail.approve': 'Aprovar',
2799
+ 'crm.quoteDetail.approving': 'Aprovando...',
2800
+ 'crm.quoteDetail.reject': 'Rejeitar',
2801
+ 'crm.quoteDetail.rejecting': 'Rejeitando...',
2802
+ 'crm.quoteDetail.confirmReject': 'Confirmar Rejeição',
2803
+ 'crm.quoteDetail.rejectDescription': 'Informe o motivo da rejeição deste orçamento.',
2804
+ 'crm.quoteDetail.rejectReasonPlaceholder': 'Motivo da rejeição...',
2805
+ 'crm.quoteDetail.invoiceCreated': 'Fatura criada a partir deste orçamento',
2806
+ 'crm.quoteDetail.items': 'Itens',
2807
+ 'crm.quoteDetail.loading': 'Carregando...',
2808
+ 'crm.quoteDetail.notFound': 'Orçamento não encontrado',
2809
+ 'crm.quoteDetail.notes': 'Observações',
2810
+ 'crm.quoteDetail.paymentConditions': 'Condições de Pagamento',
2811
+ 'crm.quoteDetail.qty': 'Qtd',
2812
+ 'crm.quoteDetail.quoteNumber': 'Orçamento {{number}}',
2813
+ 'crm.quoteDetail.rejectionReason': 'Motivo da rejeição',
2814
+ 'crm.quoteDetail.subtotal': 'Subtotal',
2815
+ 'crm.quoteDetail.title': 'Orçamentos',
2816
+ 'crm.quoteDetail.total': 'Total',
2817
+ 'crm.quoteDetail.unitPrice': 'Preço Unitário',
2818
+ 'crm.quoteDetail.validUntil': 'Válido Até',
2819
+ 'crm.quoteDetail.viewInvoice': 'Ver Fatura',
2820
+
2821
+ // crm.quoteForm
2822
+ 'crm.quoteForm.addFirstItem': 'Adicione seu primeiro item',
2823
+ 'crm.quoteForm.addItem': 'Adicionar Item',
2824
+ 'crm.quoteForm.cancel': 'Cancelar',
2825
+ 'crm.quoteForm.client': 'Cliente',
2826
+ 'crm.quoteForm.description': 'Descrição',
2827
+ 'crm.quoteForm.discount': 'Desconto',
2828
+ 'crm.quoteForm.done': 'Concluído',
2829
+ 'crm.quoteForm.editSubtitle': 'Atualizar esta proposta',
2830
+ 'crm.quoteForm.editTitle': 'Editar Orçamento',
2831
+ 'crm.quoteForm.itemCount': '{{count}} itens',
2832
+ 'crm.quoteForm.itemDescriptionPlaceholder': 'Descrição do item',
2833
+ 'crm.quoteForm.loading': 'Carregando...',
2834
+ 'crm.quoteForm.newSubtitle': 'Criar uma proposta para seu cliente',
2835
+ 'crm.quoteForm.newTitle': 'Novo Orçamento',
2836
+ 'crm.quoteForm.noDescription': 'Sem descrição',
2837
+ 'crm.quoteForm.noItems': 'Nenhum item adicionado',
2838
+ 'crm.quoteForm.notes': 'Observações',
2839
+ 'crm.quoteForm.notesPlaceholder': 'Observações internas...',
2840
+ 'crm.quoteForm.paymentConditions': 'Condições de Pagamento',
2841
+ 'crm.quoteForm.paymentConditionsPlaceholder': 'ex. 50% antecipado, 50% na entrega',
2842
+ 'crm.quoteForm.qty': 'Qtd',
2843
+ 'crm.quoteForm.quoteDate': 'Data do Orçamento',
2844
+ 'crm.quoteForm.quoteDetails': 'Detalhes do Orçamento',
2845
+ 'crm.quoteForm.quoteItems': 'Itens do Orçamento',
2846
+ 'crm.quoteForm.saveChanges': 'Salvar Alterações',
2847
+ 'crm.quoteForm.saveQuote': 'Salvar Orçamento',
2848
+ 'crm.quoteForm.saving': 'Salvando...',
2849
+ 'crm.quoteForm.searchClient': 'Buscar cliente...',
2850
+ 'crm.quoteForm.addAsLead': 'Adicionar como lead',
2851
+ 'crm.quoteForm.selectItemType': 'Selecione o tipo de item:',
2852
+ 'crm.quoteForm.statusApproved': 'Aprovado',
2853
+ 'crm.quoteForm.statusDraft': 'Rascunho',
2854
+ 'crm.quoteForm.statusExpired': 'Expirado',
2855
+ 'crm.quoteForm.statusRejected': 'Rejeitado',
2856
+ 'crm.quoteForm.statusSent': 'Enviado',
2857
+ 'crm.quoteForm.total': 'Total',
2858
+ 'crm.quoteForm.unitPrice': 'Preço Unitário',
2859
+ 'crm.quoteForm.validUntil': 'Válido Até',
2860
+
2861
+ // crm.quotes
2862
+ 'crm.quotes.amount': 'Valor',
2863
+ 'crm.quotes.contact': 'Contato',
2864
+ 'crm.quotes.createFirst': 'Crie seu primeiro orçamento',
2865
+ 'crm.quotes.date': 'Data',
2866
+ 'crm.quotes.newQuote': 'Novo Orçamento',
2867
+ 'crm.quotes.noQuotes': 'Nenhum orçamento ainda',
2868
+ 'crm.quotes.quotesCount': '{{count}} orçamentos',
2869
+ 'crm.quotes.status': 'Status',
2870
+ 'crm.quotes.title': 'Orçamentos',
2871
+
2872
+ // financial.cards
2873
+ 'financial.cards.installment': 'Parcela {{current}}/{{total}}',
2874
+ 'financial.cards.noTransactions': 'Nenhuma transação com cartão',
2875
+ 'financial.cards.pending': 'Pendente',
2876
+ 'financial.cards.received': 'Recebido',
2877
+ 'financial.cards.subtitle': 'Transações com cartão de crédito e débito',
2878
+ 'financial.cards.title': 'Cartões',
2879
+ 'financial.cards.transactions': '({{count}} transações)',
2880
+ 'financial.cards.transactionsAppear': 'As transações com cartão aparecerão aqui quando pagamentos forem feitos via cartão de crédito/débito',
2881
+
2882
+ // financial.cashRegisters
2883
+ 'financial.cashRegisters.addNotes': 'Adicionar observações',
2884
+ 'financial.cashRegisters.back': 'Voltar',
2885
+ 'financial.cashRegisters.bills': 'Notas',
2886
+ 'financial.cashRegisters.closeSession': 'Fechar Sessão',
2887
+ 'financial.cashRegisters.closeThisSession': 'Fechar esta sessão',
2888
+ 'financial.cashRegisters.closing': 'Fechando...',
2889
+ 'financial.cashRegisters.closingBalance': 'Saldo de Fechamento',
2890
+ 'financial.cashRegisters.closingNotes': 'Observações de Fechamento',
2891
+ 'financial.cashRegisters.coins': 'Moedas',
2892
+ 'financial.cashRegisters.confirmOpen': 'Confirmar e Abrir',
2893
+ 'financial.cashRegisters.confirmOpening': 'Confirmar Abertura do Caixa',
2894
+ 'financial.cashRegisters.count': 'Contagem',
2895
+ 'financial.cashRegisters.countBills': 'Contar Notas e Moedas',
2896
+ 'financial.cashRegisters.countedTotal': 'Total Contado',
2897
+ 'financial.cashRegisters.denominationCount': 'Contagem por denominação',
2898
+ 'financial.cashRegisters.differenceFromOpening': 'Diferença em relação à abertura',
2899
+ 'financial.cashRegisters.method': 'Método',
2900
+ 'financial.cashRegisters.noCashAccounts': 'Nenhuma conta de caixa encontrada. Crie uma conta bancária do tipo "Caixa Registradora" primeiro.',
2901
+ 'financial.cashRegisters.noClosedSessions': 'Nenhuma sessão encerrada ainda',
2902
+ 'financial.cashRegisters.openAnother': 'Abrir outro caixa',
2903
+ 'financial.cashRegisters.openSession': 'Abrir Sessão',
2904
+ 'financial.cashRegisters.openSessions': 'Sessões Abertas',
2905
+ 'financial.cashRegisters.opened': 'Aberto',
2906
+ 'financial.cashRegisters.opening': 'Abrindo...',
2907
+ 'financial.cashRegisters.openingBalance': 'Saldo de Abertura',
2908
+ 'financial.cashRegisters.quickAmount': 'Valor Rápido',
2909
+ 'financial.cashRegisters.register': 'Caixa',
2910
+ 'financial.cashRegisters.sessionHistory': 'Histórico de Sessões',
2911
+ 'financial.cashRegisters.subtitle': 'Abrir, contar e fechar sessões de caixa',
2912
+
2913
+ // financial.commissions
2914
+ 'financial.commissions.comingSoon': 'Em breve',
2915
+ 'financial.commissions.subtitle': 'Comissões da equipe',
2916
+
2917
+ // financial.invoice
2918
+ 'financial.invoice.accountsPayable': 'Contas a Pagar',
2919
+ 'financial.invoice.accountsReceivable': 'Contas a Receber',
2920
+ 'financial.invoice.cancelConfirm': 'Esta ação não pode ser desfeita.',
2921
+ 'financial.invoice.cancelDesc': 'A fatura será marcada como cancelada. Todas as parcelas pendentes também serão canceladas. Esta fatura não contará mais nos totais.',
2922
+ 'financial.invoice.cancelInvoice': 'Cancelar Fatura',
2923
+ 'financial.invoice.cancelling': 'Cancelando...',
2924
+ 'financial.invoice.contact': 'Contato',
2925
+ 'financial.invoice.createFirst': 'Crie sua primeira fatura',
2926
+ 'financial.invoice.date': 'Data',
2927
+ 'financial.invoice.booking': 'Agendamento',
2928
+ 'financial.invoice.discount': 'Desconto',
2929
+ 'financial.invoice.due': 'Vencimento:',
2930
+ 'financial.invoice.edit': 'Editar',
2931
+ 'financial.invoice.fullyPaid': 'Totalmente pago',
2932
+ 'financial.invoice.installments': 'Parcelas',
2933
+ 'financial.invoice.invoices': '{{count}} faturas',
2934
+ 'financial.invoice.items': 'Itens',
2935
+ 'financial.invoice.keepInvoice': 'Manter Fatura',
2936
+ 'financial.invoice.new': 'Nova',
2937
+ 'financial.invoice.noDetails': 'Nenhum detalhe adicional registrado',
2938
+ 'financial.invoice.noInstallments': 'Sem parcelas',
2939
+ 'financial.invoice.noInvoices': 'Nenhuma fatura ainda',
2940
+ 'financial.invoice.summaryTotal': 'Total',
2941
+ 'financial.invoice.summaryReceived': 'Recebido',
2942
+ 'financial.invoice.summaryReceivable': 'A Receber',
2943
+ 'financial.invoice.summaryPaid': 'Pago',
2944
+ 'financial.invoice.summaryPayable': 'A Pagar',
2945
+ 'financial.invoice.notFound': 'Fatura não encontrada',
2946
+ 'financial.invoice.notFoundDesc': 'Esta fatura não pôde ser carregada.',
2947
+ 'financial.invoice.notes': 'Observações',
2948
+ 'financial.invoice.paidLabel': 'Pago:',
2949
+ 'financial.invoice.paidOn': 'Pago em:',
2950
+ 'financial.invoice.pay': 'Pagar',
2951
+ 'financial.invoice.paymentSchedule': 'Cronograma de Pagamento',
2952
+ 'financial.invoice.remaining': 'Restante:',
2953
+ 'financial.invoice.searchPlaceholder': 'Buscar por contato ou descrição...',
2954
+ 'financial.invoice.showing': 'Exibindo {{shown}} de {{total}}',
2955
+ 'financial.invoice.subtotal': 'Subtotal',
2956
+ 'financial.invoice.surcharge': 'Acréscimo',
2957
+ 'financial.invoice.total': 'Total',
2958
+ 'financial.invoice.yesCancel': 'Sim, Cancelar',
2959
+
2960
+ // financial.invoiceForm
2961
+ 'financial.invoiceForm.addFirstItem': 'Adicione seu primeiro item',
2962
+ 'financial.invoiceForm.addItem': 'Adicionar Item',
2963
+ 'financial.invoiceForm.addItemsFirst': 'Adicione itens primeiro',
2964
+ 'financial.invoiceForm.additionalNotes': 'Observações adicionais...',
2965
+ 'financial.invoiceForm.cancel': 'Cancelar',
2966
+ 'financial.invoiceForm.close': 'Fechar',
2967
+ 'financial.invoiceForm.creating': 'Criando nova fatura',
2968
+ 'financial.invoiceForm.date': 'Data',
2969
+ 'financial.invoiceForm.description': 'Descrição',
2970
+ 'financial.invoiceForm.discountSurcharge': 'Desconto / Acréscimo',
2971
+ 'financial.invoiceForm.done': 'Pronto',
2972
+ 'financial.invoiceForm.editing': 'Editando fatura',
2973
+ 'financial.invoiceForm.fiscalNumber': 'Número Fiscal (opcional)',
2974
+ 'financial.invoiceForm.headquarters': 'Sede',
2975
+ 'financial.invoiceForm.installments': 'Parcelas',
2976
+ 'financial.invoiceForm.item': 'Item',
2977
+ 'financial.invoiceForm.itemDescription': 'Descrição do item',
2978
+ 'financial.invoiceForm.items': 'Itens',
2979
+ 'financial.invoiceForm.noDescription': 'Sem descrição',
2980
+ 'financial.invoiceForm.noItems': 'Nenhum item adicionado ainda',
2981
+ 'financial.invoiceForm.noUnitsFound': 'Nenhuma unidade encontrada',
2982
+ 'financial.invoiceForm.observations': 'Observações',
2983
+ 'financial.invoiceForm.payTo': 'Pagar para',
2984
+ 'financial.invoiceForm.qty': 'Qtd',
2985
+ 'financial.invoiceForm.receiveFrom': 'Receber de',
2986
+ 'financial.invoiceForm.save': 'Salvar',
2987
+ 'financial.invoiceForm.saving': 'Salvando...',
2988
+ 'financial.invoiceForm.searchType': 'Digite para buscar...',
2989
+ 'financial.invoiceForm.searchUnit': 'Buscar unidade...',
2990
+ 'financial.invoiceForm.selectInstallments': 'Selecione a quantidade de parcelas acima',
2991
+ 'financial.invoiceForm.selectItemType': 'Selecione o tipo do item:',
2992
+ 'financial.invoiceForm.selectUnit': 'Selecionar unidade',
2993
+ 'financial.invoiceForm.selectUnitTitle': 'Selecionar Unidade',
2994
+ 'financial.invoiceForm.unit': 'Unidade',
2995
+ 'financial.invoiceForm.unitPrice': 'Preço Unitário',
2996
+ 'financial.nav.cards': 'Cartões',
2997
+ 'financial.nav.cashRegisters': 'Caixas',
2998
+ 'financial.nav.commissions': 'Comissões',
2999
+ 'financial.nav.list': 'Lista',
3000
+ 'financial.nav.new': 'Novo',
3001
+ 'financial.nav.overview': 'Visão Geral',
3002
+ 'financial.nav.payables': 'Contas a Pagar',
3003
+ 'financial.nav.receivables': 'Contas a Receber',
3004
+ 'financial.nav.reconciliation': 'Conciliação',
3005
+ 'financial.nav.recurringExpenses': 'Despesas Recorrentes',
3006
+ 'financial.nav.rules': 'Regras',
3007
+ 'financial.nav.statements': 'Extratos',
3008
+ 'financial.nav.summary': 'Resumo',
3009
+
3010
+ // financial.onboarding
3011
+ 'financial.onboarding.back': 'Voltar',
3012
+ 'financial.onboarding.configureHint': 'Você pode configurar isso em detalhes pelo ícone de Configurações dentro do módulo Financeiro.',
3013
+ 'financial.onboarding.getStarted': 'Começar',
3014
+ 'financial.onboarding.next': 'Próximo',
3015
+ 'financial.onboarding.startUsing': 'Começar a usar o Financeiro',
3016
+ 'financial.onboarding.skip': 'Pular configuração',
3017
+ 'financial.onboarding.welcome': 'Bem-vindo ao Financeiro',
3018
+ 'financial.onboarding.description': 'Vamos configurar seu módulo financeiro. Este assistente rápido ajudará a configurar o essencial.',
3019
+ 'financial.onboarding.accounts.title': 'Contas Bancárias',
3020
+ 'financial.onboarding.accounts.description': 'Adicione suas contas bancárias, caixas registradoras e cartões de crédito. Você pode adicionar mais depois em Configurações.',
3021
+ 'financial.onboarding.payments.title': 'Métodos de Pagamento',
3022
+ 'financial.onboarding.payments.description': 'Revise os tipos de pagamento que você aceita. Os tipos padrão (Dinheiro, PIX, Cartão de Crédito, etc.) já estão configurados.',
3023
+ 'financial.onboarding.chart.title': 'Plano de Contas',
3024
+ 'financial.onboarding.chart.description': 'Um modelo padrão de plano de contas foi criado. Você pode personalizá-lo a qualquer momento em Configurações.',
3025
+
3026
+ // financial.page
3027
+ 'financial.page.newPayable': 'Nova Conta a Pagar',
3028
+ 'financial.page.newPayableDesc': 'Registrar uma despesa ou conta a pagar',
3029
+ 'financial.page.newReceivable': 'Nova Conta a Receber',
3030
+ 'financial.page.newReceivableDesc': 'Registrar receita ou valor a receber',
3031
+ 'financial.page.openCash': 'Abrir Caixa',
3032
+ 'financial.page.openCashDesc': 'Iniciar uma nova sessão de caixa',
3033
+ 'financial.page.settingsSubtitle': 'Preferências, métodos de pagamento e contas',
3034
+ 'financial.page.settingsTitle': 'Configurações Financeiras',
3035
+
3036
+ // financial.payment
3037
+ 'financial.payment.amount': 'Valor',
3038
+ 'financial.payment.bankAccount': 'Conta Bancária',
3039
+ 'financial.payment.cancel': 'Cancelar',
3040
+ 'financial.payment.card': 'Cartão',
3041
+ 'financial.payment.cardBrand': 'Bandeira do Cartão',
3042
+ 'financial.payment.cardInstallments': 'Parcelas',
3043
+ 'financial.payment.date': 'Data',
3044
+ 'financial.payment.installment': 'Parcela #{{number}}',
3045
+ 'financial.payment.method': 'Método de Pagamento',
3046
+ 'financial.payment.notes': 'Observações',
3047
+ 'financial.payment.optionalNotes': 'Observações opcionais...',
3048
+ 'financial.payment.payAmount': 'Pagar {{amount}}',
3049
+ 'financial.payment.processing': 'Processando...',
3050
+ 'financial.payment.remaining': '{{amount}} restante',
3051
+ 'financial.payment.select': 'Selecionar...',
3052
+ 'financial.payment.selectAccount': 'Selecionar conta...',
3053
+ 'financial.payment.selectBrand': 'Selecionar bandeira...',
3054
+ 'financial.payment.title': 'Registrar Pagamento',
3055
+
3056
+ // financial.settings
3057
+ 'financial.settings.allowPartial': 'Permitir pagamentos parciais',
3058
+ 'financial.settings.allowPartialDesc': 'Aceitar pagamentos menores que o valor total da parcela',
3059
+ 'financial.settings.autoClose': 'Fechamento automático no fim do dia',
3060
+ 'financial.settings.autoCloseDesc': 'Lembrar de fechar sessões abertas no fim do expediente',
3061
+ 'financial.settings.autoInstallments': 'Gerar parcelas automaticamente',
3062
+ 'financial.settings.autoInstallmentsDesc': 'Dividir automaticamente o total da fatura em parcelas iguais',
3063
+ 'financial.settings.cashRegister': 'Caixa Registradora',
3064
+ 'financial.settings.cashRegisterDesc': 'Comportamento da sessão de caixa',
3065
+ 'financial.settings.dailySummary': 'Resumo financeiro diário',
3066
+ 'financial.settings.dailySummaryDesc': 'Enviar um resumo diário por e-mail de contas a receber e a pagar',
3067
+ 'financial.settings.invoices': 'Faturas',
3068
+ 'financial.settings.invoicesDesc': 'Como faturas e pagamentos são processados',
3069
+ 'financial.settings.notifications': 'Notificações',
3070
+ 'financial.settings.notificationsDesc': 'Alertas e lembretes',
3071
+ 'financial.settings.overdueAlerts': 'Alertas de pagamento atrasado',
3072
+ 'financial.settings.overdueAlertsDesc': 'Notificar quando faturas passarem da data de vencimento',
3073
+ 'financial.settings.requireDoc': 'Exigir número do documento',
3074
+ 'financial.settings.requireDocDesc': 'Tornar obrigatório o número do documento/fatura nos pagamentos',
3075
+ 'financial.settings.requireOpening': 'Exigir saldo de abertura',
3076
+ 'financial.settings.requireOpeningDesc': 'O saldo de abertura deve ser confirmado antes de iniciar uma sessão',
3077
+
3078
+ // financial.settingsPage
3079
+ 'financial.settingsPage.subtitle': 'Gerenciar métodos de pagamento, contas e configurações',
3080
+ 'financial.settingsPage.title': 'Configurações Financeiras',
3081
+
3082
+ // financial.statements
3083
+ 'financial.statements.account': 'Conta',
3084
+ 'financial.statements.from': 'De',
3085
+ 'financial.statements.noTransactions': 'Nenhuma transação neste período',
3086
+ 'financial.statements.selectAccount': 'Selecionar conta',
3087
+ 'financial.statements.selectToView': 'Selecione uma conta para ver o extrato',
3088
+ 'financial.statements.subtitle': 'Transações e saldos de contas bancárias',
3089
+ 'financial.statements.title': 'Extratos',
3090
+ 'financial.statements.to': 'Até',
3091
+
3092
+ // financial.summary
3093
+ 'financial.summary.allAccounts': 'Todas as contas',
3094
+ 'financial.summary.cashFlow': 'Fluxo de Caixa',
3095
+ 'financial.summary.cashFlowBreakdown': 'Detalhamento do Fluxo de Caixa',
3096
+ 'financial.summary.cashFlowBreakdownSubtitle': 'Contas a receber vs. contas a pagar neste mês',
3097
+ 'financial.summary.cashFlowSubtitle': 'Receitas vs despesas mensais',
3098
+ 'financial.summary.expenses': 'Despesas',
3099
+ 'financial.summary.income': 'Receita',
3100
+ 'financial.summary.monthlyFlow': 'Fluxo Mensal',
3101
+ 'financial.summary.negativeBalance': 'Saldo negativo',
3102
+ 'financial.summary.net': 'Líquido',
3103
+ 'financial.summary.noOverdue': 'Nenhuma transação atrasada',
3104
+ 'financial.summary.noTransactions': 'Nenhuma transação ainda',
3105
+ 'financial.summary.overdue': '{{count}} atrasados',
3106
+ 'financial.summary.overduePayable': 'Conta a pagar atrasada',
3107
+ 'financial.summary.overdueReceivable': 'Conta a receber atrasada',
3108
+ 'financial.summary.overdueTitle': 'Atrasados',
3109
+ 'financial.summary.paid': 'Pago',
3110
+ 'financial.summary.payable': 'A Pagar',
3111
+ 'financial.summary.positiveBalance': 'Saldo positivo',
3112
+ 'financial.summary.receivable': 'A Receber',
3113
+ 'financial.summary.received': 'Recebido',
3114
+ 'financial.summary.recentTransactions': 'Transações Recentes',
3115
+ 'financial.summary.totalBalance': 'Saldo Total',
3116
+ 'financial.summary.transactionsAppear': 'As transações aparecerão aqui após serem registradas',
3117
+ 'financial.summary.viewAll': 'Ver todos',
3118
+
3119
+ // inventory.dashboard
3120
+ 'inventory.dashboard.activeItems': 'Itens ativos',
3121
+ 'inventory.dashboard.belowMinimum': 'Abaixo do mínimo',
3122
+ 'inventory.dashboard.entries': 'Entradas:',
3123
+ 'inventory.dashboard.exits': 'Saídas:',
3124
+ 'inventory.dashboard.last7Days': 'Últimos 7 dias',
3125
+ 'inventory.dashboard.lowStock': 'Estoque Baixo',
3126
+ 'inventory.dashboard.needRestocking': 'Precisam reposição',
3127
+ 'inventory.dashboard.outOfStock': 'Sem Estoque',
3128
+ 'inventory.dashboard.quickActions': 'Ações Rápidas',
3129
+ 'inventory.dashboard.quickActionsDesc': 'Use a barra lateral para registrar entradas, saídas ou gerenciar produtos.',
3130
+ 'inventory.dashboard.recentActivity': 'Atividade Recente',
3131
+ 'inventory.dashboard.stockValue': 'Valor do Estoque',
3132
+ 'inventory.dashboard.totalProducts': 'Total de Produtos',
3133
+ 'inventory.dashboard.totalValue': 'Valor total do estoque',
3134
+
3135
+ // inventory.history
3136
+ 'inventory.history.noMovements': 'Nenhuma movimentação registrada',
3137
+ 'inventory.history.searchPlaceholder': 'Buscar movimentações...',
3138
+ 'inventory.history.subtitle': 'Todas as movimentações de estoque',
3139
+ 'inventory.history.title': 'Histórico de Estoque',
3140
+ 'inventory.nav.dashboard': 'Painel',
3141
+ 'inventory.nav.entry': 'Entrada',
3142
+ 'inventory.nav.exit': 'Saída',
3143
+ 'inventory.nav.history': 'Histórico',
3144
+ 'inventory.nav.list': 'Lista',
3145
+ 'inventory.nav.new': 'Novo',
3146
+ 'inventory.nav.products': 'Produtos',
3147
+ 'inventory.nav.stock': 'Estoque',
3148
+
3149
+ // inventory.page
3150
+ 'inventory.page.newProduct': 'Novo Produto',
3151
+ 'inventory.page.newProductDesc': 'Adicionar um produto ao seu catálogo',
3152
+ 'inventory.page.settingsSubtitle': 'Preferências, fornecedores, categorias e unidades',
3153
+ 'inventory.page.settingsTitle': 'Configurações de Estoque',
3154
+ 'inventory.page.stockEntry': 'Entrada de Estoque',
3155
+ 'inventory.page.stockEntryDesc': 'Registrar mercadorias recebidas',
3156
+ 'inventory.page.stockExit': 'Saída de Estoque',
3157
+ 'inventory.page.stockExitDesc': 'Registrar mercadorias usadas ou vendidas',
3158
+
3159
+ // inventory.recipeDetail
3160
+ 'inventory.recipeDetail.active': 'Ativa',
3161
+ 'inventory.recipeDetail.backToList': 'Voltar à lista',
3162
+ 'inventory.recipeDetail.inactive': 'Inativa',
3163
+ 'inventory.recipeDetail.ingredientCount': 'Ingredientes',
3164
+ 'inventory.recipeDetail.ingredientsTitle': 'Ingredientes',
3165
+ 'inventory.recipeDetail.instructions': 'Instruções',
3166
+ 'inventory.recipeDetail.noIngredients': 'Nenhum ingrediente definido',
3167
+ 'inventory.recipeDetail.notFound': 'Receita não encontrada',
3168
+ 'inventory.recipeDetail.prepTime': 'Tempo de preparo',
3169
+ 'inventory.recipeDetail.produces': 'Produz',
3170
+ 'inventory.recipeDetail.recipes': 'Receitas',
3171
+ 'inventory.recipeDetail.yield': 'Rendimento',
3172
+
3173
+ // inventory.recipes
3174
+ 'inventory.recipes.createFirst': 'Crie sua primeira receita',
3175
+ 'inventory.recipes.ingredients': '{{count}} ingredientes',
3176
+ 'inventory.recipes.newRecipe': 'Nova Receita',
3177
+ 'inventory.recipes.noRecipes': 'Nenhuma receita ainda',
3178
+ 'inventory.recipes.produces': 'Produz:',
3179
+ 'inventory.recipes.productionFormulas': '{{count}} fórmulas de produção',
3180
+ 'inventory.recipes.recipesDesc': 'Receitas definem como produzir produtos a partir de ingredientes',
3181
+ 'inventory.recipes.title': 'Receitas',
3182
+ 'inventory.recipes.yield': 'Rendimento:',
3183
+
3184
+ // inventory.stock
3185
+ 'inventory.stock.additionalDetails': 'Detalhes adicionais (opcional)',
3186
+ 'inventory.stock.adjustmentDesc': 'Correção de contagem',
3187
+ 'inventory.stock.adjustmentLabel': 'Ajuste',
3188
+ 'inventory.stock.back': 'Voltar',
3189
+ 'inventory.stock.batchNumber': 'Número do Lote',
3190
+ 'inventory.stock.currentStock': 'Estoque atual:',
3191
+ 'inventory.stock.destination': 'Destino',
3192
+ 'inventory.stock.document': 'Documento',
3193
+ 'inventory.stock.documentNumber': 'Número do Documento',
3194
+ 'inventory.stock.entry': 'Entrada de Estoque',
3195
+ 'inventory.stock.entryDesc': 'Recebimento de mercadorias',
3196
+ 'inventory.stock.entryLabel': 'Entrada',
3197
+ 'inventory.stock.exit': 'Saída de Estoque',
3198
+ 'inventory.stock.exitDesc': 'Uso ou venda',
3199
+ 'inventory.stock.exitLabel': 'Saída',
3200
+ 'inventory.stock.expirationDate': 'Data de Validade',
3201
+ 'inventory.stock.fromLocation': 'Local de Origem',
3202
+ 'inventory.stock.locationLabel': 'Local',
3203
+ 'inventory.stock.lossDesc': 'Desperdício ou dano',
3204
+ 'inventory.stock.lossLabel': 'Perda',
3205
+ 'inventory.stock.movement': 'Movimentação de Estoque',
3206
+ 'inventory.stock.movementDetails': 'Detalhes da Movimentação',
3207
+ 'inventory.stock.movementType': 'Tipo de movimentação',
3208
+ 'inventory.stock.next': 'Próximo',
3209
+ 'inventory.stock.notes': 'Observações',
3210
+ 'inventory.stock.product': 'Produto',
3211
+ 'inventory.stock.quantity': 'Quantidade *',
3212
+ 'inventory.stock.quantityLabel': 'Quantidade',
3213
+ 'inventory.stock.reason': 'Motivo *',
3214
+ 'inventory.stock.reasonLabel': 'Motivo',
3215
+ 'inventory.stock.recordMovement': 'Registrar Movimentação',
3216
+ 'inventory.stock.recorded': 'Registrado',
3217
+ 'inventory.stock.recording': 'Registrando...',
3218
+ 'inventory.stock.searchProduct': 'Buscar por nome, SKU ou código de barras...',
3219
+ 'inventory.stock.stepOf': 'Etapa {{step}} de 3',
3220
+ 'inventory.stock.supplier': 'Fornecedor',
3221
+ 'inventory.stock.toLocation': 'Local de Destino *',
3222
+ 'inventory.stock.total': 'Total',
3223
+ 'inventory.stock.totalCost': 'Custo Total',
3224
+ 'inventory.stock.transferDesc': 'Entre locais',
3225
+ 'inventory.stock.transferLabel': 'Transferência',
3226
+ 'inventory.stock.unitCost': 'Custo Unitário',
3227
+ 'inventory.stock.unitCostLabel': 'Custo Unitário',
3228
+ 'inventory.onboarding.welcome': 'Bem-vindo ao Estoque',
3229
+ 'inventory.onboarding.description': 'Acompanhe produtos, gerencie níveis de estoque e monitore movimentações do seu negócio.',
3230
+ 'inventory.onboarding.skip': 'Pular configuração',
3231
+ 'inventory.onboarding.getStarted': 'Começar',
3232
+ 'inventory.onboarding.units.title': 'Unidades de Medida',
3233
+ 'inventory.onboarding.units.description': 'Unidades padrão (Unidade, Caixa, Kg, L, etc.) estão prontas. Personalize-as a qualquer momento em Configurações.',
3234
+ 'inventory.onboarding.locations.title': 'Locais de Estoque',
3235
+ 'inventory.onboarding.locations.description': 'Um local de armazenamento padrão foi criado. Adicione mais para controle multi-local.',
3236
+ 'inventory.onboarding.start': 'Começar a usar Estoque',
3237
+
3238
+ // financial.quickActions / cash
3239
+ 'financial.quickActions.newPayable': 'Nova Conta a Pagar',
3240
+ 'financial.quickActions.newPayableDesc': 'Registrar uma despesa ou conta a pagar',
3241
+ 'financial.quickActions.newReceivable': 'Nova Conta a Receber',
3242
+ 'financial.quickActions.newReceivableDesc': 'Registrar receita ou valor a receber',
3243
+ 'financial.quickActions.openCashRegister': 'Abrir Caixa',
3244
+ 'financial.quickActions.openCashRegisterDesc': 'Iniciar uma nova sessão de caixa',
3245
+
3246
+ 'financial.cash.title': 'Caixa Registradora',
3247
+ 'financial.cash.subtitle': 'Abrir, contar e fechar sessões de caixa',
3248
+ 'financial.cash.bills': 'Notas',
3249
+ 'financial.cash.coins': 'Moedas',
3250
+ 'financial.cash.noAccounts': 'Nenhuma conta de caixa encontrada. Crie uma conta bancária do tipo "Caixa Registradora" primeiro.',
3251
+ 'financial.cash.confirmOpening': 'Confirmar Abertura de Caixa',
3252
+ 'financial.cash.register': 'Caixa',
3253
+ 'financial.cash.openingBalance': 'Saldo de Abertura',
3254
+ 'financial.cash.method': 'Método',
3255
+ 'financial.cash.denominationCount': 'Contagem de cédulas',
3256
+ 'financial.cash.notes': 'Observações',
3257
+ 'financial.cash.opening': 'Abrindo...',
3258
+ 'financial.cash.confirmAndOpen': 'Confirmar e Abrir',
3259
+ 'financial.cash.quickAmount': 'Valor Rápido',
3260
+ 'financial.cash.countBillsCoins': 'Contar Cédulas e Moedas',
3261
+ 'financial.cash.count': 'Contar',
3262
+ 'financial.cash.countedTotal': 'Total Contado',
3263
+ 'financial.cash.addNotes': 'Adicionar observações',
3264
+ 'financial.cash.openingObservations': 'Observações de abertura...',
3265
+ 'financial.cash.openSession': 'Abrir Sessão',
3266
+ 'financial.cash.closingBalance': 'Saldo de Fechamento',
3267
+ 'financial.cash.differenceFromOpening': 'Diferença da abertura',
3268
+ 'financial.cash.closingNotes': 'Observações de Fechamento',
3269
+ 'financial.cash.closingObservations': 'Observações de fechamento...',
3270
+ 'financial.cash.closing': 'Fechando...',
3271
+ 'financial.cash.closeSession': 'Fechar Sessão',
3272
+ 'financial.cash.openSessions': 'Sessões Abertas',
3273
+ 'financial.cash.opened': 'Aberto',
3274
+ 'financial.cash.by': 'por',
3275
+ 'financial.cash.closeThisSession': 'Fechar esta sessão',
3276
+ 'financial.cash.sessionHistory': 'Histórico de Sessões',
3277
+ 'financial.cash.noClosedSessions': 'Nenhuma sessão fechada ainda',
3278
+ 'financial.cash.openLabel': 'Abertura',
3279
+ 'financial.cash.closeLabel': 'Fechamento',
3280
+ 'financial.cash.diff': 'Dif',
3281
+ 'financial.cash.openAnother': 'Abrir outro caixa',
3282
+
3283
+ // crm.quickActions / settings / onboarding
3284
+ 'crm.quickActions.newLead': 'Novo Lead',
3285
+ 'crm.quickActions.newLeadDesc': 'Capturar um novo lead',
3286
+ 'crm.quickActions.newDeal': 'Novo Negócio',
3287
+ 'crm.quickActions.newDealDesc': 'Criar um negócio no pipeline',
3288
+ 'crm.quickActions.newQuote': 'Novo Orçamento',
3289
+ 'crm.quickActions.newQuoteDesc': 'Enviar uma proposta',
3290
+ 'crm.quickActions.logActivity': 'Registrar Atividade',
3291
+ 'crm.quickActions.logActivityDesc': 'Registrar ligação, e-mail ou nota',
3292
+
3293
+ 'crm.settingsPage.title': 'Configurações de Vendas e CRM',
3294
+ 'crm.settingsPage.subtitle': 'Configurar pipeline, gestão de leads e registros',
3295
+ 'crm.settingsPage.pipeline': 'Pipeline',
3296
+
3297
+ 'crm.onboarding.welcome': 'Bem-vindo ao Vendas e CRM',
3298
+ 'crm.onboarding.description': 'Acompanhe leads, gerencie seu pipeline de vendas e feche mais negócios.',
3299
+ 'crm.onboarding.sources.title': 'Fontes de Leads',
3300
+ 'crm.onboarding.sources.description': 'Fontes padrão (Instagram, WhatsApp, Google, etc.) estão prontas. Personalize-as em Configurações.',
3301
+ 'crm.onboarding.pipeline.title': 'Pipeline de Vendas',
3302
+ 'crm.onboarding.pipeline.description': 'Seu pipeline padrão com 7 estágios está configurado. Personalize estágios e probabilidades a qualquer momento.',
3303
+ 'crm.onboarding.startSelling': 'Começar a vender',
3304
+ 'crm.onboarding.getStarted': 'Começar',
3305
+ 'crm.onboarding.next': 'Próximo',
3306
+ 'crm.onboarding.skip': 'Pular configuração',
3307
+
3308
+ 'crm.settings.leadManagement': 'Gestão de Leads',
3309
+ 'crm.settings.leadManagementDesc': 'Como leads são capturados e gerenciados',
3310
+ 'crm.settings.autoAssign': 'Auto-atribuir leads',
3311
+ 'crm.settings.autoAssignDesc': 'Atribuir automaticamente novos leads a membros disponíveis da equipe',
3312
+ 'crm.settings.requireSource': 'Exigir fonte do lead',
3313
+ 'crm.settings.requireSourceDesc': 'Tornar obrigatória a seleção de fonte ao capturar leads',
3314
+ 'crm.settings.leadScoring': 'Pontuação de leads',
3315
+ 'crm.settings.leadScoringDesc': 'Pontuar automaticamente leads com base em sinais de engajamento',
3316
+ 'crm.settings.duplicateDetection': 'Detecção de duplicatas',
3317
+ 'crm.settings.duplicateDetectionDesc': 'Avisar quando um lead com o mesmo e-mail ou telefone já existir',
3318
+ 'crm.settings.deals': 'Negócios',
3319
+ 'crm.settings.dealsDesc': 'Comportamento do pipeline de negócios',
3320
+ 'crm.settings.autoCreateDeal': 'Auto-criar negócio na conversão',
3321
+ 'crm.settings.autoCreateDealDesc': 'Criar um negócio automaticamente quando um lead é qualificado',
3322
+ 'crm.settings.requireCloseDate': 'Exigir data de fechamento prevista',
3323
+ 'crm.settings.requireCloseDateDesc': 'Tornar obrigatória a data de fechamento prevista nos negócios',
3324
+ 'crm.settings.rottingDeals': 'Aviso de negócios parados',
3325
+ 'crm.settings.rottingDealsDesc': 'Destacar negócios que não foram atualizados há X dias',
3326
+ 'crm.settings.weightedPipeline': 'Valor ponderado do pipeline',
3327
+ 'crm.settings.weightedPipelineDesc': 'Calcular valor do pipeline usando probabilidade do estágio',
3328
+ 'crm.settings.quotes': 'Orçamentos',
3329
+ 'crm.settings.quotesDesc': 'Comportamento de orçamentos e propostas',
3330
+ 'crm.settings.autoNumberQuotes': 'Numeração automática de orçamentos',
3331
+ 'crm.settings.autoNumberQuotesDesc': 'Gerar automaticamente números sequenciais de orçamentos',
3332
+ 'crm.settings.defaultValidity': 'Validade padrão (30 dias)',
3333
+ 'crm.settings.defaultValidityDesc': 'Novos orçamentos expiram após 30 dias por padrão',
3334
+ 'crm.settings.requireApproval': 'Exigir aprovação',
3335
+ 'crm.settings.requireApprovalDesc': 'Orçamentos precisam de aprovação do gerente antes do envio',
3336
+ 'crm.settings.notifications': 'Notificações',
3337
+ 'crm.settings.notificationsDesc': 'Alertas e lembretes',
3338
+ 'crm.settings.overdueAlerts': 'Alertas de atividades atrasadas',
3339
+ 'crm.settings.overdueAlertsDesc': 'Notificar quando atividades passarem da data de vencimento',
3340
+ 'crm.settings.stageChangeAlerts': 'Alertas de mudança de estágio',
3341
+ 'crm.settings.stageChangeAlertsDesc': 'Notificar quando negócios mudarem de estágio',
3342
+ 'crm.settings.newLeadNotif': 'Notificação de novo lead',
3343
+ 'crm.settings.newLeadNotifDesc': 'Alertar equipe quando um novo lead é capturado',
3344
+
3345
+ 'crm.pipelineSettings.title': 'Estágios do Pipeline',
3346
+ 'crm.pipelineSettings.description': 'Defina os estágios pelos quais os negócios passam. Arraste para reordenar.',
3347
+ 'crm.pipelineSettings.probability': 'Probabilidade',
3348
+ 'crm.pipelineSettings.winStage': 'Estágio de ganho',
3349
+ 'crm.pipelineSettings.lossStage': 'Estágio de perda',
3350
+ 'crm.pipelineSettings.customizationNote': 'A personalização dos estágios do pipeline (adicionar, remover, reordenar, editar cores e probabilidades) estará disponível quando conectado ao banco de dados.',
3351
+
3352
+ // inventory.quickActions / settings
3353
+ 'inventory.quickActions.newProduct': 'Novo Produto',
3354
+ 'inventory.quickActions.newProductDesc': 'Adicionar um produto ao catálogo',
3355
+ 'inventory.quickActions.stockEntry': 'Entrada de Estoque',
3356
+ 'inventory.quickActions.stockEntryDesc': 'Registrar mercadorias recebidas',
3357
+ 'inventory.quickActions.stockExit': 'Saída de Estoque',
3358
+ 'inventory.quickActions.stockExitDesc': 'Registrar mercadorias usadas ou vendidas',
3359
+
3360
+ 'inventory.settingsPage.title': 'Configurações de Estoque',
3361
+ 'inventory.settingsPage.subtitle': 'Gerenciar unidades, categorias e locais de estoque',
3362
+
3363
+ 'inventory.settings.stockManagement': 'Gestão de Estoque',
3364
+ 'inventory.settings.stockManagementDesc': 'Como os níveis de estoque são rastreados',
3365
+ 'inventory.settings.lowStockAlerts': 'Alertas de estoque baixo',
3366
+ 'inventory.settings.lowStockAlertsDesc': 'Mostrar avisos quando produtos ficarem abaixo da quantidade mínima',
3367
+ 'inventory.settings.requireReason': 'Exigir motivo para ajustes',
3368
+ 'inventory.settings.requireReasonDesc': 'Tornar obrigatório o motivo para ajustes e perdas de estoque',
3369
+ 'inventory.settings.autoDeduct': 'Auto-deduzir no serviço',
3370
+ 'inventory.settings.autoDeductDesc': 'Deduzir automaticamente produtos quando um serviço é executado',
3371
+ 'inventory.settings.products': 'Produtos',
3372
+ 'inventory.settings.productsDesc': 'Comportamento do catálogo de produtos',
3373
+ 'inventory.settings.requireSku': 'Exigir SKU',
3374
+ 'inventory.settings.requireSkuDesc': 'Tornar SKU obrigatório ao criar produtos',
3375
+ 'inventory.settings.allowNegative': 'Permitir estoque negativo',
3376
+ 'inventory.settings.allowNegativeDesc': 'Permitir que quantidades de estoque fiquem abaixo de zero',
3377
+ 'inventory.settings.notifications': 'Notificações',
3378
+ 'inventory.settings.notificationsDesc': 'Alertas e lembretes',
3379
+ 'inventory.settings.lowStockEmail': 'Alertas de estoque baixo por e-mail',
3380
+ 'inventory.settings.lowStockEmailDesc': 'Enviar e-mail quando produtos atingirem a quantidade mínima',
3381
+ 'inventory.settings.expiryWarnings': 'Avisos de validade',
3382
+ 'inventory.settings.expiryWarningsDesc': 'Alertar antes de produtos vencerem (rastreamento de lotes)',
3383
+
3384
+ // inventory.productForm
3385
+ 'inventory.productForm.newProduct': 'Novo Produto',
3386
+ 'inventory.productForm.editProduct': 'Editar Produto',
3387
+ 'inventory.productForm.updateDetails': 'Atualizar detalhes do produto',
3388
+ 'inventory.productForm.addToCatalog': 'Adicionar um produto ao seu catálogo',
3389
+ 'inventory.productForm.cancel': 'Cancelar',
3390
+ 'inventory.productForm.save': 'Salvar',
3391
+ 'inventory.productForm.saving': 'Salvando...',
3392
+ 'inventory.productForm.generalInfo': 'Informações Gerais',
3393
+ 'inventory.productForm.name': 'Nome',
3394
+ 'inventory.productForm.namePlaceholder': 'Nome do produto',
3395
+ 'inventory.productForm.brand': 'Marca',
3396
+ 'inventory.productForm.brandPlaceholder': 'Nome da marca',
3397
+ 'inventory.productForm.sku': 'SKU',
3398
+ 'inventory.productForm.skuPlaceholder': 'Código interno',
3399
+ 'inventory.productForm.barcode': 'Código de Barras',
3400
+ 'inventory.productForm.barcodePlaceholder': 'EAN / UPC',
3401
+ 'inventory.productForm.description': 'Descrição',
3402
+ 'inventory.productForm.descriptionPlaceholder': 'Informações adicionais sobre o produto',
3403
+ 'inventory.productForm.classification': 'Classificação',
3404
+ 'inventory.productForm.classificationDesc': 'Como este produto é usado no seu negócio',
3405
+ 'inventory.productForm.typeIngredient': 'Matéria-prima usada na produção ou serviços',
3406
+ 'inventory.productForm.typeSale': 'Vendido diretamente aos clientes',
3407
+ 'inventory.productForm.typeIntermediate': 'Produzido internamente a partir de outros itens',
3408
+ 'inventory.productForm.typeAsset': 'Ativo fixo para controle patrimonial',
3409
+ 'inventory.productForm.pricing': 'Preços',
3410
+ 'inventory.productForm.costPrice': 'Preço de Custo',
3411
+ 'inventory.productForm.salePrice': 'Preço de Venda',
3412
+ 'inventory.productForm.margin': 'Margem',
3413
+ 'inventory.productForm.stockLevels': 'Níveis de Estoque',
3414
+ 'inventory.productForm.stockLevelsDesc': 'Limites mínimo e máximo para alertas',
3415
+ 'inventory.productForm.minQuantity': 'Quantidade Mínima',
3416
+ 'inventory.productForm.minQuantityHint': 'Alertar quando o estoque ficar abaixo deste valor',
3417
+ 'inventory.productForm.maxQuantity': 'Quantidade Máxima',
3418
+ 'inventory.productForm.maxQuantityHint': 'Capacidade máxima para este produto',
3419
+ 'inventory.productForm.optional': 'Opcional',
3420
+
3421
+ // inventory.productList
3422
+ 'inventory.productList.title': 'Produtos',
3423
+ 'inventory.productList.subtitle': '{{count}} produtos',
3424
+ 'inventory.productList.product': 'Produto',
3425
+ 'inventory.productList.type': 'Tipo',
3426
+ 'inventory.productList.stock': 'Estoque',
3427
+ 'inventory.productList.cost': 'Custo',
3428
+ 'inventory.productList.value': 'Valor',
3429
+ 'inventory.productList.searchPlaceholder': 'Buscar produtos...',
3430
+ 'inventory.productList.newProduct': 'Novo Produto',
3431
+ 'inventory.productList.empty': 'Nenhum produto ainda',
3432
+ 'inventory.productList.createFirst': 'Crie seu primeiro produto',
3433
+
3434
+ // inventory.stock (additional keys)
3435
+ 'inventory.stock.unknownProduct': 'Produto Desconhecido',
3436
+ 'inventory.stock.reasonLossPlaceholder': 'ex. Vencido, danificado',
3437
+ 'inventory.stock.reasonAdjustPlaceholder': 'ex. Correção de contagem física',
3438
+ 'inventory.stock.documentPlaceholder': 'Nota fiscal, recibo, PO...',
3439
+ 'inventory.stock.batchPlaceholder': 'ex. LOT001',
3440
+ 'inventory.stock.notesPlaceholder': 'Observações adicionais...',
3441
+
3442
+ // inventory.recipeDetail (additional keys)
3443
+ 'inventory.recipeDetail.loading': 'Carregando...',
3444
+ 'inventory.recipeDetail.ingredient': 'Ingrediente',
3445
+ 'inventory.recipeDetail.quantity': 'Quantidade',
3446
+ 'inventory.recipeDetail.unit': 'Unidade',
3447
+ 'inventory.recipeDetail.notes': 'Observações',
3448
+ 'inventory.recipeDetail.created': 'Criado',
3449
+ 'inventory.recipeDetail.updated': 'Atualizado',
3450
+
3451
+ // inventory.recipeForm
3452
+ 'inventory.recipeForm.newRecipe': 'Nova Receita',
3453
+ 'inventory.recipeForm.subtitle': 'Definir uma fórmula de produção',
3454
+ 'inventory.recipeForm.cancel': 'Cancelar',
3455
+ 'inventory.recipeForm.saveRecipe': 'Salvar Receita',
3456
+ 'inventory.recipeForm.saving': 'Salvando...',
3457
+ 'inventory.recipeForm.recipeDetails': 'Detalhes da Receita',
3458
+ 'inventory.recipeForm.recipeName': 'Nome da Receita',
3459
+ 'inventory.recipeForm.recipeNamePlaceholder': 'ex. Molho de Tomate',
3460
+ 'inventory.recipeForm.description': 'Descrição',
3461
+ 'inventory.recipeForm.descriptionPlaceholder': 'Breve descrição...',
3462
+ 'inventory.recipeForm.produces': 'Produz (Produto)',
3463
+ 'inventory.recipeForm.searchProduct': 'Buscar produto...',
3464
+ 'inventory.recipeForm.createProduct': 'Criar produto',
3465
+ 'inventory.recipeForm.yieldQuantity': 'Quantidade de Rendimento',
3466
+ 'inventory.recipeForm.prepTime': 'Tempo de Preparo (min)',
3467
+ 'inventory.recipeForm.instructions': 'Instruções',
3468
+ 'inventory.recipeForm.instructionsPlaceholder': 'Instruções de preparo passo a passo...',
3469
+ 'inventory.recipeForm.ingredients': 'Ingredientes',
3470
+ 'inventory.recipeForm.addIngredient': 'Adicionar Ingrediente',
3471
+ 'inventory.recipeForm.noIngredients': 'Nenhum ingrediente adicionado',
3472
+ 'inventory.recipeForm.addFirstIngredient': 'Adicione seu primeiro ingrediente',
3473
+ 'inventory.recipeForm.ingredient': 'Ingrediente',
3474
+ 'inventory.recipeForm.quantity': 'Quantidade',
3475
+ 'inventory.recipeForm.notes': 'Observações',
3476
+ 'inventory.recipeForm.searchIngredient': 'Buscar ingrediente...',
3477
+ 'inventory.recipeForm.createIngredient': 'Criar ingrediente',
3478
+ 'inventory.recipeForm.notesPlaceholder': 'ex. picado, fresco',
3479
+ 'inventory.recipeForm.ingredientsConfigured': '{{configured}} de {{total}} ingredientes configurados',
3480
+
3481
+ // settings.plugin
3482
+ 'settings.plugin.agenda': 'Agenda',
3483
+ 'settings.plugin.financial': 'Financeiro',
3484
+ 'settings.plugin.inventory': 'Estoque',
3485
+ 'settings.plugin.crm': 'Vendas & CRM',
3486
+
3487
+ // financial.invoice status labels
3488
+ 'financial.invoice.statusOpen': 'Aberto',
3489
+ 'financial.invoice.statusPartial': 'Parcial',
3490
+ 'financial.invoice.statusPaid': 'Pago',
3491
+ 'financial.invoice.statusOverdue': 'Vencido',
3492
+ 'financial.invoice.statusCancelled': 'Cancelado',
3493
+ 'financial.invoice.statusPending': 'Pendente',
3494
+ 'financial.invoice.statusDraft': 'Rascunho',
3495
+
3496
+ // financial.invoice column / detail labels
3497
+ 'financial.invoice.columnDate': 'Data',
3498
+ 'financial.invoice.columnDescription': 'Descrição',
3499
+ 'financial.invoice.columnAmount': 'Valor',
3500
+ 'financial.invoice.columnPaid': 'Pago',
3501
+ 'financial.invoice.columnStatus': 'Status',
3502
+ 'financial.invoice.columnInst': 'Parc.',
3503
+ 'financial.invoice.columnQty': 'Qtd',
3504
+ 'financial.invoice.columnUnitPrice': 'Preço Unit.',
3505
+ 'financial.invoice.columnTotal': 'Total',
3506
+ 'financial.invoice.columnNumber': '#',
3507
+ 'financial.invoice.invoice': 'Fatura',
3508
+ 'financial.invoice.loading': 'Carregando...',
3509
+
3510
+ // financial.invoiceForm extra labels
3511
+ 'financial.invoiceForm.cancelInvoice': 'Cancelar Fatura',
3512
+ 'financial.invoiceForm.cancelConfirm': 'Esta ação não pode ser desfeita.',
3513
+ 'financial.invoiceForm.cancelDesc': 'A fatura será marcada como cancelada. Todas as parcelas pendentes também serão canceladas.',
3514
+ 'financial.invoiceForm.keepInvoice': 'Manter Fatura',
3515
+ 'financial.invoiceForm.yesCancel': 'Sim, Cancelar',
3516
+ 'financial.invoiceForm.cancelling': 'Cancelando...',
3517
+ 'financial.invoiceForm.removeAdjustments': 'Remover ajustes',
3518
+ 'financial.invoiceForm.discount': 'Desconto',
3519
+ 'financial.invoiceForm.surcharge': 'Acréscimo',
3520
+ 'financial.invoiceForm.total': 'Total:',
3521
+ 'financial.invoiceForm.itemCount': '{{count}} item{{plural}}',
3522
+
3523
+ // financial.payment extra labels
3524
+ 'financial.payment.account': 'Conta',
3525
+ 'financial.payment.due': 'Venc.:',
3526
+ 'financial.payment.paidAmount': 'Pago:',
3527
+ 'financial.payment.paidOn': 'Pago em:',
3528
+
3529
+ // crud.archetype — detail tab strings
3530
+ 'crud.archetype.comingSoon': 'Em Breve',
3531
+
3532
+ // Person tabs
3533
+ 'crud.archetype.access.title': 'Acesso e Permissões',
3534
+ 'crud.archetype.access.description': 'Gerencie credenciais de login, atribua perfis de permissão e controle o que esta pessoa pode acessar no sistema.',
3535
+ 'crud.access.accountStatus': 'Status da Conta',
3536
+ 'crud.access.statusLinked': 'Ativo',
3537
+ 'crud.access.statusPending': 'Convite pendente',
3538
+ 'crud.access.statusAccepted': 'Aceito',
3539
+ 'crud.access.statusExpired': 'Convite expirado',
3540
+ 'crud.access.statusRevoked': 'Revogado',
3541
+ 'crud.access.acceptedAt': 'Aceito em {{date}}',
3542
+ 'crud.access.revokedDesc': 'O acesso foi revogado. Você pode enviar um novo convite.',
3543
+ 'crud.access.grantAccess': 'Conceder Acesso',
3544
+ 'crud.access.account': 'Conta',
3545
+ 'crud.access.accountDesc': 'Credenciais de login e status da conta desta pessoa.',
3546
+ 'crud.access.resetPassword': 'Redefinir Senha',
3547
+ 'crud.access.passwordResetSent': 'E-mail de redefinição de senha enviado.',
3548
+ 'crud.access.profileUpdated': 'Perfil de permissão atualizado.',
3549
+ 'crud.access.inviteResent': 'Convite reenviado.',
3550
+ 'crud.access.inviteRevoked': 'Convite revogado.',
3551
+ 'crud.access.accessRemoved': 'Acesso removido.',
3552
+ 'crud.access.dangerZone': 'Zona de Perigo',
3553
+ 'crud.access.dangerZoneDesc': 'Ações irreversíveis que afetam o acesso desta pessoa ao sistema.',
3554
+ 'crud.access.removeAccess': 'Remover Acesso',
3555
+ 'crud.access.revokeInvite': 'Revogar Convite',
3556
+ 'crud.access.confirmRemoveTitle': 'Tem certeza?',
3557
+ 'crud.access.confirmRemoveDesc': 'Esta pessoa perderá todo o acesso ao sistema imediatamente. Esta ação não pode ser desfeita.',
3558
+ 'crud.access.accountLinked': 'Conta vinculada',
3559
+ 'crud.access.noAccount': 'Nenhuma conta vinculada',
3560
+ 'crud.access.noAccountDesc': 'Esta pessoa não possui uma conta de acesso e não pode entrar no sistema.',
3561
+ 'crud.access.setupDesc': 'Configure o acesso ao sistema para esta pessoa informando o e-mail e escolhendo um perfil de permissão.',
3562
+ 'crud.access.emailPlaceholder': 'pessoa@exemplo.com',
3563
+ 'crud.access.sendInvite': 'Enviar Convite',
3564
+ 'crud.access.invitePending': 'Convite pendente',
3565
+ 'crud.access.inviteSent': 'Convite enviado em {{date}}',
3566
+ 'crud.access.permissionProfile': 'Perfil de Permissão',
3567
+ 'crud.access.profileDesc': 'Defina o que esta pessoa pode acessar e fazer no sistema.',
3568
+ 'crud.access.systemAccess': 'Acesso ao Sistema',
3569
+ 'crud.access.effectivePermissions': 'Permissões Efetivas',
3570
+ 'crud.access.effectiveDesc': 'O que esta pessoa pode fazer com base no perfil atribuído.',
3571
+ 'crud.access.feature': 'Funcionalidade',
3572
+ 'crud.access.joined': 'Entrou em {{date}}',
3573
+ 'crud.access.noEmail': 'Sem endereço de e-mail',
3574
+ 'crud.access.noEmailDesc': 'Adicione um endereço de e-mail a esta pessoa para vinculá-la a uma conta do sistema.',
3575
+ 'crud.access.manageTeam': 'Gerenciar Equipe',
3576
+ 'crud.access.manageBilling': 'Gerenciar Faturamento',
3577
+ 'crud.access.manageSettings': 'Gerenciar Configurações',
3578
+ 'crud.access.managePermissions': 'Gerenciar Permissões',
3579
+ 'crud.archetype.activity.title': 'Linha do Tempo',
3580
+ 'crud.archetype.activity.description': 'Veja um registro cronológico de todas as ações, alterações e eventos relacionados a esta pessoa.',
3581
+ 'crud.archetype.documents.title': 'Documentos',
3582
+ 'crud.archetype.documents.description': 'Anexe e gerencie arquivos, contratos, certificações e outros documentos desta pessoa.',
3583
+ 'crud.archetype.schedule.title': 'Agenda',
3584
+ 'crud.archetype.schedule.description': 'Visualize e gerencie compromissos, turnos e disponibilidade desta pessoa.',
3585
+
3586
+ // Product tabs
3587
+ 'crud.archetype.inventory.title': 'Estoque',
3588
+ 'crud.archetype.inventory.description': 'Acompanhe níveis de estoque, histórico de movimentação, alertas de reposição e gerencie o inventário entre locais.',
3589
+ 'crud.archetype.suppliers.title': 'Fornecedores',
3590
+ 'crud.archetype.suppliers.description': 'Veja e gerencie quais fornecedores oferecem este produto, compare custos e acompanhe pedidos de compra.',
3591
+ 'crud.archetype.pricing.title': 'Histórico de Preços',
3592
+ 'crud.archetype.pricing.description': 'Veja alterações de preço ao longo do tempo, gerencie preços promocionais e defina preços por local.',
3593
+ 'crud.archetype.productActivity.title': 'Atividade',
3594
+ 'crud.archetype.productActivity.description': 'Veja um registro de todas as alterações, ajustes de estoque e eventos relacionados a este produto.',
3595
+
3596
+ // Service tabs
3597
+ 'crud.archetype.availability.title': 'Disponibilidade',
3598
+ 'crud.archetype.availability.description': 'Configure quando este serviço pode ser agendado, defina regras de duração e gerencie limites de capacidade.',
3599
+ 'crud.archetype.servicePricing.title': 'Faixas de Preço',
3600
+ 'crud.archetype.servicePricing.description': 'Gerencie faixas de preço, descontos para membros e preços por local para este serviço.',
3601
+ 'crud.archetype.serviceActivity.title': 'Atividade',
3602
+ 'crud.archetype.serviceActivity.description': 'Veja um registro de todos os agendamentos, alterações e eventos relacionados a este serviço.',
3603
+
3604
+ // Location tabs
3605
+ 'crud.archetype.members.title': 'Equipe',
3606
+ 'crud.archetype.members.description': 'Veja e gerencie a equipe atribuída a este local, seus cargos e horários.',
3607
+ 'crud.archetype.locationSchedule.title': 'Horário de Funcionamento',
3608
+ 'crud.archetype.locationSchedule.description': 'Defina horário comercial, feriados e horários especiais para este local.',
3609
+ 'crud.archetype.locationStats.title': 'Estatísticas',
3610
+ 'crud.archetype.locationStats.description': 'Veja métricas de desempenho, faturamento e atividade deste local.',
3611
+ 'crud.archetype.locationActivity.title': 'Atividade',
3612
+ 'crud.archetype.locationActivity.description': 'Veja um registro de todos os eventos, alterações e operações neste local.',
3613
+
3614
+ // Subject tabs
3615
+ 'crud.archetype.owner.noOwner': 'Nenhum responsável atribuído',
3616
+ 'crud.archetype.owner.assignHint': 'Edite este registro para atribuir um responsável.',
3617
+ 'crud.archetype.owner.name': 'Nome',
3618
+ 'crud.archetype.owner.phone': 'Telefone',
3619
+ 'crud.archetype.owner.email': 'E-mail',
3620
+ 'crud.archetype.owner.document': 'Documento',
3621
+ 'crud.archetype.owner.address': 'Endereço',
3622
+ 'crud.archetype.owner.active': 'Ativo',
3623
+ 'crud.archetype.owner.inactive': 'Inativo',
3624
+ 'crud.archetype.history.title': 'Histórico',
3625
+ 'crud.archetype.history.description': 'Veja o histórico de visitas, relatórios anteriores, tratamentos e linha do tempo de eventos.',
3626
+ 'crud.archetype.subjectDocuments.title': 'Documentos',
3627
+ 'crud.archetype.subjectDocuments.description': 'Anexe e gerencie arquivos, resultados de exames, imagens e certificados.',
3628
+
3629
+ // schedule.days
3630
+ 'schedule.days.sun': 'Dom',
3631
+ 'schedule.days.mon': 'Seg',
3632
+ 'schedule.days.tue': 'Ter',
3633
+ 'schedule.days.wed': 'Qua',
3634
+ 'schedule.days.thu': 'Qui',
3635
+ 'schedule.days.fri': 'Sex',
3636
+ 'schedule.days.sat': 'Sáb',
3637
+
3638
+ // schedule.editor
3639
+ 'schedule.editor.weeklyTitle': 'Horário de Trabalho Semanal',
3640
+ 'schedule.editor.weeklyDescription': 'Defina quando este profissional está regularmente disponível',
3641
+ 'schedule.editor.unavailable': 'Indisponível',
3642
+ 'schedule.editor.newInterval': 'Novo intervalo para {{day}}',
3643
+ 'schedule.editor.addHoursFor': 'Adicionar horários para {{day}}',
3644
+ 'schedule.editor.removeInterval': 'Remover intervalo',
3645
+ 'schedule.editor.copyToAll': 'Copiar para todos os dias',
3646
+ 'schedule.editor.bufferTooltip': 'Tempo de intervalo entre atendimentos',
3647
+ 'schedule.editor.min': 'min',
3648
+ 'schedule.editor.exceptionsTitle': 'Exceções de Data',
3649
+ 'schedule.editor.exceptionsDescription': 'Substituir horário de trabalho para datas específicas',
3650
+ 'schedule.editor.addException': 'Adicionar Exceção',
3651
+ 'schedule.editor.noExceptions': 'Nenhuma exceção de data configurada',
3652
+ 'schedule.editor.startDate': 'Data de início',
3653
+ 'schedule.editor.endDate': 'Data de término',
3654
+ 'schedule.editor.type': 'Tipo',
3655
+ 'schedule.editor.customHours': 'Horário personalizado',
3656
+ 'schedule.editor.workingHours': 'Horário de trabalho',
3657
+ 'schedule.editor.to': 'até',
3658
+ 'schedule.editor.addTimeBlock': 'Adicionar bloco de horário',
3659
+ 'schedule.editor.notes': 'Observações',
3660
+ 'schedule.editor.notesPlaceholder': 'ex. Férias, Feriado, Treinamento...',
3661
+ 'schedule.editor.saveException': 'Salvar Exceção',
3662
+ 'schedule.editor.removeException': 'Remover exceção',
3663
+ 'schedule.editor.failedToLoad': 'Falha ao carregar agenda',
3664
+ 'schedule.editor.saved': 'Horário de trabalho salvo',
3665
+ 'schedule.editor.failedToSave': 'Falha ao salvar',
3666
+ 'schedule.editor.selectStartDate': 'Selecione uma data de início',
3667
+ 'schedule.editor.endDateAfterStart': 'A data de término deve ser posterior à data de início',
3668
+ 'schedule.editor.exceptionAdded': 'Exceção adicionada',
3669
+ 'schedule.editor.failedToSaveException': 'Falha ao salvar exceção',
3670
+ 'schedule.editor.exceptionRemoved': 'Exceção removida',
3671
+ 'schedule.editor.failedToDelete': 'Falha ao excluir',
3672
+
3673
+ // schedule.blockSettings
3674
+ 'schedule.blockSettings.title': 'Configurações do Bloco',
3675
+ 'schedule.blockSettings.location': 'Local',
3676
+ 'schedule.blockSettings.noLocation': 'Sem local',
3677
+ 'schedule.blockSettings.maxConcurrent': 'Máx. simultâneos',
3678
+ 'schedule.blockSettings.minAdvance': 'Antecedência mín.',
3679
+ 'schedule.blockSettings.maxAdvance': 'Antecedência máx.',
3680
+ 'schedule.blockSettings.hrs': 'hrs',
3681
+ 'schedule.blockSettings.days': 'dias',
3682
+ 'schedule.blockSettings.label': 'Rótulo',
3683
+ 'schedule.blockSettings.labelPlaceholder': 'ex. Manhã – Apenas cortes',
3684
+ 'schedule.blockSettings.allowedServices': 'Serviços permitidos',
3685
+ 'schedule.blockSettings.allServices': 'Todos os serviços',
3686
+ 'schedule.blockSettings.oneService': '1 serviço',
3687
+ 'schedule.blockSettings.nServices': '{{count}} serviços',
3688
+
3689
+ // registry — inventory
3690
+ 'registry.suppliers': 'Fornecedor',
3691
+ 'registry.suppliers.description': 'Gerencie seus fornecedores de produtos e materiais',
3692
+ 'registry.product-categories': 'Categoria de Produto',
3693
+ 'registry.product-categories.description': 'Categorias de produtos para organização',
3694
+ 'registry.stock-locations': 'Local de Estoque',
3695
+ 'registry.stock-locations.description': 'Locais físicos de armazenamento do estoque',
3696
+ 'registry.measurement-units': 'Unidade de Medida',
3697
+ 'registry.measurement-units.description': 'Unidades padrão de medida',
3698
+
3699
+ // registry — financial
3700
+ 'registry.payment-methods': 'Método de Pagamento',
3701
+ 'registry.chart-of-accounts': 'Plano de Contas',
3702
+ 'registry.cost-centers': 'Centro de Custo',
3703
+ 'registry.bank-accounts': 'Conta Bancária',
3704
+ 'registry.commission-rules': 'Regra de Comissão',
3705
+ 'registry.price-tables': 'Tabela de Preços',
3706
+ 'registry.price-variations': 'Variação de Preço',
3707
+ 'registry.payment-method-types': 'Tipo de Pagamento',
3708
+ 'registry.card-brands': 'Bandeira de Cartão',
3709
+
3710
+ // registry — crm
3711
+ 'registry.lead-sources': 'Origem de Lead',
3712
+ 'registry.tags': 'Tag',
3713
+ 'registry.activity-types': 'Tipo de Atividade',
3714
+
3715
+ // org.connectionError
3716
+ 'org.connectionError.title': 'Falha na conexão',
3717
+ 'org.connectionError.description': 'Não foi possível conectar ao servidor. Verifique sua conexão com a internet e tente novamente.',
3718
+ 'org.connectionError.retry': 'Tentar novamente',
3719
+
3720
+ // app.mockMode
3721
+ 'app.mockMode.banner': 'Você está no modo offline. Os dados exibidos podem não estar atualizados.',
3722
+ },
3723
+ }