en.ts 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. export default {
  2. nav: {
  3. feed: 'Feed',
  4. compose: 'New Post',
  5. media: 'Media',
  6. scheduler: 'Scheduler',
  7. settings: 'Settings',
  8. },
  9. media: {
  10. title: 'Media Library',
  11. fileCount: '{count} files',
  12. upload: 'Upload',
  13. uploading: 'Uploading…',
  14. dropZoneTitle: 'Drop files here or click Upload',
  15. dropZoneHint: 'Supports JPEG, PNG, GIF, WebP, MP4, MOV — up to 100 MB each',
  16. useInPost: 'Use in Post',
  17. copyUrl: 'Copy URL',
  18. copied: 'Copied!',
  19. deleteConfirmTitle: 'Delete this file?',
  20. deleteConfirmHint: 'This cannot be undone. Any posts using this file will lose the media.',
  21. cancel: 'Cancel',
  22. delete: 'Delete',
  23. deleting: 'Deleting…',
  24. },
  25. dashboard: {
  26. platforms: 'Platforms',
  27. tags: 'Tags',
  28. allTags: 'All',
  29. searchPlaceholder: 'Search content or user...',
  30. refresh: 'Refresh',
  31. refreshing: 'Refreshing...',
  32. newPost: '+ New Post',
  33. loading: 'Loading feed...',
  34. empty: 'No content to show.',
  35. emptyHint: 'Check platform connections or refresh the feed.',
  36. },
  37. compose: {
  38. title: 'New Post',
  39. destinationsLabel: 'Post to',
  40. placeholder: "What's on your mind?",
  41. cancel: 'Cancel',
  42. schedule: 'Schedule',
  43. send: 'Post Now →',
  44. sending: 'Posting...',
  45. successMessage: 'Post sent successfully.',
  46. scheduleTitle: 'Schedule post (leave empty to post now)',
  47. preview: 'Preview',
  48. addMedia: 'Photo / Video',
  49. uploadFile: 'Upload a photo or video from your device',
  50. uploading: 'Uploading…',
  51. uploadFailed: 'Upload failed. Please try again.',
  52. pasteUrl: 'or paste a URL',
  53. cancelUrl: 'cancel',
  54. mediaUrlPlaceholder: 'Paste image or video URL, then press Enter…',
  55. mediaLoadError: 'Could not load this URL — check it is publicly accessible.',
  56. igImageRequired: 'Instagram requires an image or video.',
  57. noDestinations: 'No platforms configured.',
  58. goToSettings: 'Go to Settings →',
  59. saveDraft: 'Save Draft',
  60. updateDraft: 'Update Draft',
  61. savingDraft: 'Saving…',
  62. draftSaved: 'Draft saved.',
  63. aiButton: 'AI',
  64. aiPanelTitle: 'Generate with AI',
  65. aiTopic: 'Topic',
  66. aiTopicPlaceholder: 'What should this post be about?',
  67. aiGoal: 'Goal',
  68. aiGoals: {
  69. promote: 'Promote',
  70. engage: 'Engage',
  71. inform: 'Inform',
  72. entertain: 'Entertain',
  73. announce: 'Announce',
  74. },
  75. aiTone: 'Tone',
  76. aiToneDefault: 'From profile',
  77. aiGenerate: 'Generate',
  78. aiGenerating: 'Generating…',
  79. aiStop: 'Stop',
  80. aiContextFrom: 'Context: {account}',
  81. aiNoContext: 'No profile — set one in Settings',
  82. aiNotConfigured: 'AI not configured — check Settings → AI Integration',
  83. aiError: 'Generation failed',
  84. },
  85. scheduler: {
  86. title: 'Scheduler',
  87. newSchedule: '+ New Post',
  88. noJobs: 'No scheduled posts.',
  89. statuses: {
  90. pending: 'Pending',
  91. completed: 'Completed',
  92. failed: 'Failed',
  93. cancelled: 'Cancelled',
  94. },
  95. cancel: 'Cancel',
  96. scheduledTab: 'Scheduled',
  97. calendarTab: 'Calendar',
  98. draftsTab: 'Drafts',
  99. noDrafts: 'No saved drafts.',
  100. editDraft: 'Edit',
  101. deleteDraft: 'Delete',
  102. goToToday: 'Today',
  103. noJobsDay: 'No posts scheduled for this day.',
  104. weekDaysShort: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
  105. months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
  106. },
  107. settings: {
  108. title: 'Platform Connections',
  109. subtitle: 'Edit the {env} file to connect platforms, then restart the relevant service.',
  110. connected: 'Connected',
  111. notConnected: 'Not connected',
  112. refreshStatus: '↻ Refresh Status',
  113. envHint: 'Configuration required',
  114. profiles: {
  115. sectionTitle: 'Account Profiles',
  116. sectionSubtitle: 'Business context used to personalise AI-generated content.',
  117. edit: 'Edit',
  118. close: 'Close',
  119. save: 'Save Profile',
  120. saving: 'Saving…',
  121. saved: 'Saved!',
  122. noAccounts: 'No connected accounts. Connect platforms above first.',
  123. businessName: 'Business Name',
  124. businessNameHint: 'e.g. Acme Coffee Roasters',
  125. description: 'Description',
  126. descriptionHint: 'What does this account represent? What do you do?',
  127. websiteUrl: 'Website URL',
  128. industry: 'Industry',
  129. industryHint: 'e.g. Food & Beverage, SaaS, Retail',
  130. targetAudience: 'Target Audience',
  131. targetAudienceHint: 'e.g. Coffee enthusiasts aged 25–45',
  132. toneOfVoice: 'Tone of Voice',
  133. toneSelect: 'Select a tone…',
  134. keywords: 'Keywords',
  135. keywordsHint: 'Comma-separated, e.g. organic, specialty, single-origin',
  136. hashtags: 'Preferred Hashtags',
  137. hashtagsHint: 'e.g. #specialtycoffee #coffeelovers',
  138. postingGuidelines: 'Posting Guidelines',
  139. postingGuidelinesHint: 'Any specific rules, e.g. always mention opening hours on Fridays',
  140. },
  141. meta: {
  142. sectionTitle: 'Facebook & Instagram',
  143. sectionSubtitle: 'Both platforms share a single Facebook Developer App. Connect once to manage all your Pages and Instagram accounts.',
  144. appIdLabel: 'App ID',
  145. appSecretLabel: 'App Secret',
  146. appIdPlaceholder: 'Your Facebook App ID',
  147. appSecretPlaceholder: 'Your Facebook App Secret',
  148. saveApp: 'Save App Credentials',
  149. saving: 'Saving...',
  150. appConfigured: 'App credentials saved',
  151. connectButton: 'Connect with Facebook & Instagram',
  152. connecting: 'Redirecting to Facebook...',
  153. reconnect: 'Reconnect',
  154. disconnect: 'Disconnect all',
  155. disconnectConfirm: 'This will disconnect all Facebook Pages and Instagram accounts. Continue?',
  156. discoveryTitle: 'Choose Pages & Accounts to Connect',
  157. discoverySubtitle: 'Select any combination of Facebook Pages and Instagram accounts below.',
  158. pagesHeading: 'Facebook Pages',
  159. igHeading: 'Instagram Accounts',
  160. noPages: 'No Facebook Pages found for this account.',
  161. noIgAccounts: 'No Instagram Business accounts found.',
  162. igLinkedTo: 'Linked to',
  163. confirmSelection: 'Connect Selected',
  164. confirmingSelection: 'Connecting...',
  165. nothingSelected: 'Select at least one Page or Instagram account.',
  166. connectedPages: 'Connected Pages',
  167. connectedAccounts: 'Connected Accounts',
  168. errorTitle: 'OAuth Error',
  169. getAppHelp: 'Get your App ID and Secret from',
  170. devPortal: 'developers.facebook.com',
  171. expiryWarningTitle: 'Instagram token expiring soon',
  172. expiryWarningBody: '{username} expires in {days} day | {username} expires in {days} days',
  173. expiryReconnect: 'Reconnect now',
  174. expiryDismiss: 'Dismiss',
  175. },
  176. },
  177. ai: {
  178. sectionTitle: 'AI Integration',
  179. sectionSubtitle: 'Connect a local Ollama instance to generate post content with AI.',
  180. endpointLabel: 'Ollama Endpoint',
  181. endpointPlaceholder: 'http://localhost:11434',
  182. endpointHint: 'Inside Docker the default is http://ollama:11434',
  183. modelLabel: 'Model',
  184. modelPlaceholder: 'Select a model…',
  185. testConnection: 'Test Connection',
  186. testing: 'Testing…',
  187. saveConfig: 'Save',
  188. saving: 'Saving…',
  189. saved: 'Saved!',
  190. noModels: 'No models found — is Ollama running?',
  191. connected: 'Connected',
  192. connectionFailed: 'Connection failed',
  193. modelsAvailable: '{count} model available | {count} models available',
  194. },
  195. feed: {
  196. openOriginal: '↗ Open',
  197. },
  198. platforms: {
  199. twitter: 'Twitter/X',
  200. linkedin: 'LinkedIn',
  201. mastodon: 'Mastodon',
  202. bluesky: 'Bluesky',
  203. instagram: 'Instagram',
  204. facebook: 'Facebook',
  205. reddit: 'Reddit',
  206. youtube: 'YouTube',
  207. },
  208. }