Replace the plain content-language <Select> in the brand form with a searchable LanguagePicker combobox (Popover + Command), matching the FontPicker. i18n the combobox placeholder/search/empty strings across all 15 locales. Switch the UI language via a full page reload instead of client-side dir syncing, so the server-rendered <html dir> flips LTR<->RTL correctly without a manual refresh.
363 lines
15 KiB
PHP
363 lines
15 KiB
PHP
<?php
|
|
|
|
return [
|
|
'title' => 'Settings',
|
|
'description' => 'Manage your profile and account settings',
|
|
|
|
'hub' => [
|
|
'title' => 'Settings',
|
|
'description' => 'Choose what you want to manage.',
|
|
'profile' => [
|
|
'title' => 'Profile',
|
|
'description' => 'Update your personal info, password, and notification preferences.',
|
|
],
|
|
'workspace' => [
|
|
'title' => 'Workspace',
|
|
'description' => 'Configure your workspace, brand, members, and API keys.',
|
|
],
|
|
'account' => [
|
|
'title' => 'Account',
|
|
'description' => 'Manage your account info, usage, and billing.',
|
|
],
|
|
],
|
|
|
|
'nav' => [
|
|
'profile' => 'Profile',
|
|
'authentication' => 'Authentication',
|
|
'workspace' => 'Workspace',
|
|
'members' => 'Members',
|
|
'notifications' => 'Notifications',
|
|
'billing' => 'Billing',
|
|
],
|
|
|
|
'notifications' => [
|
|
'title' => 'Notification preferences',
|
|
'heading' => 'Email notifications',
|
|
'description' => 'Choose which email notifications you want to receive',
|
|
'post_published' => 'Post published',
|
|
'post_published_description' => 'Receive an email when your post is published successfully',
|
|
'post_failed' => 'Post failed',
|
|
'post_failed_description' => 'Receive an email when your post fails to publish',
|
|
'account_disconnected' => 'Account disconnected',
|
|
'account_disconnected_description' => 'Receive an email when a social account is disconnected',
|
|
'save' => 'Save preferences',
|
|
],
|
|
|
|
'profile' => [
|
|
'title' => 'Profile settings',
|
|
'photo_heading' => 'Profile photo',
|
|
'photo_description' => 'Upload a profile photo',
|
|
'heading' => 'Profile information',
|
|
'description' => 'Update your name and email address',
|
|
'avatar' => 'Avatar',
|
|
'name' => 'Name',
|
|
'name_placeholder' => 'Full name',
|
|
'email' => 'Email address',
|
|
'email_placeholder' => 'Email address',
|
|
'email_unverified' => 'Your email address is unverified.',
|
|
'resend_verification' => 'Click here to resend the verification email.',
|
|
'verification_sent' => 'A new verification link has been sent to your email address.',
|
|
'save' => 'Save',
|
|
],
|
|
|
|
'authentication' => [
|
|
'title' => 'Authentication',
|
|
'page_title' => 'Authentication settings',
|
|
'sessions' => [
|
|
'title' => 'Active sessions',
|
|
'description' => 'If you notice anything suspicious, sign out of other devices.',
|
|
'unknown_browser' => 'Unknown browser',
|
|
'unknown_ip' => 'Unknown IP',
|
|
'on' => 'on',
|
|
'active_now' => 'Active now',
|
|
'log_out_others' => 'Log out other devices',
|
|
'modal_title' => 'Log out other devices',
|
|
'modal_description_password' => 'Enter your current password to confirm you want to log out other browser sessions.',
|
|
'modal_description_email' => 'Type your email address to confirm you want to log out other browser sessions.',
|
|
'password_placeholder' => 'Current password',
|
|
'email_placeholder' => 'Your account email',
|
|
'cancel' => 'Cancel',
|
|
'submit' => 'Log out other devices',
|
|
'email_mismatch' => 'The email address does not match your account.',
|
|
'flash_logged_out' => 'You have been logged out from other devices.',
|
|
],
|
|
'password' => [
|
|
'update_title' => 'Update password',
|
|
'set_title' => 'Set a password',
|
|
'update_description' => 'Ensure your account is using a long, random password to stay secure.',
|
|
'set_description' => 'Add a password so you can sign in without a connected provider.',
|
|
'current_password' => 'Current password',
|
|
'new_password' => 'New password',
|
|
'confirm_password' => 'Confirm password',
|
|
'save' => 'Save password',
|
|
'set' => 'Set password',
|
|
],
|
|
'providers' => [
|
|
'title' => 'Connected accounts',
|
|
'description' => 'Sign in faster with these connected providers.',
|
|
'connected' => 'Connected',
|
|
'not_connected' => 'Not connected',
|
|
'connect' => 'Connect',
|
|
'disconnect' => 'Disconnect',
|
|
'flash_disconnected' => ':provider disconnected successfully.',
|
|
'flash_connected' => ':provider connected successfully.',
|
|
'flash_already_linked' => 'That :provider account is already linked to another user.',
|
|
'flash_cannot_disconnect' => 'You cannot disconnect your only sign-in method. Set a password or connect another provider first.',
|
|
],
|
|
],
|
|
|
|
'delete_account' => [
|
|
'heading' => 'Delete account',
|
|
'description' => 'Delete your account and all of its resources',
|
|
'warning' => 'Warning',
|
|
'warning_message' => 'Please proceed with caution, this cannot be undone.',
|
|
'button' => 'Delete account',
|
|
'modal_title' => 'Are you sure you want to delete your account?',
|
|
'modal_description_password' => 'Once your account is deleted, all of its resources and data will also be permanently deleted. Please enter your password to confirm.',
|
|
'modal_description_email' => 'Once your account is deleted, all of its resources and data will also be permanently deleted. Please type your email address :email to confirm.',
|
|
'password' => 'Password',
|
|
'password_placeholder' => 'Password',
|
|
'email_placeholder' => 'Your account email',
|
|
'email_mismatch' => 'The email address does not match your account.',
|
|
'cancel' => 'Cancel',
|
|
'confirm' => 'Delete account',
|
|
],
|
|
|
|
'workspace' => [
|
|
'tabs' => [
|
|
'workspace' => 'Workspace',
|
|
'brand' => 'Brand',
|
|
'users' => 'Members',
|
|
'api_keys' => 'API Keys',
|
|
],
|
|
'title' => 'Workspace settings',
|
|
'logo_heading' => 'Workspace logo',
|
|
'logo_description' => 'Upload a logo for your workspace',
|
|
'heading' => 'Workspace name',
|
|
'description' => 'Update your workspace name',
|
|
'members_heading' => 'Members',
|
|
'members_description' => 'Manage workspace members and invitations',
|
|
'name' => 'Name',
|
|
'name_placeholder' => 'My Workspace',
|
|
'save' => 'Save',
|
|
],
|
|
|
|
'brand' => [
|
|
'title' => 'Brand',
|
|
'description' => 'Configure your brand identity for AI-generated content.',
|
|
'name' => 'Workspace name',
|
|
'name_placeholder' => 'My brand',
|
|
'website' => 'Website',
|
|
'website_placeholder' => 'https://yourbrand.com',
|
|
'brand_description' => 'Description',
|
|
'brand_description_placeholder' => 'Tell us about your brand, what you do, and who your audience is...',
|
|
'voice' => 'Brand voice',
|
|
'voice_description' => 'Pick the traits that define how your content sounds.',
|
|
'voice_group' => [
|
|
'pov' => 'Point of view',
|
|
'formality' => 'Formality',
|
|
'energy' => 'Energy',
|
|
'humor' => 'Humor',
|
|
'attitude' => 'Attitude',
|
|
'warmth' => 'Warmth',
|
|
'confidence' => 'Confidence',
|
|
'style' => 'Style',
|
|
],
|
|
'voice_trait' => [
|
|
'first_person' => 'First person',
|
|
'second_person' => 'Second person (you)',
|
|
'third_person' => 'Third person',
|
|
'formal' => 'Formal',
|
|
'balanced' => 'Balanced',
|
|
'casual' => 'Casual',
|
|
'calm' => 'Calm',
|
|
'moderate' => 'Moderate',
|
|
'enthusiastic' => 'Enthusiastic',
|
|
'vibrant' => 'Vibrant',
|
|
'serious' => 'Serious',
|
|
'dry' => 'Dry / subtle',
|
|
'witty' => 'Witty',
|
|
'playful' => 'Playful',
|
|
'respectful' => 'Respectful',
|
|
'even_handed' => 'Even-handed',
|
|
'bold' => 'Bold',
|
|
'provocative' => 'Provocative',
|
|
'neutral' => 'Neutral',
|
|
'friendly' => 'Friendly',
|
|
'empathetic' => 'Empathetic',
|
|
'humble' => 'Humble',
|
|
'confident' => 'Confident',
|
|
'assertive' => 'Assertive',
|
|
'direct' => 'Direct',
|
|
'concise' => 'Concise',
|
|
'transparent' => 'Transparent',
|
|
'no_hype' => 'No hype',
|
|
'practical' => 'Practical',
|
|
'data_driven' => 'Data-driven',
|
|
'storytelling' => 'Storytelling',
|
|
'inspirational' => 'Inspirational',
|
|
'educational' => 'Educational',
|
|
'technical' => 'Technical',
|
|
'minimalist' => 'Few emojis',
|
|
],
|
|
'brand_color' => 'Brand color',
|
|
'background_color' => 'Background color',
|
|
'text_color' => 'Text color',
|
|
'font' => 'Font',
|
|
'image_style' => 'Image style',
|
|
'image_style_description' => 'Visual style applied when generating slide and cover images for AI posts.',
|
|
'image_style_cinematic' => 'Cinematic',
|
|
'image_style_illustration' => 'Illustration',
|
|
'image_style_isometric_3d' => 'Isometric',
|
|
'image_style_cartoon' => 'Cartoon',
|
|
'image_style_typographic' => 'Typographic',
|
|
'image_style_infographic' => 'Infographic',
|
|
'image_style_minimalist' => 'Minimalist',
|
|
'image_style_mockup' => 'Mockup',
|
|
'content_language' => 'Content language',
|
|
'content_language_description' => 'Language used for AI-generated captions, hashtags, and any text inside generated images or videos.',
|
|
'font_placeholder' => 'Select a font…',
|
|
'font_search' => 'Search font…',
|
|
'font_empty' => 'No fonts match.',
|
|
'language_placeholder' => 'Select a language…',
|
|
'language_search' => 'Search language…',
|
|
'language_empty' => 'No language found.',
|
|
|
|
],
|
|
|
|
'members' => [
|
|
'title' => 'Members',
|
|
'heading' => 'Team members',
|
|
'description' => 'Manage members and invites for this workspace',
|
|
|
|
'cancel' => 'Cancel',
|
|
'remove' => 'Remove',
|
|
'make_role' => 'Make :role',
|
|
|
|
'invite' => [
|
|
'title' => 'Invite Member',
|
|
'description' => 'Send an email invite to add collaborators',
|
|
'email' => 'Email',
|
|
'email_placeholder' => 'collaborator@email.com',
|
|
'role' => 'Role',
|
|
'role_placeholder' => 'Select a role',
|
|
'submit' => 'Send Invite',
|
|
],
|
|
|
|
'pending' => [
|
|
'title' => 'Pending Invites',
|
|
'description' => 'Invites awaiting acceptance',
|
|
'empty' => 'No pending invites',
|
|
],
|
|
|
|
'list' => [
|
|
'title' => 'Members',
|
|
'description' => 'People with access to this workspace',
|
|
'empty' => 'No members besides the owner',
|
|
],
|
|
|
|
'remove_modal' => [
|
|
'title' => 'Remove member',
|
|
'description' => 'Are you sure you want to remove this member from the workspace? They will lose access to all workspace resources.',
|
|
'action' => 'Remove member',
|
|
],
|
|
|
|
'cancel_invite_modal' => [
|
|
'title' => 'Cancel invitation',
|
|
'description' => 'Are you sure you want to cancel this invitation?',
|
|
'action' => 'Cancel invitation',
|
|
],
|
|
|
|
'roles' => [
|
|
'owner' => 'Owner',
|
|
'admin' => 'Admin',
|
|
'member' => 'Member',
|
|
'viewer' => 'Viewer',
|
|
],
|
|
|
|
'flash' => [
|
|
'invite_sent' => 'Invite sent successfully!',
|
|
'invite_deleted' => 'Invite deleted.',
|
|
'member_removed' => 'Member removed successfully.',
|
|
'role_updated' => 'Member role updated.',
|
|
'wrong_email' => 'This invite is for a different email address.',
|
|
'already_member' => 'You are already a member of this workspace.',
|
|
'invite_accepted' => 'Welcome! You are now a member of the workspace.',
|
|
'invite_declined' => 'Invite declined.',
|
|
],
|
|
],
|
|
|
|
'account' => [
|
|
'tabs' => [
|
|
'account' => 'Account',
|
|
'usage' => 'Usage',
|
|
'billing' => 'Billing',
|
|
],
|
|
'title' => 'Account Settings',
|
|
'description' => 'Manage your account name and billing email',
|
|
'name' => 'Account Name',
|
|
'name_placeholder' => 'My Company',
|
|
'billing_email' => 'Billing Email',
|
|
'billing_email_placeholder' => 'billing@company.com',
|
|
'billing_email_hint' => 'This email will be used for invoices and billing communications from Stripe.',
|
|
'submit' => 'Save',
|
|
],
|
|
|
|
'flash' => [
|
|
'account_updated' => 'Account updated successfully!',
|
|
'profile_updated' => 'Profile updated successfully!',
|
|
'password_updated' => 'Password updated successfully!',
|
|
'workspace_updated' => 'Settings updated successfully!',
|
|
'photo_updated' => 'Photo updated successfully!',
|
|
'photo_deleted' => 'Photo removed successfully!',
|
|
'logo_updated' => 'Logo uploaded successfully!',
|
|
'logo_deleted' => 'Logo removed successfully!',
|
|
'notifications_updated' => 'Notification preferences updated!',
|
|
],
|
|
|
|
'api_keys' => [
|
|
'title' => 'API Keys',
|
|
'page_title' => 'API Keys',
|
|
'heading' => 'API Keys',
|
|
'description' => 'Manage API keys for programmatic access to your workspace.',
|
|
'create' => 'Create API Key',
|
|
'copy' => 'Copy',
|
|
'new_token_message' => 'Your new API key has been created. Copy it now — you won\'t be able to see it again.',
|
|
'table' => [
|
|
'name' => 'Name',
|
|
'key' => 'Key',
|
|
'status' => 'Status',
|
|
'expires' => 'Expires',
|
|
'last_used' => 'Last Used',
|
|
'never' => 'Never',
|
|
],
|
|
'actions' => [
|
|
'copy_id' => 'Copy API Key ID',
|
|
'copy_id_success' => 'API Key ID copied to clipboard',
|
|
'delete' => 'Delete',
|
|
],
|
|
'empty' => [
|
|
'title' => 'No API keys yet',
|
|
'description' => 'Create an API key to access your workspace programmatically.',
|
|
],
|
|
'delete_modal' => [
|
|
'title' => 'Delete API key',
|
|
'description' => 'Are you sure you want to delete this API key? Any applications using this key will lose access immediately.',
|
|
'action' => 'Delete API key',
|
|
],
|
|
'create_dialog' => [
|
|
'title' => 'Create API Key',
|
|
'description' => 'Create a new API key for programmatic access to your workspace.',
|
|
'name' => 'Name',
|
|
'name_placeholder' => 'e.g. Production API Key',
|
|
'expires' => 'Expiration date (optional)',
|
|
'expires_placeholder' => 'No expiration',
|
|
'submit' => 'Create',
|
|
'cancel' => 'Cancel',
|
|
],
|
|
'flash' => [
|
|
'created' => 'API key created successfully!',
|
|
'deleted' => 'API key deleted successfully!',
|
|
],
|
|
],
|
|
];
|