diff --git a/Cargo.toml b/Cargo.toml index b2ec5c1..2f17d67 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,11 +11,12 @@ categories = ["api-bindings", "web-programming"] [features] default = [] -full = ["database", "http-client", "validation", "resilience"] +full = ["database", "http-client", "validation", "resilience", "i18n"] database = ["dep:diesel"] http-client = ["dep:reqwest"] validation = ["dep:validator"] resilience = [] +i18n = [] [dependencies] # Core diff --git a/locales/en/admin.ftl b/locales/en/admin.ftl new file mode 100644 index 0000000..bb6a98b --- /dev/null +++ b/locales/en/admin.ftl @@ -0,0 +1,557 @@ +# ============================================================================= +# General Bots - Admin Translations (English) +# ============================================================================= +# Administrative interface translations for the GB Admin Panel +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Admin Navigation & Dashboard +# ----------------------------------------------------------------------------- +admin-title = Administration +admin-dashboard = Admin Dashboard +admin-overview = Overview +admin-welcome = Welcome to the Admin Panel + +admin-nav-dashboard = Dashboard +admin-nav-users = Users +admin-nav-bots = Bots +admin-nav-tenants = Tenants +admin-nav-settings = Settings +admin-nav-logs = Logs +admin-nav-analytics = Analytics +admin-nav-security = Security +admin-nav-integrations = Integrations +admin-nav-billing = Billing +admin-nav-support = Support +admin-nav-groups = Groups +admin-nav-dns = DNS +admin-nav-system = System + +# ----------------------------------------------------------------------------- +# Admin Quick Actions +# ----------------------------------------------------------------------------- +admin-quick-actions = Quick Actions +admin-create-user = Create User +admin-create-group = Create Group +admin-register-dns = Register DNS +admin-recent-activity = Recent Activity +admin-system-health = System Health + +# ----------------------------------------------------------------------------- +# User Management +# ----------------------------------------------------------------------------- +admin-users-title = User Management +admin-users-list = User List +admin-users-add = Add User +admin-users-edit = Edit User +admin-users-delete = Delete User +admin-users-search = Search users... +admin-users-filter = Filter Users +admin-users-export = Export Users +admin-users-import = Import Users +admin-users-total = Total Users +admin-users-active = Active Users +admin-users-inactive = Inactive Users +admin-users-suspended = Suspended Users +admin-users-pending = Pending Verification +admin-users-last-login = Last Login +admin-users-created = Created +admin-users-role = Role +admin-users-status = Status +admin-users-actions = Actions +admin-users-no-users = No users found +admin-users-confirm-delete = Are you sure you want to delete this user? +admin-users-deleted = User deleted successfully +admin-users-saved = User saved successfully +admin-users-invite = Invite User +admin-users-invite-sent = Invitation sent successfully +admin-users-bulk-actions = Bulk Actions +admin-users-select-all = Select All +admin-users-deselect-all = Deselect All + +# User Details +admin-user-details = User Details +admin-user-profile = Profile +admin-user-email = Email +admin-user-name = Name +admin-user-phone = Phone +admin-user-avatar = Avatar +admin-user-timezone = Timezone +admin-user-language = Language +admin-user-role-admin = Administrator +admin-user-role-manager = Manager +admin-user-role-user = User +admin-user-role-viewer = Viewer +admin-user-status-active = Active +admin-user-status-inactive = Inactive +admin-user-status-suspended = Suspended +admin-user-status-pending = Pending +admin-user-permissions = Permissions +admin-user-activity = Activity Log +admin-user-sessions = Active Sessions +admin-user-terminate-session = Terminate Session +admin-user-terminate-all = Terminate All Sessions +admin-user-reset-password = Reset Password +admin-user-force-logout = Force Logout +admin-user-enable-2fa = Enable 2FA +admin-user-disable-2fa = Disable 2FA + +# ----------------------------------------------------------------------------- +# Group Management +# ----------------------------------------------------------------------------- +admin-groups-title = Group Management +admin-groups-subtitle = Manage groups, members, and permissions +admin-groups-list = Group List +admin-groups-add = Add Group +admin-groups-create = Create Group +admin-groups-edit = Edit Group +admin-groups-delete = Delete Group +admin-groups-search = Search groups... +admin-groups-filter = Filter Groups +admin-groups-total = Total Groups +admin-groups-active = Active Groups +admin-groups-no-groups = No groups found +admin-groups-confirm-delete = Are you sure you want to delete this group? +admin-groups-deleted = Group deleted successfully +admin-groups-saved = Group saved successfully +admin-groups-created = Group created successfully +admin-groups-loading = Loading groups... + +# Group Details +admin-group-details = Group Details +admin-group-name = Group Name +admin-group-description = Description +admin-group-visibility = Visibility +admin-group-visibility-public = Public +admin-group-visibility-private = Private +admin-group-visibility-hidden = Hidden +admin-group-join-policy = Join Policy +admin-group-join-invite = Invite Only +admin-group-join-request = Request to Join +admin-group-join-open = Open +admin-group-members = Members +admin-group-member-count = { $count -> + [one] { $count } member + *[other] { $count } members +} +admin-group-add-member = Add Member +admin-group-remove-member = Remove Member +admin-group-permissions = Permissions +admin-group-settings = Settings +admin-group-analytics = Analytics +admin-group-overview = Overview + +# Group View Modes +admin-groups-view-grid = Grid View +admin-groups-view-list = List View +admin-groups-all-visibility = All Visibility + +# ----------------------------------------------------------------------------- +# DNS Management +# ----------------------------------------------------------------------------- +admin-dns-title = DNS Management +admin-dns-subtitle = Register and manage DNS hostnames for your bots +admin-dns-register = Register Hostname +admin-dns-registered = Registered Hostnames +admin-dns-search = Search hostnames... +admin-dns-refresh = Refresh +admin-dns-loading = Loading DNS records... +admin-dns-no-records = No DNS records found +admin-dns-confirm-delete = Are you sure you want to remove this hostname? +admin-dns-deleted = Hostname removed successfully +admin-dns-saved = DNS record saved successfully +admin-dns-created = Hostname registered successfully + +# DNS Form Fields +admin-dns-hostname = Hostname +admin-dns-hostname-placeholder = mybot.example.com +admin-dns-hostname-help = Enter the full domain name you want to register +admin-dns-record-type = Record Type +admin-dns-record-type-a = A (IPv4) +admin-dns-record-type-aaaa = AAAA (IPv6) +admin-dns-record-type-cname = CNAME +admin-dns-ttl = TTL (seconds) +admin-dns-ttl-5min = 5 minutes (300) +admin-dns-ttl-1hour = 1 hour (3600) +admin-dns-ttl-1day = 1 day (86400) +admin-dns-target = Target/IP Address +admin-dns-target-placeholder-ipv4 = 192.168.1.1 +admin-dns-target-placeholder-ipv6 = 2001:db8::1 +admin-dns-target-placeholder-cname = target.example.com +admin-dns-target-help-a = Enter the IPv4 address to point to +admin-dns-target-help-aaaa = Enter the IPv6 address to point to +admin-dns-target-help-cname = Enter the target domain name +admin-dns-auto-ssl = Automatically provision SSL certificate + +# DNS Table Headers +admin-dns-col-hostname = Hostname +admin-dns-col-type = Type +admin-dns-col-target = Target +admin-dns-col-ttl = TTL +admin-dns-col-ssl = SSL +admin-dns-col-status = Status +admin-dns-col-actions = Actions + +# DNS Status +admin-dns-status-active = Active +admin-dns-status-pending = Pending +admin-dns-status-error = Error +admin-dns-ssl-enabled = SSL Enabled +admin-dns-ssl-disabled = No SSL +admin-dns-ssl-pending = SSL Pending + +# DNS Info Cards +admin-dns-help-title = DNS Configuration Help +admin-dns-help-a-record = A Record +admin-dns-help-a-record-desc = Maps a domain name to an IPv4 address. Use this to point your hostname directly to a server IP. +admin-dns-help-aaaa-record = AAAA Record +admin-dns-help-aaaa-record-desc = Maps a domain name to an IPv6 address. Similar to A record but for IPv6 connectivity. +admin-dns-help-cname-record = CNAME Record +admin-dns-help-cname-record-desc = Creates an alias from one domain to another. Useful for pointing subdomains to your main domain. +admin-dns-help-ssl = SSL/TLS +admin-dns-help-ssl-desc = Automatically provisions Let's Encrypt certificates for secure HTTPS connections. + +# DNS Edit/Remove Modals +admin-dns-edit-title = Edit DNS Record +admin-dns-remove-title = Remove Hostname +admin-dns-remove-warning = This will delete the DNS record and any associated SSL certificates. The hostname will no longer resolve. + +# ----------------------------------------------------------------------------- +# Bot Management +# ----------------------------------------------------------------------------- +admin-bots-title = Bot Management +admin-bots-list = Bot List +admin-bots-add = Add Bot +admin-bots-edit = Edit Bot +admin-bots-delete = Delete Bot +admin-bots-search = Search bots... +admin-bots-filter = Filter Bots +admin-bots-total = Total Bots +admin-bots-active = Active Bots +admin-bots-inactive = Inactive Bots +admin-bots-draft = Draft Bots +admin-bots-published = Published Bots +admin-bots-no-bots = No bots found +admin-bots-confirm-delete = Are you sure you want to delete this bot? +admin-bots-deleted = Bot deleted successfully +admin-bots-saved = Bot saved successfully +admin-bots-duplicate = Duplicate Bot +admin-bots-export = Export Bot +admin-bots-import = Import Bot +admin-bots-publish = Publish +admin-bots-unpublish = Unpublish +admin-bots-test = Test Bot +admin-bots-logs = Bot Logs +admin-bots-analytics = Bot Analytics +admin-bots-conversations = Conversations +admin-bots-templates = Templates +admin-bots-dialogs = Dialogs +admin-bots-knowledge-base = Knowledge Base + +# Bot Details +admin-bot-details = Bot Details +admin-bot-name = Bot Name +admin-bot-description = Description +admin-bot-avatar = Bot Avatar +admin-bot-language = Language +admin-bot-timezone = Timezone +admin-bot-greeting = Greeting Message +admin-bot-fallback = Fallback Message +admin-bot-channels = Channels +admin-bot-channel-web = Web Chat +admin-bot-channel-whatsapp = WhatsApp +admin-bot-channel-telegram = Telegram +admin-bot-channel-slack = Slack +admin-bot-channel-teams = Microsoft Teams +admin-bot-channel-email = Email +admin-bot-model = AI Model +admin-bot-temperature = Temperature +admin-bot-max-tokens = Max Tokens +admin-bot-system-prompt = System Prompt + +# ----------------------------------------------------------------------------- +# Tenant Management +# ----------------------------------------------------------------------------- +admin-tenants-title = Tenant Management +admin-tenants-list = Tenant List +admin-tenants-add = Add Tenant +admin-tenants-edit = Edit Tenant +admin-tenants-delete = Delete Tenant +admin-tenants-search = Search tenants... +admin-tenants-total = Total Tenants +admin-tenants-active = Active Tenants +admin-tenants-suspended = Suspended Tenants +admin-tenants-trial = Trial Tenants +admin-tenants-no-tenants = No tenants found +admin-tenants-confirm-delete = Are you sure you want to delete this tenant? +admin-tenants-deleted = Tenant deleted successfully +admin-tenants-saved = Tenant saved successfully + +# Tenant Details +admin-tenant-details = Tenant Details +admin-tenant-name = Tenant Name +admin-tenant-domain = Domain +admin-tenant-plan = Plan +admin-tenant-plan-free = Free +admin-tenant-plan-starter = Starter +admin-tenant-plan-professional = Professional +admin-tenant-plan-enterprise = Enterprise +admin-tenant-users = Users +admin-tenant-bots = Bots +admin-tenant-storage = Storage Used +admin-tenant-api-calls = API Calls +admin-tenant-limits = Usage Limits +admin-tenant-billing = Billing Info + +# ----------------------------------------------------------------------------- +# System Settings +# ----------------------------------------------------------------------------- +admin-settings-title = System Settings +admin-settings-general = General Settings +admin-settings-security = Security Settings +admin-settings-email = Email Settings +admin-settings-storage = Storage Settings +admin-settings-integrations = Integrations +admin-settings-api = API Settings +admin-settings-appearance = Appearance +admin-settings-localization = Localization +admin-settings-notifications = Notifications +admin-settings-backup = Backup & Restore +admin-settings-maintenance = Maintenance Mode +admin-settings-saved = Settings saved successfully +admin-settings-reset = Reset to Defaults +admin-settings-confirm-reset = Are you sure you want to reset all settings to defaults? + +# General Settings +admin-settings-site-name = Site Name +admin-settings-site-url = Site URL +admin-settings-admin-email = Admin Email +admin-settings-support-email = Support Email +admin-settings-default-language = Default Language +admin-settings-default-timezone = Default Timezone +admin-settings-date-format = Date Format +admin-settings-time-format = Time Format +admin-settings-currency = Currency + +# Email Settings +admin-settings-smtp-host = SMTP Host +admin-settings-smtp-port = SMTP Port +admin-settings-smtp-user = SMTP Username +admin-settings-smtp-password = SMTP Password +admin-settings-smtp-encryption = Encryption +admin-settings-smtp-from-name = From Name +admin-settings-smtp-from-email = From Email +admin-settings-smtp-test = Send Test Email +admin-settings-smtp-test-success = Test email sent successfully +admin-settings-smtp-test-failed = Failed to send test email + +# Storage Settings +admin-settings-storage-provider = Storage Provider +admin-settings-storage-local = Local Storage +admin-settings-storage-s3 = Amazon S3 +admin-settings-storage-minio = MinIO +admin-settings-storage-gcs = Google Cloud Storage +admin-settings-storage-azure = Azure Blob Storage +admin-settings-storage-bucket = Bucket Name +admin-settings-storage-region = Region +admin-settings-storage-access-key = Access Key +admin-settings-storage-secret-key = Secret Key +admin-settings-storage-endpoint = Endpoint URL + +# ----------------------------------------------------------------------------- +# System Logs +# ----------------------------------------------------------------------------- +admin-logs-title = System Logs +admin-logs-search = Search logs... +admin-logs-filter-level = Filter by Level +admin-logs-filter-source = Filter by Source +admin-logs-filter-date = Filter by Date +admin-logs-level-all = All Levels +admin-logs-level-debug = Debug +admin-logs-level-info = Info +admin-logs-level-warning = Warning +admin-logs-level-error = Error +admin-logs-level-critical = Critical +admin-logs-export = Export Logs +admin-logs-clear = Clear Logs +admin-logs-confirm-clear = Are you sure you want to clear all logs? +admin-logs-cleared = Logs cleared successfully +admin-logs-no-logs = No logs found +admin-logs-refresh = Refresh +admin-logs-auto-refresh = Auto Refresh +admin-logs-timestamp = Timestamp +admin-logs-level = Level +admin-logs-source = Source +admin-logs-message = Message +admin-logs-details = Details + +# ----------------------------------------------------------------------------- +# Analytics +# ----------------------------------------------------------------------------- +admin-analytics-title = Analytics +admin-analytics-overview = Overview +admin-analytics-users = User Analytics +admin-analytics-bots = Bot Analytics +admin-analytics-conversations = Conversation Analytics +admin-analytics-performance = Performance +admin-analytics-period = Time Period +admin-analytics-period-today = Today +admin-analytics-period-week = This Week +admin-analytics-period-month = This Month +admin-analytics-period-quarter = This Quarter +admin-analytics-period-year = This Year +admin-analytics-period-custom = Custom Range +admin-analytics-export = Export Report +admin-analytics-total-users = Total Users +admin-analytics-new-users = New Users +admin-analytics-active-users = Active Users +admin-analytics-total-bots = Total Bots +admin-analytics-active-bots = Active Bots +admin-analytics-total-conversations = Total Conversations +admin-analytics-avg-response-time = Avg Response Time +admin-analytics-satisfaction-rate = Satisfaction Rate +admin-analytics-resolution-rate = Resolution Rate + +# ----------------------------------------------------------------------------- +# Security +# ----------------------------------------------------------------------------- +admin-security-title = Security +admin-security-overview = Security Overview +admin-security-audit-log = Audit Log +admin-security-login-attempts = Login Attempts +admin-security-blocked-ips = Blocked IPs +admin-security-api-keys = API Keys +admin-security-webhooks = Webhooks +admin-security-cors = CORS Settings +admin-security-rate-limiting = Rate Limiting +admin-security-encryption = Encryption +admin-security-2fa = Two-Factor Authentication +admin-security-sso = Single Sign-On +admin-security-password-policy = Password Policy + +# API Keys +admin-api-keys-title = API Keys +admin-api-keys-add = Create API Key +admin-api-keys-name = Key Name +admin-api-keys-key = API Key +admin-api-keys-secret = Secret Key +admin-api-keys-created = Created +admin-api-keys-last-used = Last Used +admin-api-keys-expires = Expires +admin-api-keys-never = Never +admin-api-keys-revoke = Revoke +admin-api-keys-confirm-revoke = Are you sure you want to revoke this API key? +admin-api-keys-revoked = API key revoked successfully +admin-api-keys-created-success = API key created successfully +admin-api-keys-copy = Copy to Clipboard +admin-api-keys-copied = Copied! +admin-api-keys-warning = Make sure to copy your API key now. You won't be able to see it again! + +# ----------------------------------------------------------------------------- +# Billing +# ----------------------------------------------------------------------------- +admin-billing-title = Billing +admin-billing-overview = Billing Overview +admin-billing-current-plan = Current Plan +admin-billing-usage = Usage +admin-billing-invoices = Invoices +admin-billing-payment-methods = Payment Methods +admin-billing-upgrade = Upgrade Plan +admin-billing-downgrade = Downgrade Plan +admin-billing-cancel = Cancel Subscription +admin-billing-invoice-date = Invoice Date +admin-billing-invoice-amount = Amount +admin-billing-invoice-status = Status +admin-billing-invoice-paid = Paid +admin-billing-invoice-pending = Pending +admin-billing-invoice-overdue = Overdue +admin-billing-invoice-download = Download Invoice + +# ----------------------------------------------------------------------------- +# Backup & Restore +# ----------------------------------------------------------------------------- +admin-backup-title = Backup & Restore +admin-backup-create = Create Backup +admin-backup-restore = Restore Backup +admin-backup-schedule = Schedule Backups +admin-backup-list = Backup History +admin-backup-name = Backup Name +admin-backup-size = Size +admin-backup-created = Created +admin-backup-download = Download +admin-backup-delete = Delete +admin-backup-confirm-restore = Are you sure you want to restore this backup? This will overwrite current data. +admin-backup-confirm-delete = Are you sure you want to delete this backup? +admin-backup-in-progress = Backup in progress... +admin-backup-completed = Backup completed successfully +admin-backup-failed = Backup failed +admin-backup-restore-in-progress = Restore in progress... +admin-backup-restore-completed = Restore completed successfully +admin-backup-restore-failed = Restore failed + +# ----------------------------------------------------------------------------- +# Maintenance Mode +# ----------------------------------------------------------------------------- +admin-maintenance-title = Maintenance Mode +admin-maintenance-enable = Enable Maintenance Mode +admin-maintenance-disable = Disable Maintenance Mode +admin-maintenance-status = Current Status +admin-maintenance-active = Maintenance mode is active +admin-maintenance-inactive = Maintenance mode is inactive +admin-maintenance-message = Maintenance Message +admin-maintenance-default-message = We are currently performing scheduled maintenance. Please check back soon. +admin-maintenance-allowed-ips = Allowed IP Addresses +admin-maintenance-confirm-enable = Are you sure you want to enable maintenance mode? Users will not be able to access the system. + +# ----------------------------------------------------------------------------- +# Common Admin UI Elements +# ----------------------------------------------------------------------------- +admin-required = Required +admin-optional = Optional +admin-loading = Loading... +admin-saving = Saving... +admin-deleting = Deleting... +admin-confirm = Confirm +admin-cancel = Cancel +admin-save = Save +admin-create = Create +admin-update = Update +admin-delete = Delete +admin-edit = Edit +admin-view = View +admin-close = Close +admin-back = Back +admin-next = Next +admin-previous = Previous +admin-refresh = Refresh +admin-export = Export +admin-import = Import +admin-search = Search +admin-filter = Filter +admin-clear = Clear +admin-select = Select +admin-select-all = Select All +admin-deselect-all = Deselect All +admin-actions = Actions +admin-more-actions = More Actions +admin-no-data = No data available +admin-error = An error occurred +admin-success = Success +admin-warning = Warning +admin-info = Information + +# Table Pagination +admin-showing = Showing { $from } to { $to } of { $total } results +admin-page = Page { $current } of { $total } +admin-items-per-page = Items per page +admin-go-to-page = Go to page + +# Bulk Actions +admin-bulk-delete = Delete Selected +admin-bulk-export = Export Selected +admin-bulk-activate = Activate Selected +admin-bulk-deactivate = Deactivate Selected +admin-selected-count = { $count -> + [one] { $count } item selected + *[other] { $count } items selected +} diff --git a/locales/en/analytics.ftl b/locales/en/analytics.ftl new file mode 100644 index 0000000..c615c23 --- /dev/null +++ b/locales/en/analytics.ftl @@ -0,0 +1,173 @@ +analytics-title = Analytics +analytics-dashboard = Analytics Dashboard +analytics-overview = Overview +analytics-reports = Reports +analytics-export = Export Data +analytics-refresh = Refresh Data +analytics-last-updated = Last updated: { $time } + +analytics-period-today = Today +analytics-period-yesterday = Yesterday +analytics-period-week = This Week +analytics-period-last-week = Last Week +analytics-period-month = This Month +analytics-period-last-month = Last Month +analytics-period-quarter = This Quarter +analytics-period-year = This Year +analytics-period-custom = Custom Range +analytics-period-from = From +analytics-period-to = To +analytics-period-apply = Apply + +analytics-metric-total = Total +analytics-metric-average = Average +analytics-metric-min = Minimum +analytics-metric-max = Maximum +analytics-metric-count = Count +analytics-metric-sum = Sum +analytics-metric-percentage = Percentage +analytics-metric-growth = Growth +analytics-metric-change = Change +analytics-metric-trend = Trend + +analytics-users-title = User Analytics +analytics-users-total = Total Users +analytics-users-active = Active Users +analytics-users-new = New Users +analytics-users-returning = Returning Users +analytics-users-churned = Churned Users +analytics-users-growth = User Growth +analytics-users-retention = User Retention +analytics-users-engagement = User Engagement +analytics-users-by-country = Users by Country +analytics-users-by-device = Users by Device +analytics-users-by-browser = Users by Browser +analytics-users-by-os = Users by Operating System +analytics-users-sessions = Sessions +analytics-users-avg-session = Avg Session Duration +analytics-users-page-views = Page Views +analytics-users-bounce-rate = Bounce Rate + +analytics-bots-title = Bot Analytics +analytics-bots-total = Total Bots +analytics-bots-active = Active Bots +analytics-bots-conversations = Total Conversations +analytics-bots-messages = Total Messages +analytics-bots-avg-messages = Avg Messages per Conversation +analytics-bots-response-time = Avg Response Time +analytics-bots-resolution-rate = Resolution Rate +analytics-bots-satisfaction = Satisfaction Score +analytics-bots-handoff-rate = Human Handoff Rate +analytics-bots-fallback-rate = Fallback Rate +analytics-bots-intent-accuracy = Intent Accuracy +analytics-bots-top-intents = Top Intents +analytics-bots-top-topics = Top Topics +analytics-bots-by-channel = Conversations by Channel +analytics-bots-by-hour = Conversations by Hour +analytics-bots-by-day = Conversations by Day + +analytics-conversations-title = Conversation Analytics +analytics-conversations-total = Total Conversations +analytics-conversations-completed = Completed +analytics-conversations-abandoned = Abandoned +analytics-conversations-transferred = Transferred +analytics-conversations-avg-duration = Avg Duration +analytics-conversations-avg-messages = Avg Messages +analytics-conversations-first-response = First Response Time +analytics-conversations-wait-time = Avg Wait Time +analytics-conversations-peak-hours = Peak Hours +analytics-conversations-sentiment = Sentiment Analysis +analytics-conversations-sentiment-positive = Positive +analytics-conversations-sentiment-neutral = Neutral +analytics-conversations-sentiment-negative = Negative +analytics-conversations-languages = By Language +analytics-conversations-sources = By Source + +analytics-performance-title = Performance Analytics +analytics-performance-uptime = Uptime +analytics-performance-availability = Availability +analytics-performance-response-time = Response Time +analytics-performance-latency = Latency +analytics-performance-throughput = Throughput +analytics-performance-error-rate = Error Rate +analytics-performance-cpu = CPU Usage +analytics-performance-memory = Memory Usage +analytics-performance-disk = Disk Usage +analytics-performance-network = Network I/O +analytics-performance-requests = Requests/sec +analytics-performance-concurrent = Concurrent Users +analytics-performance-queue-size = Queue Size +analytics-performance-cache-hit = Cache Hit Rate + +analytics-api-title = API Analytics +analytics-api-calls = Total API Calls +analytics-api-success = Successful Calls +analytics-api-errors = Failed Calls +analytics-api-avg-latency = Avg Latency +analytics-api-by-endpoint = Calls by Endpoint +analytics-api-by-method = Calls by Method +analytics-api-by-status = Calls by Status Code +analytics-api-rate-limited = Rate Limited Calls +analytics-api-top-consumers = Top API Consumers + +analytics-llm-title = LLM Analytics +analytics-llm-requests = Total Requests +analytics-llm-tokens-input = Input Tokens +analytics-llm-tokens-output = Output Tokens +analytics-llm-tokens-total = Total Tokens +analytics-llm-cost = Estimated Cost +analytics-llm-avg-latency = Avg Latency +analytics-llm-by-model = Usage by Model +analytics-llm-cache-hits = Cache Hits +analytics-llm-cache-misses = Cache Misses + +analytics-storage-title = Storage Analytics +analytics-storage-total = Total Storage +analytics-storage-used = Used Storage +analytics-storage-available = Available Storage +analytics-storage-by-type = Storage by File Type +analytics-storage-by-tenant = Storage by Tenant +analytics-storage-growth = Storage Growth +analytics-storage-uploads = Total Uploads +analytics-storage-downloads = Total Downloads + +analytics-chart-line = Line Chart +analytics-chart-bar = Bar Chart +analytics-chart-pie = Pie Chart +analytics-chart-area = Area Chart +analytics-chart-donut = Donut Chart +analytics-chart-table = Table View +analytics-chart-heatmap = Heatmap +analytics-chart-no-data = No data available for this period + +analytics-comparison-previous = vs Previous Period +analytics-comparison-increase = { $value }% increase +analytics-comparison-decrease = { $value }% decrease +analytics-comparison-no-change = No change + +analytics-filter-all = All +analytics-filter-apply = Apply Filters +analytics-filter-clear = Clear Filters +analytics-filter-by-bot = Filter by Bot +analytics-filter-by-channel = Filter by Channel +analytics-filter-by-user = Filter by User +analytics-filter-by-tenant = Filter by Tenant + +analytics-report-generate = Generate Report +analytics-report-schedule = Schedule Report +analytics-report-download = Download Report +analytics-report-email = Email Report +analytics-report-format-pdf = PDF +analytics-report-format-csv = CSV +analytics-report-format-excel = Excel +analytics-report-format-json = JSON +analytics-report-generating = Generating report... +analytics-report-ready = Report ready for download +analytics-report-failed = Failed to generate report + +analytics-realtime = Real-time Analytics +analytics-realtime-active = Active Now +analytics-realtime-conversations = Active Conversations +analytics-realtime-users = Online Users +analytics-realtime-requests = Requests/min +analytics-realtime-events = Events/sec diff --git a/locales/en/auth.ftl b/locales/en/auth.ftl new file mode 100644 index 0000000..b78e338 --- /dev/null +++ b/locales/en/auth.ftl @@ -0,0 +1,256 @@ +# ============================================================================= +# General Bots - Authentication Translations (English) +# ============================================================================= +# Authentication, Passkey/WebAuthn, and security interface translations +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Authentication General +# ----------------------------------------------------------------------------- +auth-title = Authentication +auth-login = Log In +auth-logout = Log Out +auth-signup = Sign Up +auth-welcome = Welcome +auth-welcome-back = Welcome back, { $name }! +auth-session-expired = Your session has expired +auth-session-timeout = Session timeout in { $minutes } minutes + +# ----------------------------------------------------------------------------- +# Login Form +# ----------------------------------------------------------------------------- +auth-login-title = Sign in to your account +auth-login-subtitle = Enter your credentials to continue +auth-login-email = Email Address +auth-login-username = Username +auth-login-password = Password +auth-login-remember = Remember me +auth-login-forgot = Forgot password? +auth-login-submit = Sign In +auth-login-loading = Signing in... +auth-login-or = or continue with +auth-login-no-account = Don't have an account? +auth-login-create-account = Create an account + +# ----------------------------------------------------------------------------- +# Passkey/WebAuthn +# ----------------------------------------------------------------------------- +passkey-title = Passkeys +passkey-subtitle = Secure, passwordless authentication +passkey-description = Passkeys use your device's biometrics or PIN for secure, phishing-resistant sign-in +passkey-what-is = What is a passkey? +passkey-benefits = Benefits of passkeys +passkey-benefit-secure = More secure than passwords +passkey-benefit-easy = Easy to use - no passwords to remember +passkey-benefit-fast = Fast sign-in with biometrics +passkey-benefit-phishing = Resistant to phishing attacks + +# ----------------------------------------------------------------------------- +# Passkey Registration +# ----------------------------------------------------------------------------- +passkey-register-title = Set Up Passkey +passkey-register-subtitle = Create a passkey for faster, more secure sign-in +passkey-register-description = Your device will ask you to verify your identity using your fingerprint, face, or screen lock +passkey-register-button = Create Passkey +passkey-register-name = Passkey Name +passkey-register-name-placeholder = e.g., MacBook Pro, iPhone +passkey-register-name-hint = Give your passkey a name to identify it later +passkey-register-loading = Setting up passkey... +passkey-register-verifying = Verifying with your device... +passkey-register-success = Passkey created successfully +passkey-register-error = Failed to create passkey +passkey-register-cancelled = Passkey setup cancelled +passkey-register-not-supported = Your browser doesn't support passkeys + +# ----------------------------------------------------------------------------- +# Passkey Authentication +# ----------------------------------------------------------------------------- +passkey-login-title = Sign in with Passkey +passkey-login-subtitle = Use your passkey for secure, passwordless sign-in +passkey-login-button = Sign in with Passkey +passkey-login-loading = Authenticating... +passkey-login-verifying = Verifying passkey... +passkey-login-success = Signed in successfully +passkey-login-error = Authentication failed +passkey-login-cancelled = Authentication cancelled +passkey-login-no-passkeys = No passkeys found for this account +passkey-login-try-another = Try another method + +# ----------------------------------------------------------------------------- +# Passkey Management +# ----------------------------------------------------------------------------- +passkey-manage-title = Manage Passkeys +passkey-manage-subtitle = View and manage your registered passkeys +passkey-manage-count = { $count -> + [one] { $count } passkey registered + *[other] { $count } passkeys registered +} +passkey-manage-add = Add New Passkey +passkey-manage-rename = Rename +passkey-manage-delete = Delete +passkey-manage-created = Created { $date } +passkey-manage-last-used = Last used { $date } +passkey-manage-never-used = Never used +passkey-manage-this-device = This device +passkey-manage-cross-platform = Cross-platform +passkey-manage-platform = Platform authenticator +passkey-manage-security-key = Security key +passkey-manage-empty = No passkeys registered +passkey-manage-empty-description = Add a passkey for faster, more secure sign-in + +# ----------------------------------------------------------------------------- +# Passkey Deletion +# ----------------------------------------------------------------------------- +passkey-delete-title = Delete Passkey +passkey-delete-confirm = Are you sure you want to delete this passkey? +passkey-delete-warning = You won't be able to use this passkey to sign in anymore +passkey-delete-last-warning = This is your only passkey. You'll need to use password authentication after deleting it. +passkey-delete-success = Passkey deleted successfully +passkey-delete-error = Failed to delete passkey + +# ----------------------------------------------------------------------------- +# Password Fallback +# ----------------------------------------------------------------------------- +passkey-fallback-title = Use Password Instead +passkey-fallback-description = If you can't use your passkey, you can sign in with your password +passkey-fallback-button = Use Password +passkey-fallback-or-passkey = Or sign in with passkey +passkey-fallback-setup-prompt = Set up a passkey for faster sign-in next time +passkey-fallback-setup-later = Maybe later +passkey-fallback-setup-now = Set up now +passkey-fallback-locked = Account temporarily locked +passkey-fallback-locked-description = Too many failed attempts. Try again in { $minutes } minutes. +passkey-fallback-attempts = { $remaining } attempts remaining + +# ----------------------------------------------------------------------------- +# Multi-Factor Authentication +# ----------------------------------------------------------------------------- +mfa-title = Two-Factor Authentication +mfa-subtitle = Add an extra layer of security to your account +mfa-enabled = Two-factor authentication is enabled +mfa-disabled = Two-factor authentication is disabled +mfa-enable = Enable 2FA +mfa-disable = Disable 2FA +mfa-setup = Set Up 2FA +mfa-verify = Verify Code +mfa-code = Verification Code +mfa-code-placeholder = Enter 6-digit code +mfa-code-sent = Code sent to { $destination } +mfa-code-expired = Code has expired +mfa-code-invalid = Invalid code +mfa-resend = Resend code +mfa-resend-in = Resend in { $seconds }s +mfa-methods = Authentication Methods +mfa-method-app = Authenticator App +mfa-method-sms = SMS +mfa-method-email = Email +mfa-method-passkey = Passkey +mfa-backup-codes = Backup Codes +mfa-backup-codes-description = Save these codes in a safe place. Each code can only be used once. +mfa-backup-codes-remaining = { $count } backup codes remaining +mfa-backup-codes-generate = Generate New Codes +mfa-backup-codes-download = Download Codes +mfa-backup-codes-copy = Copy Codes + +# ----------------------------------------------------------------------------- +# Password Management +# ----------------------------------------------------------------------------- +password-title = Password +password-change = Change Password +password-current = Current Password +password-new = New Password +password-confirm = Confirm New Password +password-requirements = Password Requirements +password-requirement-length = At least { $length } characters +password-requirement-uppercase = At least one uppercase letter +password-requirement-lowercase = At least one lowercase letter +password-requirement-number = At least one number +password-requirement-special = At least one special character +password-strength = Password Strength +password-strength-weak = Weak +password-strength-fair = Fair +password-strength-good = Good +password-strength-strong = Strong +password-match = Passwords match +password-mismatch = Passwords do not match +password-changed = Password changed successfully +password-change-error = Failed to change password + +# ----------------------------------------------------------------------------- +# Password Reset +# ----------------------------------------------------------------------------- +password-reset-title = Reset Password +password-reset-subtitle = Enter your email to receive a reset link +password-reset-email-sent = Password reset email sent +password-reset-email-sent-description = Check your email for instructions to reset your password +password-reset-invalid-token = Invalid or expired reset link +password-reset-success = Password reset successfully +password-reset-error = Failed to reset password + +# ----------------------------------------------------------------------------- +# Session Management +# ----------------------------------------------------------------------------- +session-title = Active Sessions +session-subtitle = Manage your active sessions across devices +session-current = Current Session +session-device = Device +session-location = Location +session-last-active = Last Active +session-ip-address = IP Address +session-browser = Browser +session-os = Operating System +session-sign-out = Sign Out +session-sign-out-all = Sign Out All Other Sessions +session-sign-out-confirm = Are you sure you want to sign out of this session? +session-sign-out-all-confirm = Are you sure you want to sign out of all other sessions? + +# ----------------------------------------------------------------------------- +# Security Settings +# ----------------------------------------------------------------------------- +security-title = Security +security-subtitle = Manage your account security settings +security-overview = Security Overview +security-last-login = Last Sign In +security-password-last-changed = Password Last Changed +security-security-checkup = Security Checkup +security-checkup-description = Review your security settings +security-recommendation = Recommendation +security-add-passkey = Add a passkey for more secure sign-in +security-enable-mfa = Enable two-factor authentication +security-update-password = Update your password regularly + +# ----------------------------------------------------------------------------- +# Error Messages +# ----------------------------------------------------------------------------- +auth-error-invalid-credentials = Invalid email or password +auth-error-account-locked = Account is locked. Please contact support. +auth-error-account-disabled = Account has been disabled +auth-error-email-not-verified = Please verify your email address +auth-error-too-many-attempts = Too many failed attempts. Please try again later. +auth-error-network = Network error. Please check your connection. +auth-error-server = Server error. Please try again later. +auth-error-unknown = An unknown error occurred +auth-error-session-invalid = Invalid session. Please sign in again. +auth-error-token-expired = Your session has expired. Please sign in again. +auth-error-unauthorized = You are not authorized to perform this action + +# ----------------------------------------------------------------------------- +# Success Messages +# ----------------------------------------------------------------------------- +auth-success-login = Signed in successfully +auth-success-logout = Signed out successfully +auth-success-signup = Account created successfully +auth-success-password-changed = Password changed successfully +auth-success-email-verified = Email verified successfully +auth-success-mfa-enabled = Two-factor authentication enabled +auth-success-mfa-disabled = Two-factor authentication disabled +auth-success-session-terminated = Session terminated successfully + +# ----------------------------------------------------------------------------- +# Notifications +# ----------------------------------------------------------------------------- +auth-notify-new-login = New sign-in from { $device } in { $location } +auth-notify-password-changed = Your password was changed +auth-notify-mfa-enabled = Two-factor authentication was enabled +auth-notify-passkey-added = New passkey was added to your account +auth-notify-suspicious-activity = Suspicious activity detected on your account diff --git a/locales/en/bot-templates.ftl b/locales/en/bot-templates.ftl new file mode 100644 index 0000000..66e125c --- /dev/null +++ b/locales/en/bot-templates.ftl @@ -0,0 +1,150 @@ +bot-greeting-default = Hello! How can I help you today? +bot-greeting-named = Hello, { $name }! How can I help you today? +bot-goodbye = Goodbye! Have a great day! +bot-help-prompt = I can help you with: { $topics }. What would you like to know? +bot-thank-you = Thank you for your message. How can I assist you today? +bot-echo-intro = Echo Bot: I will repeat everything you say. Type 'quit' to exit. +bot-you-said = You said: { $message } +bot-thinking = Let me think about that... +bot-processing = Processing your request... +bot-error-occurred = I'm sorry, something went wrong. Please try again. +bot-not-understood = I didn't understand that. Could you please rephrase? +bot-confirm-action = Are you sure you want to proceed? +bot-action-cancelled = Action cancelled. +bot-action-completed = Done! + +bot-lead-welcome = Welcome! Let me help you get started. +bot-lead-ask-name = What's your name? +bot-lead-ask-email = And your email? +bot-lead-ask-company = What company are you from? +bot-lead-ask-phone = What's your phone number? +bot-lead-hot = Great! Our sales team will reach out shortly. +bot-lead-nurture = Thanks for your interest! We'll send you some resources. +bot-lead-score = Your lead score is { $score } out of 100. +bot-lead-saved = Your information has been saved successfully. + +bot-schedule-created = Running scheduled task: { $name } +bot-schedule-next = Next run scheduled for { $datetime } +bot-schedule-cancelled = Schedule cancelled. +bot-schedule-paused = Schedule paused. +bot-schedule-resumed = Schedule resumed. + +bot-monitor-alert = Alert: { $subject } has changed +bot-monitor-threshold = { $metric } has exceeded threshold: { $value } +bot-monitor-recovered = { $subject } has returned to normal. +bot-monitor-status = Current status: { $status } + +bot-order-welcome = Welcome to our store! How can I help? +bot-order-track = Track my order +bot-order-browse = Browse products +bot-order-support = Contact support +bot-order-enter-id = Please enter your order number: +bot-order-status = Order status: { $status } +bot-order-shipped = Your order has been shipped! Tracking number: { $tracking } +bot-order-delivered = Your order has been delivered. +bot-order-processing = Your order is being processed. +bot-order-cancelled = Your order has been cancelled. +bot-order-ticket = Support ticket created: #{ $ticket } +bot-order-products-available = Here are our available products: +bot-order-product-item = { $name } - { $price } +bot-order-cart-added = Added { $product } to your cart. +bot-order-cart-total = Your cart total is { $total }. +bot-order-checkout = Proceeding to checkout... + +bot-hr-welcome = HR Assistant here. How can I help? +bot-hr-request-leave = Request leave +bot-hr-check-balance = Check balance +bot-hr-view-policies = View policies +bot-hr-leave-type = What type of leave? (vacation/sick/personal) +bot-hr-start-date = Start date? (YYYY-MM-DD) +bot-hr-end-date = End date? (YYYY-MM-DD) +bot-hr-leave-submitted = Leave request submitted! Your manager will review it. +bot-hr-leave-approved = Your leave request has been approved. +bot-hr-leave-rejected = Your leave request has been rejected. +bot-hr-leave-pending = Your leave request is pending approval. +bot-hr-balance-title = Your leave balance: +bot-hr-vacation-days = Vacation: { $days } days +bot-hr-sick-days = Sick: { $days } days +bot-hr-personal-days = Personal: { $days } days +bot-hr-policy-found = Here's the policy information you requested: +bot-hr-policy-not-found = Policy not found. Please check the policy name. + +bot-health-welcome = Welcome to our healthcare center. How can I help? +bot-health-book = Book appointment +bot-health-cancel = Cancel appointment +bot-health-view = View my appointments +bot-health-reschedule = Reschedule appointment +bot-health-type = What type of appointment? (general/specialist/lab) +bot-health-doctor = Which doctor would you prefer? +bot-health-date = What date works best for you? +bot-health-time = What time would you prefer? +bot-health-confirmed = Your appointment has been confirmed for { $datetime } with { $doctor }. +bot-health-cancelled = Your appointment has been cancelled. +bot-health-rescheduled = Your appointment has been rescheduled to { $datetime }. +bot-health-reminder = Reminder: You have an appointment on { $datetime }. +bot-health-no-appointments = You don't have any upcoming appointments. +bot-health-appointments-list = Your upcoming appointments: + +bot-support-welcome = How can I help you today? +bot-support-describe = Please describe your issue: +bot-support-category = What category best describes your issue? +bot-support-priority = How urgent is this issue? +bot-support-ticket-created = Support ticket #{ $ticket } has been created. +bot-support-ticket-status = Ticket #{ $ticket } status: { $status } +bot-support-ticket-updated = Your ticket has been updated. +bot-support-ticket-resolved = Your ticket has been resolved. Please let us know if you need further assistance. +bot-support-transfer = Transferring you to a human agent... +bot-support-wait-time = Estimated wait time: { $minutes } minutes. +bot-support-agent-joined = Agent { $name } has joined the conversation. + +bot-survey-intro = We'd love to hear your feedback! +bot-survey-question = { $question } +bot-survey-scale = On a scale of 1-10, how would you rate { $subject }? +bot-survey-open = Please share any additional comments: +bot-survey-thanks = Thank you for your feedback! +bot-survey-completed = Survey completed successfully. +bot-survey-skip = You can skip this question if you prefer. + +bot-notification-new-message = You have a new message from { $sender }. +bot-notification-task-due = Task "{ $task }" is due { $when }. +bot-notification-reminder = Reminder: { $message } +bot-notification-update = Update: { $message } +bot-notification-alert = Alert: { $message } + +bot-command-help = Available commands: +bot-command-unknown = Unknown command. Type 'help' for available commands. +bot-command-invalid = Invalid command syntax. Usage: { $usage } + +bot-transfer-to-human = Transferring you to a human agent. Please wait... +bot-transfer-complete = You are now connected with { $agent }. +bot-transfer-unavailable = No agents are currently available. Please try again later. +bot-transfer-queue-position = You are number { $position } in the queue. + +bot-auth-login-prompt = Please enter your credentials to continue. +bot-auth-login-success = You have been logged in successfully. +bot-auth-login-failed = Login failed. Please check your credentials. +bot-auth-logout-success = You have been logged out. +bot-auth-session-expired = Your session has expired. Please log in again. + +bot-file-upload-prompt = Please upload your file. +bot-file-upload-success = File "{ $filename }" uploaded successfully. +bot-file-upload-failed = Failed to upload file. Please try again. +bot-file-download-ready = Your file is ready for download. +bot-file-processing = Processing your file... + +bot-payment-amount = The total amount is { $amount }. +bot-payment-method = Please select a payment method. +bot-payment-processing = Processing your payment... +bot-payment-success = Payment successful! Transaction ID: { $transactionId } +bot-payment-failed = Payment failed. Please try again or use a different payment method. +bot-payment-refund = Your refund of { $amount } has been processed. + +bot-subscription-active = Your subscription is active until { $endDate }. +bot-subscription-expired = Your subscription has expired. +bot-subscription-renew = Would you like to renew your subscription? +bot-subscription-upgraded = Your subscription has been upgraded to { $plan }. +bot-subscription-cancelled = Your subscription has been cancelled. + +bot-feedback-positive = Thank you for your positive feedback! +bot-feedback-negative = We're sorry to hear that. How can we improve? +bot-feedback-rating = You rated this interaction { $rating } out of 5. diff --git a/locales/en/channels.ftl b/locales/en/channels.ftl new file mode 100644 index 0000000..2152a6e --- /dev/null +++ b/locales/en/channels.ftl @@ -0,0 +1,186 @@ +channel-web = Web Chat +channel-whatsapp = WhatsApp +channel-telegram = Telegram +channel-slack = Slack +channel-teams = Microsoft Teams +channel-email = Email +channel-sms = SMS +channel-instagram = Instagram +channel-messenger = Facebook Messenger +channel-discord = Discord +channel-voice = Voice +channel-api = API + +channel-status-connected = Connected +channel-status-disconnected = Disconnected +channel-status-connecting = Connecting... +channel-status-error = Connection Error +channel-status-pending = Pending Setup +channel-status-active = Active +channel-status-inactive = Inactive +channel-status-suspended = Suspended + +channel-setup-title = Channel Setup +channel-setup-description = Connect your bot to different communication channels +channel-setup-select = Select a channel to configure +channel-setup-configure = Configure Channel +channel-setup-test = Test Connection +channel-setup-save = Save Configuration +channel-setup-cancel = Cancel +channel-setup-reset = Reset to Defaults + +channel-connect = Connect +channel-disconnect = Disconnect +channel-reconnect = Reconnect +channel-refresh = Refresh Status +channel-settings = Channel Settings +channel-delete = Remove Channel +channel-confirm-delete = Are you sure you want to remove this channel? +channel-deleted = Channel removed successfully +channel-saved = Channel configuration saved + +channel-whatsapp-phone = Phone Number +channel-whatsapp-business-id = Business Account ID +channel-whatsapp-api-key = API Key +channel-whatsapp-webhook = Webhook URL +channel-whatsapp-verify-token = Verify Token +channel-whatsapp-template = Message Template +channel-whatsapp-templates = Message Templates +channel-whatsapp-template-create = Create Template +channel-whatsapp-template-status = Template Status +channel-whatsapp-template-approved = Approved +channel-whatsapp-template-pending = Pending Approval +channel-whatsapp-template-rejected = Rejected +channel-whatsapp-24h-window = 24-hour messaging window +channel-whatsapp-session-active = Session active +channel-whatsapp-session-expired = Session expired + +channel-telegram-bot-token = Bot Token +channel-telegram-bot-username = Bot Username +channel-telegram-webhook = Webhook URL +channel-telegram-commands = Bot Commands +channel-telegram-command-add = Add Command +channel-telegram-command-name = Command Name +channel-telegram-command-description = Description +channel-telegram-inline-mode = Inline Mode +channel-telegram-group-privacy = Group Privacy Mode + +channel-slack-workspace = Workspace +channel-slack-bot-token = Bot Token +channel-slack-signing-secret = Signing Secret +channel-slack-app-id = App ID +channel-slack-channels = Channels +channel-slack-channel-select = Select Channels +channel-slack-events = Event Subscriptions +channel-slack-slash-commands = Slash Commands +channel-slack-interactivity = Interactivity + +channel-teams-tenant-id = Tenant ID +channel-teams-app-id = Application ID +channel-teams-app-secret = Application Secret +channel-teams-bot-id = Bot ID +channel-teams-manifest = App Manifest +channel-teams-publish = Publish to Teams +channel-teams-install = Install in Teams + +channel-email-smtp-host = SMTP Host +channel-email-smtp-port = SMTP Port +channel-email-smtp-user = SMTP Username +channel-email-smtp-password = SMTP Password +channel-email-smtp-encryption = Encryption +channel-email-imap-host = IMAP Host +channel-email-imap-port = IMAP Port +channel-email-from-name = From Name +channel-email-from-address = From Address +channel-email-reply-to = Reply-To Address +channel-email-signature = Email Signature + +channel-instagram-account = Instagram Account +channel-instagram-page-id = Page ID +channel-instagram-access-token = Access Token +channel-instagram-business = Business Account +channel-instagram-comments = Comment Replies +channel-instagram-stories = Story Mentions +channel-instagram-dm = Direct Messages + +channel-messenger-page-id = Page ID +channel-messenger-app-id = App ID +channel-messenger-app-secret = App Secret +channel-messenger-page-token = Page Access Token +channel-messenger-verify-token = Verify Token +channel-messenger-persistent-menu = Persistent Menu +channel-messenger-get-started = Get Started Button + +channel-sms-provider = SMS Provider +channel-sms-twilio = Twilio +channel-sms-vonage = Vonage +channel-sms-account-sid = Account SID +channel-sms-auth-token = Auth Token +channel-sms-phone-number = Phone Number +channel-sms-sender-id = Sender ID + +channel-voice-provider = Voice Provider +channel-voice-twilio = Twilio +channel-voice-vonage = Vonage +channel-voice-phone-number = Phone Number +channel-voice-greeting = Voice Greeting +channel-voice-fallback = Fallback Message +channel-voice-transcription = Enable Transcription +channel-voice-recording = Enable Recording +channel-voice-language = Voice Language +channel-voice-voice-type = Voice Type + +channel-discord-bot-token = Bot Token +channel-discord-client-id = Client ID +channel-discord-client-secret = Client Secret +channel-discord-guild = Server (Guild) +channel-discord-channels = Channels +channel-discord-permissions = Bot Permissions +channel-discord-invite-url = Invite URL + +channel-api-endpoint = API Endpoint +channel-api-key = API Key +channel-api-secret = API Secret +channel-api-webhook = Webhook URL +channel-api-rate-limit = Rate Limit +channel-api-documentation = API Documentation + +channel-widget-title = Web Widget +channel-widget-position = Widget Position +channel-widget-position-left = Bottom Left +channel-widget-position-right = Bottom Right +channel-widget-color = Primary Color +channel-widget-header = Header Text +channel-widget-placeholder = Input Placeholder +channel-widget-welcome = Welcome Message +channel-widget-avatar = Bot Avatar +channel-widget-bubble = Chat Bubble +channel-widget-preview = Preview Widget +channel-widget-embed-code = Embed Code +channel-widget-copy-code = Copy Code +channel-widget-code-copied = Code copied to clipboard + +channel-routing-title = Channel Routing +channel-routing-default = Default Channel +channel-routing-rules = Routing Rules +channel-routing-add-rule = Add Rule +channel-routing-condition = Condition +channel-routing-action = Action +channel-routing-priority = Priority +channel-routing-fallback = Fallback Channel + +channel-analytics-messages = Messages +channel-analytics-conversations = Conversations +channel-analytics-users = Unique Users +channel-analytics-response-time = Avg Response Time +channel-analytics-satisfaction = Satisfaction Score +channel-analytics-by-channel = Analytics by Channel + +channel-error-connection = Failed to connect to channel +channel-error-authentication = Authentication failed +channel-error-configuration = Invalid configuration +channel-error-rate-limit = Rate limit exceeded +channel-error-webhook = Webhook verification failed +channel-error-permission = Insufficient permissions +channel-error-not-found = Channel not found +channel-error-already-exists = Channel already configured diff --git a/locales/en/common.ftl b/locales/en/common.ftl new file mode 100644 index 0000000..ddc808a --- /dev/null +++ b/locales/en/common.ftl @@ -0,0 +1,347 @@ +# ============================================================================ +# General Bots - Common Translations (English) +# ============================================================================ +# This file contains shared strings used across all GB components. +# Keep message IDs lowercase with hyphens: category-subcategory-descriptor +# ============================================================================ + +# ----------------------------------------------------------------------------- +# Brand +# ----------------------------------------------------------------------------- +app-name = General Bots +app-tagline = Your AI-powered productivity workspace + +# ----------------------------------------------------------------------------- +# Common Actions +# ----------------------------------------------------------------------------- +action-save = Save +action-cancel = Cancel +action-delete = Delete +action-edit = Edit +action-close = Close +action-confirm = Confirm +action-retry = Retry +action-back = Back +action-next = Next +action-submit = Submit +action-search = Search +action-refresh = Refresh +action-copy = Copy +action-paste = Paste +action-undo = Undo +action-redo = Redo +action-select = Select +action-select-all = Select All +action-clear = Clear +action-reset = Reset +action-apply = Apply +action-create = Create +action-update = Update +action-remove = Remove +action-add = Add +action-upload = Upload +action-download = Download +action-export = Export +action-import = Import +action-share = Share +action-send = Send +action-reply = Reply +action-forward = Forward +action-archive = Archive +action-restore = Restore +action-duplicate = Duplicate +action-rename = Rename +action-move = Move +action-filter = Filter +action-sort = Sort +action-view = View +action-hide = Hide +action-show = Show +action-expand = Expand +action-collapse = Collapse +action-enable = Enable +action-disable = Disable +action-connect = Connect +action-disconnect = Disconnect +action-sync = Sync +action-start = Start +action-stop = Stop +action-pause = Pause +action-resume = Resume +action-continue = Continue +action-finish = Finish +action-complete = Complete +action-approve = Approve +action-reject = Reject +action-accept = Accept +action-decline = Decline +action-login = Log In +action-logout = Log Out +action-signup = Sign Up +action-forgot-password = Forgot Password + +# ----------------------------------------------------------------------------- +# Common Labels +# ----------------------------------------------------------------------------- +label-loading = Loading... +label-saving = Saving... +label-processing = Processing... +label-searching = Searching... +label-uploading = Uploading... +label-downloading = Downloading... +label-no-results = No results found +label-no-data = No data available +label-empty = Empty +label-none = None +label-all = All +label-selected = Selected +label-required = Required +label-optional = Optional +label-default = Default +label-custom = Custom +label-new = New +label-draft = Draft +label-pending = Pending +label-active = Active +label-inactive = Inactive +label-enabled = Enabled +label-disabled = Disabled +label-public = Public +label-private = Private +label-shared = Shared +label-yes = Yes +label-no = No +label-on = On +label-off = Off +label-true = True +label-false = False +label-unknown = Unknown +label-other = Other +label-more = More +label-less = Less +label-details = Details +label-summary = Summary +label-description = Description +label-name = Name +label-title = Title +label-type = Type +label-status = Status +label-priority = Priority +label-date = Date +label-time = Time +label-size = Size +label-count = Count +label-total = Total +label-average = Average +label-minimum = Minimum +label-maximum = Maximum +label-version = Version +label-id = ID +label-created = Created +label-updated = Updated +label-modified = Modified +label-deleted = Deleted +label-by = By +label-from = From +label-to = To +label-at = At +label-in = In +label-of = Of + +# ----------------------------------------------------------------------------- +# Status Messages +# ----------------------------------------------------------------------------- +status-success = Success +status-error = Error +status-warning = Warning +status-info = Information +status-loading = Loading +status-complete = Complete +status-incomplete = Incomplete +status-failed = Failed +status-cancelled = Cancelled +status-pending = Pending +status-in-progress = In Progress +status-done = Done +status-ready = Ready +status-not-ready = Not Ready +status-connected = Connected +status-disconnected = Disconnected +status-online = Online +status-offline = Offline +status-available = Available +status-unavailable = Unavailable +status-busy = Busy +status-away = Away + +# ----------------------------------------------------------------------------- +# Confirmation Dialogs +# ----------------------------------------------------------------------------- +confirm-delete = Are you sure you want to delete this? +confirm-delete-item = Are you sure you want to delete "{ $name }"? +confirm-delete-items = Are you sure you want to delete { $count -> + [one] this item + *[other] these { $count } items +}? +confirm-discard-changes = You have unsaved changes. Are you sure you want to discard them? +confirm-logout = Are you sure you want to log out? +confirm-cancel = Are you sure you want to cancel? + +# ----------------------------------------------------------------------------- +# Time and Dates +# ----------------------------------------------------------------------------- +time-now = Just now +time-seconds-ago = { $count -> + [one] { $count } second ago + *[other] { $count } seconds ago +} +time-minutes-ago = { $count -> + [one] { $count } minute ago + *[other] { $count } minutes ago +} +time-hours-ago = { $count -> + [one] { $count } hour ago + *[other] { $count } hours ago +} +time-days-ago = { $count -> + [one] { $count } day ago + *[other] { $count } days ago +} +time-weeks-ago = { $count -> + [one] { $count } week ago + *[other] { $count } weeks ago +} +time-months-ago = { $count -> + [one] { $count } month ago + *[other] { $count } months ago +} +time-years-ago = { $count -> + [one] { $count } year ago + *[other] { $count } years ago +} +time-in-seconds = { $count -> + [one] in { $count } second + *[other] in { $count } seconds +} +time-in-minutes = { $count -> + [one] in { $count } minute + *[other] in { $count } minutes +} +time-in-hours = { $count -> + [one] in { $count } hour + *[other] in { $count } hours +} +time-in-days = { $count -> + [one] in { $count } day + *[other] in { $count } days +} +time-today = Today +time-yesterday = Yesterday +time-tomorrow = Tomorrow +time-this-week = This week +time-last-week = Last week +time-next-week = Next week +time-this-month = This month +time-last-month = Last month +time-next-month = Next month +time-this-year = This year +time-last-year = Last year +time-next-year = Next year + +# Days of the week +day-sunday = Sunday +day-monday = Monday +day-tuesday = Tuesday +day-wednesday = Wednesday +day-thursday = Thursday +day-friday = Friday +day-saturday = Saturday +day-sun = Sun +day-mon = Mon +day-tue = Tue +day-wed = Wed +day-thu = Thu +day-fri = Fri +day-sat = Sat + +# Months +month-january = January +month-february = February +month-march = March +month-april = April +month-may = May +month-june = June +month-july = July +month-august = August +month-september = September +month-october = October +month-november = November +month-december = December +month-jan = Jan +month-feb = Feb +month-mar = Mar +month-apr = Apr +month-may-short = May +month-jun = Jun +month-jul = Jul +month-aug = Aug +month-sep = Sep +month-oct = Oct +month-nov = Nov +month-dec = Dec + +# ----------------------------------------------------------------------------- +# File Sizes +# ----------------------------------------------------------------------------- +size-bytes = { $value } B +size-kilobytes = { $value } KB +size-megabytes = { $value } MB +size-gigabytes = { $value } GB +size-terabytes = { $value } TB + +# ----------------------------------------------------------------------------- +# Pagination +# ----------------------------------------------------------------------------- +pagination-page = Page { $current } of { $total } +pagination-showing = Showing { $start } to { $end } of { $total } +pagination-items-per-page = Items per page +pagination-first = First +pagination-previous = Previous +pagination-next = Next +pagination-last = Last +pagination-go-to-page = Go to page + +# ----------------------------------------------------------------------------- +# Form Validation +# ----------------------------------------------------------------------------- +validation-required = This field is required +validation-required-field = { $field } is required +validation-email-invalid = Please enter a valid email address +validation-url-invalid = Please enter a valid URL +validation-number-invalid = Please enter a valid number +validation-date-invalid = Please enter a valid date +validation-min-length = Must be at least { $min } characters +validation-max-length = Must be no more than { $max } characters +validation-min-value = Must be at least { $min } +validation-max-value = Must be no more than { $max } +validation-pattern-mismatch = Invalid format +validation-passwords-mismatch = Passwords do not match +validation-file-too-large = File is too large. Maximum size is { $max } +validation-file-type-invalid = Invalid file type. Allowed types: { $types } + +# ----------------------------------------------------------------------------- +# Accessibility +# ----------------------------------------------------------------------------- +a11y-skip-to-content = Skip to main content +a11y-loading = Loading, please wait +a11y-menu-open = Open menu +a11y-menu-close = Close menu +a11y-expand = Expand +a11y-collapse = Collapse +a11y-selected = Selected +a11y-not-selected = Not selected +a11y-required = Required field +a11y-error = Error +a11y-success = Success +a11y-warning = Warning +a11y-info = Information diff --git a/locales/en/contacts.ftl b/locales/en/contacts.ftl new file mode 100644 index 0000000..5f3f192 --- /dev/null +++ b/locales/en/contacts.ftl @@ -0,0 +1,301 @@ +# ============================================================================= +# General Bots - Contacts Translations (English) +# ============================================================================= +# Contact management interface translations +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Navigation & Headers +# ----------------------------------------------------------------------------- +contacts-title = Contacts +contacts-subtitle = Manage your contacts and relationships +contacts-nav-all = All Contacts +contacts-nav-favorites = Favorites +contacts-nav-recent = Recently Added +contacts-nav-groups = Groups +contacts-nav-tags = Tags + +# ----------------------------------------------------------------------------- +# Views & Filters +# ----------------------------------------------------------------------------- +contacts-view-list = List View +contacts-view-grid = Grid View +contacts-filter-all = All +contacts-filter-active = Active +contacts-filter-inactive = Inactive +contacts-filter-leads = Leads +contacts-filter-customers = Customers +contacts-filter-prospects = Prospects +contacts-filter-archived = Archived +contacts-search-placeholder = Search contacts... +contacts-sort-name = Sort by Name +contacts-sort-company = Sort by Company +contacts-sort-recent = Sort by Recent +contacts-sort-created = Sort by Created + +# ----------------------------------------------------------------------------- +# Contact Fields +# ----------------------------------------------------------------------------- +contacts-field-first-name = First Name +contacts-field-last-name = Last Name +contacts-field-email = Email +contacts-field-phone = Phone +contacts-field-mobile = Mobile +contacts-field-company = Company +contacts-field-job-title = Job Title +contacts-field-department = Department +contacts-field-website = Website +contacts-field-linkedin = LinkedIn +contacts-field-twitter = Twitter +contacts-field-address = Address +contacts-field-city = City +contacts-field-state = State/Province +contacts-field-postal-code = Postal Code +contacts-field-country = Country +contacts-field-notes = Notes +contacts-field-tags = Tags +contacts-field-source = Source +contacts-field-status = Status +contacts-field-last-contacted = Last Contacted +contacts-field-created-at = Created +contacts-field-updated-at = Updated + +# ----------------------------------------------------------------------------- +# Contact Status +# ----------------------------------------------------------------------------- +contacts-status-active = Active +contacts-status-inactive = Inactive +contacts-status-lead = Lead +contacts-status-customer = Customer +contacts-status-prospect = Prospect +contacts-status-archived = Archived + +# ----------------------------------------------------------------------------- +# Contact Source +# ----------------------------------------------------------------------------- +contacts-source-manual = Manual Entry +contacts-source-import = Import +contacts-source-webform = Web Form +contacts-source-api = API +contacts-source-email = Email +contacts-source-meeting = Meeting +contacts-source-referral = Referral +contacts-source-social = Social Media + +# ----------------------------------------------------------------------------- +# Actions +# ----------------------------------------------------------------------------- +contacts-action-add = Add Contact +contacts-action-edit = Edit Contact +contacts-action-delete = Delete Contact +contacts-action-archive = Archive Contact +contacts-action-restore = Restore Contact +contacts-action-favorite = Add to Favorites +contacts-action-unfavorite = Remove from Favorites +contacts-action-export = Export Contacts +contacts-action-import = Import Contacts +contacts-action-merge = Merge Contacts +contacts-action-send-email = Send Email +contacts-action-schedule-meeting = Schedule Meeting +contacts-action-create-task = Create Task +contacts-action-add-note = Add Note +contacts-action-add-tag = Add Tag +contacts-action-remove-tag = Remove Tag + +# ----------------------------------------------------------------------------- +# Bulk Actions +# ----------------------------------------------------------------------------- +contacts-bulk-selected = { $count } contacts selected +contacts-bulk-delete = Delete Selected +contacts-bulk-archive = Archive Selected +contacts-bulk-add-tag = Add Tag to Selected +contacts-bulk-remove-tag = Remove Tag from Selected +contacts-bulk-add-to-group = Add to Group +contacts-bulk-remove-from-group = Remove from Group +contacts-bulk-export = Export Selected +contacts-bulk-change-status = Change Status + +# ----------------------------------------------------------------------------- +# Groups +# ----------------------------------------------------------------------------- +contacts-groups-title = Contact Groups +contacts-groups-create = Create Group +contacts-groups-edit = Edit Group +contacts-groups-delete = Delete Group +contacts-groups-name = Group Name +contacts-groups-description = Description +contacts-groups-color = Color +contacts-groups-members = { $count } members +contacts-groups-add-members = Add Members +contacts-groups-remove-members = Remove Members + +# ----------------------------------------------------------------------------- +# Import/Export +# ----------------------------------------------------------------------------- +contacts-import-title = Import Contacts +contacts-import-description = Upload a file to import contacts +contacts-import-format-csv = CSV File +contacts-import-format-vcard = vCard File +contacts-import-format-json = JSON File +contacts-import-drop-zone = Drag and drop your file here, or click to browse +contacts-import-mapping = Field Mapping +contacts-import-preview = Preview +contacts-import-skip-duplicates = Skip duplicate entries +contacts-import-update-existing = Update existing contacts +contacts-import-success = Successfully imported { $count } contacts +contacts-import-errors = { $count } errors during import + +contacts-export-title = Export Contacts +contacts-export-description = Download your contacts +contacts-export-format = Export Format +contacts-export-all = Export All Contacts +contacts-export-selected = Export Selected +contacts-export-group = Export Group +contacts-export-include-custom = Include Custom Fields +contacts-export-success = Successfully exported { $count } contacts + +# ----------------------------------------------------------------------------- +# Detail Panel +# ----------------------------------------------------------------------------- +contacts-detail-title = Contact Details +contacts-detail-info = Information +contacts-detail-activity = Activity +contacts-detail-notes = Notes +contacts-detail-tasks = Tasks +contacts-detail-events = Events +contacts-detail-files = Files +contacts-detail-history = History + +# ----------------------------------------------------------------------------- +# Activity Types +# ----------------------------------------------------------------------------- +contacts-activity-email = Email +contacts-activity-call = Phone Call +contacts-activity-meeting = Meeting +contacts-activity-task = Task +contacts-activity-note = Note +contacts-activity-status-change = Status Changed +contacts-activity-created = Contact Created +contacts-activity-updated = Contact Updated +contacts-activity-imported = Contact Imported + +# ----------------------------------------------------------------------------- +# Quick Actions +# ----------------------------------------------------------------------------- +contacts-quick-email = Email +contacts-quick-call = Call +contacts-quick-meeting = Meeting +contacts-quick-task = Task + +# ----------------------------------------------------------------------------- +# Calendar Integration +# ----------------------------------------------------------------------------- +contacts-calendar-link = Link to Event +contacts-calendar-unlink = Unlink from Event +contacts-calendar-events = Related Events +contacts-calendar-upcoming = Upcoming Events +contacts-calendar-past = Past Events +contacts-calendar-role = Role +contacts-calendar-role-attendee = Attendee +contacts-calendar-role-organizer = Organizer +contacts-calendar-role-optional = Optional +contacts-calendar-role-speaker = Speaker +contacts-calendar-role-host = Host +contacts-calendar-response = Response Status +contacts-calendar-response-accepted = Accepted +contacts-calendar-response-declined = Declined +contacts-calendar-response-tentative = Tentative +contacts-calendar-response-pending = Pending + +# ----------------------------------------------------------------------------- +# Tasks Integration +# ----------------------------------------------------------------------------- +contacts-tasks-assign = Assign to Task +contacts-tasks-unassign = Unassign from Task +contacts-tasks-related = Related Tasks +contacts-tasks-active = Active Tasks +contacts-tasks-completed = Completed Tasks +contacts-tasks-overdue = Overdue Tasks +contacts-tasks-role = Role +contacts-tasks-role-assignee = Assignee +contacts-tasks-role-reviewer = Reviewer +contacts-tasks-role-stakeholder = Stakeholder +contacts-tasks-role-collaborator = Collaborator +contacts-tasks-role-client = Client +contacts-tasks-role-approver = Approver +contacts-tasks-workload = Workload +contacts-tasks-workload-low = Low +contacts-tasks-workload-medium = Medium +contacts-tasks-workload-high = High +contacts-tasks-workload-overloaded = Overloaded + +# ----------------------------------------------------------------------------- +# External Sync +# ----------------------------------------------------------------------------- +contacts-sync-title = Address Book Sync +contacts-sync-description = Sync with external address books +contacts-sync-google = Google Contacts +contacts-sync-microsoft = Microsoft People +contacts-sync-apple = Apple Contacts +contacts-sync-carddav = CardDAV Server +contacts-sync-connect = Connect Account +contacts-sync-disconnect = Disconnect +contacts-sync-connected = Connected +contacts-sync-last-sync = Last synced { $time } +contacts-sync-in-progress = Sync in progress... +contacts-sync-success = Sync completed successfully +contacts-sync-error = Sync failed +contacts-sync-direction = Sync Direction +contacts-sync-direction-two-way = Two-way Sync +contacts-sync-direction-import = Import Only +contacts-sync-direction-export = Export Only +contacts-sync-conflicts = { $count } conflicts detected +contacts-sync-resolve = Resolve Conflicts +contacts-sync-keep-local = Keep Local +contacts-sync-keep-remote = Keep Remote +contacts-sync-merge = Merge Both + +# ----------------------------------------------------------------------------- +# Empty States +# ----------------------------------------------------------------------------- +contacts-empty-title = No contacts yet +contacts-empty-description = Add your first contact to get started +contacts-empty-action = Add Contact +contacts-empty-search = No contacts match your search +contacts-empty-filter = No contacts match the selected filter +contacts-empty-group = This group has no members + +# ----------------------------------------------------------------------------- +# Confirmations +# ----------------------------------------------------------------------------- +contacts-confirm-delete = Are you sure you want to delete this contact? +contacts-confirm-delete-bulk = Are you sure you want to delete { $count } contacts? +contacts-confirm-archive = Are you sure you want to archive this contact? +contacts-confirm-merge = Are you sure you want to merge these contacts? +contacts-confirm-disconnect = Are you sure you want to disconnect this account? + +# ----------------------------------------------------------------------------- +# Success Messages +# ----------------------------------------------------------------------------- +contacts-success-created = Contact created successfully +contacts-success-updated = Contact updated successfully +contacts-success-deleted = Contact deleted successfully +contacts-success-archived = Contact archived successfully +contacts-success-restored = Contact restored successfully +contacts-success-merged = Contacts merged successfully +contacts-success-imported = Contacts imported successfully +contacts-success-exported = Contacts exported successfully + +# ----------------------------------------------------------------------------- +# Error Messages +# ----------------------------------------------------------------------------- +contacts-error-create = Failed to create contact +contacts-error-update = Failed to update contact +contacts-error-delete = Failed to delete contact +contacts-error-import = Failed to import contacts +contacts-error-export = Failed to export contacts +contacts-error-sync = Sync failed +contacts-error-duplicate = A contact with this email already exists +contacts-error-required = This field is required +contacts-error-invalid-email = Please enter a valid email address +contacts-error-invalid-phone = Please enter a valid phone number diff --git a/locales/en/errors.ftl b/locales/en/errors.ftl new file mode 100644 index 0000000..88303fa --- /dev/null +++ b/locales/en/errors.ftl @@ -0,0 +1,165 @@ +# General Bots - Error Messages (English) +# This file contains all error message translations + +# ============================================================================= +# HTTP Errors +# ============================================================================= + +error-http-400 = Bad request. Please check your input. +error-http-401 = Authentication required. Please log in. +error-http-403 = You don't have permission to access this resource. +error-http-404 = { $entity } not found. +error-http-409 = Conflict: { $message } +error-http-429 = Too many requests. Please wait { $seconds } seconds. +error-http-500 = Internal server error. Please try again later. +error-http-502 = Bad gateway. The server received an invalid response. +error-http-503 = Service temporarily unavailable. Please try again later. +error-http-504 = Request timed out after { $milliseconds }ms. + +# ============================================================================= +# Validation Errors +# ============================================================================= + +error-validation-required = { $field } is required. +error-validation-email = Please enter a valid email address. +error-validation-url = Please enter a valid URL. +error-validation-phone = Please enter a valid phone number. +error-validation-min-length = { $field } must be at least { $min } characters. +error-validation-max-length = { $field } must be no more than { $max } characters. +error-validation-min-value = { $field } must be at least { $min }. +error-validation-max-value = { $field } must be no more than { $max }. +error-validation-pattern = { $field } format is invalid. +error-validation-unique = { $field } already exists. +error-validation-mismatch = { $field } does not match { $other }. +error-validation-date-format = Please enter a valid date in the format { $format }. +error-validation-date-past = { $field } must be in the past. +error-validation-date-future = { $field } must be in the future. + +# ============================================================================= +# Authentication Errors +# ============================================================================= + +error-auth-invalid-credentials = Invalid email or password. +error-auth-account-locked = Your account has been locked. Please contact support. +error-auth-account-disabled = Your account has been disabled. +error-auth-session-expired = Your session has expired. Please log in again. +error-auth-token-invalid = Invalid or expired token. +error-auth-token-missing = Authentication token is required. +error-auth-mfa-required = Multi-factor authentication is required. +error-auth-mfa-invalid = Invalid verification code. +error-auth-password-weak = Password is too weak. Please use a stronger password. +error-auth-password-expired = Your password has expired. Please reset it. + +# ============================================================================= +# Configuration Errors +# ============================================================================= + +error-config = Configuration error: { $message } +error-config-missing = Missing configuration: { $key } +error-config-invalid = Invalid configuration value for { $key }: { $reason } +error-config-file-not-found = Configuration file not found: { $path } +error-config-parse = Failed to parse configuration: { $message } + +# ============================================================================= +# Database Errors +# ============================================================================= + +error-database = Database error: { $message } +error-database-connection = Failed to connect to database. +error-database-timeout = Database operation timed out. +error-database-constraint = Database constraint violation: { $constraint } +error-database-duplicate = A record with this { $field } already exists. +error-database-migration = Database migration failed: { $message } + +# ============================================================================= +# File & Storage Errors +# ============================================================================= + +error-file-not-found = File not found: { $filename } +error-file-too-large = File is too large. Maximum size is { $maxSize }. +error-file-type-not-allowed = File type not allowed. Allowed types: { $allowedTypes }. +error-file-upload-failed = File upload failed: { $message } +error-file-read = Failed to read file: { $message } +error-file-write = Failed to write file: { $message } +error-storage-full = Storage quota exceeded. +error-storage-unavailable = Storage service is unavailable. + +# ============================================================================= +# Network & External Service Errors +# ============================================================================= + +error-network = Network error: { $message } +error-network-timeout = Connection timed out. +error-network-unreachable = Server is unreachable. +error-service-unavailable = Service unavailable: { $service } +error-external-api = External API error: { $message } +error-rate-limit = Rate limited. Retry after { $seconds }s. + +# ============================================================================= +# Bot & Dialog Errors +# ============================================================================= + +error-bot-not-found = Bot not found: { $botId } +error-bot-disabled = This bot is currently disabled. +error-bot-script-error = Script error at line { $line }: { $message } +error-bot-timeout = Bot response timed out. +error-bot-quota-exceeded = Bot usage quota exceeded. +error-dialog-not-found = Dialog not found: { $dialogId } +error-dialog-invalid = Invalid dialog configuration: { $message } + +# ============================================================================= +# LLM & AI Errors +# ============================================================================= + +error-llm-unavailable = AI service is currently unavailable. +error-llm-timeout = AI request timed out. +error-llm-rate-limit = AI rate limit exceeded. Please wait before trying again. +error-llm-content-filter = Content was filtered by safety guidelines. +error-llm-context-length = Input is too long. Please shorten your message. +error-llm-invalid-response = Received invalid response from AI service. + +# ============================================================================= +# Email Errors +# ============================================================================= + +error-email-send-failed = Failed to send email: { $message } +error-email-invalid-recipient = Invalid recipient email address: { $email } +error-email-attachment-failed = Failed to attach file: { $filename } +error-email-template-not-found = Email template not found: { $template } + +# ============================================================================= +# Calendar & Scheduling Errors +# ============================================================================= + +error-calendar-conflict = Time slot conflicts with existing event. +error-calendar-past-date = Cannot schedule events in the past. +error-calendar-invalid-recurrence = Invalid recurrence pattern. +error-calendar-event-not-found = Event not found: { $eventId } + +# ============================================================================= +# Task Errors +# ============================================================================= + +error-task-not-found = Task not found: { $taskId } +error-task-already-completed = Task has already been completed. +error-task-circular-dependency = Circular dependency detected in tasks. +error-task-invalid-status = Invalid task status transition. + +# ============================================================================= +# Permission Errors +# ============================================================================= + +error-permission-denied = You don't have permission to perform this action. +error-permission-resource = You don't have access to this { $resource }. +error-permission-action = You cannot { $action } this { $resource }. +error-permission-owner-only = Only the owner can perform this action. + +# ============================================================================= +# Generic Errors +# ============================================================================= + +error-internal = Internal error: { $message } +error-unexpected = An unexpected error occurred. Please try again. +error-not-implemented = This feature is not yet implemented. +error-maintenance = System is under maintenance. Please try again later. +error-unknown = An unknown error occurred. diff --git a/locales/en/notifications.ftl b/locales/en/notifications.ftl new file mode 100644 index 0000000..d1c5d54 --- /dev/null +++ b/locales/en/notifications.ftl @@ -0,0 +1,127 @@ +notification-title-new-message = New Message +notification-title-task-due = Task Due +notification-title-task-assigned = Task Assigned +notification-title-task-completed = Task Completed +notification-title-meeting-reminder = Meeting Reminder +notification-title-meeting-started = Meeting Started +notification-title-file-shared = File Shared +notification-title-file-uploaded = File Uploaded +notification-title-comment-added = New Comment +notification-title-mention = You were mentioned +notification-title-system = System Notification +notification-title-security = Security Alert +notification-title-update = Update Available +notification-title-error = Error Occurred +notification-title-success = Success +notification-title-warning = Warning +notification-title-info = Information + +notification-message-new = You have a new message from { $sender } +notification-message-unread = You have { $count -> + [one] { $count } unread message + *[other] { $count } unread messages +} +notification-task-due-soon = Task "{ $task }" is due in { $time } +notification-task-due-today = Task "{ $task }" is due today +notification-task-due-overdue = Task "{ $task }" is overdue by { $time } +notification-task-assigned-to-you = You have been assigned to task "{ $task }" +notification-task-assigned-by = { $assigner } assigned you to "{ $task }" +notification-task-completed-by = { $user } completed task "{ $task }" +notification-task-status-changed = Task "{ $task }" status changed to { $status } + +notification-meeting-in-minutes = Meeting "{ $meeting }" starts in { $minutes } minutes +notification-meeting-starting-now = Meeting "{ $meeting }" is starting now +notification-meeting-cancelled = Meeting "{ $meeting }" has been cancelled +notification-meeting-rescheduled = Meeting "{ $meeting }" has been rescheduled to { $datetime } +notification-meeting-invite = { $inviter } invited you to "{ $meeting }" +notification-meeting-response = { $user } { $response } your meeting invite + +notification-file-shared-with-you = { $sharer } shared "{ $filename }" with you +notification-file-uploaded-by = { $uploader } uploaded "{ $filename }" +notification-file-modified = "{ $filename }" was modified by { $user } +notification-file-deleted = "{ $filename }" was deleted by { $user } +notification-file-download-ready = Your file "{ $filename }" is ready for download +notification-file-upload-complete = Upload of "{ $filename }" completed successfully +notification-file-upload-failed = Upload of "{ $filename }" failed + +notification-comment-on-task = { $user } commented on task "{ $task }" +notification-comment-on-file = { $user } commented on "{ $filename }" +notification-comment-reply = { $user } replied to your comment +notification-mention-in-comment = { $user } mentioned you in a comment +notification-mention-in-chat = { $user } mentioned you in { $channel } + +notification-login-new-device = New login detected from { $device } in { $location } +notification-login-failed = Failed login attempt on your account +notification-password-changed = Your password was changed successfully +notification-password-expiring = Your password will expire in { $days } days +notification-session-expired = Your session has expired +notification-account-locked = Your account has been locked +notification-two-factor-enabled = Two-factor authentication has been enabled +notification-two-factor-disabled = Two-factor authentication has been disabled + +notification-subscription-expiring = Your subscription expires in { $days } days +notification-subscription-expired = Your subscription has expired +notification-subscription-renewed = Your subscription has been renewed until { $date } +notification-payment-successful = Payment of { $amount } was successful +notification-payment-failed = Payment of { $amount } failed +notification-invoice-ready = Your invoice for { $period } is ready + +notification-bot-response = { $bot } responded to your query +notification-bot-error = { $bot } encountered an error +notification-bot-offline = { $bot } is currently offline +notification-bot-online = { $bot } is now online +notification-bot-updated = { $bot } has been updated + +notification-system-maintenance = System maintenance scheduled for { $datetime } +notification-system-update = System update available: { $version } +notification-system-restored = System has been restored +notification-system-degraded = System is experiencing degraded performance + +notification-action-view = View +notification-action-dismiss = Dismiss +notification-action-mark-read = Mark as read +notification-action-mark-all-read = Mark all as read +notification-action-settings = Notification settings +notification-action-reply = Reply +notification-action-open = Open +notification-action-join = Join +notification-action-accept = Accept +notification-action-decline = Decline + +notification-time-just-now = Just now +notification-time-minutes = { $count -> + [one] { $count } minute ago + *[other] { $count } minutes ago +} +notification-time-hours = { $count -> + [one] { $count } hour ago + *[other] { $count } hours ago +} +notification-time-days = { $count -> + [one] { $count } day ago + *[other] { $count } days ago +} +notification-time-weeks = { $count -> + [one] { $count } week ago + *[other] { $count } weeks ago +} + +notification-preference-all = All notifications +notification-preference-important = Important only +notification-preference-none = None +notification-preference-email = Email notifications +notification-preference-push = Push notifications +notification-preference-in-app = In-app notifications +notification-preference-sound = Sound enabled +notification-preference-vibration = Vibration enabled + +notification-empty = No notifications +notification-empty-description = You're all caught up! +notification-load-more = Load more +notification-clear-all = Clear all notifications +notification-filter-all = All +notification-filter-unread = Unread +notification-filter-mentions = Mentions +notification-filter-tasks = Tasks +notification-filter-messages = Messages +notification-filter-system = System diff --git a/locales/en/ui.ftl b/locales/en/ui.ftl new file mode 100644 index 0000000..38723f1 --- /dev/null +++ b/locales/en/ui.ftl @@ -0,0 +1,1197 @@ +# ============================================================================= +# General Bots - English UI Translations +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Navigation +# ----------------------------------------------------------------------------- +nav-home = Home +nav-chat = Chat +nav-drive = Drive +nav-tasks = Tasks +nav-mail = Mail +nav-calendar = Calendar +nav-meet = Meet +nav-paper = Paper +nav-video = Video +nav-research = Research +nav-analytics = Analytics +nav-settings = Settings +nav-admin = Admin +nav-monitoring = Monitoring +nav-sources = Sources +nav-tools = Tools +nav-attendant = Attendant +nav-learn = Learn + +# ----------------------------------------------------------------------------- +# Dashboard +# ----------------------------------------------------------------------------- +dashboard-title = Dashboard +dashboard-welcome = Welcome back, { $name }! +dashboard-quick-actions = Quick Actions +dashboard-recent-activity = Recent Activity +dashboard-no-activity = No recent activity yet. Start exploring! +dashboard-analytics = Analytics + +# ----------------------------------------------------------------------------- +# Quick Actions +# ----------------------------------------------------------------------------- +quick-start-chat = Start Chat +quick-upload-files = Upload Files +quick-new-task = New Task +quick-compose-email = Compose Email +quick-start-meeting = Start Meeting +quick-new-event = New Event + +# ----------------------------------------------------------------------------- +# Application Cards +# ----------------------------------------------------------------------------- +app-chat-name = Chat +app-chat-desc = AI-powered conversations. Ask questions, get help, and automate tasks. + +app-drive-name = Drive +app-drive-desc = Cloud storage for all your files. Upload, organize, and share. + +app-tasks-name = Tasks +app-tasks-desc = Stay organized with to-do lists, priorities, and due dates. + +app-mail-name = Mail +app-mail-desc = Email client with AI-assisted writing and smart organization. + +app-calendar-name = Calendar +app-calendar-desc = Schedule meetings, events, and manage your time effectively. + +app-meet-name = Meet +app-meet-desc = Video conferencing with screen sharing and live transcription. + +app-paper-name = Paper +app-paper-desc = Write documents with AI assistance. Notes, reports, and more. + +app-research-name = Research +app-research-desc = AI-powered search and discovery across all your sources. + +app-analytics-name = Analytics +app-analytics-desc = Dashboards and reports to track usage and insights. + +# ----------------------------------------------------------------------------- +# Suite Header +# ----------------------------------------------------------------------------- +suite-title = General Bots Suite +suite-tagline = Your AI-powered productivity workspace. Chat, collaborate, and create. +suite-new-intent = New Intent + +# ----------------------------------------------------------------------------- +# AI Panel +# ----------------------------------------------------------------------------- +ai-developer = AI Developer +ai-developing = Developing: { $project } +ai-quick-actions = Quick Actions +ai-add-field = Add field +ai-change-color = Change color +ai-add-validation = Add validation +ai-export-data = Export data +ai-placeholder = Type your modifications... +ai-thinking = AI is thinking... +ai-status-online = Online +ai-status-offline = Offline + +# ----------------------------------------------------------------------------- +# Chat +# ----------------------------------------------------------------------------- +chat-title = Chat +chat-placeholder = Type your message... +chat-send = Send +chat-new-conversation = New Conversation +chat-history = Chat History +chat-clear = Clear Chat +chat-export = Export Chat +chat-typing = { $name } is typing... +chat-online = Online +chat-offline = Offline +chat-last-seen = Last seen { $time } + +# ----------------------------------------------------------------------------- +# Drive / Files +# ----------------------------------------------------------------------------- +drive-title = Drive +drive-upload = Upload +drive-new-folder = New Folder +drive-empty = No files yet. Upload something! +drive-search = Search files... +drive-sort-name = Name +drive-sort-date = Date +drive-sort-size = Size +drive-sort-type = Type +drive-view-grid = Grid View +drive-view-list = List View +drive-selected = { $count -> + [one] { $count } item selected + *[other] { $count } items selected +} +drive-file-size = { $size -> + [bytes] { $value } B + [kb] { $value } KB + [mb] { $value } MB + [gb] { $value } GB + *[other] { $value } bytes +} +drive-drop-files = Drop files here to upload + +# ----------------------------------------------------------------------------- +# Tasks +# ----------------------------------------------------------------------------- +tasks-title = Tasks +tasks-new = New Task +tasks-due-today = Due Today +tasks-overdue = Overdue +tasks-completed = Completed +tasks-all = All Tasks +tasks-priority-high = High Priority +tasks-priority-medium = Medium Priority +tasks-priority-low = Low Priority +tasks-no-due-date = No due date +tasks-add-subtask = Add subtask +tasks-mark-complete = Mark as complete +tasks-mark-incomplete = Mark as incomplete +tasks-delete-confirm = Are you sure you want to delete this task? +tasks-count = { $count -> + [zero] No tasks + [one] { $count } task + *[other] { $count } tasks +} + +# ----------------------------------------------------------------------------- +# Calendar +# ----------------------------------------------------------------------------- +calendar-title = Calendar +calendar-today = Today +calendar-new-event = New Event +calendar-all-day = All day +calendar-repeat = Repeat +calendar-reminder = Reminder +calendar-view-day = Day +calendar-view-week = Week +calendar-view-month = Month +calendar-view-year = Year +calendar-no-events = No events scheduled +calendar-event-title = Event title +calendar-event-location = Location +calendar-event-description = Description +calendar-event-attendees = Attendees + +# ----------------------------------------------------------------------------- +# Meet / Video Conferencing +# ----------------------------------------------------------------------------- +meet-title = Meet +meet-join = Join Meeting +meet-start = Start Meeting +meet-mute = Mute +meet-unmute = Unmute +meet-video-on = Camera On +meet-video-off = Camera Off +meet-share-screen = Share Screen +meet-stop-sharing = Stop Sharing +meet-end-call = End Call +meet-leave = Leave Meeting +meet-participants = { $count -> + [one] { $count } participant + *[other] { $count } participants +} +meet-waiting-room = Waiting Room +meet-admit = Admit +meet-remove = Remove +meet-chat = Meeting Chat +meet-raise-hand = Raise Hand +meet-lower-hand = Lower Hand +meet-recording = Recording +meet-start-recording = Start Recording +meet-stop-recording = Stop Recording + +# ----------------------------------------------------------------------------- +# Mail / Email +# ----------------------------------------------------------------------------- +mail-title = Mail +mail-compose = Compose +mail-inbox = Inbox +mail-sent = Sent +mail-drafts = Drafts +mail-trash = Trash +mail-spam = Spam +mail-starred = Starred +mail-archive = Archive +mail-to = To +mail-cc = CC +mail-bcc = BCC +mail-subject = Subject +mail-body = Message +mail-reply = Reply +mail-reply-all = Reply All +mail-forward = Forward +mail-send = Send +mail-discard = Discard +mail-save-draft = Save Draft +mail-attach = Attach Files +mail-unread = { $count -> + [one] { $count } unread + *[other] { $count } unread +} +mail-empty-inbox = Your inbox is empty +mail-no-subject = (No subject) + +# ----------------------------------------------------------------------------- +# Settings +# ----------------------------------------------------------------------------- +settings-title = Settings +settings-general = General +settings-account = Account +settings-notifications = Notifications +settings-privacy = Privacy +settings-security = Security +settings-language = Language +settings-theme = Theme +settings-theme-light = Light +settings-theme-dark = Dark +settings-theme-system = System +settings-save = Save Changes +settings-saved = Settings saved successfully +settings-timezone = Timezone +settings-date-format = Date Format +settings-time-format = Time Format + +# ----------------------------------------------------------------------------- +# Auth / Login +# ----------------------------------------------------------------------------- +auth-login = Log In +auth-logout = Log Out +auth-signup = Sign Up +auth-forgot-password = Forgot Password? +auth-reset-password = Reset Password +auth-email = Email +auth-password = Password +auth-confirm-password = Confirm Password +auth-remember-me = Remember me +auth-login-success = Logged in successfully +auth-logout-success = Logged out successfully +auth-invalid-credentials = Invalid email or password +auth-session-expired = Your session has expired. Please log in again. + +# ----------------------------------------------------------------------------- +# Search +# ----------------------------------------------------------------------------- +search-placeholder = Search... +search-no-results = No results found +search-results = { $count -> + [one] { $count } result + *[other] { $count } results +} +search-in-progress = Searching... +search-advanced = Advanced Search +search-filters = Filters +search-clear-filters = Clear Filters + +# ----------------------------------------------------------------------------- +# Pagination +# ----------------------------------------------------------------------------- +pagination-previous = Previous +pagination-next = Next +pagination-first = First +pagination-last = Last +pagination-page = Page { $current } of { $total } +pagination-showing = Showing { $from } to { $to } of { $total } + +# ----------------------------------------------------------------------------- +# Tables +# ----------------------------------------------------------------------------- +table-no-data = No data available +table-loading = Loading data... +table-actions = Actions +table-select-all = Select All +table-deselect-all = Deselect All +table-export = Export +table-import = Import + +# ----------------------------------------------------------------------------- +# Forms +# ----------------------------------------------------------------------------- +form-required = Required +form-optional = Optional +form-submit = Submit +form-reset = Reset +form-clear = Clear +form-uploading = Uploading... +form-processing = Processing... + +# ----------------------------------------------------------------------------- +# Modals / Dialogs +# ----------------------------------------------------------------------------- +modal-confirm-title = Confirm Action +modal-confirm-message = Are you sure you want to proceed? +modal-delete-title = Delete Confirmation +modal-delete-message = This action cannot be undone. Are you sure? + +# ----------------------------------------------------------------------------- +# Tooltips +# ----------------------------------------------------------------------------- +tooltip-copy = Copy to clipboard +tooltip-copied = Copied! +tooltip-expand = Expand +tooltip-collapse = Collapse +tooltip-refresh = Refresh +tooltip-download = Download +tooltip-upload = Upload +tooltip-print = Print +tooltip-fullscreen = Fullscreen +tooltip-exit-fullscreen = Exit Fullscreen + +# ----------------------------------------------------------------------------- +# Settings - Language & Localization +# ----------------------------------------------------------------------------- +settings-language = Language +settings-language-desc = Choose your preferred language +settings-display-language = Display Language +settings-language-affects = Affects all text in the application +settings-date-format = Date Format +settings-date-format-desc = How dates are displayed +settings-time-format = Time Format +settings-time-format-desc = 12-hour or 24-hour clock +settings-saved = Settings saved successfully +settings-language-changed = Language changed successfully +settings-reload-required = Page reload required to apply changes + +# Settings - Profile +settings-profile = Profile Settings +settings-profile-desc = Manage your personal information and preferences +settings-profile-photo = Profile Photo +settings-profile-photo-desc = Your profile photo is visible to other users +settings-upload-photo = Upload Photo +settings-remove-photo = Remove +settings-basic-info = Basic Information +settings-display-name = Display Name +settings-username = Username +settings-email-address = Email Address +settings-bio = Bio +settings-bio-placeholder = Tell us about yourself... +settings-contact-info = Contact Information +settings-phone-number = Phone Number +settings-location = Location +settings-website = Website + +# Settings - Security +settings-security = Security Settings +settings-security-desc = Protect your account with enhanced security +settings-change-password = Change Password +settings-change-password-desc = Update your password regularly for better security +settings-current-password = Current Password +settings-new-password = New Password +settings-confirm-password = Confirm New Password +settings-update-password = Update Password +settings-2fa = Two-Factor Authentication +settings-2fa-desc = Add an extra layer of security to your account +settings-authenticator-app = Authenticator App +settings-authenticator-desc = Use an authenticator app for 2FA codes +settings-enable-2fa = Enable 2FA +settings-disable-2fa = Disable 2FA +settings-active-sessions = Active Sessions +settings-active-sessions-desc = Manage your active login sessions +settings-this-device = This device +settings-terminate-session = Terminate +settings-terminate-all = Terminate All Other Sessions + +# Settings - Appearance +settings-appearance = Appearance +settings-appearance-desc = Customize how the application looks +settings-theme-selection = Theme +settings-theme-selection-desc = Choose your preferred color theme +settings-theme-dark = Dark +settings-theme-light = Light +settings-theme-blue = Blue +settings-theme-purple = Purple +settings-theme-green = Green +settings-theme-orange = Orange +settings-layout-preferences = Layout Preferences +settings-compact-mode = Compact Mode +settings-compact-mode-desc = Reduce spacing for more content +settings-show-sidebar = Show Sidebar +settings-show-sidebar-desc = Always show navigation sidebar +settings-animations = Animations +settings-animations-desc = Enable UI animations and transitions + +# Settings - Notifications +settings-notifications-title = Notifications +settings-notifications-desc = Control how you receive notifications +settings-email-notifications = Email Notifications +settings-direct-messages = Direct Messages +settings-direct-messages-desc = Receive email for new direct messages +settings-mentions = Mentions +settings-mentions-desc = Receive email when someone mentions you +settings-weekly-digest = Weekly Digest +settings-weekly-digest-desc = Get a weekly summary of activity +settings-marketing = Marketing +settings-marketing-desc = Receive news and product updates +settings-push-notifications = Push Notifications +settings-enable-push = Enable Push Notifications +settings-enable-push-desc = Receive browser push notifications +settings-notification-sound = Sound +settings-notification-sound-desc = Play sound for notifications +settings-in-app-notifications = In-App Notifications + +# Settings - Storage +settings-storage = Storage +settings-storage-desc = Manage your storage usage +settings-storage-usage = Storage Usage +settings-storage-used = { $used } of { $total } used +settings-storage-upgrade = Upgrade Storage + +# Settings - Privacy +settings-privacy-title = Privacy +settings-privacy-desc = Control your privacy settings +settings-data-collection = Data Collection +settings-analytics = Analytics +settings-analytics-desc = Help us improve by sending anonymous usage data +settings-crash-reports = Crash Reports +settings-crash-reports-desc = Automatically send crash reports +settings-download-data = Download Your Data +settings-download-data-desc = Get a copy of all your data +settings-delete-account = Delete Account +settings-delete-account-desc = Permanently delete your account and all data +settings-delete-account-warning = This action cannot be undone + +# Settings - Billing +settings-billing = Billing +settings-billing-desc = Manage your subscription and payment methods +settings-current-plan = Current Plan +settings-free-plan = Free Plan +settings-pro-plan = Pro Plan +settings-enterprise-plan = Enterprise Plan +settings-upgrade-plan = Upgrade Plan +settings-payment-methods = Payment Methods +settings-add-payment = Add Payment Method +settings-billing-history = Billing History + +# ----------------------------------------------------------------------------- +# Paper (Document Editor) +# ----------------------------------------------------------------------------- +paper-title = Paper +paper-new-note = New Note +paper-search-notes = Search notes... +paper-quick-start = Quick Start +paper-template-blank = Blank +paper-template-meeting = Meeting +paper-template-todo = To-Do +paper-template-research = Research +paper-untitled = Untitled +paper-placeholder = Start writing, or type / for commands... +paper-commands = Commands +paper-heading1 = Heading 1 +paper-heading1-desc = Large section heading +paper-heading2 = Heading 2 +paper-heading2-desc = Medium section heading +paper-heading3 = Heading 3 +paper-heading3-desc = Small section heading +paper-paragraph = Paragraph +paper-paragraph-desc = Plain text +paper-bullet-list = Bullet List +paper-bullet-list-desc = Unordered list +paper-numbered-list = Numbered List +paper-numbered-list-desc = Ordered list +paper-todo-list = To-Do List +paper-todo-list-desc = Checkable task list +paper-quote = Quote +paper-quote-desc = Blockquote for citations +paper-divider = Divider +paper-divider-desc = Horizontal line +paper-code-block = Code Block +paper-code-block-desc = Formatted code +paper-table = Table +paper-table-desc = Insert table +paper-image = Image +paper-image-desc = Insert image from URL +paper-callout = Callout +paper-callout-desc = Highlighted information box +paper-ai-write = AI Write +paper-ai-write-desc = Generate text with AI +paper-ai-summarize = AI Summarize +paper-ai-summarize-desc = Summarize selected text +paper-ai-expand = AI Expand +paper-ai-expand-desc = Expand on selected text +paper-ai-improve = AI Improve +paper-ai-improve-desc = Improve writing quality +paper-ai-translate = AI Translate +paper-ai-translate-desc = Translate to another language +paper-ai-assistant = AI Assistant +paper-ai-quick-actions = Quick Actions +paper-ai-rewrite = Rewrite +paper-ai-make-shorter = Make Shorter +paper-ai-make-longer = Make Longer +paper-ai-fix-grammar = Fix Grammar +paper-ai-tone = Tone +paper-ai-tone-professional = Professional +paper-ai-tone-casual = Casual +paper-ai-tone-friendly = Friendly +paper-ai-tone-formal = Formal +paper-ai-translate-to = Translate to +paper-ai-custom-prompt = Custom Prompt +paper-ai-custom-placeholder = Describe what you want... +paper-ai-generate = Generate +paper-ai-response = AI Response +paper-ai-apply = Apply +paper-ai-regenerate = Regenerate +paper-ai-copy = Copy +paper-word-count = { $count } words +paper-char-count = { $count } characters +paper-saved = Saved +paper-saving = Saving... +paper-last-edited = Last edited: { $time } +paper-last-edited-now = Last edited: Just now +paper-export = Export Document +paper-export-pdf = PDF +paper-export-docx = Word (.docx) +paper-export-markdown = Markdown +paper-export-html = HTML +paper-export-txt = Plain Text + +# Additional Chat translations +chat-voice = Voice input +chat-message-placeholder = Message... + +# Drive translations +drive-my-drive = My Drive +drive-shared = Shared with me +drive-recent = Recent +drive-starred = Starred +drive-trash = Trash +drive-loading-storage = Loading storage... +drive-storage-used = { $used } of { $total } used +drive-empty-folder = This folder is empty + +# Tasks translations +tasks-active = Active Intents +tasks-awaiting = Awaiting Decision +tasks-paused = Paused +tasks-blocked = Blocked/Issues +tasks-time-saved = Active Time Saved: +tasks-input-placeholder = What would you like to do? e.g., 'create a CRM app' or 'remind me to call John tomorrow' + +# Calendar additional translations +calendar-my-calendars = My Calendars + +# Email additional translations +email-scheduled = Scheduled +email-tracking = Tracking + +# Email folder translations +email-inbox = Inbox +email-starred = Starred +email-sent = Sent +email-drafts = Drafts +email-spam = Spam +email-trash = Trash +email-compose = Compose + +# ----------------------------------------------------------------------------- +# Research +# ----------------------------------------------------------------------------- +research-title = Research +research-search-placeholder = Ask anything... +research-collections = Collections +research-new-collection = New Collection +research-recent = Recent +research-academic = Academic +research-code = Code +research-internal = Internal +research-search-all = Search everything +research-academic-papers = Academic papers +research-code-docs = Code & documentation +research-internal-kb = Internal knowledge base +research-sources = Sources +research-trending = Trending +research-pro-search = Pro Search +research-include-images = Include Images +research-try-asking = Try asking about +research-related = Related Questions +research-view-all-sources = View All Sources +research-export-citations = Export Citations +research-save-to-collection = Save to Collection + +# ----------------------------------------------------------------------------- +# Admin Panel (additional UI keys) +# ----------------------------------------------------------------------------- +admin-panel-title = Admin Panel +admin-quick-actions = Quick Actions +admin-create-user = Create User +admin-create-group = Create Group +admin-register-dns = Register DNS +admin-recent-activity = Recent Activity +admin-system-health = System Health + +# ----------------------------------------------------------------------------- +# Meet (additional keys) +# ----------------------------------------------------------------------------- +meet-new-meeting = New Meeting +meet-join-meeting = Join Meeting +meet-active-rooms = Active Rooms +meet-room-title = Meeting Room +meet-record = Record +meet-camera = Camera +meet-share = Share +meet-info = Info +meet-more = More +meet-share-meeting = Share Meeting +meet-meeting-title = Meeting Title +meet-meeting-code = Meeting Code +meet-meeting-link = Meeting Link +meet-send-invite = Send Invite + +# ----------------------------------------------------------------------------- +# Common Labels (additional) +# ----------------------------------------------------------------------------- +label-username = Username +label-email = Email +label-display-name = Display Name +label-password = Password +label-role = Role +label-group-name = Group Name +label-hostname = Hostname +label-record-type = Record Type +label-target = Target +label-your-name = Your Name + +# ----------------------------------------------------------------------------- +# Actions (additional) +# ----------------------------------------------------------------------------- +action-register = Register + +# ----------------------------------------------------------------------------- +# Analytics (additional UI keys) +# ----------------------------------------------------------------------------- +analytics-dashboard-title = Analytics Dashboard +analytics-last-hour = Last Hour +analytics-last-6h = Last 6 Hours +analytics-last-24h = Last 24 Hours +analytics-last-7d = Last 7 Days +analytics-last-30d = Last 30 Days + +# ----------------------------------------------------------------------------- +# Notifications +# ----------------------------------------------------------------------------- +notifications-title = Notifications +notifications-clear = Clear all +notifications-empty = No notifications + +# ----------------------------------------------------------------------------- +# All Applications +# ----------------------------------------------------------------------------- +nav-all-apps = All Applications + +# ============================================================================= +# AUTH SCREENS - Complete translations for login, register, forgot/reset password +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Login Screen +# ----------------------------------------------------------------------------- +auth-welcome-back = Welcome Back +auth-sign-in-to-account = Sign in to your General Bots account +auth-email-address = Email Address +auth-email-placeholder = you@example.com +auth-password-placeholder = •••••••• +auth-sign-in = Sign In +auth-or-continue-with = or continue with +auth-dont-have-account = Don't have an account? +auth-create-account = Create account +auth-google = Google +auth-microsoft = Microsoft +auth-github = GitHub +auth-apple = Apple + +# ----------------------------------------------------------------------------- +# Two-Factor Authentication +# ----------------------------------------------------------------------------- +auth-2fa-title = Two-Factor Authentication +auth-2fa-subtitle = Enter the 6-digit code from your authenticator app +auth-2fa-verify = Verify Code +auth-2fa-didnt-receive = Didn't receive a code? +auth-2fa-resend = Resend code +auth-2fa-back-to-login = Back to login +auth-2fa-trust-device = Trust this device +auth-2fa-trust-desc = Don't ask for 2FA on this device for 30 days + +# ----------------------------------------------------------------------------- +# Register Screen +# ----------------------------------------------------------------------------- +auth-create-your-account = Create Your Account +auth-join-general-bots = Join General Bots and start building +auth-first-name = First Name +auth-last-name = Last Name +auth-create-password = Create Password +auth-confirm-your-password = Confirm Password +auth-password-strength = Password Strength +auth-password-weak = Weak +auth-password-fair = Fair +auth-password-good = Good +auth-password-strong = Strong +auth-password-req-length = At least 8 characters +auth-password-req-uppercase = One uppercase letter +auth-password-req-lowercase = One lowercase letter +auth-password-req-number = One number +auth-password-req-special = One special character +auth-passwords-match = Passwords match +auth-passwords-dont-match = Passwords don't match +auth-agree-terms = I agree to the +auth-terms-of-service = Terms of Service +auth-and = and +auth-privacy-policy = Privacy Policy +auth-sign-up = Sign Up +auth-already-have-account = Already have an account? +auth-sign-in-link = Sign in +auth-registration-success = Account Created Successfully! +auth-check-email = Please check your email to verify your account +auth-email-sent-to = We've sent a verification link to +auth-resend-verification = Resend Verification Email +auth-go-to-login = Go to Login + +# ----------------------------------------------------------------------------- +# Forgot Password Screen +# ----------------------------------------------------------------------------- +auth-forgot-password-title = Forgot Password? +auth-forgot-password-subtitle = No worries! Enter your email and we'll send you reset instructions. +auth-send-reset-link = Send Reset Link +auth-back-to-login = Back to login +auth-reset-email-sent = Reset Email Sent! +auth-reset-instructions = We've sent password reset instructions to +auth-check-inbox = Check your inbox +auth-check-spam = Check your spam folder if you don't see it +auth-link-expires = The link expires in 1 hour +auth-resend-email = Resend Email +auth-didnt-receive-email = Didn't receive the email? + +# ----------------------------------------------------------------------------- +# Reset Password Screen +# ----------------------------------------------------------------------------- +auth-reset-password-title = Reset Password +auth-reset-password-subtitle = Create a new secure password for your account +auth-new-password = New Password +auth-confirm-new-password = Confirm New Password +auth-reset-password-btn = Reset Password +auth-password-reset-success = Password Reset Successfully! +auth-password-updated = Your password has been updated. You can now sign in with your new password. +auth-invalid-token = Invalid or Expired Link +auth-invalid-token-desc = This password reset link is invalid or has expired. Please request a new one. +auth-request-new-link = Request New Link + +# ============================================================================= +# MONITORING SCREENS +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Monitoring Dashboard +# ----------------------------------------------------------------------------- +monitoring-title = Monitoring Dashboard +monitoring-toggle-view = Toggle View +monitoring-last-updated = Last Updated +monitoring-live-view = Live View +monitoring-grid-view = Grid View + +# ----------------------------------------------------------------------------- +# Monitoring Panels +# ----------------------------------------------------------------------------- +monitoring-sessions = Sessions +monitoring-messages = Messages +monitoring-resources = Resources +monitoring-services = Services +monitoring-active-bots = Active Bots +monitoring-loading = Loading... + +# ----------------------------------------------------------------------------- +# Service Status +# ----------------------------------------------------------------------------- +monitoring-status-running = Running +monitoring-status-warning = Warning +monitoring-status-stopped = Stopped +monitoring-status-healthy = Healthy +monitoring-status-degraded = Degraded +monitoring-status-down = Down + +# ----------------------------------------------------------------------------- +# Resource Metrics +# ----------------------------------------------------------------------------- +monitoring-cpu = CPU +monitoring-memory = Memory +monitoring-disk = Disk +monitoring-network = Network +monitoring-requests-per-sec = Requests/sec +monitoring-active-connections = Active Connections +monitoring-uptime = Uptime + +# ----------------------------------------------------------------------------- +# Logs +# ----------------------------------------------------------------------------- +monitoring-logs-title = System Logs +monitoring-logs-filter = Filter Logs +monitoring-logs-level = Log Level +monitoring-logs-all = All Levels +monitoring-logs-debug = Debug +monitoring-logs-info = Info +monitoring-logs-warning = Warning +monitoring-logs-error = Error +monitoring-logs-critical = Critical +monitoring-logs-search = Search logs... +monitoring-logs-no-results = No logs found + +# ----------------------------------------------------------------------------- +# Health +# ----------------------------------------------------------------------------- +monitoring-health-title = System Health +monitoring-health-status = Health Status +monitoring-health-services = Service Health +monitoring-health-database = Database +monitoring-health-cache = Cache +monitoring-health-queue = Message Queue +monitoring-health-storage = Storage +monitoring-health-external = External Services + +# ----------------------------------------------------------------------------- +# Metrics +# ----------------------------------------------------------------------------- +monitoring-metrics-title = Performance Metrics +monitoring-metrics-response-time = Response Time +monitoring-metrics-throughput = Throughput +monitoring-metrics-error-rate = Error Rate +monitoring-metrics-latency = Latency + +# ----------------------------------------------------------------------------- +# Alerts +# ----------------------------------------------------------------------------- +monitoring-alerts-title = System Alerts +monitoring-alerts-active = Active Alerts +monitoring-alerts-resolved = Resolved +monitoring-alerts-all = All Alerts +monitoring-alert-severity = Severity +monitoring-alert-critical = Critical +monitoring-alert-high = High +monitoring-alert-medium = Medium +monitoring-alert-low = Low +monitoring-alert-info = Info +monitoring-alert-acknowledge = Acknowledge +monitoring-alert-resolve = Resolve +monitoring-no-alerts = No active alerts + +# ============================================================================= +# SOURCES SCREENS +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Sources Main +# ----------------------------------------------------------------------------- +sources-title = Sources +sources-subtitle = Repositories, Apps, Prompts, Templates & MCP Servers +sources-search = Search sources... + +# ----------------------------------------------------------------------------- +# Sources Tabs +# ----------------------------------------------------------------------------- +sources-repositories = Repositories +sources-apps = Apps +sources-prompts = Prompts +sources-templates = Templates +sources-servers = MCP Servers +sources-models = AI Models +sources-news = News + +# ----------------------------------------------------------------------------- +# Repository Cards +# ----------------------------------------------------------------------------- +sources-repo-connect = Connect +sources-repo-disconnect = Disconnect +sources-repo-browse = Browse +sources-repo-connected = Connected +sources-repo-disconnected = Disconnected +sources-repo-stars = Stars +sources-repo-forks = Forks +sources-repo-last-updated = Last updated + +# ----------------------------------------------------------------------------- +# Prompt Cards +# ----------------------------------------------------------------------------- +sources-prompt-use = Use +sources-prompt-copy = Copy +sources-prompt-edit = Edit +sources-prompt-rating = Rating +sources-prompt-uses = Uses + +# ----------------------------------------------------------------------------- +# Server Cards +# ----------------------------------------------------------------------------- +sources-server-active = Active +sources-server-inactive = Inactive +sources-server-connect = Connect +sources-server-configure = Configure + +# ----------------------------------------------------------------------------- +# Model Cards +# ----------------------------------------------------------------------------- +sources-model-active = Active +sources-model-coming-soon = Coming Soon +sources-model-provider = Provider +sources-model-context = Context +sources-model-tokens = tokens + +# ----------------------------------------------------------------------------- +# App Cards +# ----------------------------------------------------------------------------- +sources-app-open = Open +sources-app-edit = Edit +sources-app-installed = Installed +sources-app-install = Install + +# ----------------------------------------------------------------------------- +# Template Cards +# ----------------------------------------------------------------------------- +sources-template-preview = Preview +sources-template-use = Use Template +sources-template-components = components + +# ----------------------------------------------------------------------------- +# Categories +# ----------------------------------------------------------------------------- +sources-category-all = All +sources-category-development = Development +sources-category-productivity = Productivity +sources-category-communication = Communication +sources-category-analytics = Analytics +sources-category-security = Security +sources-category-other = Other + +# ----------------------------------------------------------------------------- +# Empty States +# ----------------------------------------------------------------------------- +sources-empty-repos = No repositories connected +sources-empty-apps = No apps available +sources-empty-prompts = No prompts found +sources-empty-templates = No templates available +sources-empty-servers = No MCP servers configured +sources-empty-models = No models available +sources-empty-results = No results found +sources-empty-results-desc = Try adjusting your search or filters + +# ============================================================================= +# TOOLS / COMPLIANCE SCREENS +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Compliance Main +# ----------------------------------------------------------------------------- +compliance-title = API Compliance Report +compliance-subtitle = Security scan for all bots - Check for passwords, fragile code, and misconfigurations +compliance-export-report = Export Report +compliance-run-scan = Run Compliance Scan +compliance-scanning = Scanning... + +# ----------------------------------------------------------------------------- +# Bot Selector +# ----------------------------------------------------------------------------- +compliance-all-bots = All Bots +compliance-select-bots = Select Bots + +# ----------------------------------------------------------------------------- +# Stats Cards +# ----------------------------------------------------------------------------- +compliance-critical = Critical +compliance-critical-desc = Requires immediate action +compliance-high = High +compliance-high-desc = Security risk +compliance-medium = Medium +compliance-medium-desc = Should be addressed +compliance-low = Low +compliance-low-desc = Best practice +compliance-info = Info +compliance-info-desc = Informational + +# ----------------------------------------------------------------------------- +# Filters +# ----------------------------------------------------------------------------- +compliance-filter-severity = Severity +compliance-filter-type = Type +compliance-filter-all-severities = All Severities +compliance-filter-all-types = All Types +compliance-search-issues = Search issues... + +# ----------------------------------------------------------------------------- +# Issue Types +# ----------------------------------------------------------------------------- +compliance-type-password = Password in Config +compliance-type-hardcoded = Hardcoded Secrets +compliance-type-deprecated = Deprecated Keywords +compliance-type-fragile = Fragile Code +compliance-type-config = Configuration Issues + +# ----------------------------------------------------------------------------- +# Results Table +# ----------------------------------------------------------------------------- +compliance-results = Results +compliance-results-count = { $count -> + [one] { $count } issue found + *[other] { $count } issues found +} +compliance-col-severity = Severity +compliance-col-issue = Issue +compliance-col-location = Location +compliance-col-details = Details +compliance-col-action = Action +compliance-view-details = View Details +compliance-fix-issue = Fix Issue +compliance-ignore = Ignore +compliance-no-issues = No issues found +compliance-no-issues-desc = Great! Your bots are compliant. + +# ----------------------------------------------------------------------------- +# Scan Progress +# ----------------------------------------------------------------------------- +compliance-scan-in-progress = Scan in progress... +compliance-scan-checking = Checking { $item }... +compliance-scan-complete = Scan complete +compliance-scan-failed = Scan failed + +# ============================================================================= +# ATTENDANT / CRM SCREENS +# ============================================================================= + +# ----------------------------------------------------------------------------- +# CRM Disabled State +# ----------------------------------------------------------------------------- +attendant-crm-disabled = CRM Features Not Enabled +attendant-crm-disabled-desc = The Attendant Console requires CRM features to be enabled for this bot. This allows human agents to receive and respond to conversations transferred from the bot. +attendant-crm-enable-instruction = To enable CRM features, add this line to your bot's +attendant-crm-config-file = config.csv +attendant-crm-create-attendant = Then create an +attendant-crm-attendant-file = attendant.csv +attendant-crm-configure-team = file to configure your team + +# ----------------------------------------------------------------------------- +# Queue Sidebar +# ----------------------------------------------------------------------------- +attendant-title = Attendant Console +attendant-status-online = Online +attendant-status-busy = Busy +attendant-status-away = Away +attendant-status-offline = Offline +attendant-status-ready = Online - Ready for conversations +attendant-status-busy-msg = Busy - Handling conversations +attendant-status-away-msg = Away - Will be back soon +attendant-status-offline-msg = Offline - Not available + +# ----------------------------------------------------------------------------- +# Queue Stats +# ----------------------------------------------------------------------------- +attendant-waiting = Waiting +attendant-active = Active +attendant-resolved = Resolved +attendant-mine = Mine + +# ----------------------------------------------------------------------------- +# Queue Filters +# ----------------------------------------------------------------------------- +attendant-filter-all = All +attendant-filter-waiting = Waiting +attendant-filter-mine = Mine +attendant-filter-priority = Priority + +# ----------------------------------------------------------------------------- +# Conversation List +# ----------------------------------------------------------------------------- +attendant-no-conversations = No conversations in queue +attendant-new-conversations-appear = New conversations will appear here +attendant-unread = Unread +attendant-typing = typing... +attendant-select-conversation = Select a conversation +attendant-select-conversation-desc = Choose a conversation from the queue to start responding + +# ----------------------------------------------------------------------------- +# Channel Tags +# ----------------------------------------------------------------------------- +attendant-channel-whatsapp = WhatsApp +attendant-channel-teams = Teams +attendant-channel-instagram = Instagram +attendant-channel-web = Web +attendant-channel-telegram = Telegram +attendant-channel-email = Email + +# ----------------------------------------------------------------------------- +# Priority Tags +# ----------------------------------------------------------------------------- +attendant-priority-urgent = Urgent +attendant-priority-high = High +attendant-priority-normal = Normal + +# ----------------------------------------------------------------------------- +# Chat Area +# ----------------------------------------------------------------------------- +attendant-message-placeholder = Type your message... +attendant-send = Send +attendant-attach-file = Attach file +attendant-insert-emoji = Insert emoji +attendant-quick-responses = Quick Responses +attendant-transfer = Transfer +attendant-resolve = Resolve +attendant-more-actions = More Actions + +# ----------------------------------------------------------------------------- +# Quick Responses +# ----------------------------------------------------------------------------- +attendant-quick-greeting = Hello! How can I help you today? +attendant-quick-thanks = Thank you for your patience. +attendant-quick-checking = Let me check that for you. +attendant-quick-moment = One moment please. + +# ----------------------------------------------------------------------------- +# Transfer Modal +# ----------------------------------------------------------------------------- +attendant-transfer-title = Transfer Conversation +attendant-transfer-to = Transfer to +attendant-transfer-reason = Reason (optional) +attendant-transfer-reason-placeholder = Why are you transferring this conversation? +attendant-transfer-cancel = Cancel +attendant-transfer-confirm = Transfer + +# ----------------------------------------------------------------------------- +# AI Insights Sidebar +# ----------------------------------------------------------------------------- +attendant-ai-insights = AI Insights +attendant-ai-summary = Conversation Summary +attendant-ai-sentiment = Customer Sentiment +attendant-sentiment-positive = Positive +attendant-sentiment-neutral = Neutral +attendant-sentiment-negative = Negative +attendant-smart-replies = Smart Replies +attendant-confidence = Confidence +attendant-source = Source + +# ----------------------------------------------------------------------------- +# Customer Details +# ----------------------------------------------------------------------------- +attendant-customer-details = Customer Details +attendant-customer-name = Name +attendant-customer-email = Email +attendant-customer-phone = Phone +attendant-customer-location = Location +attendant-customer-tags = Tags + +# ----------------------------------------------------------------------------- +# Conversation History +# ----------------------------------------------------------------------------- +attendant-history = History +attendant-history-resolved = Resolved +attendant-history-transferred = Transferred +attendant-history-abandoned = Abandoned +attendant-view-history = View Full History + +# ----------------------------------------------------------------------------- +# Toast Messages +# ----------------------------------------------------------------------------- +attendant-toast-transferred = Conversation transferred successfully +attendant-toast-resolved = Conversation marked as resolved +attendant-toast-assigned = Conversation assigned to you +attendant-toast-error = An error occurred +attendant-toast-connection-lost = Connection lost. Reconnecting... +attendant-toast-connection-restored = Connection restored diff --git a/locales/en/video.ftl b/locales/en/video.ftl new file mode 100644 index 0000000..5fd70bb --- /dev/null +++ b/locales/en/video.ftl @@ -0,0 +1,142 @@ +# ============================================================================= +# General Bots - English Video Editor Translations +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Navigation +# ----------------------------------------------------------------------------- +nav-video = Video + +# ----------------------------------------------------------------------------- +# Video Editor - Main +# ----------------------------------------------------------------------------- +video-title = Video Editor +video-new-project = New Project +video-project-info = Project Info +video-duration = Duration +video-clips = Clips +video-layers = Layers +video-resolution = Resolution + +# ----------------------------------------------------------------------------- +# Video Editor - Add Elements +# ----------------------------------------------------------------------------- +video-add-elements = Add Elements +video-add-clip = Video Clip +video-add-text = Text +video-add-image = Image +video-add-shape = Shape +video-add-audio = Audio +video-add-narration = Narration + +# ----------------------------------------------------------------------------- +# Video Editor - Properties +# ----------------------------------------------------------------------------- +video-properties = Properties +video-name = Name +video-volume = Volume +video-opacity = Opacity +video-position-x = Position X +video-position-y = Position Y +video-rotation = Rotation +video-transition-in = Transition In +video-transition-out = Transition Out + +# ----------------------------------------------------------------------------- +# Video Editor - Timeline +# ----------------------------------------------------------------------------- +video-video-track = Video +video-text-track = Text & Overlays +video-audio-track = Audio + +# ----------------------------------------------------------------------------- +# Video Editor - Preview +# ----------------------------------------------------------------------------- +video-preview = Preview +video-add-content = Add clips or elements to start editing + +# ----------------------------------------------------------------------------- +# Video Editor - Chat +# ----------------------------------------------------------------------------- +video-ai-assistant = AI Assistant +video-playhead-at = Playhead: +video-selected = Selected: +video-chat-placeholder = Describe what you want to change... +video-chat-welcome = Hi! I'm your video editing assistant. You can tell me what to change, like "add a title here" or "make it bigger". I'll understand your current selection and playhead position. + +# ----------------------------------------------------------------------------- +# Video Editor - Export +# ----------------------------------------------------------------------------- +video-export = Export +video-export-video = Export Video +video-format = Format +video-quality = Quality +video-start-export = Start Export +video-exporting = Exporting... +video-export-complete = Export Complete +video-export-failed = Export Failed + +# ----------------------------------------------------------------------------- +# Video Editor - Projects +# ----------------------------------------------------------------------------- +video-recent-projects = Recent Projects +video-no-projects = No projects yet +video-create-first = Create your first video project +video-project-name = Project Name +video-aspect-ratio = Aspect Ratio +video-frame-rate = Frame Rate +video-create = Create + +# ----------------------------------------------------------------------------- +# Video Editor - Text Layer +# ----------------------------------------------------------------------------- +video-text-content = Text Content +video-font-family = Font +video-font-size = Size +video-text-color = Color +video-duration-sec = Duration (sec) +video-add = Add + +# ----------------------------------------------------------------------------- +# Video Editor - Actions +# ----------------------------------------------------------------------------- +video-undo = Undo +video-redo = Redo +video-cut = Cut +video-split = Split +video-delete = Delete +video-save = Save + +# ----------------------------------------------------------------------------- +# Video Editor - Status +# ----------------------------------------------------------------------------- +video-status-draft = Draft +video-status-editing = Editing +video-status-exporting = Exporting +video-status-published = Published +video-status-archived = Archived + +# ----------------------------------------------------------------------------- +# Video Editor - Notifications +# ----------------------------------------------------------------------------- +video-project-created = Project created +video-project-saved = Project saved +video-clip-added = Clip added +video-layer-added = Layer added +video-text-added = Text layer added +video-shape-added = Shape added +video-audio-added = Audio track added +video-item-deleted = Item deleted +video-export-started = Export started +video-export-completed = Export completed successfully +video-error-create-project = Failed to create project +video-error-load-project = Failed to load project +video-error-add-clip = Failed to add clip +video-error-add-layer = Failed to add layer +video-error-delete = Failed to delete item +video-error-export = Failed to start export +video-create-project-first = Please create a project first +video-select-clip-to-split = Select a clip to split +video-playhead-within-clip = Playhead must be within the selected clip +video-tts-coming-soon = TTS generation coming soon +video-split-coming-soon = Split feature coming soon diff --git a/locales/en/webinar.ftl b/locales/en/webinar.ftl new file mode 100644 index 0000000..3656fe6 --- /dev/null +++ b/locales/en/webinar.ftl @@ -0,0 +1,313 @@ +# ============================================================================= +# General Bots - Webinar Translations (English) +# ============================================================================= +# Webinar, recording, and transcription interface translations +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Webinar Navigation & Headers +# ----------------------------------------------------------------------------- +webinar-title = Webinars +webinar-subtitle = Host and manage webinars +webinar-nav-upcoming = Upcoming +webinar-nav-live = Live Now +webinar-nav-past = Past Webinars +webinar-nav-recordings = Recordings +webinar-nav-analytics = Analytics + +# ----------------------------------------------------------------------------- +# Webinar Status +# ----------------------------------------------------------------------------- +webinar-status-draft = Draft +webinar-status-scheduled = Scheduled +webinar-status-live = Live +webinar-status-paused = Paused +webinar-status-ended = Ended +webinar-status-cancelled = Cancelled + +# ----------------------------------------------------------------------------- +# Webinar Fields +# ----------------------------------------------------------------------------- +webinar-field-title = Title +webinar-field-description = Description +webinar-field-scheduled-start = Start Date & Time +webinar-field-scheduled-end = End Date & Time +webinar-field-duration = Duration +webinar-field-timezone = Timezone +webinar-field-host = Host +webinar-field-panelists = Panelists +webinar-field-max-attendees = Maximum Attendees +webinar-field-registration-url = Registration URL + +# ----------------------------------------------------------------------------- +# Webinar Actions +# ----------------------------------------------------------------------------- +webinar-action-create = Create Webinar +webinar-action-edit = Edit Webinar +webinar-action-delete = Delete Webinar +webinar-action-cancel = Cancel Webinar +webinar-action-start = Start Webinar +webinar-action-end = End Webinar +webinar-action-pause = Pause Webinar +webinar-action-resume = Resume Webinar +webinar-action-join = Join Webinar +webinar-action-leave = Leave Webinar +webinar-action-share = Share Link +webinar-action-copy-link = Copy Link +webinar-action-invite = Invite Panelists + +# ----------------------------------------------------------------------------- +# Participant Roles +# ----------------------------------------------------------------------------- +webinar-role-host = Host +webinar-role-cohost = Co-Host +webinar-role-presenter = Presenter +webinar-role-panelist = Panelist +webinar-role-attendee = Attendee + +# ----------------------------------------------------------------------------- +# Participant Actions +# ----------------------------------------------------------------------------- +webinar-participant-mute = Mute +webinar-participant-unmute = Unmute +webinar-participant-video-on = Turn On Video +webinar-participant-video-off = Turn Off Video +webinar-participant-promote = Promote to Panelist +webinar-participant-demote = Demote to Attendee +webinar-participant-remove = Remove from Webinar +webinar-participant-allow-speak = Allow to Speak +webinar-participant-spotlight = Spotlight + +# ----------------------------------------------------------------------------- +# Hand Raising +# ----------------------------------------------------------------------------- +webinar-hand-raise = Raise Hand +webinar-hand-lower = Lower Hand +webinar-hand-raised-count = { $count } hands raised +webinar-hand-allow = Allow to Speak +webinar-hand-dismiss = Dismiss + +# ----------------------------------------------------------------------------- +# Q&A Panel +# ----------------------------------------------------------------------------- +webinar-qa-title = Q&A +webinar-qa-submit = Submit Question +webinar-qa-placeholder = Type your question... +webinar-qa-anonymous = Ask Anonymously +webinar-qa-pending = Pending Questions +webinar-qa-answered = Answered Questions +webinar-qa-dismissed = Dismissed +webinar-qa-upvote = Upvote +webinar-qa-upvotes = { $count } upvotes +webinar-qa-answer = Answer +webinar-qa-answer-live = Answer Live +webinar-qa-dismiss = Dismiss +webinar-qa-pin = Pin Question +webinar-qa-unpin = Unpin +webinar-qa-highlight = Highlight +webinar-qa-no-questions = No questions yet + +# ----------------------------------------------------------------------------- +# Polls +# ----------------------------------------------------------------------------- +webinar-poll-title = Polls +webinar-poll-create = Create Poll +webinar-poll-launch = Launch Poll +webinar-poll-close = Close Poll +webinar-poll-results = Show Results +webinar-poll-hide-results = Hide Results +webinar-poll-question = Question +webinar-poll-options = Options +webinar-poll-add-option = Add Option +webinar-poll-single-choice = Single Choice +webinar-poll-multiple-choice = Multiple Choice +webinar-poll-votes = { $count } votes +webinar-poll-vote = Vote +webinar-poll-voted = You voted + +# ----------------------------------------------------------------------------- +# Registration +# ----------------------------------------------------------------------------- +webinar-registration-title = Registration +webinar-registration-required = Registration Required +webinar-registration-open = Open Registration +webinar-registration-closed = Registration Closed +webinar-registration-register = Register +webinar-registration-registered = You're Registered +webinar-registration-cancel = Cancel Registration +webinar-registration-count = { $count } registered +webinar-registration-fields = Registration Fields +webinar-registration-name = Full Name +webinar-registration-email = Email Address +webinar-registration-confirmation = Registration Confirmed +webinar-registration-pending = Pending Confirmation +webinar-registration-waitlist = Waitlist + +# ----------------------------------------------------------------------------- +# Webinar Settings +# ----------------------------------------------------------------------------- +webinar-settings-title = Webinar Settings +webinar-settings-general = General +webinar-settings-permissions = Permissions +webinar-settings-registration = Registration +webinar-settings-recording = Recording +webinar-settings-allow-chat = Allow Chat +webinar-settings-allow-qa = Allow Q&A +webinar-settings-allow-hand-raise = Allow Hand Raising +webinar-settings-allow-reactions = Allow Reactions +webinar-settings-moderated-qa = Moderated Q&A +webinar-settings-anonymous-qa = Allow Anonymous Questions +webinar-settings-waiting-room = Enable Waiting Room +webinar-settings-practice-session = Practice Session +webinar-settings-auto-record = Auto-Record + +# ----------------------------------------------------------------------------- +# Recording +# ----------------------------------------------------------------------------- +recording-title = Recordings +recording-start = Start Recording +recording-stop = Stop Recording +recording-pause = Pause Recording +recording-resume = Resume Recording +recording-status-recording = Recording +recording-status-processing = Processing +recording-status-ready = Ready +recording-status-failed = Failed +recording-status-deleted = Deleted +recording-status-expired = Expired +recording-duration = Duration +recording-size = File Size +recording-quality = Quality +recording-quality-standard = Standard (720p) +recording-quality-high = High (1080p) +recording-quality-ultra = Ultra (4K) +recording-quality-audio = Audio Only +recording-download = Download Recording +recording-share = Share Recording +recording-delete = Delete Recording +recording-view-count = { $count } views +recording-download-count = { $count } downloads +recording-expires = Expires { $date } + +# ----------------------------------------------------------------------------- +# Transcription +# ----------------------------------------------------------------------------- +transcription-title = Transcription +transcription-start = Start Transcription +transcription-status-pending = Pending +transcription-status-in-progress = Transcribing... +transcription-status-completed = Completed +transcription-status-failed = Failed +transcription-status-partial = Partially Completed +transcription-language = Language +transcription-speaker-identification = Speaker Identification +transcription-speakers = { $count } speakers identified +transcription-words = { $count } words +transcription-confidence = { $percent }% confidence +transcription-download = Download Transcript +transcription-export = Export +transcription-export-txt = Plain Text (.txt) +transcription-export-vtt = WebVTT (.vtt) +transcription-export-srt = SubRip (.srt) +transcription-export-json = JSON (.json) +transcription-search = Search transcript... +transcription-jump-to = Jump to timestamp +transcription-edit = Edit Transcript +transcription-save = Save Changes + +# ----------------------------------------------------------------------------- +# Transcription Languages +# ----------------------------------------------------------------------------- +transcription-lang-en-us = English (US) +transcription-lang-en-gb = English (UK) +transcription-lang-es-es = Spanish (Spain) +transcription-lang-es-mx = Spanish (Mexico) +transcription-lang-fr-fr = French +transcription-lang-de-de = German +transcription-lang-it-it = Italian +transcription-lang-pt-br = Portuguese (Brazil) +transcription-lang-pt-pt = Portuguese (Portugal) +transcription-lang-nl-nl = Dutch +transcription-lang-pl-pl = Polish +transcription-lang-ru-ru = Russian +transcription-lang-ja-jp = Japanese +transcription-lang-ko-kr = Korean +transcription-lang-zh-cn = Chinese (Simplified) +transcription-lang-zh-tw = Chinese (Traditional) +transcription-lang-ar-sa = Arabic +transcription-lang-hi-in = Hindi +transcription-lang-tr-tr = Turkish +transcription-lang-vi-vn = Vietnamese + +# ----------------------------------------------------------------------------- +# Webinar Analytics +# ----------------------------------------------------------------------------- +webinar-analytics-title = Webinar Analytics +webinar-analytics-overview = Overview +webinar-analytics-registrations = Total Registrations +webinar-analytics-attendees = Total Attendees +webinar-analytics-peak-attendees = Peak Attendees +webinar-analytics-avg-watch-time = Average Watch Time +webinar-analytics-questions = Questions Asked +webinar-analytics-questions-answered = Questions Answered +webinar-analytics-reactions = Reactions +webinar-analytics-poll-participation = Poll Participation +webinar-analytics-engagement = Engagement Score +webinar-analytics-retention = Audience Retention +webinar-analytics-export = Export Report + +# ----------------------------------------------------------------------------- +# Empty States +# ----------------------------------------------------------------------------- +webinar-empty-upcoming = No upcoming webinars +webinar-empty-past = No past webinars +webinar-empty-recordings = No recordings available +webinar-empty-schedule = Schedule your first webinar +webinar-empty-transcription = No transcription available + +# ----------------------------------------------------------------------------- +# Confirmations +# ----------------------------------------------------------------------------- +webinar-confirm-end = Are you sure you want to end this webinar? +webinar-confirm-cancel = Are you sure you want to cancel this webinar? +webinar-confirm-delete = Are you sure you want to delete this webinar? +webinar-confirm-delete-recording = Are you sure you want to delete this recording? +webinar-confirm-stop-recording = Are you sure you want to stop recording? + +# ----------------------------------------------------------------------------- +# Success Messages +# ----------------------------------------------------------------------------- +webinar-success-created = Webinar created successfully +webinar-success-updated = Webinar updated successfully +webinar-success-started = Webinar started +webinar-success-ended = Webinar ended +webinar-success-cancelled = Webinar cancelled +webinar-success-recording-started = Recording started +webinar-success-recording-stopped = Recording stopped +webinar-success-transcription-started = Transcription started +webinar-success-transcription-completed = Transcription completed + +# ----------------------------------------------------------------------------- +# Error Messages +# ----------------------------------------------------------------------------- +webinar-error-create = Failed to create webinar +webinar-error-start = Failed to start webinar +webinar-error-join = Failed to join webinar +webinar-error-recording-start = Failed to start recording +webinar-error-recording-stop = Failed to stop recording +webinar-error-transcription = Transcription failed +webinar-error-max-participants = Maximum participants reached +webinar-error-not-authorized = You are not authorized to perform this action +webinar-error-webinar-ended = This webinar has ended +webinar-error-registration-closed = Registration is closed + +# ----------------------------------------------------------------------------- +# Notifications +# ----------------------------------------------------------------------------- +webinar-notify-starting-soon = Webinar starting in { $minutes } minutes +webinar-notify-started = Webinar has started +webinar-notify-ended = Webinar has ended +webinar-notify-hand-raised = { $name } raised their hand +webinar-notify-question-submitted = New question submitted +webinar-notify-recording-ready = Recording is ready +webinar-notify-transcription-ready = Transcription is ready diff --git a/locales/es/admin.ftl b/locales/es/admin.ftl new file mode 100644 index 0000000..22fde2f --- /dev/null +++ b/locales/es/admin.ftl @@ -0,0 +1,365 @@ +# ============================================================================= +# General Bots - Traducciones de Administración (Español) +# ============================================================================= +# Traducciones de la interfaz administrativa para el Panel de Admin de GB +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Navegación y Panel de Administración +# ----------------------------------------------------------------------------- +admin-title = Administración +admin-dashboard = Panel de Administración +admin-overview = Resumen +admin-welcome = Bienvenido al Panel de Administración + +admin-nav-dashboard = Panel +admin-nav-users = Usuarios +admin-nav-bots = Bots +admin-nav-tenants = Inquilinos +admin-nav-settings = Configuración +admin-nav-logs = Registros +admin-nav-analytics = Analíticas +admin-nav-security = Seguridad +admin-nav-integrations = Integraciones +admin-nav-billing = Facturación +admin-nav-support = Soporte +admin-nav-groups = Grupos +admin-nav-dns = DNS +admin-nav-system = Sistema + +# ----------------------------------------------------------------------------- +# Acciones Rápidas de Admin +# ----------------------------------------------------------------------------- +admin-quick-actions = Acciones Rápidas +admin-create-user = Crear Usuario +admin-create-group = Crear Grupo +admin-register-dns = Registrar DNS +admin-recent-activity = Actividad Reciente +admin-system-health = Salud del Sistema + +# ----------------------------------------------------------------------------- +# Gestión de Usuarios +# ----------------------------------------------------------------------------- +admin-users-title = Gestión de Usuarios +admin-users-list = Lista de Usuarios +admin-users-add = Agregar Usuario +admin-users-edit = Editar Usuario +admin-users-delete = Eliminar Usuario +admin-users-search = Buscar usuarios... +admin-users-filter = Filtrar Usuarios +admin-users-export = Exportar Usuarios +admin-users-import = Importar Usuarios +admin-users-total = Total de Usuarios +admin-users-active = Usuarios Activos +admin-users-inactive = Usuarios Inactivos +admin-users-suspended = Usuarios Suspendidos +admin-users-pending = Verificación Pendiente +admin-users-last-login = Último Acceso +admin-users-created = Creado +admin-users-role = Rol +admin-users-status = Estado +admin-users-actions = Acciones +admin-users-no-users = No se encontraron usuarios +admin-users-confirm-delete = ¿Estás seguro de que deseas eliminar este usuario? +admin-users-deleted = Usuario eliminado exitosamente +admin-users-saved = Usuario guardado exitosamente +admin-users-invite = Invitar Usuario +admin-users-invite-sent = Invitación enviada exitosamente +admin-users-bulk-actions = Acciones Masivas +admin-users-select-all = Seleccionar Todo +admin-users-deselect-all = Deseleccionar Todo + +# Detalles de Usuario +admin-user-details = Detalles del Usuario +admin-user-profile = Perfil +admin-user-email = Correo Electrónico +admin-user-name = Nombre +admin-user-phone = Teléfono +admin-user-avatar = Avatar +admin-user-timezone = Zona Horaria +admin-user-language = Idioma +admin-user-role-admin = Administrador +admin-user-role-manager = Gerente +admin-user-role-user = Usuario +admin-user-role-viewer = Visualizador +admin-user-status-active = Activo +admin-user-status-inactive = Inactivo +admin-user-status-suspended = Suspendido +admin-user-status-pending = Pendiente +admin-user-permissions = Permisos +admin-user-activity = Registro de Actividad +admin-user-sessions = Sesiones Activas +admin-user-terminate-session = Terminar Sesión +admin-user-terminate-all = Terminar Todas las Sesiones +admin-user-reset-password = Restablecer Contraseña +admin-user-force-logout = Forzar Cierre de Sesión +admin-user-enable-2fa = Habilitar 2FA +admin-user-disable-2fa = Deshabilitar 2FA + +# ----------------------------------------------------------------------------- +# Gestión de Grupos +# ----------------------------------------------------------------------------- +admin-groups-title = Gestión de Grupos +admin-groups-subtitle = Administra grupos, miembros y permisos +admin-groups-list = Lista de Grupos +admin-groups-add = Agregar Grupo +admin-groups-create = Crear Grupo +admin-groups-edit = Editar Grupo +admin-groups-delete = Eliminar Grupo +admin-groups-search = Buscar grupos... +admin-groups-filter = Filtrar Grupos +admin-groups-total = Total de Grupos +admin-groups-active = Grupos Activos +admin-groups-no-groups = No se encontraron grupos +admin-groups-confirm-delete = ¿Estás seguro de que deseas eliminar este grupo? +admin-groups-deleted = Grupo eliminado exitosamente +admin-groups-saved = Grupo guardado exitosamente +admin-groups-created = Grupo creado exitosamente +admin-groups-loading = Cargando grupos... + +# Detalles de Grupo +admin-group-details = Detalles del Grupo +admin-group-name = Nombre del Grupo +admin-group-description = Descripción +admin-group-visibility = Visibilidad +admin-group-visibility-public = Público +admin-group-visibility-private = Privado +admin-group-visibility-hidden = Oculto +admin-group-join-policy = Política de Unión +admin-group-join-invite = Solo por Invitación +admin-group-join-request = Solicitar Unirse +admin-group-join-open = Abierto +admin-group-members = Miembros +admin-group-member-count = { $count -> + [one] { $count } miembro + *[other] { $count } miembros +} +admin-group-add-member = Agregar Miembro +admin-group-remove-member = Eliminar Miembro +admin-group-permissions = Permisos +admin-group-settings = Configuración +admin-group-analytics = Analíticas +admin-group-overview = Resumen + +# Modos de Vista de Grupos +admin-groups-view-grid = Vista de Cuadrícula +admin-groups-view-list = Vista de Lista +admin-groups-all-visibility = Toda Visibilidad + +# ----------------------------------------------------------------------------- +# Gestión de DNS +# ----------------------------------------------------------------------------- +admin-dns-title = Gestión de DNS +admin-dns-subtitle = Registra y administra nombres de host DNS para tus bots +admin-dns-register = Registrar Nombre de Host +admin-dns-registered = Nombres de Host Registrados +admin-dns-search = Buscar nombres de host... +admin-dns-refresh = Actualizar +admin-dns-loading = Cargando registros DNS... +admin-dns-no-records = No se encontraron registros DNS +admin-dns-confirm-delete = ¿Estás seguro de que deseas eliminar este nombre de host? +admin-dns-deleted = Nombre de host eliminado exitosamente +admin-dns-saved = Registro DNS guardado exitosamente +admin-dns-created = Nombre de host registrado exitosamente + +# Campos del Formulario DNS +admin-dns-hostname = Nombre de Host +admin-dns-hostname-placeholder = mibot.ejemplo.com +admin-dns-hostname-help = Ingresa el nombre de dominio completo que deseas registrar +admin-dns-record-type = Tipo de Registro +admin-dns-record-type-a = A (IPv4) +admin-dns-record-type-aaaa = AAAA (IPv6) +admin-dns-record-type-cname = CNAME +admin-dns-ttl = TTL (segundos) +admin-dns-ttl-5min = 5 minutos (300) +admin-dns-ttl-1hour = 1 hora (3600) +admin-dns-ttl-1day = 1 día (86400) +admin-dns-target = Destino/Dirección IP +admin-dns-target-placeholder-ipv4 = 192.168.1.1 +admin-dns-target-placeholder-ipv6 = 2001:db8::1 +admin-dns-target-placeholder-cname = destino.ejemplo.com +admin-dns-target-help-a = Ingresa la dirección IPv4 a la que apuntar +admin-dns-target-help-aaaa = Ingresa la dirección IPv6 a la que apuntar +admin-dns-target-help-cname = Ingresa el nombre de dominio destino +admin-dns-auto-ssl = Aprovisionar certificado SSL automáticamente + +# Encabezados de Tabla DNS +admin-dns-col-hostname = Nombre de Host +admin-dns-col-type = Tipo +admin-dns-col-target = Destino +admin-dns-col-ttl = TTL +admin-dns-col-ssl = SSL +admin-dns-col-status = Estado +admin-dns-col-actions = Acciones + +# Estado DNS +admin-dns-status-active = Activo +admin-dns-status-pending = Pendiente +admin-dns-status-error = Error +admin-dns-ssl-enabled = SSL Habilitado +admin-dns-ssl-disabled = Sin SSL +admin-dns-ssl-pending = SSL Pendiente + +# Tarjetas de Ayuda DNS +admin-dns-help-title = Ayuda de Configuración DNS +admin-dns-help-a-record = Registro A +admin-dns-help-a-record-desc = Mapea un nombre de dominio a una dirección IPv4. Úsalo para apuntar tu nombre de host directamente a una IP de servidor. +admin-dns-help-aaaa-record = Registro AAAA +admin-dns-help-aaaa-record-desc = Mapea un nombre de dominio a una dirección IPv6. Similar al registro A pero para conectividad IPv6. +admin-dns-help-cname-record = Registro CNAME +admin-dns-help-cname-record-desc = Crea un alias de un dominio a otro. Útil para apuntar subdominios a tu dominio principal. +admin-dns-help-ssl = SSL/TLS +admin-dns-help-ssl-desc = Aprovisiona automáticamente certificados Let's Encrypt para conexiones HTTPS seguras. + +# Modales de Editar/Eliminar DNS +admin-dns-edit-title = Editar Registro DNS +admin-dns-remove-title = Eliminar Nombre de Host +admin-dns-remove-warning = Esto eliminará el registro DNS y cualquier certificado SSL asociado. El nombre de host ya no resolverá. + +# ----------------------------------------------------------------------------- +# Gestión de Bots +# ----------------------------------------------------------------------------- +admin-bots-title = Gestión de Bots +admin-bots-list = Lista de Bots +admin-bots-add = Agregar Bot +admin-bots-edit = Editar Bot +admin-bots-delete = Eliminar Bot +admin-bots-search = Buscar bots... +admin-bots-filter = Filtrar Bots +admin-bots-total = Total de Bots +admin-bots-active = Bots Activos +admin-bots-inactive = Bots Inactivos +admin-bots-draft = Bots en Borrador +admin-bots-published = Bots Publicados +admin-bots-no-bots = No se encontraron bots +admin-bots-confirm-delete = ¿Estás seguro de que deseas eliminar este bot? +admin-bots-deleted = Bot eliminado exitosamente +admin-bots-saved = Bot guardado exitosamente +admin-bots-duplicate = Duplicar Bot +admin-bots-export = Exportar Bot +admin-bots-import = Importar Bot +admin-bots-publish = Publicar +admin-bots-unpublish = Despublicar +admin-bots-test = Probar Bot +admin-bots-logs = Registros del Bot +admin-bots-analytics = Analíticas del Bot +admin-bots-conversations = Conversaciones +admin-bots-templates = Plantillas +admin-bots-dialogs = Diálogos +admin-bots-knowledge-base = Base de Conocimiento + +# Detalles del Bot +admin-bot-details = Detalles del Bot +admin-bot-name = Nombre del Bot +admin-bot-description = Descripción +admin-bot-avatar = Avatar +admin-bot-status = Estado +admin-bot-status-active = Activo +admin-bot-status-inactive = Inactivo +admin-bot-status-draft = Borrador +admin-bot-status-published = Publicado +admin-bot-language = Idioma +admin-bot-timezone = Zona Horaria +admin-bot-welcome-message = Mensaje de Bienvenida +admin-bot-fallback-message = Mensaje de Respaldo +admin-bot-channels = Canales +admin-bot-integrations = Integraciones +admin-bot-settings = Configuración +admin-bot-permissions = Permisos +admin-bot-analytics = Analíticas +admin-bot-usage = Uso +admin-bot-conversations-count = { $count -> + [one] { $count } conversación + *[other] { $count } conversaciones +} + +# ----------------------------------------------------------------------------- +# Gestión de Inquilinos +# ----------------------------------------------------------------------------- +admin-tenants-title = Gestión de Inquilinos +admin-tenants-list = Lista de Inquilinos +admin-tenants-add = Agregar Inquilino +admin-tenants-edit = Editar Inquilino +admin-tenants-delete = Eliminar Inquilino +admin-tenants-search = Buscar inquilinos... +admin-tenants-no-tenants = No se encontraron inquilinos +admin-tenants-confirm-delete = ¿Estás seguro de que deseas eliminar este inquilino? +admin-tenants-deleted = Inquilino eliminado exitosamente +admin-tenants-saved = Inquilino guardado exitosamente + +# ----------------------------------------------------------------------------- +# Configuración del Sistema +# ----------------------------------------------------------------------------- +admin-settings-title = Configuración del Sistema +admin-settings-general = General +admin-settings-security = Seguridad +admin-settings-email = Correo Electrónico +admin-settings-storage = Almacenamiento +admin-settings-integrations = Integraciones +admin-settings-api = API +admin-settings-webhooks = Webhooks +admin-settings-branding = Marca +admin-settings-saved = Configuración guardada exitosamente + +# ----------------------------------------------------------------------------- +# Registros y Monitoreo +# ----------------------------------------------------------------------------- +admin-logs-title = Registros del Sistema +admin-logs-filter = Filtrar Registros +admin-logs-level = Nivel +admin-logs-level-all = Todos +admin-logs-level-debug = Depuración +admin-logs-level-info = Información +admin-logs-level-warn = Advertencia +admin-logs-level-error = Error +admin-logs-search = Buscar registros... +admin-logs-refresh = Actualizar +admin-logs-export = Exportar Registros +admin-logs-clear = Limpiar Registros +admin-logs-no-logs = No se encontraron registros +admin-logs-timestamp = Marca de Tiempo +admin-logs-message = Mensaje +admin-logs-source = Fuente + +# ----------------------------------------------------------------------------- +# Seguridad +# ----------------------------------------------------------------------------- +admin-security-title = Configuración de Seguridad +admin-security-2fa = Autenticación de Dos Factores +admin-security-2fa-required = Requerir 2FA para todos los usuarios +admin-security-password-policy = Política de Contraseñas +admin-security-password-min-length = Longitud Mínima +admin-security-password-require-uppercase = Requerir Mayúsculas +admin-security-password-require-lowercase = Requerir Minúsculas +admin-security-password-require-numbers = Requerir Números +admin-security-password-require-symbols = Requerir Símbolos +admin-security-session-timeout = Tiempo de Espera de Sesión +admin-security-ip-whitelist = Lista Blanca de IP +admin-security-audit-log = Registro de Auditoría +admin-security-api-keys = Claves de API + +# ----------------------------------------------------------------------------- +# Integraciones +# ----------------------------------------------------------------------------- +admin-integrations-title = Integraciones +admin-integrations-available = Integraciones Disponibles +admin-integrations-connected = Integraciones Conectadas +admin-integrations-connect = Conectar +admin-integrations-disconnect = Desconectar +admin-integrations-configure = Configurar +admin-integrations-status-connected = Conectado +admin-integrations-status-disconnected = Desconectado +admin-integrations-status-error = Error +admin-integrations-no-integrations = No hay integraciones configuradas + +# ----------------------------------------------------------------------------- +# Facturación +# ----------------------------------------------------------------------------- +admin-billing-title = Facturación +admin-billing-current-plan = Plan Actual +admin-billing-usage = Uso +admin-billing-invoices = Facturas +admin-billing-payment-methods = Métodos de Pago +admin-billing-upgrade = Mejorar Plan +admin-billing-downgrade = Reducir Plan +admin-billing-cancel = Cancelar Suscripción diff --git a/locales/es/analytics.ftl b/locales/es/analytics.ftl new file mode 100644 index 0000000..d0a30cb --- /dev/null +++ b/locales/es/analytics.ftl @@ -0,0 +1,148 @@ +analytics-title = Analíticas +analytics-dashboard = Panel de Analíticas +analytics-overview = Resumen +analytics-reports = Informes +analytics-export = Exportar Datos +analytics-refresh = Actualizar Datos +analytics-last-updated = Última actualización: { $time } + +analytics-period-today = Hoy +analytics-period-yesterday = Ayer +analytics-period-week = Esta Semana +analytics-period-last-week = Semana Pasada +analytics-period-month = Este Mes +analytics-period-last-month = Mes Pasado +analytics-period-quarter = Este Trimestre +analytics-period-year = Este Año +analytics-period-custom = Rango Personalizado +analytics-period-from = Desde +analytics-period-to = Hasta +analytics-period-apply = Aplicar + +analytics-metric-total = Total +analytics-metric-average = Promedio +analytics-metric-min = Mínimo +analytics-metric-max = Máximo +analytics-metric-count = Cantidad +analytics-metric-sum = Suma +analytics-metric-percentage = Porcentaje +analytics-metric-growth = Crecimiento +analytics-metric-change = Cambio +analytics-metric-trend = Tendencia + +analytics-users-title = Analíticas de Usuarios +analytics-users-total = Total de Usuarios +analytics-users-active = Usuarios Activos +analytics-users-new = Nuevos Usuarios +analytics-users-returning = Usuarios Recurrentes +analytics-users-churned = Usuarios Perdidos +analytics-users-growth = Crecimiento de Usuarios +analytics-users-retention = Retención de Usuarios +analytics-users-engagement = Compromiso de Usuarios +analytics-users-by-country = Usuarios por País +analytics-users-by-device = Usuarios por Dispositivo +analytics-users-by-browser = Usuarios por Navegador +analytics-users-by-os = Usuarios por Sistema Operativo +analytics-users-sessions = Sesiones +analytics-users-avg-session = Duración Promedio de Sesión +analytics-users-page-views = Vistas de Página +analytics-users-bounce-rate = Tasa de Rebote + +analytics-bots-title = Analíticas de Bots +analytics-bots-total = Total de Bots +analytics-bots-active = Bots Activos +analytics-bots-conversations = Total de Conversaciones +analytics-bots-messages = Total de Mensajes +analytics-bots-avg-messages = Promedio de Mensajes por Conversación +analytics-bots-response-time = Tiempo de Respuesta Promedio +analytics-bots-resolution-rate = Tasa de Resolución +analytics-bots-satisfaction = Puntuación de Satisfacción +analytics-bots-handoff-rate = Tasa de Transferencia a Humanos +analytics-bots-fallback-rate = Tasa de Respaldo +analytics-bots-intent-accuracy = Precisión de Intención +analytics-bots-top-intents = Intenciones Principales +analytics-bots-top-topics = Temas Principales +analytics-bots-by-channel = Conversaciones por Canal +analytics-bots-by-hour = Conversaciones por Hora +analytics-bots-by-day = Conversaciones por Día + +analytics-conversations-title = Analíticas de Conversaciones +analytics-conversations-total = Total de Conversaciones +analytics-conversations-completed = Completadas +analytics-conversations-abandoned = Abandonadas +analytics-conversations-transferred = Transferidas +analytics-conversations-avg-duration = Duración Promedio +analytics-conversations-avg-messages = Mensajes Promedio +analytics-conversations-first-response = Tiempo de Primera Respuesta +analytics-conversations-wait-time = Tiempo de Espera Promedio +analytics-conversations-peak-hours = Horas Pico +analytics-conversations-sentiment = Análisis de Sentimiento +analytics-conversations-sentiment-positive = Positivo +analytics-conversations-sentiment-neutral = Neutral +analytics-conversations-sentiment-negative = Negativo +analytics-conversations-languages = Por Idioma +analytics-conversations-sources = Por Fuente + +analytics-performance-title = Analíticas de Rendimiento +analytics-performance-uptime = Tiempo de Actividad +analytics-performance-availability = Disponibilidad +analytics-performance-response-time = Tiempo de Respuesta +analytics-performance-latency = Latencia +analytics-performance-throughput = Rendimiento +analytics-performance-error-rate = Tasa de Errores +analytics-performance-cpu = Uso de CPU +analytics-performance-memory = Uso de Memoria +analytics-performance-disk = Uso de Disco +analytics-performance-network = E/S de Red +analytics-performance-requests = Solicitudes/seg +analytics-performance-concurrent = Usuarios Concurrentes +analytics-performance-queue-size = Tamaño de Cola +analytics-performance-cache-hit = Tasa de Aciertos de Caché + +analytics-charts-title = Gráficos +analytics-charts-line = Gráfico de Líneas +analytics-charts-bar = Gráfico de Barras +analytics-charts-pie = Gráfico Circular +analytics-charts-area = Gráfico de Área +analytics-charts-scatter = Gráfico de Dispersión +analytics-charts-heatmap = Mapa de Calor +analytics-charts-funnel = Gráfico de Embudo +analytics-charts-table = Tabla +analytics-charts-no-data = No hay datos disponibles +analytics-charts-loading = Cargando datos... + +analytics-filters-title = Filtros +analytics-filters-apply = Aplicar Filtros +analytics-filters-clear = Limpiar Filtros +analytics-filters-save = Guardar Filtro +analytics-filters-load = Cargar Filtro +analytics-filters-date-range = Rango de Fechas +analytics-filters-bot = Bot +analytics-filters-channel = Canal +analytics-filters-user = Usuario +analytics-filters-status = Estado +analytics-filters-sentiment = Sentimiento + +analytics-export-csv = Exportar como CSV +analytics-export-excel = Exportar como Excel +analytics-export-pdf = Exportar como PDF +analytics-export-json = Exportar como JSON +analytics-export-in-progress = Exportación en progreso... +analytics-export-complete = Exportación completada +analytics-export-failed = La exportación falló + +analytics-realtime = Tiempo Real +analytics-realtime-users = Usuarios en Tiempo Real +analytics-realtime-conversations = Conversaciones Activas +analytics-realtime-events = Eventos en Vivo +analytics-realtime-connected = Conectado +analytics-realtime-disconnected = Desconectado + +analytics-comparison = Comparación +analytics-comparison-previous = Período Anterior +analytics-comparison-year-over-year = Año contra Año +analytics-comparison-month-over-month = Mes contra Mes +analytics-comparison-week-over-week = Semana contra Semana +analytics-comparison-increase = Aumento +analytics-comparison-decrease = Disminución +analytics-comparison-no-change = Sin Cambio diff --git a/locales/es/auth.ftl b/locales/es/auth.ftl new file mode 100644 index 0000000..71f7ede --- /dev/null +++ b/locales/es/auth.ftl @@ -0,0 +1,256 @@ +# ============================================================================= +# General Bots - Authentication Translations (Spanish) +# ============================================================================= +# Traducciones de autenticación, Passkey/WebAuthn y seguridad +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Authentication General +# ----------------------------------------------------------------------------- +auth-title = Autenticación +auth-login = Iniciar Sesión +auth-logout = Cerrar Sesión +auth-signup = Registrarse +auth-welcome = Bienvenido +auth-welcome-back = ¡Bienvenido de nuevo, { $name }! +auth-session-expired = Tu sesión ha expirado +auth-session-timeout = La sesión expira en { $minutes } minutos + +# ----------------------------------------------------------------------------- +# Login Form +# ----------------------------------------------------------------------------- +auth-login-title = Inicia sesión en tu cuenta +auth-login-subtitle = Introduce tus credenciales para continuar +auth-login-email = Correo Electrónico +auth-login-username = Nombre de Usuario +auth-login-password = Contraseña +auth-login-remember = Recordarme +auth-login-forgot = ¿Olvidaste tu contraseña? +auth-login-submit = Iniciar Sesión +auth-login-loading = Iniciando sesión... +auth-login-or = o continúa con +auth-login-no-account = ¿No tienes una cuenta? +auth-login-create-account = Crear una cuenta + +# ----------------------------------------------------------------------------- +# Passkey/WebAuthn +# ----------------------------------------------------------------------------- +passkey-title = Llaves de Acceso +passkey-subtitle = Autenticación segura sin contraseña +passkey-description = Las llaves de acceso utilizan la biometría o PIN de tu dispositivo para un inicio de sesión seguro y resistente al phishing +passkey-what-is = ¿Qué es una llave de acceso? +passkey-benefits = Beneficios de las llaves de acceso +passkey-benefit-secure = Más seguro que las contraseñas +passkey-benefit-easy = Fácil de usar - sin contraseñas que recordar +passkey-benefit-fast = Inicio de sesión rápido con biometría +passkey-benefit-phishing = Resistente a ataques de phishing + +# ----------------------------------------------------------------------------- +# Passkey Registration +# ----------------------------------------------------------------------------- +passkey-register-title = Configurar Llave de Acceso +passkey-register-subtitle = Crea una llave de acceso para un inicio de sesión más rápido y seguro +passkey-register-description = Tu dispositivo te pedirá verificar tu identidad usando huella dactilar, rostro o bloqueo de pantalla +passkey-register-button = Crear Llave de Acceso +passkey-register-name = Nombre de la Llave de Acceso +passkey-register-name-placeholder = ej: MacBook Pro, iPhone +passkey-register-name-hint = Dale un nombre a tu llave de acceso para identificarla después +passkey-register-loading = Configurando llave de acceso... +passkey-register-verifying = Verificando con tu dispositivo... +passkey-register-success = Llave de acceso creada con éxito +passkey-register-error = Error al crear llave de acceso +passkey-register-cancelled = Configuración de llave de acceso cancelada +passkey-register-not-supported = Tu navegador no soporta llaves de acceso + +# ----------------------------------------------------------------------------- +# Passkey Authentication +# ----------------------------------------------------------------------------- +passkey-login-title = Iniciar Sesión con Llave de Acceso +passkey-login-subtitle = Usa tu llave de acceso para un inicio de sesión seguro sin contraseña +passkey-login-button = Iniciar Sesión con Llave de Acceso +passkey-login-loading = Autenticando... +passkey-login-verifying = Verificando llave de acceso... +passkey-login-success = Sesión iniciada con éxito +passkey-login-error = Error en la autenticación +passkey-login-cancelled = Autenticación cancelada +passkey-login-no-passkeys = No se encontraron llaves de acceso para esta cuenta +passkey-login-try-another = Probar otro método + +# ----------------------------------------------------------------------------- +# Passkey Management +# ----------------------------------------------------------------------------- +passkey-manage-title = Gestionar Llaves de Acceso +passkey-manage-subtitle = Ver y gestionar tus llaves de acceso registradas +passkey-manage-count = { $count -> + [one] { $count } llave de acceso registrada + *[other] { $count } llaves de acceso registradas +} +passkey-manage-add = Añadir Nueva Llave de Acceso +passkey-manage-rename = Renombrar +passkey-manage-delete = Eliminar +passkey-manage-created = Creada el { $date } +passkey-manage-last-used = Último uso el { $date } +passkey-manage-never-used = Nunca usada +passkey-manage-this-device = Este dispositivo +passkey-manage-cross-platform = Multiplataforma +passkey-manage-platform = Autenticador de plataforma +passkey-manage-security-key = Llave de seguridad +passkey-manage-empty = No hay llaves de acceso registradas +passkey-manage-empty-description = Añade una llave de acceso para un inicio de sesión más rápido y seguro + +# ----------------------------------------------------------------------------- +# Passkey Deletion +# ----------------------------------------------------------------------------- +passkey-delete-title = Eliminar Llave de Acceso +passkey-delete-confirm = ¿Estás seguro de que quieres eliminar esta llave de acceso? +passkey-delete-warning = No podrás usar esta llave de acceso para iniciar sesión +passkey-delete-last-warning = Esta es tu única llave de acceso. Necesitarás usar autenticación con contraseña después de eliminarla. +passkey-delete-success = Llave de acceso eliminada con éxito +passkey-delete-error = Error al eliminar llave de acceso + +# ----------------------------------------------------------------------------- +# Password Fallback +# ----------------------------------------------------------------------------- +passkey-fallback-title = Usar Contraseña +passkey-fallback-description = Si no puedes usar tu llave de acceso, puedes iniciar sesión con tu contraseña +passkey-fallback-button = Usar Contraseña +passkey-fallback-or-passkey = O inicia sesión con llave de acceso +passkey-fallback-setup-prompt = Configura una llave de acceso para un inicio de sesión más rápido la próxima vez +passkey-fallback-setup-later = Quizás después +passkey-fallback-setup-now = Configurar ahora +passkey-fallback-locked = Cuenta temporalmente bloqueada +passkey-fallback-locked-description = Demasiados intentos fallidos. Inténtalo de nuevo en { $minutes } minutos. +passkey-fallback-attempts = { $remaining } intentos restantes + +# ----------------------------------------------------------------------------- +# Multi-Factor Authentication +# ----------------------------------------------------------------------------- +mfa-title = Autenticación de Dos Factores +mfa-subtitle = Añade una capa extra de seguridad a tu cuenta +mfa-enabled = La autenticación de dos factores está activada +mfa-disabled = La autenticación de dos factores está desactivada +mfa-enable = Activar 2FA +mfa-disable = Desactivar 2FA +mfa-setup = Configurar 2FA +mfa-verify = Verificar Código +mfa-code = Código de Verificación +mfa-code-placeholder = Introduce el código de 6 dígitos +mfa-code-sent = Código enviado a { $destination } +mfa-code-expired = El código ha expirado +mfa-code-invalid = Código inválido +mfa-resend = Reenviar código +mfa-resend-in = Reenviar en { $seconds }s +mfa-methods = Métodos de Autenticación +mfa-method-app = Aplicación Autenticadora +mfa-method-sms = SMS +mfa-method-email = Correo Electrónico +mfa-method-passkey = Llave de Acceso +mfa-backup-codes = Códigos de Respaldo +mfa-backup-codes-description = Guarda estos códigos en un lugar seguro. Cada código solo puede usarse una vez. +mfa-backup-codes-remaining = { $count } códigos de respaldo restantes +mfa-backup-codes-generate = Generar Nuevos Códigos +mfa-backup-codes-download = Descargar Códigos +mfa-backup-codes-copy = Copiar Códigos + +# ----------------------------------------------------------------------------- +# Password Management +# ----------------------------------------------------------------------------- +password-title = Contraseña +password-change = Cambiar Contraseña +password-current = Contraseña Actual +password-new = Nueva Contraseña +password-confirm = Confirmar Nueva Contraseña +password-requirements = Requisitos de la Contraseña +password-requirement-length = Al menos { $length } caracteres +password-requirement-uppercase = Al menos una letra mayúscula +password-requirement-lowercase = Al menos una letra minúscula +password-requirement-number = Al menos un número +password-requirement-special = Al menos un carácter especial +password-strength = Fortaleza de la Contraseña +password-strength-weak = Débil +password-strength-fair = Aceptable +password-strength-good = Buena +password-strength-strong = Fuerte +password-match = Las contraseñas coinciden +password-mismatch = Las contraseñas no coinciden +password-changed = Contraseña cambiada con éxito +password-change-error = Error al cambiar contraseña + +# ----------------------------------------------------------------------------- +# Password Reset +# ----------------------------------------------------------------------------- +password-reset-title = Restablecer Contraseña +password-reset-subtitle = Introduce tu correo para recibir un enlace de restablecimiento +password-reset-email-sent = Correo de restablecimiento de contraseña enviado +password-reset-email-sent-description = Revisa tu correo para instrucciones de restablecimiento de contraseña +password-reset-invalid-token = Enlace de restablecimiento inválido o expirado +password-reset-success = Contraseña restablecida con éxito +password-reset-error = Error al restablecer contraseña + +# ----------------------------------------------------------------------------- +# Session Management +# ----------------------------------------------------------------------------- +session-title = Sesiones Activas +session-subtitle = Gestiona tus sesiones activas en diferentes dispositivos +session-current = Sesión Actual +session-device = Dispositivo +session-location = Ubicación +session-last-active = Última Actividad +session-ip-address = Dirección IP +session-browser = Navegador +session-os = Sistema Operativo +session-sign-out = Cerrar Sesión +session-sign-out-all = Cerrar Todas las Otras Sesiones +session-sign-out-confirm = ¿Estás seguro de que quieres cerrar esta sesión? +session-sign-out-all-confirm = ¿Estás seguro de que quieres cerrar todas las otras sesiones? + +# ----------------------------------------------------------------------------- +# Security Settings +# ----------------------------------------------------------------------------- +security-title = Seguridad +security-subtitle = Gestiona la configuración de seguridad de tu cuenta +security-overview = Resumen de Seguridad +security-last-login = Último Inicio de Sesión +security-password-last-changed = Último Cambio de Contraseña +security-security-checkup = Revisión de Seguridad +security-checkup-description = Revisa tu configuración de seguridad +security-recommendation = Recomendación +security-add-passkey = Añade una llave de acceso para un inicio de sesión más seguro +security-enable-mfa = Activa la autenticación de dos factores +security-update-password = Actualiza tu contraseña regularmente + +# ----------------------------------------------------------------------------- +# Error Messages +# ----------------------------------------------------------------------------- +auth-error-invalid-credentials = Correo o contraseña inválidos +auth-error-account-locked = Cuenta bloqueada. Por favor, contacta con soporte. +auth-error-account-disabled = La cuenta ha sido desactivada +auth-error-email-not-verified = Por favor, verifica tu dirección de correo +auth-error-too-many-attempts = Demasiados intentos fallidos. Por favor, inténtalo más tarde. +auth-error-network = Error de red. Por favor, comprueba tu conexión. +auth-error-server = Error del servidor. Por favor, inténtalo más tarde. +auth-error-unknown = Ha ocurrido un error desconocido +auth-error-session-invalid = Sesión inválida. Por favor, inicia sesión de nuevo. +auth-error-token-expired = Tu sesión ha expirado. Por favor, inicia sesión de nuevo. +auth-error-unauthorized = No estás autorizado para realizar esta acción + +# ----------------------------------------------------------------------------- +# Success Messages +# ----------------------------------------------------------------------------- +auth-success-login = Sesión iniciada con éxito +auth-success-logout = Sesión cerrada con éxito +auth-success-signup = Cuenta creada con éxito +auth-success-password-changed = Contraseña cambiada con éxito +auth-success-email-verified = Correo verificado con éxito +auth-success-mfa-enabled = Autenticación de dos factores activada +auth-success-mfa-disabled = Autenticación de dos factores desactivada +auth-success-session-terminated = Sesión terminada con éxito + +# ----------------------------------------------------------------------------- +# Notifications +# ----------------------------------------------------------------------------- +auth-notify-new-login = Nuevo inicio de sesión desde { $device } en { $location } +auth-notify-password-changed = Tu contraseña ha sido cambiada +auth-notify-mfa-enabled = La autenticación de dos factores ha sido activada +auth-notify-passkey-added = Nueva llave de acceso añadida a tu cuenta +auth-notify-suspicious-activity = Actividad sospechosa detectada en tu cuenta diff --git a/locales/es/bot-templates.ftl b/locales/es/bot-templates.ftl new file mode 100644 index 0000000..f636e25 --- /dev/null +++ b/locales/es/bot-templates.ftl @@ -0,0 +1,150 @@ +bot-greeting-default = ¡Hola! ¿En qué puedo ayudarte hoy? +bot-greeting-named = ¡Hola, { $name }! ¿En qué puedo ayudarte hoy? +bot-goodbye = ¡Adiós! ¡Que tengas un excelente día! +bot-help-prompt = Puedo ayudarte con: { $topics }. ¿Qué te gustaría saber? +bot-thank-you = Gracias por tu mensaje. ¿En qué puedo asistirte hoy? +bot-echo-intro = Bot de Eco: Repetiré todo lo que digas. Escribe 'salir' para terminar. +bot-you-said = Dijiste: { $message } +bot-thinking = Déjame pensar en eso... +bot-processing = Procesando tu solicitud... +bot-error-occurred = Lo siento, algo salió mal. Por favor intenta de nuevo. +bot-not-understood = No entendí eso. ¿Podrías reformularlo? +bot-confirm-action = ¿Estás seguro de que deseas continuar? +bot-action-cancelled = Acción cancelada. +bot-action-completed = ¡Listo! + +bot-lead-welcome = ¡Bienvenido! Déjame ayudarte a comenzar. +bot-lead-ask-name = ¿Cuál es tu nombre? +bot-lead-ask-email = ¿Y tu correo electrónico? +bot-lead-ask-company = ¿De qué empresa eres? +bot-lead-ask-phone = ¿Cuál es tu número de teléfono? +bot-lead-hot = ¡Excelente! Nuestro equipo de ventas se comunicará contigo pronto. +bot-lead-nurture = ¡Gracias por tu interés! Te enviaremos algunos recursos. +bot-lead-score = Tu puntuación de prospecto es { $score } de 100. +bot-lead-saved = Tu información ha sido guardada exitosamente. + +bot-schedule-created = Ejecutando tarea programada: { $name } +bot-schedule-next = Próxima ejecución programada para { $datetime } +bot-schedule-cancelled = Programación cancelada. +bot-schedule-paused = Programación pausada. +bot-schedule-resumed = Programación reanudada. + +bot-monitor-alert = Alerta: { $subject } ha cambiado +bot-monitor-threshold = { $metric } ha excedido el umbral: { $value } +bot-monitor-recovered = { $subject } ha vuelto a la normalidad. +bot-monitor-status = Estado actual: { $status } + +bot-order-welcome = ¡Bienvenido a nuestra tienda! ¿En qué puedo ayudarte? +bot-order-track = Rastrear mi pedido +bot-order-browse = Ver productos +bot-order-support = Contactar soporte +bot-order-enter-id = Por favor ingresa tu número de pedido: +bot-order-status = Estado del pedido: { $status } +bot-order-shipped = ¡Tu pedido ha sido enviado! Número de seguimiento: { $tracking } +bot-order-delivered = Tu pedido ha sido entregado. +bot-order-processing = Tu pedido está siendo procesado. +bot-order-cancelled = Tu pedido ha sido cancelado. +bot-order-ticket = Ticket de soporte creado: #{ $ticket } +bot-order-products-available = Aquí están nuestros productos disponibles: +bot-order-product-item = { $name } - { $price } +bot-order-cart-added = { $product } agregado a tu carrito. +bot-order-cart-total = El total de tu carrito es { $total }. +bot-order-checkout = Procediendo al pago... + +bot-hr-welcome = Asistente de RR.HH. aquí. ¿En qué puedo ayudarte? +bot-hr-request-leave = Solicitar permiso +bot-hr-check-balance = Consultar saldo +bot-hr-view-policies = Ver políticas +bot-hr-leave-type = ¿Qué tipo de permiso? (vacaciones/enfermedad/personal) +bot-hr-start-date = ¿Fecha de inicio? (AAAA-MM-DD) +bot-hr-end-date = ¿Fecha de fin? (AAAA-MM-DD) +bot-hr-leave-submitted = ¡Solicitud de permiso enviada! Tu gerente la revisará. +bot-hr-leave-approved = Tu solicitud de permiso ha sido aprobada. +bot-hr-leave-rejected = Tu solicitud de permiso ha sido rechazada. +bot-hr-leave-pending = Tu solicitud de permiso está pendiente de aprobación. +bot-hr-balance-title = Tu saldo de permisos: +bot-hr-vacation-days = Vacaciones: { $days } días +bot-hr-sick-days = Enfermedad: { $days } días +bot-hr-personal-days = Personal: { $days } días +bot-hr-policy-found = Aquí está la información de la política que solicitaste: +bot-hr-policy-not-found = Política no encontrada. Por favor verifica el nombre de la política. + +bot-health-welcome = Bienvenido a nuestro centro de salud. ¿En qué puedo ayudarte? +bot-health-book = Agendar cita +bot-health-cancel = Cancelar cita +bot-health-view = Ver mis citas +bot-health-reschedule = Reprogramar cita +bot-health-type = ¿Qué tipo de cita? (general/especialista/laboratorio) +bot-health-doctor = ¿Qué doctor preferirías? +bot-health-date = ¿Qué fecha te funciona mejor? +bot-health-time = ¿Qué horario preferirías? +bot-health-confirmed = Tu cita ha sido confirmada para { $datetime } con { $doctor }. +bot-health-cancelled = Tu cita ha sido cancelada. +bot-health-rescheduled = Tu cita ha sido reprogramada para { $datetime }. +bot-health-reminder = Recordatorio: Tienes una cita el { $datetime }. +bot-health-no-appointments = No tienes citas próximas. +bot-health-appointments-list = Tus próximas citas: + +bot-support-welcome = ¿En qué puedo ayudarte hoy? +bot-support-describe = Por favor describe tu problema: +bot-support-category = ¿Qué categoría describe mejor tu problema? +bot-support-priority = ¿Qué tan urgente es este problema? +bot-support-ticket-created = Se ha creado el ticket de soporte #{ $ticket }. +bot-support-ticket-status = Estado del ticket #{ $ticket }: { $status } +bot-support-ticket-updated = Tu ticket ha sido actualizado. +bot-support-ticket-resolved = Tu ticket ha sido resuelto. Por favor avísanos si necesitas más asistencia. +bot-support-transfer = Transfiriéndote a un agente humano... +bot-support-wait-time = Tiempo de espera estimado: { $minutes } minutos. +bot-support-agent-joined = El agente { $name } se ha unido a la conversación. + +bot-survey-intro = ¡Nos encantaría escuchar tus comentarios! +bot-survey-question = { $question } +bot-survey-scale = En una escala del 1 al 10, ¿cómo calificarías { $subject }? +bot-survey-open = Por favor comparte cualquier comentario adicional: +bot-survey-thanks = ¡Gracias por tus comentarios! +bot-survey-completed = Encuesta completada exitosamente. +bot-survey-skip = Puedes omitir esta pregunta si lo prefieres. + +bot-notification-new-message = Tienes un nuevo mensaje de { $sender }. +bot-notification-task-due = La tarea "{ $task }" vence { $when }. +bot-notification-reminder = Recordatorio: { $message } +bot-notification-update = Actualización: { $message } +bot-notification-alert = Alerta: { $message } + +bot-command-help = Comandos disponibles: +bot-command-unknown = Comando desconocido. Escribe 'ayuda' para ver los comandos disponibles. +bot-command-invalid = Sintaxis de comando inválida. Uso: { $usage } + +bot-transfer-to-human = Transfiriéndote a un agente humano. Por favor espera... +bot-transfer-complete = Ahora estás conectado con { $agent }. +bot-transfer-unavailable = No hay agentes disponibles actualmente. Por favor intenta más tarde. +bot-transfer-queue-position = Eres el número { $position } en la cola. + +bot-auth-login-prompt = Por favor ingresa tus credenciales para continuar. +bot-auth-login-success = Has iniciado sesión exitosamente. +bot-auth-login-failed = Error al iniciar sesión. Por favor verifica tus credenciales. +bot-auth-logout-success = Has cerrado sesión. +bot-auth-session-expired = Tu sesión ha expirado. Por favor inicia sesión nuevamente. + +bot-file-upload-prompt = Por favor sube tu archivo. +bot-file-upload-success = Archivo "{ $filename }" subido exitosamente. +bot-file-upload-failed = Error al subir el archivo. Por favor intenta de nuevo. +bot-file-download-ready = Tu archivo está listo para descargar. +bot-file-processing = Procesando tu archivo... + +bot-payment-amount = El monto total es { $amount }. +bot-payment-method = Por favor selecciona un método de pago. +bot-payment-processing = Procesando tu pago... +bot-payment-success = ¡Pago exitoso! ID de transacción: { $transactionId } +bot-payment-failed = El pago falló. Por favor intenta de nuevo o usa otro método de pago. +bot-payment-refund = Tu reembolso de { $amount } ha sido procesado. + +bot-subscription-active = Tu suscripción está activa hasta { $endDate }. +bot-subscription-expired = Tu suscripción ha expirado. +bot-subscription-renew = ¿Te gustaría renovar tu suscripción? +bot-subscription-upgraded = Tu suscripción ha sido mejorada a { $plan }. +bot-subscription-cancelled = Tu suscripción ha sido cancelada. + +bot-feedback-positive = ¡Gracias por tus comentarios positivos! +bot-feedback-negative = Lamentamos escuchar eso. ¿Cómo podemos mejorar? +bot-feedback-rating = Calificaste esta interacción { $rating } de 5. diff --git a/locales/es/channels.ftl b/locales/es/channels.ftl new file mode 100644 index 0000000..7f49e4c --- /dev/null +++ b/locales/es/channels.ftl @@ -0,0 +1,186 @@ +channel-web = Chat Web +channel-whatsapp = WhatsApp +channel-telegram = Telegram +channel-slack = Slack +channel-teams = Microsoft Teams +channel-email = Correo Electrónico +channel-sms = SMS +channel-instagram = Instagram +channel-messenger = Facebook Messenger +channel-discord = Discord +channel-voice = Voz +channel-api = API + +channel-status-connected = Conectado +channel-status-disconnected = Desconectado +channel-status-connecting = Conectando... +channel-status-error = Error de Conexión +channel-status-pending = Configuración Pendiente +channel-status-active = Activo +channel-status-inactive = Inactivo +channel-status-suspended = Suspendido + +channel-setup-title = Configuración de Canal +channel-setup-description = Conecta tu bot a diferentes canales de comunicación +channel-setup-select = Selecciona un canal para configurar +channel-setup-configure = Configurar Canal +channel-setup-test = Probar Conexión +channel-setup-save = Guardar Configuración +channel-setup-cancel = Cancelar +channel-setup-reset = Restablecer Valores Predeterminados + +channel-connect = Conectar +channel-disconnect = Desconectar +channel-reconnect = Reconectar +channel-refresh = Actualizar Estado +channel-settings = Configuración del Canal +channel-delete = Eliminar Canal +channel-confirm-delete = ¿Estás seguro de que deseas eliminar este canal? +channel-deleted = Canal eliminado exitosamente +channel-saved = Configuración del canal guardada + +channel-whatsapp-phone = Número de Teléfono +channel-whatsapp-business-id = ID de Cuenta Empresarial +channel-whatsapp-api-key = Clave de API +channel-whatsapp-webhook = URL del Webhook +channel-whatsapp-verify-token = Token de Verificación +channel-whatsapp-template = Plantilla de Mensaje +channel-whatsapp-templates = Plantillas de Mensajes +channel-whatsapp-template-create = Crear Plantilla +channel-whatsapp-template-status = Estado de la Plantilla +channel-whatsapp-template-approved = Aprobada +channel-whatsapp-template-pending = Pendiente de Aprobación +channel-whatsapp-template-rejected = Rechazada +channel-whatsapp-24h-window = Ventana de mensajes de 24 horas +channel-whatsapp-session-active = Sesión activa +channel-whatsapp-session-expired = Sesión expirada + +channel-telegram-bot-token = Token del Bot +channel-telegram-bot-username = Nombre de Usuario del Bot +channel-telegram-webhook = URL del Webhook +channel-telegram-commands = Comandos del Bot +channel-telegram-command-add = Agregar Comando +channel-telegram-command-name = Nombre del Comando +channel-telegram-command-description = Descripción +channel-telegram-inline-mode = Modo en Línea +channel-telegram-group-privacy = Modo de Privacidad de Grupo + +channel-slack-workspace = Espacio de Trabajo +channel-slack-bot-token = Token del Bot +channel-slack-signing-secret = Secreto de Firma +channel-slack-app-id = ID de la Aplicación +channel-slack-channels = Canales +channel-slack-channel-select = Seleccionar Canales +channel-slack-events = Suscripciones a Eventos +channel-slack-slash-commands = Comandos de Barra +channel-slack-interactivity = Interactividad + +channel-teams-tenant-id = ID del Inquilino +channel-teams-app-id = ID de Aplicación +channel-teams-app-secret = Secreto de Aplicación +channel-teams-bot-id = ID del Bot +channel-teams-manifest = Manifiesto de la App +channel-teams-publish = Publicar en Teams +channel-teams-install = Instalar en Teams + +channel-email-smtp-host = Servidor SMTP +channel-email-smtp-port = Puerto SMTP +channel-email-smtp-user = Usuario SMTP +channel-email-smtp-password = Contraseña SMTP +channel-email-smtp-encryption = Cifrado +channel-email-imap-host = Servidor IMAP +channel-email-imap-port = Puerto IMAP +channel-email-from-name = Nombre del Remitente +channel-email-from-address = Dirección del Remitente +channel-email-reply-to = Dirección de Respuesta +channel-email-signature = Firma de Correo + +channel-instagram-account = Cuenta de Instagram +channel-instagram-page-id = ID de Página +channel-instagram-access-token = Token de Acceso +channel-instagram-business = Cuenta Empresarial +channel-instagram-comments = Respuestas a Comentarios +channel-instagram-stories = Menciones en Historias +channel-instagram-dm = Mensajes Directos + +channel-messenger-page-id = ID de Página +channel-messenger-app-id = ID de Aplicación +channel-messenger-app-secret = Secreto de Aplicación +channel-messenger-page-token = Token de Acceso de Página +channel-messenger-verify-token = Token de Verificación +channel-messenger-persistent-menu = Menú Persistente +channel-messenger-get-started = Botón de Comenzar + +channel-sms-provider = Proveedor de SMS +channel-sms-twilio = Twilio +channel-sms-vonage = Vonage +channel-sms-account-sid = SID de Cuenta +channel-sms-auth-token = Token de Autenticación +channel-sms-phone-number = Número de Teléfono +channel-sms-sender-id = ID del Remitente + +channel-voice-provider = Proveedor de Voz +channel-voice-twilio = Twilio +channel-voice-vonage = Vonage +channel-voice-phone-number = Número de Teléfono +channel-voice-greeting = Saludo de Voz +channel-voice-fallback = Mensaje de Respaldo +channel-voice-transcription = Habilitar Transcripción +channel-voice-recording = Habilitar Grabación +channel-voice-language = Idioma de Voz +channel-voice-voice-type = Tipo de Voz + +channel-discord-bot-token = Token del Bot +channel-discord-client-id = ID de Cliente +channel-discord-client-secret = Secreto de Cliente +channel-discord-guild = Servidor (Guild) +channel-discord-channels = Canales +channel-discord-permissions = Permisos del Bot +channel-discord-invite-url = URL de Invitación + +channel-api-endpoint = Punto Final de API +channel-api-key = Clave de API +channel-api-secret = Secreto de API +channel-api-webhook = URL del Webhook +channel-api-rate-limit = Límite de Tasa +channel-api-documentation = Documentación de API + +channel-widget-title = Widget Web +channel-widget-position = Posición del Widget +channel-widget-position-left = Abajo a la Izquierda +channel-widget-position-right = Abajo a la Derecha +channel-widget-color = Color Principal +channel-widget-header = Texto del Encabezado +channel-widget-placeholder = Texto de Marcador +channel-widget-welcome = Mensaje de Bienvenida +channel-widget-avatar = Avatar del Bot +channel-widget-bubble = Burbuja de Chat +channel-widget-preview = Vista Previa del Widget +channel-widget-embed-code = Código para Incrustar +channel-widget-copy-code = Copiar Código +channel-widget-code-copied = Código copiado al portapapeles + +channel-routing-title = Enrutamiento de Canal +channel-routing-default = Canal Predeterminado +channel-routing-rules = Reglas de Enrutamiento +channel-routing-add-rule = Agregar Regla +channel-routing-condition = Condición +channel-routing-action = Acción +channel-routing-priority = Prioridad +channel-routing-fallback = Canal de Respaldo + +channel-analytics-messages = Mensajes +channel-analytics-conversations = Conversaciones +channel-analytics-users = Usuarios Únicos +channel-analytics-response-time = Tiempo de Respuesta Promedio +channel-analytics-satisfaction = Puntuación de Satisfacción +channel-analytics-by-channel = Analíticas por Canal + +channel-error-connection = Error al conectar al canal +channel-error-authentication = Autenticación fallida +channel-error-configuration = Configuración inválida +channel-error-rate-limit = Límite de tasa excedido +channel-error-webhook = Verificación del webhook fallida +channel-error-permission = Permisos insuficientes +channel-error-not-found = Canal no encontrado +channel-error-already-exists = Canal ya configurado diff --git a/locales/es/common.ftl b/locales/es/common.ftl new file mode 100644 index 0000000..56590d3 --- /dev/null +++ b/locales/es/common.ftl @@ -0,0 +1,347 @@ +# ============================================================================ +# General Bots - Traducciones Comunes (Español) +# ============================================================================ +# Este archivo contiene cadenas compartidas utilizadas en todos los componentes de GB. +# Mantener los IDs de mensaje en minúsculas con guiones: categoría-subcategoría-descriptor +# ============================================================================ + +# ----------------------------------------------------------------------------- +# Marca +# ----------------------------------------------------------------------------- +app-name = General Bots +app-tagline = Tu espacio de trabajo de productividad impulsado por IA + +# ----------------------------------------------------------------------------- +# Acciones Comunes +# ----------------------------------------------------------------------------- +action-save = Guardar +action-cancel = Cancelar +action-delete = Eliminar +action-edit = Editar +action-close = Cerrar +action-confirm = Confirmar +action-retry = Reintentar +action-back = Atrás +action-next = Siguiente +action-submit = Enviar +action-search = Buscar +action-refresh = Actualizar +action-copy = Copiar +action-paste = Pegar +action-undo = Deshacer +action-redo = Rehacer +action-select = Seleccionar +action-select-all = Seleccionar Todo +action-clear = Limpiar +action-reset = Restablecer +action-apply = Aplicar +action-create = Crear +action-update = Actualizar +action-remove = Quitar +action-add = Agregar +action-upload = Subir +action-download = Descargar +action-export = Exportar +action-import = Importar +action-share = Compartir +action-send = Enviar +action-reply = Responder +action-forward = Reenviar +action-archive = Archivar +action-restore = Restaurar +action-duplicate = Duplicar +action-rename = Renombrar +action-move = Mover +action-filter = Filtrar +action-sort = Ordenar +action-view = Ver +action-hide = Ocultar +action-show = Mostrar +action-expand = Expandir +action-collapse = Contraer +action-enable = Habilitar +action-disable = Deshabilitar +action-connect = Conectar +action-disconnect = Desconectar +action-sync = Sincronizar +action-start = Iniciar +action-stop = Detener +action-pause = Pausar +action-resume = Reanudar +action-continue = Continuar +action-finish = Finalizar +action-complete = Completar +action-approve = Aprobar +action-reject = Rechazar +action-accept = Aceptar +action-decline = Rechazar +action-login = Iniciar Sesión +action-logout = Cerrar Sesión +action-signup = Registrarse +action-forgot-password = Olvidé mi Contraseña + +# ----------------------------------------------------------------------------- +# Etiquetas Comunes +# ----------------------------------------------------------------------------- +label-loading = Cargando... +label-saving = Guardando... +label-processing = Procesando... +label-searching = Buscando... +label-uploading = Subiendo... +label-downloading = Descargando... +label-no-results = No se encontraron resultados +label-no-data = No hay datos disponibles +label-empty = Vacío +label-none = Ninguno +label-all = Todo +label-selected = Seleccionado +label-required = Requerido +label-optional = Opcional +label-default = Predeterminado +label-custom = Personalizado +label-new = Nuevo +label-draft = Borrador +label-pending = Pendiente +label-active = Activo +label-inactive = Inactivo +label-enabled = Habilitado +label-disabled = Deshabilitado +label-public = Público +label-private = Privado +label-shared = Compartido +label-yes = Sí +label-no = No +label-on = Encendido +label-off = Apagado +label-true = Verdadero +label-false = Falso +label-unknown = Desconocido +label-other = Otro +label-more = Más +label-less = Menos +label-details = Detalles +label-summary = Resumen +label-description = Descripción +label-name = Nombre +label-title = Título +label-type = Tipo +label-status = Estado +label-priority = Prioridad +label-date = Fecha +label-time = Hora +label-size = Tamaño +label-count = Cantidad +label-total = Total +label-average = Promedio +label-minimum = Mínimo +label-maximum = Máximo +label-version = Versión +label-id = ID +label-created = Creado +label-updated = Actualizado +label-modified = Modificado +label-deleted = Eliminado +label-by = Por +label-from = De +label-to = Para +label-at = En +label-in = En +label-of = De + +# ----------------------------------------------------------------------------- +# Mensajes de Estado +# ----------------------------------------------------------------------------- +status-success = Éxito +status-error = Error +status-warning = Advertencia +status-info = Información +status-loading = Cargando +status-complete = Completo +status-incomplete = Incompleto +status-failed = Fallido +status-cancelled = Cancelado +status-pending = Pendiente +status-in-progress = En Progreso +status-done = Listo +status-ready = Listo +status-not-ready = No Listo +status-connected = Conectado +status-disconnected = Desconectado +status-online = En Línea +status-offline = Fuera de Línea +status-available = Disponible +status-unavailable = No Disponible +status-busy = Ocupado +status-away = Ausente + +# ----------------------------------------------------------------------------- +# Diálogos de Confirmación +# ----------------------------------------------------------------------------- +confirm-delete = ¿Estás seguro de que deseas eliminar esto? +confirm-delete-item = ¿Estás seguro de que deseas eliminar "{ $name }"? +confirm-delete-items = ¿Estás seguro de que deseas eliminar { $count -> + [one] este elemento + *[other] estos { $count } elementos +}? +confirm-discard-changes = Tienes cambios sin guardar. ¿Estás seguro de que deseas descartarlos? +confirm-logout = ¿Estás seguro de que deseas cerrar sesión? +confirm-cancel = ¿Estás seguro de que deseas cancelar? + +# ----------------------------------------------------------------------------- +# Tiempo y Fechas +# ----------------------------------------------------------------------------- +time-now = Ahora mismo +time-seconds-ago = { $count -> + [one] hace { $count } segundo + *[other] hace { $count } segundos +} +time-minutes-ago = { $count -> + [one] hace { $count } minuto + *[other] hace { $count } minutos +} +time-hours-ago = { $count -> + [one] hace { $count } hora + *[other] hace { $count } horas +} +time-days-ago = { $count -> + [one] hace { $count } día + *[other] hace { $count } días +} +time-weeks-ago = { $count -> + [one] hace { $count } semana + *[other] hace { $count } semanas +} +time-months-ago = { $count -> + [one] hace { $count } mes + *[other] hace { $count } meses +} +time-years-ago = { $count -> + [one] hace { $count } año + *[other] hace { $count } años +} +time-in-seconds = { $count -> + [one] en { $count } segundo + *[other] en { $count } segundos +} +time-in-minutes = { $count -> + [one] en { $count } minuto + *[other] en { $count } minutos +} +time-in-hours = { $count -> + [one] en { $count } hora + *[other] en { $count } horas +} +time-in-days = { $count -> + [one] en { $count } día + *[other] en { $count } días +} +time-today = Hoy +time-yesterday = Ayer +time-tomorrow = Mañana +time-this-week = Esta semana +time-last-week = La semana pasada +time-next-week = La próxima semana +time-this-month = Este mes +time-last-month = El mes pasado +time-next-month = El próximo mes +time-this-year = Este año +time-last-year = El año pasado +time-next-year = El próximo año + +# Días de la semana +day-sunday = Domingo +day-monday = Lunes +day-tuesday = Martes +day-wednesday = Miércoles +day-thursday = Jueves +day-friday = Viernes +day-saturday = Sábado +day-sun = Dom +day-mon = Lun +day-tue = Mar +day-wed = Mié +day-thu = Jue +day-fri = Vie +day-sat = Sáb + +# Meses +month-january = Enero +month-february = Febrero +month-march = Marzo +month-april = Abril +month-may = Mayo +month-june = Junio +month-july = Julio +month-august = Agosto +month-september = Septiembre +month-october = Octubre +month-november = Noviembre +month-december = Diciembre +month-jan = Ene +month-feb = Feb +month-mar = Mar +month-apr = Abr +month-may-short = May +month-jun = Jun +month-jul = Jul +month-aug = Ago +month-sep = Sep +month-oct = Oct +month-nov = Nov +month-dec = Dic + +# ----------------------------------------------------------------------------- +# Tamaños de Archivo +# ----------------------------------------------------------------------------- +size-bytes = { $value } B +size-kilobytes = { $value } KB +size-megabytes = { $value } MB +size-gigabytes = { $value } GB +size-terabytes = { $value } TB + +# ----------------------------------------------------------------------------- +# Paginación +# ----------------------------------------------------------------------------- +pagination-page = Página { $current } de { $total } +pagination-showing = Mostrando { $start } a { $end } de { $total } +pagination-items-per-page = Elementos por página +pagination-first = Primera +pagination-previous = Anterior +pagination-next = Siguiente +pagination-last = Última +pagination-go-to-page = Ir a la página + +# ----------------------------------------------------------------------------- +# Validación de Formularios +# ----------------------------------------------------------------------------- +validation-required = Este campo es requerido +validation-required-field = { $field } es requerido +validation-email-invalid = Por favor ingresa una dirección de correo válida +validation-url-invalid = Por favor ingresa una URL válida +validation-number-invalid = Por favor ingresa un número válido +validation-date-invalid = Por favor ingresa una fecha válida +validation-min-length = Debe tener al menos { $min } caracteres +validation-max-length = No debe tener más de { $max } caracteres +validation-min-value = Debe ser al menos { $min } +validation-max-value = No debe ser mayor que { $max } +validation-pattern-mismatch = Formato inválido +validation-passwords-mismatch = Las contraseñas no coinciden +validation-file-too-large = El archivo es muy grande. El tamaño máximo es { $max } +validation-file-type-invalid = Tipo de archivo inválido. Tipos permitidos: { $types } + +# ----------------------------------------------------------------------------- +# Accesibilidad +# ----------------------------------------------------------------------------- +a11y-skip-to-content = Saltar al contenido principal +a11y-loading = Cargando, por favor espera +a11y-menu-open = Abrir menú +a11y-menu-close = Cerrar menú +a11y-expand = Expandir +a11y-collapse = Contraer +a11y-selected = Seleccionado +a11y-not-selected = No seleccionado +a11y-required = Campo requerido +a11y-error = Error +a11y-success = Éxito +a11y-warning = Advertencia +a11y-info = Información diff --git a/locales/es/contacts.ftl b/locales/es/contacts.ftl new file mode 100644 index 0000000..f926e3d --- /dev/null +++ b/locales/es/contacts.ftl @@ -0,0 +1,301 @@ +# ============================================================================= +# General Bots - Contacts Translations (Spanish) +# ============================================================================= +# Traducciones de la interfaz de gestión de contactos +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Navigation & Headers +# ----------------------------------------------------------------------------- +contacts-title = Contactos +contacts-subtitle = Gestiona tus contactos y relaciones +contacts-nav-all = Todos los Contactos +contacts-nav-favorites = Favoritos +contacts-nav-recent = Añadidos Recientemente +contacts-nav-groups = Grupos +contacts-nav-tags = Etiquetas + +# ----------------------------------------------------------------------------- +# Views & Filters +# ----------------------------------------------------------------------------- +contacts-view-list = Vista de Lista +contacts-view-grid = Vista de Cuadrícula +contacts-filter-all = Todos +contacts-filter-active = Activos +contacts-filter-inactive = Inactivos +contacts-filter-leads = Leads +contacts-filter-customers = Clientes +contacts-filter-prospects = Prospectos +contacts-filter-archived = Archivados +contacts-search-placeholder = Buscar contactos... +contacts-sort-name = Ordenar por Nombre +contacts-sort-company = Ordenar por Empresa +contacts-sort-recent = Ordenar por Recientes +contacts-sort-created = Ordenar por Creación + +# ----------------------------------------------------------------------------- +# Contact Fields +# ----------------------------------------------------------------------------- +contacts-field-first-name = Nombre +contacts-field-last-name = Apellido +contacts-field-email = Correo Electrónico +contacts-field-phone = Teléfono +contacts-field-mobile = Móvil +contacts-field-company = Empresa +contacts-field-job-title = Cargo +contacts-field-department = Departamento +contacts-field-website = Sitio Web +contacts-field-linkedin = LinkedIn +contacts-field-twitter = Twitter +contacts-field-address = Dirección +contacts-field-city = Ciudad +contacts-field-state = Estado/Provincia +contacts-field-postal-code = Código Postal +contacts-field-country = País +contacts-field-notes = Notas +contacts-field-tags = Etiquetas +contacts-field-source = Origen +contacts-field-status = Estado +contacts-field-last-contacted = Último Contacto +contacts-field-created-at = Creado +contacts-field-updated-at = Actualizado + +# ----------------------------------------------------------------------------- +# Contact Status +# ----------------------------------------------------------------------------- +contacts-status-active = Activo +contacts-status-inactive = Inactivo +contacts-status-lead = Lead +contacts-status-customer = Cliente +contacts-status-prospect = Prospecto +contacts-status-archived = Archivado + +# ----------------------------------------------------------------------------- +# Contact Source +# ----------------------------------------------------------------------------- +contacts-source-manual = Entrada Manual +contacts-source-import = Importación +contacts-source-webform = Formulario Web +contacts-source-api = API +contacts-source-email = Correo Electrónico +contacts-source-meeting = Reunión +contacts-source-referral = Referencia +contacts-source-social = Redes Sociales + +# ----------------------------------------------------------------------------- +# Actions +# ----------------------------------------------------------------------------- +contacts-action-add = Añadir Contacto +contacts-action-edit = Editar Contacto +contacts-action-delete = Eliminar Contacto +contacts-action-archive = Archivar Contacto +contacts-action-restore = Restaurar Contacto +contacts-action-favorite = Añadir a Favoritos +contacts-action-unfavorite = Quitar de Favoritos +contacts-action-export = Exportar Contactos +contacts-action-import = Importar Contactos +contacts-action-merge = Fusionar Contactos +contacts-action-send-email = Enviar Correo +contacts-action-schedule-meeting = Programar Reunión +contacts-action-create-task = Crear Tarea +contacts-action-add-note = Añadir Nota +contacts-action-add-tag = Añadir Etiqueta +contacts-action-remove-tag = Quitar Etiqueta + +# ----------------------------------------------------------------------------- +# Bulk Actions +# ----------------------------------------------------------------------------- +contacts-bulk-selected = { $count } contactos seleccionados +contacts-bulk-delete = Eliminar Seleccionados +contacts-bulk-archive = Archivar Seleccionados +contacts-bulk-add-tag = Añadir Etiqueta a Seleccionados +contacts-bulk-remove-tag = Quitar Etiqueta de Seleccionados +contacts-bulk-add-to-group = Añadir al Grupo +contacts-bulk-remove-from-group = Quitar del Grupo +contacts-bulk-export = Exportar Seleccionados +contacts-bulk-change-status = Cambiar Estado + +# ----------------------------------------------------------------------------- +# Groups +# ----------------------------------------------------------------------------- +contacts-groups-title = Grupos de Contactos +contacts-groups-create = Crear Grupo +contacts-groups-edit = Editar Grupo +contacts-groups-delete = Eliminar Grupo +contacts-groups-name = Nombre del Grupo +contacts-groups-description = Descripción +contacts-groups-color = Color +contacts-groups-members = { $count } miembros +contacts-groups-add-members = Añadir Miembros +contacts-groups-remove-members = Quitar Miembros + +# ----------------------------------------------------------------------------- +# Import/Export +# ----------------------------------------------------------------------------- +contacts-import-title = Importar Contactos +contacts-import-description = Sube un archivo para importar contactos +contacts-import-format-csv = Archivo CSV +contacts-import-format-vcard = Archivo vCard +contacts-import-format-json = Archivo JSON +contacts-import-drop-zone = Arrastra y suelta tu archivo aquí, o haz clic para buscar +contacts-import-mapping = Mapeo de Campos +contacts-import-preview = Vista Previa +contacts-import-skip-duplicates = Omitir entradas duplicadas +contacts-import-update-existing = Actualizar contactos existentes +contacts-import-success = { $count } contactos importados con éxito +contacts-import-errors = { $count } errores durante la importación + +contacts-export-title = Exportar Contactos +contacts-export-description = Descarga tus contactos +contacts-export-format = Formato de Exportación +contacts-export-all = Exportar Todos los Contactos +contacts-export-selected = Exportar Seleccionados +contacts-export-group = Exportar Grupo +contacts-export-include-custom = Incluir Campos Personalizados +contacts-export-success = { $count } contactos exportados con éxito + +# ----------------------------------------------------------------------------- +# Detail Panel +# ----------------------------------------------------------------------------- +contacts-detail-title = Detalles del Contacto +contacts-detail-info = Información +contacts-detail-activity = Actividad +contacts-detail-notes = Notas +contacts-detail-tasks = Tareas +contacts-detail-events = Eventos +contacts-detail-files = Archivos +contacts-detail-history = Historial + +# ----------------------------------------------------------------------------- +# Activity Types +# ----------------------------------------------------------------------------- +contacts-activity-email = Correo Electrónico +contacts-activity-call = Llamada +contacts-activity-meeting = Reunión +contacts-activity-task = Tarea +contacts-activity-note = Nota +contacts-activity-status-change = Estado Cambiado +contacts-activity-created = Contacto Creado +contacts-activity-updated = Contacto Actualizado +contacts-activity-imported = Contacto Importado + +# ----------------------------------------------------------------------------- +# Quick Actions +# ----------------------------------------------------------------------------- +contacts-quick-email = Correo +contacts-quick-call = Llamar +contacts-quick-meeting = Reunión +contacts-quick-task = Tarea + +# ----------------------------------------------------------------------------- +# Calendar Integration +# ----------------------------------------------------------------------------- +contacts-calendar-link = Vincular al Evento +contacts-calendar-unlink = Desvincular del Evento +contacts-calendar-events = Eventos Relacionados +contacts-calendar-upcoming = Próximos Eventos +contacts-calendar-past = Eventos Pasados +contacts-calendar-role = Rol +contacts-calendar-role-attendee = Asistente +contacts-calendar-role-organizer = Organizador +contacts-calendar-role-optional = Opcional +contacts-calendar-role-speaker = Ponente +contacts-calendar-role-host = Anfitrión +contacts-calendar-response = Estado de Respuesta +contacts-calendar-response-accepted = Aceptado +contacts-calendar-response-declined = Rechazado +contacts-calendar-response-tentative = Tentativo +contacts-calendar-response-pending = Pendiente + +# ----------------------------------------------------------------------------- +# Tasks Integration +# ----------------------------------------------------------------------------- +contacts-tasks-assign = Asignar a Tarea +contacts-tasks-unassign = Desasignar de Tarea +contacts-tasks-related = Tareas Relacionadas +contacts-tasks-active = Tareas Activas +contacts-tasks-completed = Tareas Completadas +contacts-tasks-overdue = Tareas Vencidas +contacts-tasks-role = Rol +contacts-tasks-role-assignee = Responsable +contacts-tasks-role-reviewer = Revisor +contacts-tasks-role-stakeholder = Parte Interesada +contacts-tasks-role-collaborator = Colaborador +contacts-tasks-role-client = Cliente +contacts-tasks-role-approver = Aprobador +contacts-tasks-workload = Carga de Trabajo +contacts-tasks-workload-low = Baja +contacts-tasks-workload-medium = Media +contacts-tasks-workload-high = Alta +contacts-tasks-workload-overloaded = Sobrecargado + +# ----------------------------------------------------------------------------- +# External Sync +# ----------------------------------------------------------------------------- +contacts-sync-title = Sincronización de Agenda +contacts-sync-description = Sincroniza con agendas externas +contacts-sync-google = Google Contactos +contacts-sync-microsoft = Microsoft People +contacts-sync-apple = Contactos de Apple +contacts-sync-carddav = Servidor CardDAV +contacts-sync-connect = Conectar Cuenta +contacts-sync-disconnect = Desconectar +contacts-sync-connected = Conectado +contacts-sync-last-sync = Última sincronización { $time } +contacts-sync-in-progress = Sincronización en progreso... +contacts-sync-success = Sincronización completada con éxito +contacts-sync-error = Error en la sincronización +contacts-sync-direction = Dirección de Sincronización +contacts-sync-direction-two-way = Sincronización Bidireccional +contacts-sync-direction-import = Solo Importar +contacts-sync-direction-export = Solo Exportar +contacts-sync-conflicts = { $count } conflictos detectados +contacts-sync-resolve = Resolver Conflictos +contacts-sync-keep-local = Mantener Local +contacts-sync-keep-remote = Mantener Remoto +contacts-sync-merge = Fusionar Ambos + +# ----------------------------------------------------------------------------- +# Empty States +# ----------------------------------------------------------------------------- +contacts-empty-title = Aún no hay contactos +contacts-empty-description = Añade tu primer contacto para comenzar +contacts-empty-action = Añadir Contacto +contacts-empty-search = Ningún contacto coincide con tu búsqueda +contacts-empty-filter = Ningún contacto coincide con el filtro seleccionado +contacts-empty-group = Este grupo no tiene miembros + +# ----------------------------------------------------------------------------- +# Confirmations +# ----------------------------------------------------------------------------- +contacts-confirm-delete = ¿Estás seguro de que quieres eliminar este contacto? +contacts-confirm-delete-bulk = ¿Estás seguro de que quieres eliminar { $count } contactos? +contacts-confirm-archive = ¿Estás seguro de que quieres archivar este contacto? +contacts-confirm-merge = ¿Estás seguro de que quieres fusionar estos contactos? +contacts-confirm-disconnect = ¿Estás seguro de que quieres desconectar esta cuenta? + +# ----------------------------------------------------------------------------- +# Success Messages +# ----------------------------------------------------------------------------- +contacts-success-created = Contacto creado con éxito +contacts-success-updated = Contacto actualizado con éxito +contacts-success-deleted = Contacto eliminado con éxito +contacts-success-archived = Contacto archivado con éxito +contacts-success-restored = Contacto restaurado con éxito +contacts-success-merged = Contactos fusionados con éxito +contacts-success-imported = Contactos importados con éxito +contacts-success-exported = Contactos exportados con éxito + +# ----------------------------------------------------------------------------- +# Error Messages +# ----------------------------------------------------------------------------- +contacts-error-create = Error al crear contacto +contacts-error-update = Error al actualizar contacto +contacts-error-delete = Error al eliminar contacto +contacts-error-import = Error al importar contactos +contacts-error-export = Error al exportar contactos +contacts-error-sync = Error en la sincronización +contacts-error-duplicate = Ya existe un contacto con este correo electrónico +contacts-error-required = Este campo es obligatorio +contacts-error-invalid-email = Por favor, introduce una dirección de correo válida +contacts-error-invalid-phone = Por favor, introduce un número de teléfono válido diff --git a/locales/es/errors.ftl b/locales/es/errors.ftl new file mode 100644 index 0000000..5c84f8a --- /dev/null +++ b/locales/es/errors.ftl @@ -0,0 +1,165 @@ +# General Bots - Mensajes de Error (Español) +# Este archivo contiene todas las traducciones de mensajes de error + +# ============================================================================= +# Errores HTTP +# ============================================================================= + +error-http-400 = Solicitud incorrecta. Por favor verifica tu entrada. +error-http-401 = Autenticación requerida. Por favor inicia sesión. +error-http-403 = No tienes permiso para acceder a este recurso. +error-http-404 = { $entity } no encontrado. +error-http-409 = Conflicto: { $message } +error-http-429 = Demasiadas solicitudes. Por favor espera { $seconds } segundos. +error-http-500 = Error interno del servidor. Por favor intenta más tarde. +error-http-502 = Puerta de enlace incorrecta. El servidor recibió una respuesta inválida. +error-http-503 = Servicio temporalmente no disponible. Por favor intenta más tarde. +error-http-504 = La solicitud expiró después de { $milliseconds }ms. + +# ============================================================================= +# Errores de Validación +# ============================================================================= + +error-validation-required = { $field } es requerido. +error-validation-email = Por favor ingresa una dirección de correo válida. +error-validation-url = Por favor ingresa una URL válida. +error-validation-phone = Por favor ingresa un número de teléfono válido. +error-validation-min-length = { $field } debe tener al menos { $min } caracteres. +error-validation-max-length = { $field } no debe tener más de { $max } caracteres. +error-validation-min-value = { $field } debe ser al menos { $min }. +error-validation-max-value = { $field } no debe ser mayor que { $max }. +error-validation-pattern = El formato de { $field } es inválido. +error-validation-unique = { $field } ya existe. +error-validation-mismatch = { $field } no coincide con { $other }. +error-validation-date-format = Por favor ingresa una fecha válida en el formato { $format }. +error-validation-date-past = { $field } debe ser en el pasado. +error-validation-date-future = { $field } debe ser en el futuro. + +# ============================================================================= +# Errores de Autenticación +# ============================================================================= + +error-auth-invalid-credentials = Correo o contraseña inválidos. +error-auth-account-locked = Tu cuenta ha sido bloqueada. Por favor contacta a soporte. +error-auth-account-disabled = Tu cuenta ha sido deshabilitada. +error-auth-session-expired = Tu sesión ha expirado. Por favor inicia sesión nuevamente. +error-auth-token-invalid = Token inválido o expirado. +error-auth-token-missing = Se requiere token de autenticación. +error-auth-mfa-required = Se requiere autenticación de múltiples factores. +error-auth-mfa-invalid = Código de verificación inválido. +error-auth-password-weak = La contraseña es muy débil. Por favor usa una contraseña más fuerte. +error-auth-password-expired = Tu contraseña ha expirado. Por favor restablécela. + +# ============================================================================= +# Errores de Configuración +# ============================================================================= + +error-config = Error de configuración: { $message } +error-config-missing = Configuración faltante: { $key } +error-config-invalid = Valor de configuración inválido para { $key }: { $reason } +error-config-file-not-found = Archivo de configuración no encontrado: { $path } +error-config-parse = Error al analizar configuración: { $message } + +# ============================================================================= +# Errores de Base de Datos +# ============================================================================= + +error-database = Error de base de datos: { $message } +error-database-connection = Error al conectar a la base de datos. +error-database-timeout = La operación de base de datos expiró. +error-database-constraint = Violación de restricción de base de datos: { $constraint } +error-database-duplicate = Ya existe un registro con este { $field }. +error-database-migration = La migración de base de datos falló: { $message } + +# ============================================================================= +# Errores de Archivos y Almacenamiento +# ============================================================================= + +error-file-not-found = Archivo no encontrado: { $filename } +error-file-too-large = El archivo es muy grande. El tamaño máximo es { $maxSize }. +error-file-type-not-allowed = Tipo de archivo no permitido. Tipos permitidos: { $allowedTypes }. +error-file-upload-failed = La subida del archivo falló: { $message } +error-file-read = Error al leer archivo: { $message } +error-file-write = Error al escribir archivo: { $message } +error-storage-full = Cuota de almacenamiento excedida. +error-storage-unavailable = El servicio de almacenamiento no está disponible. + +# ============================================================================= +# Errores de Red y Servicios Externos +# ============================================================================= + +error-network = Error de red: { $message } +error-network-timeout = La conexión expiró. +error-network-unreachable = El servidor no es alcanzable. +error-service-unavailable = Servicio no disponible: { $service } +error-external-api = Error de API externa: { $message } +error-rate-limit = Límite de tasa alcanzado. Reintentar después de { $seconds }s. + +# ============================================================================= +# Errores de Bot y Diálogos +# ============================================================================= + +error-bot-not-found = Bot no encontrado: { $botId } +error-bot-disabled = Este bot está actualmente deshabilitado. +error-bot-script-error = Error de script en línea { $line }: { $message } +error-bot-timeout = La respuesta del bot expiró. +error-bot-quota-exceeded = Cuota de uso del bot excedida. +error-dialog-not-found = Diálogo no encontrado: { $dialogId } +error-dialog-invalid = Configuración de diálogo inválida: { $message } + +# ============================================================================= +# Errores de LLM e IA +# ============================================================================= + +error-llm-unavailable = El servicio de IA no está disponible actualmente. +error-llm-timeout = La solicitud de IA expiró. +error-llm-rate-limit = Límite de tasa de IA excedido. Por favor espera antes de intentar nuevamente. +error-llm-content-filter = El contenido fue filtrado por las pautas de seguridad. +error-llm-context-length = La entrada es muy larga. Por favor acorta tu mensaje. +error-llm-invalid-response = Se recibió una respuesta inválida del servicio de IA. + +# ============================================================================= +# Errores de Correo Electrónico +# ============================================================================= + +error-email-send-failed = Error al enviar correo: { $message } +error-email-invalid-recipient = Dirección de correo del destinatario inválida: { $email } +error-email-attachment-failed = Error al adjuntar archivo: { $filename } +error-email-template-not-found = Plantilla de correo no encontrada: { $template } + +# ============================================================================= +# Errores de Calendario y Programación +# ============================================================================= + +error-calendar-conflict = El horario conflictúa con un evento existente. +error-calendar-past-date = No se pueden programar eventos en el pasado. +error-calendar-invalid-recurrence = Patrón de recurrencia inválido. +error-calendar-event-not-found = Evento no encontrado: { $eventId } + +# ============================================================================= +# Errores de Tareas +# ============================================================================= + +error-task-not-found = Tarea no encontrada: { $taskId } +error-task-already-completed = La tarea ya ha sido completada. +error-task-circular-dependency = Se detectó una dependencia circular en las tareas. +error-task-invalid-status = Transición de estado de tarea inválida. + +# ============================================================================= +# Errores de Permisos +# ============================================================================= + +error-permission-denied = No tienes permiso para realizar esta acción. +error-permission-resource = No tienes acceso a este { $resource }. +error-permission-action = No puedes { $action } este { $resource }. +error-permission-owner-only = Solo el propietario puede realizar esta acción. + +# ============================================================================= +# Errores Genéricos +# ============================================================================= + +error-internal = Error interno: { $message } +error-unexpected = Ocurrió un error inesperado. Por favor intenta nuevamente. +error-not-implemented = Esta función aún no está implementada. +error-maintenance = El sistema está en mantenimiento. Por favor intenta más tarde. +error-unknown = Ocurrió un error desconocido. diff --git a/locales/es/notifications.ftl b/locales/es/notifications.ftl new file mode 100644 index 0000000..043872f --- /dev/null +++ b/locales/es/notifications.ftl @@ -0,0 +1,127 @@ +notification-title-new-message = Nuevo Mensaje +notification-title-task-due = Tarea Vence +notification-title-task-assigned = Tarea Asignada +notification-title-task-completed = Tarea Completada +notification-title-meeting-reminder = Recordatorio de Reunión +notification-title-meeting-started = Reunión Iniciada +notification-title-file-shared = Archivo Compartido +notification-title-file-uploaded = Archivo Subido +notification-title-comment-added = Nuevo Comentario +notification-title-mention = Te mencionaron +notification-title-system = Notificación del Sistema +notification-title-security = Alerta de Seguridad +notification-title-update = Actualización Disponible +notification-title-error = Ocurrió un Error +notification-title-success = Éxito +notification-title-warning = Advertencia +notification-title-info = Información + +notification-message-new = Tienes un nuevo mensaje de { $sender } +notification-message-unread = Tienes { $count -> + [one] { $count } mensaje sin leer + *[other] { $count } mensajes sin leer +} +notification-task-due-soon = La tarea "{ $task }" vence en { $time } +notification-task-due-today = La tarea "{ $task }" vence hoy +notification-task-due-overdue = La tarea "{ $task }" está vencida por { $time } +notification-task-assigned-to-you = Te han asignado a la tarea "{ $task }" +notification-task-assigned-by = { $assigner } te asignó a "{ $task }" +notification-task-completed-by = { $user } completó la tarea "{ $task }" +notification-task-status-changed = El estado de la tarea "{ $task }" cambió a { $status } + +notification-meeting-in-minutes = La reunión "{ $meeting }" comienza en { $minutes } minutos +notification-meeting-starting-now = La reunión "{ $meeting }" está comenzando ahora +notification-meeting-cancelled = La reunión "{ $meeting }" ha sido cancelada +notification-meeting-rescheduled = La reunión "{ $meeting }" ha sido reprogramada para { $datetime } +notification-meeting-invite = { $inviter } te invitó a "{ $meeting }" +notification-meeting-response = { $user } { $response } tu invitación a la reunión + +notification-file-shared-with-you = { $sharer } compartió "{ $filename }" contigo +notification-file-uploaded-by = { $uploader } subió "{ $filename }" +notification-file-modified = "{ $filename }" fue modificado por { $user } +notification-file-deleted = "{ $filename }" fue eliminado por { $user } +notification-file-download-ready = Tu archivo "{ $filename }" está listo para descargar +notification-file-upload-complete = La subida de "{ $filename }" se completó exitosamente +notification-file-upload-failed = La subida de "{ $filename }" falló + +notification-comment-on-task = { $user } comentó en la tarea "{ $task }" +notification-comment-on-file = { $user } comentó en "{ $filename }" +notification-comment-reply = { $user } respondió a tu comentario +notification-mention-in-comment = { $user } te mencionó en un comentario +notification-mention-in-chat = { $user } te mencionó en { $channel } + +notification-login-new-device = Nuevo inicio de sesión detectado desde { $device } en { $location } +notification-login-failed = Intento de inicio de sesión fallido en tu cuenta +notification-password-changed = Tu contraseña fue cambiada exitosamente +notification-password-expiring = Tu contraseña expirará en { $days } días +notification-session-expired = Tu sesión ha expirado +notification-account-locked = Tu cuenta ha sido bloqueada +notification-two-factor-enabled = La autenticación de dos factores ha sido habilitada +notification-two-factor-disabled = La autenticación de dos factores ha sido deshabilitada + +notification-subscription-expiring = Tu suscripción expira en { $days } días +notification-subscription-expired = Tu suscripción ha expirado +notification-subscription-renewed = Tu suscripción ha sido renovada hasta { $date } +notification-payment-successful = El pago de { $amount } fue exitoso +notification-payment-failed = El pago de { $amount } falló +notification-invoice-ready = Tu factura de { $period } está lista + +notification-bot-response = { $bot } respondió a tu consulta +notification-bot-error = { $bot } encontró un error +notification-bot-offline = { $bot } está actualmente fuera de línea +notification-bot-online = { $bot } está ahora en línea +notification-bot-updated = { $bot } ha sido actualizado + +notification-system-maintenance = Mantenimiento del sistema programado para { $datetime } +notification-system-update = Actualización del sistema disponible: { $version } +notification-system-restored = El sistema ha sido restaurado +notification-system-degraded = El sistema está experimentando rendimiento degradado + +notification-action-view = Ver +notification-action-dismiss = Descartar +notification-action-mark-read = Marcar como leído +notification-action-mark-all-read = Marcar todo como leído +notification-action-settings = Configuración de notificaciones +notification-action-reply = Responder +notification-action-open = Abrir +notification-action-join = Unirse +notification-action-accept = Aceptar +notification-action-decline = Rechazar + +notification-time-just-now = Ahora mismo +notification-time-minutes = { $count -> + [one] hace { $count } minuto + *[other] hace { $count } minutos +} +notification-time-hours = { $count -> + [one] hace { $count } hora + *[other] hace { $count } horas +} +notification-time-days = { $count -> + [one] hace { $count } día + *[other] hace { $count } días +} +notification-time-weeks = { $count -> + [one] hace { $count } semana + *[other] hace { $count } semanas +} + +notification-preference-all = Todas las notificaciones +notification-preference-important = Solo importantes +notification-preference-none = Ninguna +notification-preference-email = Notificaciones por correo +notification-preference-push = Notificaciones push +notification-preference-in-app = Notificaciones en la app +notification-preference-sound = Sonido habilitado +notification-preference-vibration = Vibración habilitada + +notification-empty = Sin notificaciones +notification-empty-description = ¡Estás al día! +notification-load-more = Cargar más +notification-clear-all = Limpiar todas las notificaciones +notification-filter-all = Todas +notification-filter-unread = Sin leer +notification-filter-mentions = Menciones +notification-filter-tasks = Tareas +notification-filter-messages = Mensajes +notification-filter-system = Sistema diff --git a/locales/es/ui.ftl b/locales/es/ui.ftl new file mode 100644 index 0000000..113cac4 --- /dev/null +++ b/locales/es/ui.ftl @@ -0,0 +1,500 @@ +# ============================================================================= +# General Bots - Traducciones de UI en Español +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Navegación +# ----------------------------------------------------------------------------- +nav-home = Inicio +nav-chat = Chat +nav-drive = Archivos +nav-tasks = Tareas +nav-mail = Correo +nav-calendar = Calendario +nav-meet = Reuniones +nav-paper = Documentos +nav-research = Investigación +nav-analytics = Analíticas +nav-settings = Configuración +nav-admin = Administración +nav-monitoring = Monitoreo +nav-sources = Fuentes +nav-tools = Herramientas +nav-attendant = Asistente + +# ----------------------------------------------------------------------------- +# Panel de Control +# ----------------------------------------------------------------------------- +dashboard-title = Panel de Control +dashboard-welcome = ¡Bienvenido de nuevo, { $name }! +dashboard-quick-actions = Acciones Rápidas +dashboard-recent-activity = Actividad Reciente +dashboard-no-activity = Sin actividad reciente. ¡Comienza a explorar! +dashboard-analytics = Analíticas + +# ----------------------------------------------------------------------------- +# Acciones Rápidas +# ----------------------------------------------------------------------------- +quick-start-chat = Iniciar Chat +quick-upload-files = Subir Archivos +quick-new-task = Nueva Tarea +quick-compose-email = Redactar Correo +quick-start-meeting = Iniciar Reunión +quick-new-event = Nuevo Evento + +# ----------------------------------------------------------------------------- +# Tarjetas de Aplicaciones +# ----------------------------------------------------------------------------- +app-chat-name = Chat +app-chat-desc = Conversaciones impulsadas por IA. Haz preguntas, obtén ayuda y automatiza tareas. + +app-drive-name = Archivos +app-drive-desc = Almacenamiento en la nube para todos tus archivos. Sube, organiza y comparte. + +app-tasks-name = Tareas +app-tasks-desc = Mantente organizado con listas de tareas, prioridades y fechas límite. + +app-mail-name = Correo +app-mail-desc = Cliente de correo con escritura asistida por IA y organización inteligente. + +app-calendar-name = Calendario +app-calendar-desc = Programa reuniones, eventos y administra tu tiempo efectivamente. + +app-meet-name = Reuniones +app-meet-desc = Videoconferencias con pantalla compartida y transcripción en vivo. + +app-paper-name = Documentos +app-paper-desc = Escribe documentos con asistencia de IA. Notas, informes y más. + +app-research-name = Investigación +app-research-desc = Búsqueda y descubrimiento impulsado por IA en todas tus fuentes. + +app-analytics-name = Analíticas +app-analytics-desc = Paneles e informes para seguir el uso y obtener insights. + +# ----------------------------------------------------------------------------- +# Encabezado de Suite +# ----------------------------------------------------------------------------- +suite-title = Suite General Bots +suite-tagline = Tu espacio de trabajo de productividad impulsado por IA. Chatea, colabora y crea. +suite-new-intent = Nueva Intención + +# ----------------------------------------------------------------------------- +# Panel de IA +# ----------------------------------------------------------------------------- +ai-developer = Desarrollador IA +ai-developing = Desarrollando: { $project } +ai-quick-actions = Acciones Rápidas +ai-add-field = Agregar campo +ai-change-color = Cambiar color +ai-add-validation = Agregar validación +ai-export-data = Exportar datos +ai-placeholder = Escribe tus modificaciones... +ai-thinking = La IA está pensando... +ai-status-online = En línea +ai-status-offline = Desconectado + +# ----------------------------------------------------------------------------- +# Chat +# ----------------------------------------------------------------------------- +chat-title = Chat +chat-placeholder = Escribe tu mensaje... +chat-send = Enviar +chat-new-conversation = Nueva Conversación +chat-history = Historial de Chat +chat-clear = Limpiar Chat +chat-export = Exportar Chat +chat-typing = { $name } está escribiendo... +chat-online = En línea +chat-offline = Desconectado +chat-last-seen = Última vez { $time } + +# ----------------------------------------------------------------------------- +# Drive / Archivos +# ----------------------------------------------------------------------------- +drive-title = Archivos +drive-upload = Subir +drive-new-folder = Nueva Carpeta +drive-empty = Sin archivos aún. ¡Sube algo! +drive-search = Buscar archivos... +drive-sort-name = Nombre +drive-sort-date = Fecha +drive-sort-size = Tamaño +drive-sort-type = Tipo +drive-view-grid = Vista de Cuadrícula +drive-view-list = Vista de Lista +drive-selected = { $count -> + [one] { $count } elemento seleccionado + *[other] { $count } elementos seleccionados +} +drive-file-size = { $size -> + [bytes] { $value } B + [kb] { $value } KB + [mb] { $value } MB + [gb] { $value } GB + *[other] { $value } bytes +} +drive-drop-files = Arrastra archivos aquí para subir + +# ----------------------------------------------------------------------------- +# Tareas +# ----------------------------------------------------------------------------- +tasks-title = Tareas +tasks-new = Nueva Tarea +tasks-due-today = Vence Hoy +tasks-overdue = Vencidas +tasks-completed = Completadas +tasks-all = Todas las Tareas +tasks-priority-high = Prioridad Alta +tasks-priority-medium = Prioridad Media +tasks-priority-low = Prioridad Baja +tasks-no-due-date = Sin fecha límite +tasks-add-subtask = Agregar subtarea +tasks-mark-complete = Marcar como completada +tasks-mark-incomplete = Marcar como incompleta +tasks-delete-confirm = ¿Estás seguro de que deseas eliminar esta tarea? +tasks-count = { $count -> + [zero] Sin tareas + [one] { $count } tarea + *[other] { $count } tareas +} + +# ----------------------------------------------------------------------------- +# Calendario +# ----------------------------------------------------------------------------- +calendar-title = Calendario +calendar-today = Hoy +calendar-new-event = Nuevo Evento +calendar-all-day = Todo el día +calendar-repeat = Repetir +calendar-reminder = Recordatorio +calendar-view-day = Día +calendar-view-week = Semana +calendar-view-month = Mes +calendar-view-year = Año +calendar-no-events = Sin eventos programados +calendar-event-title = Título del evento +calendar-event-location = Ubicación +calendar-event-description = Descripción +calendar-event-attendees = Asistentes + +# ----------------------------------------------------------------------------- +# Meet / Videoconferencias +# ----------------------------------------------------------------------------- +meet-title = Reuniones +meet-join = Unirse a Reunión +meet-start = Iniciar Reunión +meet-mute = Silenciar +meet-unmute = Activar Micrófono +meet-video-on = Cámara Encendida +meet-video-off = Cámara Apagada +meet-share-screen = Compartir Pantalla +meet-stop-sharing = Dejar de Compartir +meet-end-call = Finalizar Llamada +meet-leave = Salir de la Reunión +meet-participants = { $count -> + [one] { $count } participante + *[other] { $count } participantes +} +meet-waiting-room = Sala de Espera +meet-admit = Admitir +meet-remove = Eliminar +meet-chat = Chat de Reunión +meet-raise-hand = Levantar Mano +meet-lower-hand = Bajar Mano +meet-recording = Grabando +meet-start-recording = Iniciar Grabación +meet-stop-recording = Detener Grabación + +# ----------------------------------------------------------------------------- +# Correo / Email +# ----------------------------------------------------------------------------- +mail-title = Correo +mail-compose = Redactar +mail-inbox = Bandeja de Entrada +mail-sent = Enviados +mail-drafts = Borradores +mail-trash = Papelera +mail-spam = Spam +mail-starred = Destacados +mail-archive = Archivo +mail-to = Para +mail-cc = CC +mail-bcc = CCO +mail-subject = Asunto +mail-body = Mensaje +mail-reply = Responder +mail-reply-all = Responder a Todos +mail-forward = Reenviar +mail-send = Enviar +mail-discard = Descartar +mail-save-draft = Guardar Borrador +mail-attach = Adjuntar Archivos +mail-unread = { $count -> + [one] { $count } sin leer + *[other] { $count } sin leer +} +mail-empty-inbox = Tu bandeja de entrada está vacía +mail-no-subject = (Sin asunto) + +# ----------------------------------------------------------------------------- +# Configuración +# ----------------------------------------------------------------------------- +settings-title = Configuración +settings-general = General +settings-account = Cuenta +settings-notifications = Notificaciones +settings-privacy = Privacidad +settings-security = Seguridad +settings-language = Idioma +settings-theme = Tema +settings-theme-light = Claro +settings-theme-dark = Oscuro +settings-theme-system = Sistema +settings-save = Guardar Cambios +settings-saved = Configuración guardada exitosamente +settings-timezone = Zona Horaria +settings-date-format = Formato de Fecha +settings-time-format = Formato de Hora + +# ----------------------------------------------------------------------------- +# Autenticación / Login +# ----------------------------------------------------------------------------- +auth-login = Iniciar Sesión +auth-logout = Cerrar Sesión +auth-signup = Registrarse +auth-forgot-password = ¿Olvidaste tu Contraseña? +auth-reset-password = Restablecer Contraseña +auth-email = Correo Electrónico +auth-password = Contraseña +auth-confirm-password = Confirmar Contraseña +auth-remember-me = Recordarme +auth-login-success = Sesión iniciada exitosamente +auth-logout-success = Sesión cerrada exitosamente +auth-invalid-credentials = Correo o contraseña inválidos +auth-session-expired = Tu sesión ha expirado. Por favor inicia sesión nuevamente. + +# ----------------------------------------------------------------------------- +# Búsqueda +# ----------------------------------------------------------------------------- +search-placeholder = Buscar... +search-no-results = No se encontraron resultados +search-results = { $count -> + [one] { $count } resultado + *[other] { $count } resultados +} +search-in-progress = Buscando... +search-advanced = Búsqueda Avanzada +search-filters = Filtros +search-clear-filters = Limpiar Filtros + +# ----------------------------------------------------------------------------- +# Paginación +# ----------------------------------------------------------------------------- +pagination-previous = Anterior +pagination-next = Siguiente +pagination-first = Primera +pagination-last = Última +pagination-page = Página { $current } de { $total } +pagination-showing = Mostrando { $from } a { $to } de { $total } + +# ----------------------------------------------------------------------------- +# Tablas +# ----------------------------------------------------------------------------- +table-no-data = No hay datos disponibles +table-loading = Cargando datos... +table-actions = Acciones +table-select-all = Seleccionar Todo +table-deselect-all = Deseleccionar Todo +table-export = Exportar +table-import = Importar + +# ----------------------------------------------------------------------------- +# Formularios +# ----------------------------------------------------------------------------- +form-required = Requerido +form-optional = Opcional +form-submit = Enviar +form-reset = Restablecer +form-clear = Limpiar +form-uploading = Subiendo... +form-processing = Procesando... + +# ----------------------------------------------------------------------------- +# Modales / Diálogos +# ----------------------------------------------------------------------------- +modal-confirm-title = Confirmar Acción +modal-confirm-message = ¿Estás seguro de que deseas continuar? +modal-delete-title = Confirmación de Eliminación +modal-delete-message = Esta acción no se puede deshacer. ¿Estás seguro? + +# ----------------------------------------------------------------------------- +# Tooltips +# ----------------------------------------------------------------------------- +tooltip-copy = Copiar al portapapeles +tooltip-copied = ¡Copiado! +tooltip-expand = Expandir +tooltip-collapse = Contraer +tooltip-refresh = Actualizar +tooltip-download = Descargar +tooltip-upload = Subir +tooltip-print = Imprimir +tooltip-fullscreen = Pantalla Completa +tooltip-exit-fullscreen = Salir de Pantalla Completa + +# ----------------------------------------------------------------------------- +# Configuración - Idioma y Localización +# ----------------------------------------------------------------------------- +settings-language = Idioma +settings-language-desc = Elige tu idioma preferido +settings-display-language = Idioma de Visualización +settings-language-affects = Afecta todo el texto en la aplicación +settings-date-format = Formato de Fecha +settings-date-format-desc = Cómo se muestran las fechas +settings-time-format = Formato de Hora +settings-time-format-desc = Reloj de 12 horas o 24 horas +settings-saved = Configuración guardada exitosamente +settings-language-changed = Idioma cambiado exitosamente +settings-reload-required = Se requiere recargar la página para aplicar cambios + +# Configuración - Perfil +settings-profile = Configuración de Perfil +settings-profile-desc = Administra tu información personal y preferencias +settings-profile-photo = Foto de Perfil +settings-profile-photo-desc = Tu foto de perfil es visible para otros usuarios +settings-upload-photo = Subir Foto +settings-remove-photo = Eliminar +settings-basic-info = Información Básica +settings-display-name = Nombre para Mostrar +settings-username = Nombre de Usuario +settings-email-address = Correo Electrónico +settings-bio = Biografía +settings-bio-placeholder = Cuéntanos sobre ti... +settings-contact-info = Información de Contacto +settings-phone-number = Número de Teléfono +settings-location = Ubicación +settings-website = Sitio Web + +# Configuración - Seguridad +settings-security = Configuración de Seguridad +settings-security-desc = Protege tu cuenta con seguridad mejorada +settings-change-password = Cambiar Contraseña +settings-change-password-desc = Actualiza tu contraseña regularmente para mejor seguridad +settings-current-password = Contraseña Actual +settings-new-password = Nueva Contraseña +settings-confirm-password = Confirmar Nueva Contraseña +settings-update-password = Actualizar Contraseña +settings-2fa = Autenticación de Dos Factores +settings-2fa-desc = Agrega una capa extra de seguridad a tu cuenta +settings-authenticator-app = Aplicación de Autenticación +settings-authenticator-desc = Usa una app de autenticación para códigos 2FA +settings-enable-2fa = Habilitar 2FA +settings-disable-2fa = Deshabilitar 2FA +settings-active-sessions = Sesiones Activas +settings-active-sessions-desc = Administra tus sesiones de inicio de sesión activas +settings-this-device = Este dispositivo +settings-terminate-session = Terminar +settings-terminate-all = Terminar Todas las Otras Sesiones + +# Configuración - Apariencia +settings-appearance = Apariencia +settings-appearance-desc = Personaliza cómo se ve la aplicación +settings-theme-selection = Tema +settings-theme-selection-desc = Elige tu tema de color preferido +settings-theme-dark = Oscuro +settings-theme-light = Claro +settings-theme-blue = Azul +settings-theme-purple = Púrpura +settings-theme-green = Verde +settings-theme-orange = Naranja +settings-layout-preferences = Preferencias de Diseño +settings-compact-mode = Modo Compacto +settings-compact-mode-desc = Reduce el espaciado para más contenido +settings-show-sidebar = Mostrar Barra Lateral +settings-show-sidebar-desc = Siempre mostrar la barra de navegación +settings-animations = Animaciones +settings-animations-desc = Habilitar animaciones y transiciones de UI + +# Configuración - Notificaciones +settings-notifications-title = Notificaciones +settings-notifications-desc = Controla cómo recibes notificaciones +settings-email-notifications = Notificaciones por Correo +settings-direct-messages = Mensajes Directos +settings-direct-messages-desc = Recibir correo para nuevos mensajes directos +settings-mentions = Menciones +settings-mentions-desc = Recibir correo cuando alguien te menciona +settings-weekly-digest = Resumen Semanal +settings-weekly-digest-desc = Obtén un resumen semanal de actividad +settings-marketing = Marketing +settings-marketing-desc = Recibir noticias y actualizaciones de productos +settings-push-notifications = Notificaciones Push +settings-enable-push = Habilitar Notificaciones Push +settings-enable-push-desc = Recibir notificaciones push del navegador +settings-notification-sound = Sonido +settings-notification-sound-desc = Reproducir sonido para notificaciones +settings-in-app-notifications = Notificaciones en la App + +# Configuración - Almacenamiento +settings-storage = Almacenamiento +settings-storage-desc = Administra tu uso de almacenamiento +settings-storage-usage = Uso de Almacenamiento +settings-storage-used = { $used } de { $total } usado +settings-storage-upgrade = Mejorar Almacenamiento + +# Configuración - Privacidad +settings-privacy-title = Privacidad +settings-privacy-desc = Controla tu configuración de privacidad +settings-data-collection = Recolección de Datos +settings-analytics = Analíticas +settings-analytics-desc = Ayúdanos a mejorar enviando datos de uso anónimos +settings-crash-reports = Reportes de Errores +settings-crash-reports-desc = Enviar reportes de errores automáticamente +settings-download-data = Descargar Tus Datos +settings-download-data-desc = Obtén una copia de todos tus datos +settings-delete-account = Eliminar Cuenta +settings-delete-account-desc = Eliminar permanentemente tu cuenta y todos los datos +settings-delete-account-warning = Esta acción no se puede deshacer + +# Configuración - Facturación +settings-billing = Facturación +settings-billing-desc = Administra tu suscripción y métodos de pago +settings-current-plan = Plan Actual +settings-free-plan = Plan Gratuito +settings-pro-plan = Plan Pro +settings-enterprise-plan = Plan Empresarial +settings-upgrade-plan = Mejorar Plan +settings-payment-methods = Métodos de Pago +settings-add-payment = Agregar Método de Pago +settings-billing-history = Historial de Facturación + +# ----------------------------------------------------------------------------- +# Paper (Editor de Documentos) +# ----------------------------------------------------------------------------- +paper-title = Documentos +paper-new-note = Nueva Nota +paper-search-notes = Buscar notas... +paper-quick-start = Inicio Rápido +paper-template-blank = En Blanco +paper-template-meeting = Reunión +paper-template-todo = Lista de Tareas +paper-template-research = Investigación +paper-untitled = Sin Título +paper-placeholder = Comienza a escribir, o escribe / para comandos... +paper-commands = Comandos +paper-heading1 = Título 1 +paper-heading1-desc = Título de sección grande +paper-heading2 = Título 2 +paper-heading2-desc = Título de sección mediano +paper-heading3 = Título 3 +paper-heading3-desc = Título de sección pequeño +paper-paragraph = Párrafo +paper-paragraph-desc = Texto plano +paper-bullet-list = Lista con Viñetas +paper-bullet-list-desc = Lista sin orden +paper-numbered-list = Lista Numerada +paper-numbered-list-desc = Lista ordenada +paper-todo-list = Lista de Tareas +paper-todo-list-desc = Lista de tareas marcables +paper-quote = Cita +paper-quote-desc = Bloque de cita para referencias +paper-divider = Divisor diff --git a/locales/es/video.ftl b/locales/es/video.ftl new file mode 100644 index 0000000..7d9c3ff --- /dev/null +++ b/locales/es/video.ftl @@ -0,0 +1,142 @@ +# ============================================================================= +# General Bots - Spanish Video Editor Translations +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Navigation +# ----------------------------------------------------------------------------- +nav-video = Video + +# ----------------------------------------------------------------------------- +# Video Editor - Main +# ----------------------------------------------------------------------------- +video-title = Editor de Video +video-new-project = Nuevo Proyecto +video-project-info = Información del Proyecto +video-duration = Duración +video-clips = Clips +video-layers = Capas +video-resolution = Resolución + +# ----------------------------------------------------------------------------- +# Video Editor - Add Elements +# ----------------------------------------------------------------------------- +video-add-elements = Agregar Elementos +video-add-clip = Clip de Video +video-add-text = Texto +video-add-image = Imagen +video-add-shape = Forma +video-add-audio = Audio +video-add-narration = Narración + +# ----------------------------------------------------------------------------- +# Video Editor - Properties +# ----------------------------------------------------------------------------- +video-properties = Propiedades +video-name = Nombre +video-volume = Volumen +video-opacity = Opacidad +video-position-x = Posición X +video-position-y = Posición Y +video-rotation = Rotación +video-transition-in = Transición de Entrada +video-transition-out = Transición de Salida + +# ----------------------------------------------------------------------------- +# Video Editor - Timeline +# ----------------------------------------------------------------------------- +video-video-track = Video +video-text-track = Texto y Superposiciones +video-audio-track = Audio + +# ----------------------------------------------------------------------------- +# Video Editor - Preview +# ----------------------------------------------------------------------------- +video-preview = Vista Previa +video-add-content = Agrega clips o elementos para comenzar a editar + +# ----------------------------------------------------------------------------- +# Video Editor - Chat +# ----------------------------------------------------------------------------- +video-ai-assistant = Asistente IA +video-playhead-at = Cursor: +video-selected = Seleccionado: +video-chat-placeholder = Describe lo que quieres cambiar... +video-chat-welcome = ¡Hola! Soy tu asistente de edición de video. Puedes decirme qué cambiar, como "agrega un título aquí" o "hazlo más grande". Entenderé tu selección actual y la posición del cursor. + +# ----------------------------------------------------------------------------- +# Video Editor - Export +# ----------------------------------------------------------------------------- +video-export = Exportar +video-export-video = Exportar Video +video-format = Formato +video-quality = Calidad +video-start-export = Iniciar Exportación +video-exporting = Exportando... +video-export-complete = Exportación Completa +video-export-failed = Exportación Fallida + +# ----------------------------------------------------------------------------- +# Video Editor - Projects +# ----------------------------------------------------------------------------- +video-recent-projects = Proyectos Recientes +video-no-projects = Aún no hay proyectos +video-create-first = Crea tu primer proyecto de video +video-project-name = Nombre del Proyecto +video-aspect-ratio = Relación de Aspecto +video-frame-rate = Velocidad de Fotogramas +video-create = Crear + +# ----------------------------------------------------------------------------- +# Video Editor - Text Layer +# ----------------------------------------------------------------------------- +video-text-content = Contenido del Texto +video-font-family = Fuente +video-font-size = Tamaño +video-text-color = Color +video-duration-sec = Duración (seg) +video-add = Agregar + +# ----------------------------------------------------------------------------- +# Video Editor - Actions +# ----------------------------------------------------------------------------- +video-undo = Deshacer +video-redo = Rehacer +video-cut = Cortar +video-split = Dividir +video-delete = Eliminar +video-save = Guardar + +# ----------------------------------------------------------------------------- +# Video Editor - Status +# ----------------------------------------------------------------------------- +video-status-draft = Borrador +video-status-editing = Editando +video-status-exporting = Exportando +video-status-published = Publicado +video-status-archived = Archivado + +# ----------------------------------------------------------------------------- +# Video Editor - Notifications +# ----------------------------------------------------------------------------- +video-project-created = Proyecto creado +video-project-saved = Proyecto guardado +video-clip-added = Clip agregado +video-layer-added = Capa agregada +video-text-added = Capa de texto agregada +video-shape-added = Forma agregada +video-audio-added = Pista de audio agregada +video-item-deleted = Elemento eliminado +video-export-started = Exportación iniciada +video-export-completed = Exportación completada exitosamente +video-error-create-project = Error al crear proyecto +video-error-load-project = Error al cargar proyecto +video-error-add-clip = Error al agregar clip +video-error-add-layer = Error al agregar capa +video-error-delete = Error al eliminar elemento +video-error-export = Error al iniciar exportación +video-create-project-first = Por favor crea un proyecto primero +video-select-clip-to-split = Selecciona un clip para dividir +video-playhead-within-clip = El cursor debe estar dentro del clip seleccionado +video-tts-coming-soon = Generación de TTS próximamente +video-split-coming-soon = Función de dividir próximamente diff --git a/locales/es/webinar.ftl b/locales/es/webinar.ftl new file mode 100644 index 0000000..38c06a4 --- /dev/null +++ b/locales/es/webinar.ftl @@ -0,0 +1,313 @@ +# ============================================================================= +# General Bots - Webinar Translations (Spanish) +# ============================================================================= +# Traducciones de la interfaz de webinar, grabación y transcripción +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Webinar Navigation & Headers +# ----------------------------------------------------------------------------- +webinar-title = Webinars +webinar-subtitle = Organiza y gestiona webinars +webinar-nav-upcoming = Próximos +webinar-nav-live = En Vivo +webinar-nav-past = Webinars Anteriores +webinar-nav-recordings = Grabaciones +webinar-nav-analytics = Análisis + +# ----------------------------------------------------------------------------- +# Webinar Status +# ----------------------------------------------------------------------------- +webinar-status-draft = Borrador +webinar-status-scheduled = Programado +webinar-status-live = En Vivo +webinar-status-paused = Pausado +webinar-status-ended = Finalizado +webinar-status-cancelled = Cancelado + +# ----------------------------------------------------------------------------- +# Webinar Fields +# ----------------------------------------------------------------------------- +webinar-field-title = Título +webinar-field-description = Descripción +webinar-field-scheduled-start = Fecha y Hora de Inicio +webinar-field-scheduled-end = Fecha y Hora de Fin +webinar-field-duration = Duración +webinar-field-timezone = Zona Horaria +webinar-field-host = Anfitrión +webinar-field-panelists = Panelistas +webinar-field-max-attendees = Máximo de Asistentes +webinar-field-registration-url = URL de Registro + +# ----------------------------------------------------------------------------- +# Webinar Actions +# ----------------------------------------------------------------------------- +webinar-action-create = Crear Webinar +webinar-action-edit = Editar Webinar +webinar-action-delete = Eliminar Webinar +webinar-action-cancel = Cancelar Webinar +webinar-action-start = Iniciar Webinar +webinar-action-end = Finalizar Webinar +webinar-action-pause = Pausar Webinar +webinar-action-resume = Reanudar Webinar +webinar-action-join = Unirse al Webinar +webinar-action-leave = Salir del Webinar +webinar-action-share = Compartir Enlace +webinar-action-copy-link = Copiar Enlace +webinar-action-invite = Invitar Panelistas + +# ----------------------------------------------------------------------------- +# Participant Roles +# ----------------------------------------------------------------------------- +webinar-role-host = Anfitrión +webinar-role-cohost = Co-Anfitrión +webinar-role-presenter = Presentador +webinar-role-panelist = Panelista +webinar-role-attendee = Asistente + +# ----------------------------------------------------------------------------- +# Participant Actions +# ----------------------------------------------------------------------------- +webinar-participant-mute = Silenciar +webinar-participant-unmute = Activar Audio +webinar-participant-video-on = Activar Vídeo +webinar-participant-video-off = Desactivar Vídeo +webinar-participant-promote = Promover a Panelista +webinar-participant-demote = Degradar a Asistente +webinar-participant-remove = Expulsar del Webinar +webinar-participant-allow-speak = Permitir Hablar +webinar-participant-spotlight = Destacar + +# ----------------------------------------------------------------------------- +# Hand Raising +# ----------------------------------------------------------------------------- +webinar-hand-raise = Levantar la Mano +webinar-hand-lower = Bajar la Mano +webinar-hand-raised-count = { $count } manos levantadas +webinar-hand-allow = Permitir Hablar +webinar-hand-dismiss = Descartar + +# ----------------------------------------------------------------------------- +# Q&A Panel +# ----------------------------------------------------------------------------- +webinar-qa-title = Preguntas y Respuestas +webinar-qa-submit = Enviar Pregunta +webinar-qa-placeholder = Escribe tu pregunta... +webinar-qa-anonymous = Preguntar Anónimamente +webinar-qa-pending = Preguntas Pendientes +webinar-qa-answered = Preguntas Respondidas +webinar-qa-dismissed = Descartadas +webinar-qa-upvote = Votar +webinar-qa-upvotes = { $count } votos +webinar-qa-answer = Responder +webinar-qa-answer-live = Responder en Vivo +webinar-qa-dismiss = Descartar +webinar-qa-pin = Fijar Pregunta +webinar-qa-unpin = Desfijar +webinar-qa-highlight = Destacar +webinar-qa-no-questions = Aún no hay preguntas + +# ----------------------------------------------------------------------------- +# Polls +# ----------------------------------------------------------------------------- +webinar-poll-title = Encuestas +webinar-poll-create = Crear Encuesta +webinar-poll-launch = Lanzar Encuesta +webinar-poll-close = Cerrar Encuesta +webinar-poll-results = Mostrar Resultados +webinar-poll-hide-results = Ocultar Resultados +webinar-poll-question = Pregunta +webinar-poll-options = Opciones +webinar-poll-add-option = Añadir Opción +webinar-poll-single-choice = Opción Única +webinar-poll-multiple-choice = Opción Múltiple +webinar-poll-votes = { $count } votos +webinar-poll-vote = Votar +webinar-poll-voted = Has votado + +# ----------------------------------------------------------------------------- +# Registration +# ----------------------------------------------------------------------------- +webinar-registration-title = Registro +webinar-registration-required = Registro Obligatorio +webinar-registration-open = Registro Abierto +webinar-registration-closed = Registro Cerrado +webinar-registration-register = Registrarse +webinar-registration-registered = Estás Registrado +webinar-registration-cancel = Cancelar Registro +webinar-registration-count = { $count } registrados +webinar-registration-fields = Campos de Registro +webinar-registration-name = Nombre Completo +webinar-registration-email = Correo Electrónico +webinar-registration-confirmation = Registro Confirmado +webinar-registration-pending = Confirmación Pendiente +webinar-registration-waitlist = Lista de Espera + +# ----------------------------------------------------------------------------- +# Webinar Settings +# ----------------------------------------------------------------------------- +webinar-settings-title = Configuración del Webinar +webinar-settings-general = General +webinar-settings-permissions = Permisos +webinar-settings-registration = Registro +webinar-settings-recording = Grabación +webinar-settings-allow-chat = Permitir Chat +webinar-settings-allow-qa = Permitir Preguntas y Respuestas +webinar-settings-allow-hand-raise = Permitir Levantar la Mano +webinar-settings-allow-reactions = Permitir Reacciones +webinar-settings-moderated-qa = Preguntas Moderadas +webinar-settings-anonymous-qa = Permitir Preguntas Anónimas +webinar-settings-waiting-room = Habilitar Sala de Espera +webinar-settings-practice-session = Sesión de Práctica +webinar-settings-auto-record = Grabar Automáticamente + +# ----------------------------------------------------------------------------- +# Recording +# ----------------------------------------------------------------------------- +recording-title = Grabaciones +recording-start = Iniciar Grabación +recording-stop = Detener Grabación +recording-pause = Pausar Grabación +recording-resume = Reanudar Grabación +recording-status-recording = Grabando +recording-status-processing = Procesando +recording-status-ready = Lista +recording-status-failed = Fallida +recording-status-deleted = Eliminada +recording-status-expired = Expirada +recording-duration = Duración +recording-size = Tamaño del Archivo +recording-quality = Calidad +recording-quality-standard = Estándar (720p) +recording-quality-high = Alta (1080p) +recording-quality-ultra = Ultra (4K) +recording-quality-audio = Solo Audio +recording-download = Descargar Grabación +recording-share = Compartir Grabación +recording-delete = Eliminar Grabación +recording-view-count = { $count } visualizaciones +recording-download-count = { $count } descargas +recording-expires = Expira el { $date } + +# ----------------------------------------------------------------------------- +# Transcription +# ----------------------------------------------------------------------------- +transcription-title = Transcripción +transcription-start = Iniciar Transcripción +transcription-status-pending = Pendiente +transcription-status-in-progress = Transcribiendo... +transcription-status-completed = Completada +transcription-status-failed = Fallida +transcription-status-partial = Parcialmente Completada +transcription-language = Idioma +transcription-speaker-identification = Identificación de Hablantes +transcription-speakers = { $count } hablantes identificados +transcription-words = { $count } palabras +transcription-confidence = { $percent }% de confianza +transcription-download = Descargar Transcripción +transcription-export = Exportar +transcription-export-txt = Texto Plano (.txt) +transcription-export-vtt = WebVTT (.vtt) +transcription-export-srt = SubRip (.srt) +transcription-export-json = JSON (.json) +transcription-search = Buscar en transcripción... +transcription-jump-to = Ir al momento +transcription-edit = Editar Transcripción +transcription-save = Guardar Cambios + +# ----------------------------------------------------------------------------- +# Transcription Languages +# ----------------------------------------------------------------------------- +transcription-lang-en-us = Inglés (EE.UU.) +transcription-lang-en-gb = Inglés (Reino Unido) +transcription-lang-es-es = Español (España) +transcription-lang-es-mx = Español (México) +transcription-lang-fr-fr = Francés +transcription-lang-de-de = Alemán +transcription-lang-it-it = Italiano +transcription-lang-pt-br = Portugués (Brasil) +transcription-lang-pt-pt = Portugués (Portugal) +transcription-lang-nl-nl = Holandés +transcription-lang-pl-pl = Polaco +transcription-lang-ru-ru = Ruso +transcription-lang-ja-jp = Japonés +transcription-lang-ko-kr = Coreano +transcription-lang-zh-cn = Chino (Simplificado) +transcription-lang-zh-tw = Chino (Tradicional) +transcription-lang-ar-sa = Árabe +transcription-lang-hi-in = Hindi +transcription-lang-tr-tr = Turco +transcription-lang-vi-vn = Vietnamita + +# ----------------------------------------------------------------------------- +# Webinar Analytics +# ----------------------------------------------------------------------------- +webinar-analytics-title = Análisis del Webinar +webinar-analytics-overview = Resumen +webinar-analytics-registrations = Total de Registros +webinar-analytics-attendees = Total de Asistentes +webinar-analytics-peak-attendees = Pico de Asistentes +webinar-analytics-avg-watch-time = Tiempo Medio de Visualización +webinar-analytics-questions = Preguntas Realizadas +webinar-analytics-questions-answered = Preguntas Respondidas +webinar-analytics-reactions = Reacciones +webinar-analytics-poll-participation = Participación en Encuestas +webinar-analytics-engagement = Puntuación de Engagement +webinar-analytics-retention = Retención de Audiencia +webinar-analytics-export = Exportar Informe + +# ----------------------------------------------------------------------------- +# Empty States +# ----------------------------------------------------------------------------- +webinar-empty-upcoming = No hay webinars programados +webinar-empty-past = No hay webinars anteriores +webinar-empty-recordings = No hay grabaciones disponibles +webinar-empty-schedule = Programa tu primer webinar +webinar-empty-transcription = No hay transcripción disponible + +# ----------------------------------------------------------------------------- +# Confirmations +# ----------------------------------------------------------------------------- +webinar-confirm-end = ¿Estás seguro de que quieres finalizar este webinar? +webinar-confirm-cancel = ¿Estás seguro de que quieres cancelar este webinar? +webinar-confirm-delete = ¿Estás seguro de que quieres eliminar este webinar? +webinar-confirm-delete-recording = ¿Estás seguro de que quieres eliminar esta grabación? +webinar-confirm-stop-recording = ¿Estás seguro de que quieres detener la grabación? + +# ----------------------------------------------------------------------------- +# Success Messages +# ----------------------------------------------------------------------------- +webinar-success-created = Webinar creado con éxito +webinar-success-updated = Webinar actualizado con éxito +webinar-success-started = Webinar iniciado +webinar-success-ended = Webinar finalizado +webinar-success-cancelled = Webinar cancelado +webinar-success-recording-started = Grabación iniciada +webinar-success-recording-stopped = Grabación detenida +webinar-success-transcription-started = Transcripción iniciada +webinar-success-transcription-completed = Transcripción completada + +# ----------------------------------------------------------------------------- +# Error Messages +# ----------------------------------------------------------------------------- +webinar-error-create = Error al crear webinar +webinar-error-start = Error al iniciar webinar +webinar-error-join = Error al unirse al webinar +webinar-error-recording-start = Error al iniciar grabación +webinar-error-recording-stop = Error al detener grabación +webinar-error-transcription = Error en la transcripción +webinar-error-max-participants = Número máximo de participantes alcanzado +webinar-error-not-authorized = No estás autorizado para realizar esta acción +webinar-error-webinar-ended = Este webinar ha finalizado +webinar-error-registration-closed = El registro está cerrado + +# ----------------------------------------------------------------------------- +# Notifications +# ----------------------------------------------------------------------------- +webinar-notify-starting-soon = El webinar comienza en { $minutes } minutos +webinar-notify-started = El webinar ha comenzado +webinar-notify-ended = El webinar ha finalizado +webinar-notify-hand-raised = { $name } ha levantado la mano +webinar-notify-question-submitted = Nueva pregunta enviada +webinar-notify-recording-ready = La grabación está lista +webinar-notify-transcription-ready = La transcripción está lista diff --git a/locales/pt-BR/admin.ftl b/locales/pt-BR/admin.ftl new file mode 100644 index 0000000..2fafe33 --- /dev/null +++ b/locales/pt-BR/admin.ftl @@ -0,0 +1,557 @@ +# ============================================================================= +# General Bots - Traduções de Administração (Português Brasileiro) +# ============================================================================= +# Traduções da interface administrativa para o Painel Admin do GB +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Navegação Admin & Painel +# ----------------------------------------------------------------------------- +admin-title = Administração +admin-dashboard = Painel Administrativo +admin-overview = Visão Geral +admin-welcome = Bem-vindo ao Painel Administrativo + +admin-nav-dashboard = Painel +admin-nav-users = Usuários +admin-nav-bots = Bots +admin-nav-tenants = Inquilinos +admin-nav-settings = Configurações +admin-nav-logs = Logs +admin-nav-analytics = Análises +admin-nav-security = Segurança +admin-nav-integrations = Integrações +admin-nav-billing = Faturamento +admin-nav-support = Suporte +admin-nav-groups = Grupos +admin-nav-dns = DNS +admin-nav-system = Sistema + +# ----------------------------------------------------------------------------- +# Ações Rápidas Admin +# ----------------------------------------------------------------------------- +admin-quick-actions = Ações Rápidas +admin-create-user = Criar Usuário +admin-create-group = Criar Grupo +admin-register-dns = Registrar DNS +admin-recent-activity = Atividade Recente +admin-system-health = Saúde do Sistema + +# ----------------------------------------------------------------------------- +# Gerenciamento de Usuários +# ----------------------------------------------------------------------------- +admin-users-title = Gerenciamento de Usuários +admin-users-list = Lista de Usuários +admin-users-add = Adicionar Usuário +admin-users-edit = Editar Usuário +admin-users-delete = Excluir Usuário +admin-users-search = Buscar usuários... +admin-users-filter = Filtrar Usuários +admin-users-export = Exportar Usuários +admin-users-import = Importar Usuários +admin-users-total = Total de Usuários +admin-users-active = Usuários Ativos +admin-users-inactive = Usuários Inativos +admin-users-suspended = Usuários Suspensos +admin-users-pending = Verificação Pendente +admin-users-last-login = Último Login +admin-users-created = Criado em +admin-users-role = Função +admin-users-status = Status +admin-users-actions = Ações +admin-users-no-users = Nenhum usuário encontrado +admin-users-confirm-delete = Tem certeza que deseja excluir este usuário? +admin-users-deleted = Usuário excluído com sucesso +admin-users-saved = Usuário salvo com sucesso +admin-users-invite = Convidar Usuário +admin-users-invite-sent = Convite enviado com sucesso +admin-users-bulk-actions = Ações em Massa +admin-users-select-all = Selecionar Todos +admin-users-deselect-all = Desmarcar Todos + +# Detalhes do Usuário +admin-user-details = Detalhes do Usuário +admin-user-profile = Perfil +admin-user-email = E-mail +admin-user-name = Nome +admin-user-phone = Telefone +admin-user-avatar = Avatar +admin-user-timezone = Fuso Horário +admin-user-language = Idioma +admin-user-role-admin = Administrador +admin-user-role-manager = Gerente +admin-user-role-user = Usuário +admin-user-role-viewer = Visualizador +admin-user-status-active = Ativo +admin-user-status-inactive = Inativo +admin-user-status-suspended = Suspenso +admin-user-status-pending = Pendente +admin-user-permissions = Permissões +admin-user-activity = Log de Atividades +admin-user-sessions = Sessões Ativas +admin-user-terminate-session = Encerrar Sessão +admin-user-terminate-all = Encerrar Todas as Sessões +admin-user-reset-password = Redefinir Senha +admin-user-force-logout = Forçar Logout +admin-user-enable-2fa = Ativar 2FA +admin-user-disable-2fa = Desativar 2FA + +# ----------------------------------------------------------------------------- +# Gerenciamento de Grupos +# ----------------------------------------------------------------------------- +admin-groups-title = Gerenciamento de Grupos +admin-groups-subtitle = Gerencie grupos, membros e permissões +admin-groups-list = Lista de Grupos +admin-groups-add = Adicionar Grupo +admin-groups-create = Criar Grupo +admin-groups-edit = Editar Grupo +admin-groups-delete = Excluir Grupo +admin-groups-search = Buscar grupos... +admin-groups-filter = Filtrar Grupos +admin-groups-total = Total de Grupos +admin-groups-active = Grupos Ativos +admin-groups-no-groups = Nenhum grupo encontrado +admin-groups-confirm-delete = Tem certeza que deseja excluir este grupo? +admin-groups-deleted = Grupo excluído com sucesso +admin-groups-saved = Grupo salvo com sucesso +admin-groups-created = Grupo criado com sucesso +admin-groups-loading = Carregando grupos... + +# Detalhes do Grupo +admin-group-details = Detalhes do Grupo +admin-group-name = Nome do Grupo +admin-group-description = Descrição +admin-group-visibility = Visibilidade +admin-group-visibility-public = Público +admin-group-visibility-private = Privado +admin-group-visibility-hidden = Oculto +admin-group-join-policy = Política de Entrada +admin-group-join-invite = Apenas por Convite +admin-group-join-request = Solicitar Entrada +admin-group-join-open = Aberto +admin-group-members = Membros +admin-group-member-count = { $count -> + [one] { $count } membro + *[other] { $count } membros +} +admin-group-add-member = Adicionar Membro +admin-group-remove-member = Remover Membro +admin-group-permissions = Permissões +admin-group-settings = Configurações +admin-group-analytics = Análises +admin-group-overview = Visão Geral + +# Modos de Visualização de Grupos +admin-groups-view-grid = Visualização em Grade +admin-groups-view-list = Visualização em Lista +admin-groups-all-visibility = Todas as Visibilidades + +# ----------------------------------------------------------------------------- +# Gerenciamento de DNS +# ----------------------------------------------------------------------------- +admin-dns-title = Gerenciamento de DNS +admin-dns-subtitle = Registre e gerencie hostnames DNS para seus bots +admin-dns-register = Registrar Hostname +admin-dns-registered = Hostnames Registrados +admin-dns-search = Buscar hostnames... +admin-dns-refresh = Atualizar +admin-dns-loading = Carregando registros DNS... +admin-dns-no-records = Nenhum registro DNS encontrado +admin-dns-confirm-delete = Tem certeza que deseja remover este hostname? +admin-dns-deleted = Hostname removido com sucesso +admin-dns-saved = Registro DNS salvo com sucesso +admin-dns-created = Hostname registrado com sucesso + +# Campos do Formulário DNS +admin-dns-hostname = Hostname +admin-dns-hostname-placeholder = meubot.exemplo.com +admin-dns-hostname-help = Digite o nome de domínio completo que deseja registrar +admin-dns-record-type = Tipo de Registro +admin-dns-record-type-a = A (IPv4) +admin-dns-record-type-aaaa = AAAA (IPv6) +admin-dns-record-type-cname = CNAME +admin-dns-ttl = TTL (segundos) +admin-dns-ttl-5min = 5 minutos (300) +admin-dns-ttl-1hour = 1 hora (3600) +admin-dns-ttl-1day = 1 dia (86400) +admin-dns-target = Destino/Endereço IP +admin-dns-target-placeholder-ipv4 = 192.168.1.1 +admin-dns-target-placeholder-ipv6 = 2001:db8::1 +admin-dns-target-placeholder-cname = destino.exemplo.com +admin-dns-target-help-a = Digite o endereço IPv4 de destino +admin-dns-target-help-aaaa = Digite o endereço IPv6 de destino +admin-dns-target-help-cname = Digite o nome de domínio de destino +admin-dns-auto-ssl = Provisionar certificado SSL automaticamente + +# Cabeçalhos da Tabela DNS +admin-dns-col-hostname = Hostname +admin-dns-col-type = Tipo +admin-dns-col-target = Destino +admin-dns-col-ttl = TTL +admin-dns-col-ssl = SSL +admin-dns-col-status = Status +admin-dns-col-actions = Ações + +# Status DNS +admin-dns-status-active = Ativo +admin-dns-status-pending = Pendente +admin-dns-status-error = Erro +admin-dns-ssl-enabled = SSL Ativado +admin-dns-ssl-disabled = Sem SSL +admin-dns-ssl-pending = SSL Pendente + +# Cards de Ajuda DNS +admin-dns-help-title = Ajuda de Configuração DNS +admin-dns-help-a-record = Registro A +admin-dns-help-a-record-desc = Mapeia um nome de domínio para um endereço IPv4. Use para apontar seu hostname diretamente para um IP de servidor. +admin-dns-help-aaaa-record = Registro AAAA +admin-dns-help-aaaa-record-desc = Mapeia um nome de domínio para um endereço IPv6. Similar ao registro A, mas para conectividade IPv6. +admin-dns-help-cname-record = Registro CNAME +admin-dns-help-cname-record-desc = Cria um alias de um domínio para outro. Útil para apontar subdomínios para seu domínio principal. +admin-dns-help-ssl = SSL/TLS +admin-dns-help-ssl-desc = Provisiona automaticamente certificados Let's Encrypt para conexões HTTPS seguras. + +# Modais de Edição/Remoção DNS +admin-dns-edit-title = Editar Registro DNS +admin-dns-remove-title = Remover Hostname +admin-dns-remove-warning = Isso excluirá o registro DNS e quaisquer certificados SSL associados. O hostname não será mais resolvido. + +# ----------------------------------------------------------------------------- +# Gerenciamento de Bots +# ----------------------------------------------------------------------------- +admin-bots-title = Gerenciamento de Bots +admin-bots-list = Lista de Bots +admin-bots-add = Adicionar Bot +admin-bots-edit = Editar Bot +admin-bots-delete = Excluir Bot +admin-bots-search = Buscar bots... +admin-bots-filter = Filtrar Bots +admin-bots-total = Total de Bots +admin-bots-active = Bots Ativos +admin-bots-inactive = Bots Inativos +admin-bots-draft = Bots em Rascunho +admin-bots-published = Bots Publicados +admin-bots-no-bots = Nenhum bot encontrado +admin-bots-confirm-delete = Tem certeza que deseja excluir este bot? +admin-bots-deleted = Bot excluído com sucesso +admin-bots-saved = Bot salvo com sucesso +admin-bots-duplicate = Duplicar Bot +admin-bots-export = Exportar Bot +admin-bots-import = Importar Bot +admin-bots-publish = Publicar +admin-bots-unpublish = Despublicar +admin-bots-test = Testar Bot +admin-bots-logs = Logs do Bot +admin-bots-analytics = Análises do Bot +admin-bots-conversations = Conversas +admin-bots-templates = Templates +admin-bots-dialogs = Diálogos +admin-bots-knowledge-base = Base de Conhecimento + +# Detalhes do Bot +admin-bot-details = Detalhes do Bot +admin-bot-name = Nome do Bot +admin-bot-description = Descrição +admin-bot-avatar = Avatar do Bot +admin-bot-language = Idioma +admin-bot-timezone = Fuso Horário +admin-bot-greeting = Mensagem de Saudação +admin-bot-fallback = Mensagem de Fallback +admin-bot-channels = Canais +admin-bot-channel-web = Chat Web +admin-bot-channel-whatsapp = WhatsApp +admin-bot-channel-telegram = Telegram +admin-bot-channel-slack = Slack +admin-bot-channel-teams = Microsoft Teams +admin-bot-channel-email = E-mail +admin-bot-model = Modelo de IA +admin-bot-temperature = Temperatura +admin-bot-max-tokens = Máximo de Tokens +admin-bot-system-prompt = Prompt do Sistema + +# ----------------------------------------------------------------------------- +# Gerenciamento de Inquilinos +# ----------------------------------------------------------------------------- +admin-tenants-title = Gerenciamento de Inquilinos +admin-tenants-list = Lista de Inquilinos +admin-tenants-add = Adicionar Inquilino +admin-tenants-edit = Editar Inquilino +admin-tenants-delete = Excluir Inquilino +admin-tenants-search = Buscar inquilinos... +admin-tenants-total = Total de Inquilinos +admin-tenants-active = Inquilinos Ativos +admin-tenants-suspended = Inquilinos Suspensos +admin-tenants-trial = Inquilinos em Teste +admin-tenants-no-tenants = Nenhum inquilino encontrado +admin-tenants-confirm-delete = Tem certeza que deseja excluir este inquilino? +admin-tenants-deleted = Inquilino excluído com sucesso +admin-tenants-saved = Inquilino salvo com sucesso + +# Detalhes do Inquilino +admin-tenant-details = Detalhes do Inquilino +admin-tenant-name = Nome do Inquilino +admin-tenant-domain = Domínio +admin-tenant-plan = Plano +admin-tenant-plan-free = Gratuito +admin-tenant-plan-starter = Inicial +admin-tenant-plan-professional = Profissional +admin-tenant-plan-enterprise = Empresarial +admin-tenant-users = Usuários +admin-tenant-bots = Bots +admin-tenant-storage = Armazenamento Usado +admin-tenant-api-calls = Chamadas de API +admin-tenant-limits = Limites de Uso +admin-tenant-billing = Informações de Faturamento + +# ----------------------------------------------------------------------------- +# Configurações do Sistema +# ----------------------------------------------------------------------------- +admin-settings-title = Configurações do Sistema +admin-settings-general = Configurações Gerais +admin-settings-security = Configurações de Segurança +admin-settings-email = Configurações de E-mail +admin-settings-storage = Configurações de Armazenamento +admin-settings-integrations = Integrações +admin-settings-api = Configurações de API +admin-settings-appearance = Aparência +admin-settings-localization = Localização +admin-settings-notifications = Notificações +admin-settings-backup = Backup e Restauração +admin-settings-maintenance = Modo de Manutenção +admin-settings-saved = Configurações salvas com sucesso +admin-settings-reset = Restaurar Padrões +admin-settings-confirm-reset = Tem certeza que deseja restaurar todas as configurações para os padrões? + +# Configurações Gerais +admin-settings-site-name = Nome do Site +admin-settings-site-url = URL do Site +admin-settings-admin-email = E-mail do Admin +admin-settings-support-email = E-mail de Suporte +admin-settings-default-language = Idioma Padrão +admin-settings-default-timezone = Fuso Horário Padrão +admin-settings-date-format = Formato de Data +admin-settings-time-format = Formato de Hora +admin-settings-currency = Moeda + +# Configurações de E-mail +admin-settings-smtp-host = Host SMTP +admin-settings-smtp-port = Porta SMTP +admin-settings-smtp-user = Usuário SMTP +admin-settings-smtp-password = Senha SMTP +admin-settings-smtp-encryption = Criptografia +admin-settings-smtp-from-name = Nome do Remetente +admin-settings-smtp-from-email = E-mail do Remetente +admin-settings-smtp-test = Enviar E-mail de Teste +admin-settings-smtp-test-success = E-mail de teste enviado com sucesso +admin-settings-smtp-test-failed = Falha ao enviar e-mail de teste + +# Configurações de Armazenamento +admin-settings-storage-provider = Provedor de Armazenamento +admin-settings-storage-local = Armazenamento Local +admin-settings-storage-s3 = Amazon S3 +admin-settings-storage-minio = MinIO +admin-settings-storage-gcs = Google Cloud Storage +admin-settings-storage-azure = Azure Blob Storage +admin-settings-storage-bucket = Nome do Bucket +admin-settings-storage-region = Região +admin-settings-storage-access-key = Chave de Acesso +admin-settings-storage-secret-key = Chave Secreta +admin-settings-storage-endpoint = URL do Endpoint + +# ----------------------------------------------------------------------------- +# Logs do Sistema +# ----------------------------------------------------------------------------- +admin-logs-title = Logs do Sistema +admin-logs-search = Buscar logs... +admin-logs-filter-level = Filtrar por Nível +admin-logs-filter-source = Filtrar por Origem +admin-logs-filter-date = Filtrar por Data +admin-logs-level-all = Todos os Níveis +admin-logs-level-debug = Debug +admin-logs-level-info = Info +admin-logs-level-warning = Aviso +admin-logs-level-error = Erro +admin-logs-level-critical = Crítico +admin-logs-export = Exportar Logs +admin-logs-clear = Limpar Logs +admin-logs-confirm-clear = Tem certeza que deseja limpar todos os logs? +admin-logs-cleared = Logs limpos com sucesso +admin-logs-no-logs = Nenhum log encontrado +admin-logs-refresh = Atualizar +admin-logs-auto-refresh = Atualização Automática +admin-logs-timestamp = Data/Hora +admin-logs-level = Nível +admin-logs-source = Origem +admin-logs-message = Mensagem +admin-logs-details = Detalhes + +# ----------------------------------------------------------------------------- +# Análises +# ----------------------------------------------------------------------------- +admin-analytics-title = Análises +admin-analytics-overview = Visão Geral +admin-analytics-users = Análises de Usuários +admin-analytics-bots = Análises de Bots +admin-analytics-conversations = Análises de Conversas +admin-analytics-performance = Desempenho +admin-analytics-period = Período +admin-analytics-period-today = Hoje +admin-analytics-period-week = Esta Semana +admin-analytics-period-month = Este Mês +admin-analytics-period-quarter = Este Trimestre +admin-analytics-period-year = Este Ano +admin-analytics-period-custom = Período Personalizado +admin-analytics-export = Exportar Relatório +admin-analytics-total-users = Total de Usuários +admin-analytics-new-users = Novos Usuários +admin-analytics-active-users = Usuários Ativos +admin-analytics-total-bots = Total de Bots +admin-analytics-active-bots = Bots Ativos +admin-analytics-total-conversations = Total de Conversas +admin-analytics-avg-response-time = Tempo Médio de Resposta +admin-analytics-satisfaction-rate = Taxa de Satisfação +admin-analytics-resolution-rate = Taxa de Resolução + +# ----------------------------------------------------------------------------- +# Segurança +# ----------------------------------------------------------------------------- +admin-security-title = Segurança +admin-security-overview = Visão Geral de Segurança +admin-security-audit-log = Log de Auditoria +admin-security-login-attempts = Tentativas de Login +admin-security-blocked-ips = IPs Bloqueados +admin-security-api-keys = Chaves de API +admin-security-webhooks = Webhooks +admin-security-cors = Configurações CORS +admin-security-rate-limiting = Limitação de Taxa +admin-security-encryption = Criptografia +admin-security-2fa = Autenticação de Dois Fatores +admin-security-sso = Login Único (SSO) +admin-security-password-policy = Política de Senhas + +# Chaves de API +admin-api-keys-title = Chaves de API +admin-api-keys-add = Criar Chave de API +admin-api-keys-name = Nome da Chave +admin-api-keys-key = Chave de API +admin-api-keys-secret = Chave Secreta +admin-api-keys-created = Criada em +admin-api-keys-last-used = Último Uso +admin-api-keys-expires = Expira em +admin-api-keys-never = Nunca +admin-api-keys-revoke = Revogar +admin-api-keys-confirm-revoke = Tem certeza que deseja revogar esta chave de API? +admin-api-keys-revoked = Chave de API revogada com sucesso +admin-api-keys-created-success = Chave de API criada com sucesso +admin-api-keys-copy = Copiar para Área de Transferência +admin-api-keys-copied = Copiado! +admin-api-keys-warning = Certifique-se de copiar sua chave de API agora. Você não poderá vê-la novamente! + +# ----------------------------------------------------------------------------- +# Faturamento +# ----------------------------------------------------------------------------- +admin-billing-title = Faturamento +admin-billing-overview = Visão Geral do Faturamento +admin-billing-current-plan = Plano Atual +admin-billing-usage = Uso +admin-billing-invoices = Faturas +admin-billing-payment-methods = Métodos de Pagamento +admin-billing-upgrade = Fazer Upgrade do Plano +admin-billing-downgrade = Fazer Downgrade do Plano +admin-billing-cancel = Cancelar Assinatura +admin-billing-invoice-date = Data da Fatura +admin-billing-invoice-amount = Valor +admin-billing-invoice-status = Status +admin-billing-invoice-paid = Pago +admin-billing-invoice-pending = Pendente +admin-billing-invoice-overdue = Atrasado +admin-billing-invoice-download = Baixar Fatura + +# ----------------------------------------------------------------------------- +# Backup e Restauração +# ----------------------------------------------------------------------------- +admin-backup-title = Backup e Restauração +admin-backup-create = Criar Backup +admin-backup-restore = Restaurar Backup +admin-backup-schedule = Agendar Backups +admin-backup-list = Histórico de Backups +admin-backup-name = Nome do Backup +admin-backup-size = Tamanho +admin-backup-created = Criado em +admin-backup-download = Baixar +admin-backup-delete = Excluir +admin-backup-confirm-restore = Tem certeza que deseja restaurar este backup? Isso irá sobrescrever os dados atuais. +admin-backup-confirm-delete = Tem certeza que deseja excluir este backup? +admin-backup-in-progress = Backup em andamento... +admin-backup-completed = Backup concluído com sucesso +admin-backup-failed = Falha no backup +admin-backup-restore-in-progress = Restauração em andamento... +admin-backup-restore-completed = Restauração concluída com sucesso +admin-backup-restore-failed = Falha na restauração + +# ----------------------------------------------------------------------------- +# Modo de Manutenção +# ----------------------------------------------------------------------------- +admin-maintenance-title = Modo de Manutenção +admin-maintenance-enable = Ativar Modo de Manutenção +admin-maintenance-disable = Desativar Modo de Manutenção +admin-maintenance-status = Status Atual +admin-maintenance-active = Modo de manutenção está ativo +admin-maintenance-inactive = Modo de manutenção está inativo +admin-maintenance-message = Mensagem de Manutenção +admin-maintenance-default-message = Estamos realizando manutenção programada. Por favor, volte em breve. +admin-maintenance-allowed-ips = Endereços IP Permitidos +admin-maintenance-confirm-enable = Tem certeza que deseja ativar o modo de manutenção? Os usuários não poderão acessar o sistema. + +# ----------------------------------------------------------------------------- +# Elementos Comuns da Interface Admin +# ----------------------------------------------------------------------------- +admin-required = Obrigatório +admin-optional = Opcional +admin-loading = Carregando... +admin-saving = Salvando... +admin-deleting = Excluindo... +admin-confirm = Confirmar +admin-cancel = Cancelar +admin-save = Salvar +admin-create = Criar +admin-update = Atualizar +admin-delete = Excluir +admin-edit = Editar +admin-view = Visualizar +admin-close = Fechar +admin-back = Voltar +admin-next = Próximo +admin-previous = Anterior +admin-refresh = Atualizar +admin-export = Exportar +admin-import = Importar +admin-search = Buscar +admin-filter = Filtrar +admin-clear = Limpar +admin-select = Selecionar +admin-select-all = Selecionar Todos +admin-deselect-all = Desmarcar Todos +admin-actions = Ações +admin-more-actions = Mais Ações +admin-no-data = Nenhum dado disponível +admin-error = Ocorreu um erro +admin-success = Sucesso +admin-warning = Atenção +admin-info = Informação + +# Paginação de Tabelas +admin-showing = Mostrando { $from } a { $to } de { $total } resultados +admin-page = Página { $current } de { $total } +admin-items-per-page = Itens por página +admin-go-to-page = Ir para página + +# Ações em Massa +admin-bulk-delete = Excluir Selecionados +admin-bulk-export = Exportar Selecionados +admin-bulk-activate = Ativar Selecionados +admin-bulk-deactivate = Desativar Selecionados +admin-selected-count = { $count -> + [one] { $count } item selecionado + *[other] { $count } itens selecionados +} diff --git a/locales/pt-BR/analytics.ftl b/locales/pt-BR/analytics.ftl new file mode 100644 index 0000000..11cb2aa --- /dev/null +++ b/locales/pt-BR/analytics.ftl @@ -0,0 +1,173 @@ +analytics-title = Análises +analytics-dashboard = Painel de Análises +analytics-overview = Visão Geral +analytics-reports = Relatórios +analytics-export = Exportar Dados +analytics-refresh = Atualizar Dados +analytics-last-updated = Última atualização: { $time } + +analytics-period-today = Hoje +analytics-period-yesterday = Ontem +analytics-period-week = Esta Semana +analytics-period-last-week = Semana Passada +analytics-period-month = Este Mês +analytics-period-last-month = Mês Passado +analytics-period-quarter = Este Trimestre +analytics-period-year = Este Ano +analytics-period-custom = Período Personalizado +analytics-period-from = De +analytics-period-to = Até +analytics-period-apply = Aplicar + +analytics-metric-total = Total +analytics-metric-average = Média +analytics-metric-min = Mínimo +analytics-metric-max = Máximo +analytics-metric-count = Contagem +analytics-metric-sum = Soma +analytics-metric-percentage = Porcentagem +analytics-metric-growth = Crescimento +analytics-metric-change = Variação +analytics-metric-trend = Tendência + +analytics-users-title = Análises de Usuários +analytics-users-total = Total de Usuários +analytics-users-active = Usuários Ativos +analytics-users-new = Novos Usuários +analytics-users-returning = Usuários Recorrentes +analytics-users-churned = Usuários Perdidos +analytics-users-growth = Crescimento de Usuários +analytics-users-retention = Retenção de Usuários +analytics-users-engagement = Engajamento de Usuários +analytics-users-by-country = Usuários por País +analytics-users-by-device = Usuários por Dispositivo +analytics-users-by-browser = Usuários por Navegador +analytics-users-by-os = Usuários por Sistema Operacional +analytics-users-sessions = Sessões +analytics-users-avg-session = Duração Média da Sessão +analytics-users-page-views = Visualizações de Página +analytics-users-bounce-rate = Taxa de Rejeição + +analytics-bots-title = Análises de Bots +analytics-bots-total = Total de Bots +analytics-bots-active = Bots Ativos +analytics-bots-conversations = Total de Conversas +analytics-bots-messages = Total de Mensagens +analytics-bots-avg-messages = Média de Mensagens por Conversa +analytics-bots-response-time = Tempo Médio de Resposta +analytics-bots-resolution-rate = Taxa de Resolução +analytics-bots-satisfaction = Índice de Satisfação +analytics-bots-handoff-rate = Taxa de Transferência para Humano +analytics-bots-fallback-rate = Taxa de Fallback +analytics-bots-intent-accuracy = Precisão de Intenção +analytics-bots-top-intents = Principais Intenções +analytics-bots-top-topics = Principais Tópicos +analytics-bots-by-channel = Conversas por Canal +analytics-bots-by-hour = Conversas por Hora +analytics-bots-by-day = Conversas por Dia + +analytics-conversations-title = Análises de Conversas +analytics-conversations-total = Total de Conversas +analytics-conversations-completed = Concluídas +analytics-conversations-abandoned = Abandonadas +analytics-conversations-transferred = Transferidas +analytics-conversations-avg-duration = Duração Média +analytics-conversations-avg-messages = Média de Mensagens +analytics-conversations-first-response = Tempo da Primeira Resposta +analytics-conversations-wait-time = Tempo Médio de Espera +analytics-conversations-peak-hours = Horários de Pico +analytics-conversations-sentiment = Análise de Sentimento +analytics-conversations-sentiment-positive = Positivo +analytics-conversations-sentiment-neutral = Neutro +analytics-conversations-sentiment-negative = Negativo +analytics-conversations-languages = Por Idioma +analytics-conversations-sources = Por Origem + +analytics-performance-title = Análises de Desempenho +analytics-performance-uptime = Tempo de Atividade +analytics-performance-availability = Disponibilidade +analytics-performance-response-time = Tempo de Resposta +analytics-performance-latency = Latência +analytics-performance-throughput = Taxa de Transferência +analytics-performance-error-rate = Taxa de Erros +analytics-performance-cpu = Uso de CPU +analytics-performance-memory = Uso de Memória +analytics-performance-disk = Uso de Disco +analytics-performance-network = E/S de Rede +analytics-performance-requests = Requisições/seg +analytics-performance-concurrent = Usuários Simultâneos +analytics-performance-queue-size = Tamanho da Fila +analytics-performance-cache-hit = Taxa de Acerto de Cache + +analytics-api-title = Análises de API +analytics-api-calls = Total de Chamadas de API +analytics-api-success = Chamadas Bem-sucedidas +analytics-api-errors = Chamadas com Falha +analytics-api-avg-latency = Latência Média +analytics-api-by-endpoint = Chamadas por Endpoint +analytics-api-by-method = Chamadas por Método +analytics-api-by-status = Chamadas por Código de Status +analytics-api-rate-limited = Chamadas Limitadas por Taxa +analytics-api-top-consumers = Principais Consumidores de API + +analytics-llm-title = Análises de LLM +analytics-llm-requests = Total de Requisições +analytics-llm-tokens-input = Tokens de Entrada +analytics-llm-tokens-output = Tokens de Saída +analytics-llm-tokens-total = Total de Tokens +analytics-llm-cost = Custo Estimado +analytics-llm-avg-latency = Latência Média +analytics-llm-by-model = Uso por Modelo +analytics-llm-cache-hits = Acertos de Cache +analytics-llm-cache-misses = Erros de Cache + +analytics-storage-title = Análises de Armazenamento +analytics-storage-total = Armazenamento Total +analytics-storage-used = Armazenamento Usado +analytics-storage-available = Armazenamento Disponível +analytics-storage-by-type = Armazenamento por Tipo de Arquivo +analytics-storage-by-tenant = Armazenamento por Inquilino +analytics-storage-growth = Crescimento de Armazenamento +analytics-storage-uploads = Total de Uploads +analytics-storage-downloads = Total de Downloads + +analytics-chart-line = Gráfico de Linha +analytics-chart-bar = Gráfico de Barras +analytics-chart-pie = Gráfico de Pizza +analytics-chart-area = Gráfico de Área +analytics-chart-donut = Gráfico de Rosca +analytics-chart-table = Visualização em Tabela +analytics-chart-heatmap = Mapa de Calor +analytics-chart-no-data = Nenhum dado disponível para este período + +analytics-comparison-previous = vs Período Anterior +analytics-comparison-increase = aumento de { $value }% +analytics-comparison-decrease = redução de { $value }% +analytics-comparison-no-change = Sem alteração + +analytics-filter-all = Todos +analytics-filter-apply = Aplicar Filtros +analytics-filter-clear = Limpar Filtros +analytics-filter-by-bot = Filtrar por Bot +analytics-filter-by-channel = Filtrar por Canal +analytics-filter-by-user = Filtrar por Usuário +analytics-filter-by-tenant = Filtrar por Inquilino + +analytics-report-generate = Gerar Relatório +analytics-report-schedule = Agendar Relatório +analytics-report-download = Baixar Relatório +analytics-report-email = Enviar Relatório por E-mail +analytics-report-format-pdf = PDF +analytics-report-format-csv = CSV +analytics-report-format-excel = Excel +analytics-report-format-json = JSON +analytics-report-generating = Gerando relatório... +analytics-report-ready = Relatório pronto para download +analytics-report-failed = Falha ao gerar relatório + +analytics-realtime = Análises em Tempo Real +analytics-realtime-active = Ativos Agora +analytics-realtime-conversations = Conversas Ativas +analytics-realtime-users = Usuários Online +analytics-realtime-requests = Requisições/min +analytics-realtime-events = Eventos/seg diff --git a/locales/pt-BR/auth.ftl b/locales/pt-BR/auth.ftl new file mode 100644 index 0000000..4b93dba --- /dev/null +++ b/locales/pt-BR/auth.ftl @@ -0,0 +1,256 @@ +# ============================================================================= +# General Bots - Authentication Translations (Portuguese - Brazil) +# ============================================================================= +# Traduções de autenticação, Passkey/WebAuthn e segurança +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Authentication General +# ----------------------------------------------------------------------------- +auth-title = Autenticação +auth-login = Entrar +auth-logout = Sair +auth-signup = Cadastrar +auth-welcome = Bem-vindo +auth-welcome-back = Bem-vindo de volta, { $name }! +auth-session-expired = Sua sessão expirou +auth-session-timeout = Sessão expira em { $minutes } minutos + +# ----------------------------------------------------------------------------- +# Login Form +# ----------------------------------------------------------------------------- +auth-login-title = Entre na sua conta +auth-login-subtitle = Digite suas credenciais para continuar +auth-login-email = Endereço de E-mail +auth-login-username = Nome de Usuário +auth-login-password = Senha +auth-login-remember = Lembrar-me +auth-login-forgot = Esqueceu a senha? +auth-login-submit = Entrar +auth-login-loading = Entrando... +auth-login-or = ou continue com +auth-login-no-account = Não tem uma conta? +auth-login-create-account = Criar uma conta + +# ----------------------------------------------------------------------------- +# Passkey/WebAuthn +# ----------------------------------------------------------------------------- +passkey-title = Chaves de Acesso +passkey-subtitle = Autenticação segura sem senha +passkey-description = Chaves de acesso usam a biometria ou PIN do seu dispositivo para login seguro e resistente a phishing +passkey-what-is = O que é uma chave de acesso? +passkey-benefits = Benefícios das chaves de acesso +passkey-benefit-secure = Mais seguro que senhas +passkey-benefit-easy = Fácil de usar - sem senhas para lembrar +passkey-benefit-fast = Login rápido com biometria +passkey-benefit-phishing = Resistente a ataques de phishing + +# ----------------------------------------------------------------------------- +# Passkey Registration +# ----------------------------------------------------------------------------- +passkey-register-title = Configurar Chave de Acesso +passkey-register-subtitle = Crie uma chave de acesso para login mais rápido e seguro +passkey-register-description = Seu dispositivo pedirá para verificar sua identidade usando impressão digital, rosto ou bloqueio de tela +passkey-register-button = Criar Chave de Acesso +passkey-register-name = Nome da Chave de Acesso +passkey-register-name-placeholder = ex: MacBook Pro, iPhone +passkey-register-name-hint = Dê um nome à sua chave de acesso para identificá-la depois +passkey-register-loading = Configurando chave de acesso... +passkey-register-verifying = Verificando com seu dispositivo... +passkey-register-success = Chave de acesso criada com sucesso +passkey-register-error = Falha ao criar chave de acesso +passkey-register-cancelled = Configuração de chave de acesso cancelada +passkey-register-not-supported = Seu navegador não suporta chaves de acesso + +# ----------------------------------------------------------------------------- +# Passkey Authentication +# ----------------------------------------------------------------------------- +passkey-login-title = Entrar com Chave de Acesso +passkey-login-subtitle = Use sua chave de acesso para login seguro sem senha +passkey-login-button = Entrar com Chave de Acesso +passkey-login-loading = Autenticando... +passkey-login-verifying = Verificando chave de acesso... +passkey-login-success = Login realizado com sucesso +passkey-login-error = Falha na autenticação +passkey-login-cancelled = Autenticação cancelada +passkey-login-no-passkeys = Nenhuma chave de acesso encontrada para esta conta +passkey-login-try-another = Tentar outro método + +# ----------------------------------------------------------------------------- +# Passkey Management +# ----------------------------------------------------------------------------- +passkey-manage-title = Gerenciar Chaves de Acesso +passkey-manage-subtitle = Visualize e gerencie suas chaves de acesso registradas +passkey-manage-count = { $count -> + [one] { $count } chave de acesso registrada + *[other] { $count } chaves de acesso registradas +} +passkey-manage-add = Adicionar Nova Chave de Acesso +passkey-manage-rename = Renomear +passkey-manage-delete = Excluir +passkey-manage-created = Criada em { $date } +passkey-manage-last-used = Último uso em { $date } +passkey-manage-never-used = Nunca usada +passkey-manage-this-device = Este dispositivo +passkey-manage-cross-platform = Multiplataforma +passkey-manage-platform = Autenticador de plataforma +passkey-manage-security-key = Chave de segurança +passkey-manage-empty = Nenhuma chave de acesso registrada +passkey-manage-empty-description = Adicione uma chave de acesso para login mais rápido e seguro + +# ----------------------------------------------------------------------------- +# Passkey Deletion +# ----------------------------------------------------------------------------- +passkey-delete-title = Excluir Chave de Acesso +passkey-delete-confirm = Tem certeza de que deseja excluir esta chave de acesso? +passkey-delete-warning = Você não poderá mais usar esta chave de acesso para entrar +passkey-delete-last-warning = Esta é sua única chave de acesso. Você precisará usar autenticação por senha após excluí-la. +passkey-delete-success = Chave de acesso excluída com sucesso +passkey-delete-error = Falha ao excluir chave de acesso + +# ----------------------------------------------------------------------------- +# Password Fallback +# ----------------------------------------------------------------------------- +passkey-fallback-title = Usar Senha +passkey-fallback-description = Se você não pode usar sua chave de acesso, pode entrar com sua senha +passkey-fallback-button = Usar Senha +passkey-fallback-or-passkey = Ou entre com chave de acesso +passkey-fallback-setup-prompt = Configure uma chave de acesso para login mais rápido na próxima vez +passkey-fallback-setup-later = Talvez depois +passkey-fallback-setup-now = Configurar agora +passkey-fallback-locked = Conta temporariamente bloqueada +passkey-fallback-locked-description = Muitas tentativas falhas. Tente novamente em { $minutes } minutos. +passkey-fallback-attempts = { $remaining } tentativas restantes + +# ----------------------------------------------------------------------------- +# Multi-Factor Authentication +# ----------------------------------------------------------------------------- +mfa-title = Autenticação de Dois Fatores +mfa-subtitle = Adicione uma camada extra de segurança à sua conta +mfa-enabled = Autenticação de dois fatores está ativada +mfa-disabled = Autenticação de dois fatores está desativada +mfa-enable = Ativar 2FA +mfa-disable = Desativar 2FA +mfa-setup = Configurar 2FA +mfa-verify = Verificar Código +mfa-code = Código de Verificação +mfa-code-placeholder = Digite o código de 6 dígitos +mfa-code-sent = Código enviado para { $destination } +mfa-code-expired = O código expirou +mfa-code-invalid = Código inválido +mfa-resend = Reenviar código +mfa-resend-in = Reenviar em { $seconds }s +mfa-methods = Métodos de Autenticação +mfa-method-app = Aplicativo Autenticador +mfa-method-sms = SMS +mfa-method-email = E-mail +mfa-method-passkey = Chave de Acesso +mfa-backup-codes = Códigos de Backup +mfa-backup-codes-description = Guarde esses códigos em um lugar seguro. Cada código só pode ser usado uma vez. +mfa-backup-codes-remaining = { $count } códigos de backup restantes +mfa-backup-codes-generate = Gerar Novos Códigos +mfa-backup-codes-download = Baixar Códigos +mfa-backup-codes-copy = Copiar Códigos + +# ----------------------------------------------------------------------------- +# Password Management +# ----------------------------------------------------------------------------- +password-title = Senha +password-change = Alterar Senha +password-current = Senha Atual +password-new = Nova Senha +password-confirm = Confirmar Nova Senha +password-requirements = Requisitos da Senha +password-requirement-length = Pelo menos { $length } caracteres +password-requirement-uppercase = Pelo menos uma letra maiúscula +password-requirement-lowercase = Pelo menos uma letra minúscula +password-requirement-number = Pelo menos um número +password-requirement-special = Pelo menos um caractere especial +password-strength = Força da Senha +password-strength-weak = Fraca +password-strength-fair = Razoável +password-strength-good = Boa +password-strength-strong = Forte +password-match = As senhas coincidem +password-mismatch = As senhas não coincidem +password-changed = Senha alterada com sucesso +password-change-error = Falha ao alterar senha + +# ----------------------------------------------------------------------------- +# Password Reset +# ----------------------------------------------------------------------------- +password-reset-title = Redefinir Senha +password-reset-subtitle = Digite seu e-mail para receber um link de redefinição +password-reset-email-sent = E-mail de redefinição de senha enviado +password-reset-email-sent-description = Verifique seu e-mail para instruções de redefinição de senha +password-reset-invalid-token = Link de redefinição inválido ou expirado +password-reset-success = Senha redefinida com sucesso +password-reset-error = Falha ao redefinir senha + +# ----------------------------------------------------------------------------- +# Session Management +# ----------------------------------------------------------------------------- +session-title = Sessões Ativas +session-subtitle = Gerencie suas sessões ativas em diferentes dispositivos +session-current = Sessão Atual +session-device = Dispositivo +session-location = Localização +session-last-active = Última Atividade +session-ip-address = Endereço IP +session-browser = Navegador +session-os = Sistema Operacional +session-sign-out = Encerrar Sessão +session-sign-out-all = Encerrar Todas as Outras Sessões +session-sign-out-confirm = Tem certeza de que deseja encerrar esta sessão? +session-sign-out-all-confirm = Tem certeza de que deseja encerrar todas as outras sessões? + +# ----------------------------------------------------------------------------- +# Security Settings +# ----------------------------------------------------------------------------- +security-title = Segurança +security-subtitle = Gerencie as configurações de segurança da sua conta +security-overview = Visão Geral de Segurança +security-last-login = Último Login +security-password-last-changed = Última Alteração de Senha +security-security-checkup = Verificação de Segurança +security-checkup-description = Revise suas configurações de segurança +security-recommendation = Recomendação +security-add-passkey = Adicione uma chave de acesso para login mais seguro +security-enable-mfa = Ative a autenticação de dois fatores +security-update-password = Atualize sua senha regularmente + +# ----------------------------------------------------------------------------- +# Error Messages +# ----------------------------------------------------------------------------- +auth-error-invalid-credentials = E-mail ou senha inválidos +auth-error-account-locked = Conta bloqueada. Por favor, entre em contato com o suporte. +auth-error-account-disabled = A conta foi desativada +auth-error-email-not-verified = Por favor, verifique seu endereço de e-mail +auth-error-too-many-attempts = Muitas tentativas falhas. Por favor, tente novamente mais tarde. +auth-error-network = Erro de rede. Por favor, verifique sua conexão. +auth-error-server = Erro do servidor. Por favor, tente novamente mais tarde. +auth-error-unknown = Ocorreu um erro desconhecido +auth-error-session-invalid = Sessão inválida. Por favor, entre novamente. +auth-error-token-expired = Sua sessão expirou. Por favor, entre novamente. +auth-error-unauthorized = Você não está autorizado a realizar esta ação + +# ----------------------------------------------------------------------------- +# Success Messages +# ----------------------------------------------------------------------------- +auth-success-login = Login realizado com sucesso +auth-success-logout = Logout realizado com sucesso +auth-success-signup = Conta criada com sucesso +auth-success-password-changed = Senha alterada com sucesso +auth-success-email-verified = E-mail verificado com sucesso +auth-success-mfa-enabled = Autenticação de dois fatores ativada +auth-success-mfa-disabled = Autenticação de dois fatores desativada +auth-success-session-terminated = Sessão encerrada com sucesso + +# ----------------------------------------------------------------------------- +# Notifications +# ----------------------------------------------------------------------------- +auth-notify-new-login = Novo login de { $device } em { $location } +auth-notify-password-changed = Sua senha foi alterada +auth-notify-mfa-enabled = Autenticação de dois fatores foi ativada +auth-notify-passkey-added = Nova chave de acesso foi adicionada à sua conta +auth-notify-suspicious-activity = Atividade suspeita detectada em sua conta diff --git a/locales/pt-BR/bot-templates.ftl b/locales/pt-BR/bot-templates.ftl new file mode 100644 index 0000000..7ba797f --- /dev/null +++ b/locales/pt-BR/bot-templates.ftl @@ -0,0 +1,150 @@ +bot-greeting-default = Olá! Como posso ajudar você hoje? +bot-greeting-named = Olá, { $name }! Como posso ajudar você hoje? +bot-goodbye = Até logo! Tenha um ótimo dia! +bot-help-prompt = Posso ajudar com: { $topics }. O que você gostaria de saber? +bot-thank-you = Obrigado pela sua mensagem. Como posso ajudá-lo? +bot-echo-intro = Bot Echo: Vou repetir tudo que você disser. Digite 'sair' para encerrar. +bot-you-said = Você disse: { $message } +bot-thinking = Deixe-me pensar sobre isso... +bot-processing = Processando sua solicitação... +bot-error-occurred = Desculpe, algo deu errado. Por favor, tente novamente. +bot-not-understood = Não entendi. Você poderia reformular? +bot-confirm-action = Tem certeza que deseja continuar? +bot-action-cancelled = Ação cancelada. +bot-action-completed = Pronto! + +bot-lead-welcome = Bem-vindo! Deixe-me ajudá-lo a começar. +bot-lead-ask-name = Qual é o seu nome? +bot-lead-ask-email = E seu e-mail? +bot-lead-ask-company = De qual empresa você é? +bot-lead-ask-phone = Qual é o seu telefone? +bot-lead-hot = Ótimo! Nossa equipe de vendas entrará em contato em breve. +bot-lead-nurture = Obrigado pelo seu interesse! Enviaremos alguns materiais. +bot-lead-score = Sua pontuação de lead é { $score } de 100. +bot-lead-saved = Suas informações foram salvas com sucesso. + +bot-schedule-created = Executando tarefa agendada: { $name } +bot-schedule-next = Próxima execução agendada para { $datetime } +bot-schedule-cancelled = Agendamento cancelado. +bot-schedule-paused = Agendamento pausado. +bot-schedule-resumed = Agendamento retomado. + +bot-monitor-alert = Alerta: { $subject } foi alterado +bot-monitor-threshold = { $metric } excedeu o limite: { $value } +bot-monitor-recovered = { $subject } voltou ao normal. +bot-monitor-status = Status atual: { $status } + +bot-order-welcome = Bem-vindo à nossa loja! Como posso ajudar? +bot-order-track = Rastrear meu pedido +bot-order-browse = Ver produtos +bot-order-support = Falar com suporte +bot-order-enter-id = Por favor, digite o número do seu pedido: +bot-order-status = Status do pedido: { $status } +bot-order-shipped = Seu pedido foi enviado! Código de rastreamento: { $tracking } +bot-order-delivered = Seu pedido foi entregue. +bot-order-processing = Seu pedido está sendo processado. +bot-order-cancelled = Seu pedido foi cancelado. +bot-order-ticket = Ticket de suporte criado: #{ $ticket } +bot-order-products-available = Aqui estão nossos produtos disponíveis: +bot-order-product-item = { $name } - { $price } +bot-order-cart-added = { $product } adicionado ao seu carrinho. +bot-order-cart-total = O total do seu carrinho é { $total }. +bot-order-checkout = Prosseguindo para o pagamento... + +bot-hr-welcome = Assistente de RH aqui. Como posso ajudar? +bot-hr-request-leave = Solicitar folga +bot-hr-check-balance = Consultar saldo +bot-hr-view-policies = Ver políticas +bot-hr-leave-type = Qual tipo de folga? (férias/médica/pessoal) +bot-hr-start-date = Data de início? (DD/MM/AAAA) +bot-hr-end-date = Data de término? (DD/MM/AAAA) +bot-hr-leave-submitted = Solicitação de folga enviada! Seu gestor irá revisar. +bot-hr-leave-approved = Sua solicitação de folga foi aprovada. +bot-hr-leave-rejected = Sua solicitação de folga foi rejeitada. +bot-hr-leave-pending = Sua solicitação de folga está pendente de aprovação. +bot-hr-balance-title = Seu saldo de folgas: +bot-hr-vacation-days = Férias: { $days } dias +bot-hr-sick-days = Licença médica: { $days } dias +bot-hr-personal-days = Pessoal: { $days } dias +bot-hr-policy-found = Aqui estão as informações da política solicitada: +bot-hr-policy-not-found = Política não encontrada. Por favor, verifique o nome da política. + +bot-health-welcome = Bem-vindo ao nosso centro de saúde. Como posso ajudar? +bot-health-book = Agendar consulta +bot-health-cancel = Cancelar consulta +bot-health-view = Ver minhas consultas +bot-health-reschedule = Reagendar consulta +bot-health-type = Qual tipo de consulta? (clínica geral/especialista/laboratório) +bot-health-doctor = Qual médico você prefere? +bot-health-date = Qual data funciona melhor para você? +bot-health-time = Qual horário você prefere? +bot-health-confirmed = Sua consulta foi confirmada para { $datetime } com { $doctor }. +bot-health-cancelled = Sua consulta foi cancelada. +bot-health-rescheduled = Sua consulta foi reagendada para { $datetime }. +bot-health-reminder = Lembrete: Você tem uma consulta em { $datetime }. +bot-health-no-appointments = Você não tem consultas agendadas. +bot-health-appointments-list = Suas próximas consultas: + +bot-support-welcome = Como posso ajudá-lo hoje? +bot-support-describe = Por favor, descreva seu problema: +bot-support-category = Qual categoria melhor descreve seu problema? +bot-support-priority = Qual a urgência deste problema? +bot-support-ticket-created = Ticket de suporte #{ $ticket } foi criado. +bot-support-ticket-status = Status do ticket #{ $ticket }: { $status } +bot-support-ticket-updated = Seu ticket foi atualizado. +bot-support-ticket-resolved = Seu ticket foi resolvido. Por favor, nos avise se precisar de mais ajuda. +bot-support-transfer = Transferindo você para um atendente humano... +bot-support-wait-time = Tempo estimado de espera: { $minutes } minutos. +bot-support-agent-joined = O atendente { $name } entrou na conversa. + +bot-survey-intro = Adoraríamos ouvir sua opinião! +bot-survey-question = { $question } +bot-survey-scale = Em uma escala de 1 a 10, como você avalia { $subject }? +bot-survey-open = Por favor, compartilhe comentários adicionais: +bot-survey-thanks = Obrigado pelo seu feedback! +bot-survey-completed = Pesquisa concluída com sucesso. +bot-survey-skip = Você pode pular esta pergunta se preferir. + +bot-notification-new-message = Você tem uma nova mensagem de { $sender }. +bot-notification-task-due = A tarefa "{ $task }" vence { $when }. +bot-notification-reminder = Lembrete: { $message } +bot-notification-update = Atualização: { $message } +bot-notification-alert = Alerta: { $message } + +bot-command-help = Comandos disponíveis: +bot-command-unknown = Comando desconhecido. Digite 'ajuda' para ver os comandos disponíveis. +bot-command-invalid = Sintaxe de comando inválida. Uso: { $usage } + +bot-transfer-to-human = Transferindo você para um atendente humano. Por favor, aguarde... +bot-transfer-complete = Você está agora conectado com { $agent }. +bot-transfer-unavailable = Nenhum atendente disponível no momento. Por favor, tente novamente mais tarde. +bot-transfer-queue-position = Você é o número { $position } na fila. + +bot-auth-login-prompt = Por favor, insira suas credenciais para continuar. +bot-auth-login-success = Login realizado com sucesso. +bot-auth-login-failed = Falha no login. Por favor, verifique suas credenciais. +bot-auth-logout-success = Logout realizado com sucesso. +bot-auth-session-expired = Sua sessão expirou. Por favor, faça login novamente. + +bot-file-upload-prompt = Por favor, envie seu arquivo. +bot-file-upload-success = Arquivo "{ $filename }" enviado com sucesso. +bot-file-upload-failed = Falha ao enviar arquivo. Por favor, tente novamente. +bot-file-download-ready = Seu arquivo está pronto para download. +bot-file-processing = Processando seu arquivo... + +bot-payment-amount = O valor total é { $amount }. +bot-payment-method = Por favor, selecione um método de pagamento. +bot-payment-processing = Processando seu pagamento... +bot-payment-success = Pagamento realizado com sucesso! ID da transação: { $transactionId } +bot-payment-failed = Falha no pagamento. Por favor, tente novamente ou use outro método de pagamento. +bot-payment-refund = Seu reembolso de { $amount } foi processado. + +bot-subscription-active = Sua assinatura está ativa até { $endDate }. +bot-subscription-expired = Sua assinatura expirou. +bot-subscription-renew = Você gostaria de renovar sua assinatura? +bot-subscription-upgraded = Sua assinatura foi atualizada para o plano { $plan }. +bot-subscription-cancelled = Sua assinatura foi cancelada. + +bot-feedback-positive = Obrigado pelo seu feedback positivo! +bot-feedback-negative = Lamentamos saber disso. Como podemos melhorar? +bot-feedback-rating = Você avaliou esta interação com { $rating } de 5. diff --git a/locales/pt-BR/channels.ftl b/locales/pt-BR/channels.ftl new file mode 100644 index 0000000..836e6c1 --- /dev/null +++ b/locales/pt-BR/channels.ftl @@ -0,0 +1,186 @@ +channel-web = Chat Web +channel-whatsapp = WhatsApp +channel-telegram = Telegram +channel-slack = Slack +channel-teams = Microsoft Teams +channel-email = E-mail +channel-sms = SMS +channel-instagram = Instagram +channel-messenger = Facebook Messenger +channel-discord = Discord +channel-voice = Voz +channel-api = API + +channel-status-connected = Conectado +channel-status-disconnected = Desconectado +channel-status-connecting = Conectando... +channel-status-error = Erro de Conexão +channel-status-pending = Configuração Pendente +channel-status-active = Ativo +channel-status-inactive = Inativo +channel-status-suspended = Suspenso + +channel-setup-title = Configuração de Canal +channel-setup-description = Conecte seu bot a diferentes canais de comunicação +channel-setup-select = Selecione um canal para configurar +channel-setup-configure = Configurar Canal +channel-setup-test = Testar Conexão +channel-setup-save = Salvar Configuração +channel-setup-cancel = Cancelar +channel-setup-reset = Restaurar Padrões + +channel-connect = Conectar +channel-disconnect = Desconectar +channel-reconnect = Reconectar +channel-refresh = Atualizar Status +channel-settings = Configurações do Canal +channel-delete = Remover Canal +channel-confirm-delete = Tem certeza que deseja remover este canal? +channel-deleted = Canal removido com sucesso +channel-saved = Configuração do canal salva + +channel-whatsapp-phone = Número de Telefone +channel-whatsapp-business-id = ID da Conta Business +channel-whatsapp-api-key = Chave de API +channel-whatsapp-webhook = URL do Webhook +channel-whatsapp-verify-token = Token de Verificação +channel-whatsapp-template = Template de Mensagem +channel-whatsapp-templates = Templates de Mensagem +channel-whatsapp-template-create = Criar Template +channel-whatsapp-template-status = Status do Template +channel-whatsapp-template-approved = Aprovado +channel-whatsapp-template-pending = Aguardando Aprovação +channel-whatsapp-template-rejected = Rejeitado +channel-whatsapp-24h-window = Janela de mensagens de 24 horas +channel-whatsapp-session-active = Sessão ativa +channel-whatsapp-session-expired = Sessão expirada + +channel-telegram-bot-token = Token do Bot +channel-telegram-bot-username = Nome de Usuário do Bot +channel-telegram-webhook = URL do Webhook +channel-telegram-commands = Comandos do Bot +channel-telegram-command-add = Adicionar Comando +channel-telegram-command-name = Nome do Comando +channel-telegram-command-description = Descrição +channel-telegram-inline-mode = Modo Inline +channel-telegram-group-privacy = Modo de Privacidade em Grupos + +channel-slack-workspace = Workspace +channel-slack-bot-token = Token do Bot +channel-slack-signing-secret = Segredo de Assinatura +channel-slack-app-id = ID do App +channel-slack-channels = Canais +channel-slack-channel-select = Selecionar Canais +channel-slack-events = Assinaturas de Eventos +channel-slack-slash-commands = Comandos Slash +channel-slack-interactivity = Interatividade + +channel-teams-tenant-id = ID do Tenant +channel-teams-app-id = ID do Aplicativo +channel-teams-app-secret = Segredo do Aplicativo +channel-teams-bot-id = ID do Bot +channel-teams-manifest = Manifesto do App +channel-teams-publish = Publicar no Teams +channel-teams-install = Instalar no Teams + +channel-email-smtp-host = Host SMTP +channel-email-smtp-port = Porta SMTP +channel-email-smtp-user = Usuário SMTP +channel-email-smtp-password = Senha SMTP +channel-email-smtp-encryption = Criptografia +channel-email-imap-host = Host IMAP +channel-email-imap-port = Porta IMAP +channel-email-from-name = Nome do Remetente +channel-email-from-address = Endereço do Remetente +channel-email-reply-to = Endereço de Resposta +channel-email-signature = Assinatura de E-mail + +channel-instagram-account = Conta do Instagram +channel-instagram-page-id = ID da Página +channel-instagram-access-token = Token de Acesso +channel-instagram-business = Conta Business +channel-instagram-comments = Respostas a Comentários +channel-instagram-stories = Menções em Stories +channel-instagram-dm = Mensagens Diretas + +channel-messenger-page-id = ID da Página +channel-messenger-app-id = ID do App +channel-messenger-app-secret = Segredo do App +channel-messenger-page-token = Token de Acesso da Página +channel-messenger-verify-token = Token de Verificação +channel-messenger-persistent-menu = Menu Persistente +channel-messenger-get-started = Botão de Começar + +channel-sms-provider = Provedor de SMS +channel-sms-twilio = Twilio +channel-sms-vonage = Vonage +channel-sms-account-sid = Account SID +channel-sms-auth-token = Token de Autenticação +channel-sms-phone-number = Número de Telefone +channel-sms-sender-id = ID do Remetente + +channel-voice-provider = Provedor de Voz +channel-voice-twilio = Twilio +channel-voice-vonage = Vonage +channel-voice-phone-number = Número de Telefone +channel-voice-greeting = Saudação de Voz +channel-voice-fallback = Mensagem de Fallback +channel-voice-transcription = Ativar Transcrição +channel-voice-recording = Ativar Gravação +channel-voice-language = Idioma da Voz +channel-voice-voice-type = Tipo de Voz + +channel-discord-bot-token = Token do Bot +channel-discord-client-id = ID do Cliente +channel-discord-client-secret = Segredo do Cliente +channel-discord-guild = Servidor (Guild) +channel-discord-channels = Canais +channel-discord-permissions = Permissões do Bot +channel-discord-invite-url = URL de Convite + +channel-api-endpoint = Endpoint da API +channel-api-key = Chave de API +channel-api-secret = Segredo da API +channel-api-webhook = URL do Webhook +channel-api-rate-limit = Limite de Taxa +channel-api-documentation = Documentação da API + +channel-widget-title = Widget Web +channel-widget-position = Posição do Widget +channel-widget-position-left = Inferior Esquerdo +channel-widget-position-right = Inferior Direito +channel-widget-color = Cor Principal +channel-widget-header = Texto do Cabeçalho +channel-widget-placeholder = Placeholder do Campo +channel-widget-welcome = Mensagem de Boas-vindas +channel-widget-avatar = Avatar do Bot +channel-widget-bubble = Balão de Chat +channel-widget-preview = Visualizar Widget +channel-widget-embed-code = Código de Incorporação +channel-widget-copy-code = Copiar Código +channel-widget-code-copied = Código copiado para a área de transferência + +channel-routing-title = Roteamento de Canais +channel-routing-default = Canal Padrão +channel-routing-rules = Regras de Roteamento +channel-routing-add-rule = Adicionar Regra +channel-routing-condition = Condição +channel-routing-action = Ação +channel-routing-priority = Prioridade +channel-routing-fallback = Canal de Fallback + +channel-analytics-messages = Mensagens +channel-analytics-conversations = Conversas +channel-analytics-users = Usuários Únicos +channel-analytics-response-time = Tempo Médio de Resposta +channel-analytics-satisfaction = Índice de Satisfação +channel-analytics-by-channel = Análises por Canal + +channel-error-connection = Falha ao conectar ao canal +channel-error-authentication = Falha na autenticação +channel-error-configuration = Configuração inválida +channel-error-rate-limit = Limite de taxa excedido +channel-error-webhook = Falha na verificação do webhook +channel-error-permission = Permissões insuficientes +channel-error-not-found = Canal não encontrado +channel-error-already-exists = Canal já configurado diff --git a/locales/pt-BR/common.ftl b/locales/pt-BR/common.ftl new file mode 100644 index 0000000..2d2d567 --- /dev/null +++ b/locales/pt-BR/common.ftl @@ -0,0 +1,347 @@ +# ============================================================================ +# General Bots - Traduções Comuns (Português Brasileiro) +# ============================================================================ +# Este arquivo contém strings compartilhadas em todos os componentes GB. +# Mantenha os IDs de mensagem em minúsculas com hífens: categoria-subcategoria-descritor +# ============================================================================ + +# ----------------------------------------------------------------------------- +# Marca +# ----------------------------------------------------------------------------- +app-name = General Bots +app-tagline = Seu espaço de trabalho com inteligência artificial + +# ----------------------------------------------------------------------------- +# Ações Comuns +# ----------------------------------------------------------------------------- +action-save = Salvar +action-cancel = Cancelar +action-delete = Excluir +action-edit = Editar +action-close = Fechar +action-confirm = Confirmar +action-retry = Tentar novamente +action-back = Voltar +action-next = Próximo +action-submit = Enviar +action-search = Buscar +action-refresh = Atualizar +action-copy = Copiar +action-paste = Colar +action-undo = Desfazer +action-redo = Refazer +action-select = Selecionar +action-select-all = Selecionar tudo +action-clear = Limpar +action-reset = Redefinir +action-apply = Aplicar +action-create = Criar +action-update = Atualizar +action-remove = Remover +action-add = Adicionar +action-upload = Enviar +action-download = Baixar +action-export = Exportar +action-import = Importar +action-share = Compartilhar +action-send = Enviar +action-reply = Responder +action-forward = Encaminhar +action-archive = Arquivar +action-restore = Restaurar +action-duplicate = Duplicar +action-rename = Renomear +action-move = Mover +action-filter = Filtrar +action-sort = Ordenar +action-view = Visualizar +action-hide = Ocultar +action-show = Mostrar +action-expand = Expandir +action-collapse = Recolher +action-enable = Ativar +action-disable = Desativar +action-connect = Conectar +action-disconnect = Desconectar +action-sync = Sincronizar +action-start = Iniciar +action-stop = Parar +action-pause = Pausar +action-resume = Continuar +action-continue = Continuar +action-finish = Finalizar +action-complete = Concluir +action-approve = Aprovar +action-reject = Rejeitar +action-accept = Aceitar +action-decline = Recusar +action-login = Entrar +action-logout = Sair +action-signup = Cadastrar-se +action-forgot-password = Esqueci a senha + +# ----------------------------------------------------------------------------- +# Rótulos Comuns +# ----------------------------------------------------------------------------- +label-loading = Carregando... +label-saving = Salvando... +label-processing = Processando... +label-searching = Buscando... +label-uploading = Enviando... +label-downloading = Baixando... +label-no-results = Nenhum resultado encontrado +label-no-data = Nenhum dado disponível +label-empty = Vazio +label-none = Nenhum +label-all = Todos +label-selected = Selecionado +label-required = Obrigatório +label-optional = Opcional +label-default = Padrão +label-custom = Personalizado +label-new = Novo +label-draft = Rascunho +label-pending = Pendente +label-active = Ativo +label-inactive = Inativo +label-enabled = Ativado +label-disabled = Desativado +label-public = Público +label-private = Privado +label-shared = Compartilhado +label-yes = Sim +label-no = Não +label-on = Ligado +label-off = Desligado +label-true = Verdadeiro +label-false = Falso +label-unknown = Desconhecido +label-other = Outro +label-more = Mais +label-less = Menos +label-details = Detalhes +label-summary = Resumo +label-description = Descrição +label-name = Nome +label-title = Título +label-type = Tipo +label-status = Status +label-priority = Prioridade +label-date = Data +label-time = Hora +label-size = Tamanho +label-count = Quantidade +label-total = Total +label-average = Média +label-minimum = Mínimo +label-maximum = Máximo +label-version = Versão +label-id = ID +label-created = Criado +label-updated = Atualizado +label-modified = Modificado +label-deleted = Excluído +label-by = Por +label-from = De +label-to = Para +label-at = Em +label-in = Em +label-of = De + +# ----------------------------------------------------------------------------- +# Mensagens de Status +# ----------------------------------------------------------------------------- +status-success = Sucesso +status-error = Erro +status-warning = Atenção +status-info = Informação +status-loading = Carregando +status-complete = Concluído +status-incomplete = Incompleto +status-failed = Falhou +status-cancelled = Cancelado +status-pending = Pendente +status-in-progress = Em andamento +status-done = Feito +status-ready = Pronto +status-not-ready = Não pronto +status-connected = Conectado +status-disconnected = Desconectado +status-online = Online +status-offline = Offline +status-available = Disponível +status-unavailable = Indisponível +status-busy = Ocupado +status-away = Ausente + +# ----------------------------------------------------------------------------- +# Diálogos de Confirmação +# ----------------------------------------------------------------------------- +confirm-delete = Tem certeza que deseja excluir isto? +confirm-delete-item = Tem certeza que deseja excluir "{ $name }"? +confirm-delete-items = Tem certeza que deseja excluir { $count -> + [one] este item + *[other] estes { $count } itens +}? +confirm-discard-changes = Você tem alterações não salvas. Tem certeza que deseja descartá-las? +confirm-logout = Tem certeza que deseja sair? +confirm-cancel = Tem certeza que deseja cancelar? + +# ----------------------------------------------------------------------------- +# Tempo e Datas +# ----------------------------------------------------------------------------- +time-now = Agora mesmo +time-seconds-ago = { $count -> + [one] { $count } segundo atrás + *[other] { $count } segundos atrás +} +time-minutes-ago = { $count -> + [one] { $count } minuto atrás + *[other] { $count } minutos atrás +} +time-hours-ago = { $count -> + [one] { $count } hora atrás + *[other] { $count } horas atrás +} +time-days-ago = { $count -> + [one] { $count } dia atrás + *[other] { $count } dias atrás +} +time-weeks-ago = { $count -> + [one] { $count } semana atrás + *[other] { $count } semanas atrás +} +time-months-ago = { $count -> + [one] { $count } mês atrás + *[other] { $count } meses atrás +} +time-years-ago = { $count -> + [one] { $count } ano atrás + *[other] { $count } anos atrás +} +time-in-seconds = { $count -> + [one] em { $count } segundo + *[other] em { $count } segundos +} +time-in-minutes = { $count -> + [one] em { $count } minuto + *[other] em { $count } minutos +} +time-in-hours = { $count -> + [one] em { $count } hora + *[other] em { $count } horas +} +time-in-days = { $count -> + [one] em { $count } dia + *[other] em { $count } dias +} +time-today = Hoje +time-yesterday = Ontem +time-tomorrow = Amanhã +time-this-week = Esta semana +time-last-week = Semana passada +time-next-week = Próxima semana +time-this-month = Este mês +time-last-month = Mês passado +time-next-month = Próximo mês +time-this-year = Este ano +time-last-year = Ano passado +time-next-year = Próximo ano + +# Dias da semana +day-sunday = Domingo +day-monday = Segunda-feira +day-tuesday = Terça-feira +day-wednesday = Quarta-feira +day-thursday = Quinta-feira +day-friday = Sexta-feira +day-saturday = Sábado +day-sun = Dom +day-mon = Seg +day-tue = Ter +day-wed = Qua +day-thu = Qui +day-fri = Sex +day-sat = Sáb + +# Meses +month-january = Janeiro +month-february = Fevereiro +month-march = Março +month-april = Abril +month-may = Maio +month-june = Junho +month-july = Julho +month-august = Agosto +month-september = Setembro +month-october = Outubro +month-november = Novembro +month-december = Dezembro +month-jan = Jan +month-feb = Fev +month-mar = Mar +month-apr = Abr +month-may-short = Mai +month-jun = Jun +month-jul = Jul +month-aug = Ago +month-sep = Set +month-oct = Out +month-nov = Nov +month-dec = Dez + +# ----------------------------------------------------------------------------- +# Tamanhos de Arquivo +# ----------------------------------------------------------------------------- +size-bytes = { $value } B +size-kilobytes = { $value } KB +size-megabytes = { $value } MB +size-gigabytes = { $value } GB +size-terabytes = { $value } TB + +# ----------------------------------------------------------------------------- +# Paginação +# ----------------------------------------------------------------------------- +pagination-page = Página { $current } de { $total } +pagination-showing = Exibindo { $start } a { $end } de { $total } +pagination-items-per-page = Itens por página +pagination-first = Primeira +pagination-previous = Anterior +pagination-next = Próxima +pagination-last = Última +pagination-go-to-page = Ir para página + +# ----------------------------------------------------------------------------- +# Validação de Formulário +# ----------------------------------------------------------------------------- +validation-required = Este campo é obrigatório +validation-required-field = { $field } é obrigatório +validation-email-invalid = Por favor, insira um endereço de e-mail válido +validation-url-invalid = Por favor, insira uma URL válida +validation-number-invalid = Por favor, insira um número válido +validation-date-invalid = Por favor, insira uma data válida +validation-min-length = Deve ter pelo menos { $min } caracteres +validation-max-length = Deve ter no máximo { $max } caracteres +validation-min-value = Deve ser pelo menos { $min } +validation-max-value = Deve ser no máximo { $max } +validation-pattern-mismatch = Formato inválido +validation-passwords-mismatch = As senhas não coincidem +validation-file-too-large = Arquivo muito grande. Tamanho máximo é { $max } +validation-file-type-invalid = Tipo de arquivo inválido. Tipos permitidos: { $types } + +# ----------------------------------------------------------------------------- +# Acessibilidade +# ----------------------------------------------------------------------------- +a11y-skip-to-content = Pular para o conteúdo principal +a11y-loading = Carregando, por favor aguarde +a11y-menu-open = Abrir menu +a11y-menu-close = Fechar menu +a11y-expand = Expandir +a11y-collapse = Recolher +a11y-selected = Selecionado +a11y-not-selected = Não selecionado +a11y-required = Campo obrigatório +a11y-error = Erro +a11y-success = Sucesso +a11y-warning = Atenção +a11y-info = Informação diff --git a/locales/pt-BR/contacts.ftl b/locales/pt-BR/contacts.ftl new file mode 100644 index 0000000..1dc10bd --- /dev/null +++ b/locales/pt-BR/contacts.ftl @@ -0,0 +1,301 @@ +# ============================================================================= +# General Bots - Contacts Translations (Portuguese - Brazil) +# ============================================================================= +# Traduções da interface de gerenciamento de contatos +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Navigation & Headers +# ----------------------------------------------------------------------------- +contacts-title = Contatos +contacts-subtitle = Gerencie seus contatos e relacionamentos +contacts-nav-all = Todos os Contatos +contacts-nav-favorites = Favoritos +contacts-nav-recent = Adicionados Recentemente +contacts-nav-groups = Grupos +contacts-nav-tags = Tags + +# ----------------------------------------------------------------------------- +# Views & Filters +# ----------------------------------------------------------------------------- +contacts-view-list = Visualização em Lista +contacts-view-grid = Visualização em Grade +contacts-filter-all = Todos +contacts-filter-active = Ativos +contacts-filter-inactive = Inativos +contacts-filter-leads = Leads +contacts-filter-customers = Clientes +contacts-filter-prospects = Prospects +contacts-filter-archived = Arquivados +contacts-search-placeholder = Pesquisar contatos... +contacts-sort-name = Ordenar por Nome +contacts-sort-company = Ordenar por Empresa +contacts-sort-recent = Ordenar por Recentes +contacts-sort-created = Ordenar por Criação + +# ----------------------------------------------------------------------------- +# Contact Fields +# ----------------------------------------------------------------------------- +contacts-field-first-name = Nome +contacts-field-last-name = Sobrenome +contacts-field-email = E-mail +contacts-field-phone = Telefone +contacts-field-mobile = Celular +contacts-field-company = Empresa +contacts-field-job-title = Cargo +contacts-field-department = Departamento +contacts-field-website = Website +contacts-field-linkedin = LinkedIn +contacts-field-twitter = Twitter +contacts-field-address = Endereço +contacts-field-city = Cidade +contacts-field-state = Estado +contacts-field-postal-code = CEP +contacts-field-country = País +contacts-field-notes = Observações +contacts-field-tags = Tags +contacts-field-source = Origem +contacts-field-status = Status +contacts-field-last-contacted = Último Contato +contacts-field-created-at = Criado em +contacts-field-updated-at = Atualizado em + +# ----------------------------------------------------------------------------- +# Contact Status +# ----------------------------------------------------------------------------- +contacts-status-active = Ativo +contacts-status-inactive = Inativo +contacts-status-lead = Lead +contacts-status-customer = Cliente +contacts-status-prospect = Prospect +contacts-status-archived = Arquivado + +# ----------------------------------------------------------------------------- +# Contact Source +# ----------------------------------------------------------------------------- +contacts-source-manual = Entrada Manual +contacts-source-import = Importação +contacts-source-webform = Formulário Web +contacts-source-api = API +contacts-source-email = E-mail +contacts-source-meeting = Reunião +contacts-source-referral = Indicação +contacts-source-social = Redes Sociais + +# ----------------------------------------------------------------------------- +# Actions +# ----------------------------------------------------------------------------- +contacts-action-add = Adicionar Contato +contacts-action-edit = Editar Contato +contacts-action-delete = Excluir Contato +contacts-action-archive = Arquivar Contato +contacts-action-restore = Restaurar Contato +contacts-action-favorite = Adicionar aos Favoritos +contacts-action-unfavorite = Remover dos Favoritos +contacts-action-export = Exportar Contatos +contacts-action-import = Importar Contatos +contacts-action-merge = Mesclar Contatos +contacts-action-send-email = Enviar E-mail +contacts-action-schedule-meeting = Agendar Reunião +contacts-action-create-task = Criar Tarefa +contacts-action-add-note = Adicionar Observação +contacts-action-add-tag = Adicionar Tag +contacts-action-remove-tag = Remover Tag + +# ----------------------------------------------------------------------------- +# Bulk Actions +# ----------------------------------------------------------------------------- +contacts-bulk-selected = { $count } contatos selecionados +contacts-bulk-delete = Excluir Selecionados +contacts-bulk-archive = Arquivar Selecionados +contacts-bulk-add-tag = Adicionar Tag aos Selecionados +contacts-bulk-remove-tag = Remover Tag dos Selecionados +contacts-bulk-add-to-group = Adicionar ao Grupo +contacts-bulk-remove-from-group = Remover do Grupo +contacts-bulk-export = Exportar Selecionados +contacts-bulk-change-status = Alterar Status + +# ----------------------------------------------------------------------------- +# Groups +# ----------------------------------------------------------------------------- +contacts-groups-title = Grupos de Contatos +contacts-groups-create = Criar Grupo +contacts-groups-edit = Editar Grupo +contacts-groups-delete = Excluir Grupo +contacts-groups-name = Nome do Grupo +contacts-groups-description = Descrição +contacts-groups-color = Cor +contacts-groups-members = { $count } membros +contacts-groups-add-members = Adicionar Membros +contacts-groups-remove-members = Remover Membros + +# ----------------------------------------------------------------------------- +# Import/Export +# ----------------------------------------------------------------------------- +contacts-import-title = Importar Contatos +contacts-import-description = Envie um arquivo para importar contatos +contacts-import-format-csv = Arquivo CSV +contacts-import-format-vcard = Arquivo vCard +contacts-import-format-json = Arquivo JSON +contacts-import-drop-zone = Arraste e solte seu arquivo aqui, ou clique para procurar +contacts-import-mapping = Mapeamento de Campos +contacts-import-preview = Pré-visualização +contacts-import-skip-duplicates = Ignorar entradas duplicadas +contacts-import-update-existing = Atualizar contatos existentes +contacts-import-success = { $count } contatos importados com sucesso +contacts-import-errors = { $count } erros durante a importação + +contacts-export-title = Exportar Contatos +contacts-export-description = Baixe seus contatos +contacts-export-format = Formato de Exportação +contacts-export-all = Exportar Todos os Contatos +contacts-export-selected = Exportar Selecionados +contacts-export-group = Exportar Grupo +contacts-export-include-custom = Incluir Campos Personalizados +contacts-export-success = { $count } contatos exportados com sucesso + +# ----------------------------------------------------------------------------- +# Detail Panel +# ----------------------------------------------------------------------------- +contacts-detail-title = Detalhes do Contato +contacts-detail-info = Informações +contacts-detail-activity = Atividade +contacts-detail-notes = Observações +contacts-detail-tasks = Tarefas +contacts-detail-events = Eventos +contacts-detail-files = Arquivos +contacts-detail-history = Histórico + +# ----------------------------------------------------------------------------- +# Activity Types +# ----------------------------------------------------------------------------- +contacts-activity-email = E-mail +contacts-activity-call = Ligação +contacts-activity-meeting = Reunião +contacts-activity-task = Tarefa +contacts-activity-note = Observação +contacts-activity-status-change = Status Alterado +contacts-activity-created = Contato Criado +contacts-activity-updated = Contato Atualizado +contacts-activity-imported = Contato Importado + +# ----------------------------------------------------------------------------- +# Quick Actions +# ----------------------------------------------------------------------------- +contacts-quick-email = E-mail +contacts-quick-call = Ligar +contacts-quick-meeting = Reunião +contacts-quick-task = Tarefa + +# ----------------------------------------------------------------------------- +# Calendar Integration +# ----------------------------------------------------------------------------- +contacts-calendar-link = Vincular ao Evento +contacts-calendar-unlink = Desvincular do Evento +contacts-calendar-events = Eventos Relacionados +contacts-calendar-upcoming = Próximos Eventos +contacts-calendar-past = Eventos Passados +contacts-calendar-role = Função +contacts-calendar-role-attendee = Participante +contacts-calendar-role-organizer = Organizador +contacts-calendar-role-optional = Opcional +contacts-calendar-role-speaker = Palestrante +contacts-calendar-role-host = Anfitrião +contacts-calendar-response = Status de Resposta +contacts-calendar-response-accepted = Aceito +contacts-calendar-response-declined = Recusado +contacts-calendar-response-tentative = Tentativa +contacts-calendar-response-pending = Pendente + +# ----------------------------------------------------------------------------- +# Tasks Integration +# ----------------------------------------------------------------------------- +contacts-tasks-assign = Atribuir à Tarefa +contacts-tasks-unassign = Desatribuir da Tarefa +contacts-tasks-related = Tarefas Relacionadas +contacts-tasks-active = Tarefas Ativas +contacts-tasks-completed = Tarefas Concluídas +contacts-tasks-overdue = Tarefas Atrasadas +contacts-tasks-role = Função +contacts-tasks-role-assignee = Responsável +contacts-tasks-role-reviewer = Revisor +contacts-tasks-role-stakeholder = Parte Interessada +contacts-tasks-role-collaborator = Colaborador +contacts-tasks-role-client = Cliente +contacts-tasks-role-approver = Aprovador +contacts-tasks-workload = Carga de Trabalho +contacts-tasks-workload-low = Baixa +contacts-tasks-workload-medium = Média +contacts-tasks-workload-high = Alta +contacts-tasks-workload-overloaded = Sobrecarregado + +# ----------------------------------------------------------------------------- +# External Sync +# ----------------------------------------------------------------------------- +contacts-sync-title = Sincronização de Agenda +contacts-sync-description = Sincronize com agendas externas +contacts-sync-google = Google Contatos +contacts-sync-microsoft = Microsoft People +contacts-sync-apple = Contatos Apple +contacts-sync-carddav = Servidor CardDAV +contacts-sync-connect = Conectar Conta +contacts-sync-disconnect = Desconectar +contacts-sync-connected = Conectado +contacts-sync-last-sync = Última sincronização { $time } +contacts-sync-in-progress = Sincronização em andamento... +contacts-sync-success = Sincronização concluída com sucesso +contacts-sync-error = Falha na sincronização +contacts-sync-direction = Direção da Sincronização +contacts-sync-direction-two-way = Sincronização Bidirecional +contacts-sync-direction-import = Apenas Importar +contacts-sync-direction-export = Apenas Exportar +contacts-sync-conflicts = { $count } conflitos detectados +contacts-sync-resolve = Resolver Conflitos +contacts-sync-keep-local = Manter Local +contacts-sync-keep-remote = Manter Remoto +contacts-sync-merge = Mesclar Ambos + +# ----------------------------------------------------------------------------- +# Empty States +# ----------------------------------------------------------------------------- +contacts-empty-title = Nenhum contato ainda +contacts-empty-description = Adicione seu primeiro contato para começar +contacts-empty-action = Adicionar Contato +contacts-empty-search = Nenhum contato corresponde à sua pesquisa +contacts-empty-filter = Nenhum contato corresponde ao filtro selecionado +contacts-empty-group = Este grupo não tem membros + +# ----------------------------------------------------------------------------- +# Confirmations +# ----------------------------------------------------------------------------- +contacts-confirm-delete = Tem certeza de que deseja excluir este contato? +contacts-confirm-delete-bulk = Tem certeza de que deseja excluir { $count } contatos? +contacts-confirm-archive = Tem certeza de que deseja arquivar este contato? +contacts-confirm-merge = Tem certeza de que deseja mesclar estes contatos? +contacts-confirm-disconnect = Tem certeza de que deseja desconectar esta conta? + +# ----------------------------------------------------------------------------- +# Success Messages +# ----------------------------------------------------------------------------- +contacts-success-created = Contato criado com sucesso +contacts-success-updated = Contato atualizado com sucesso +contacts-success-deleted = Contato excluído com sucesso +contacts-success-archived = Contato arquivado com sucesso +contacts-success-restored = Contato restaurado com sucesso +contacts-success-merged = Contatos mesclados com sucesso +contacts-success-imported = Contatos importados com sucesso +contacts-success-exported = Contatos exportados com sucesso + +# ----------------------------------------------------------------------------- +# Error Messages +# ----------------------------------------------------------------------------- +contacts-error-create = Falha ao criar contato +contacts-error-update = Falha ao atualizar contato +contacts-error-delete = Falha ao excluir contato +contacts-error-import = Falha ao importar contatos +contacts-error-export = Falha ao exportar contatos +contacts-error-sync = Falha na sincronização +contacts-error-duplicate = Já existe um contato com este e-mail +contacts-error-required = Este campo é obrigatório +contacts-error-invalid-email = Por favor, insira um endereço de e-mail válido +contacts-error-invalid-phone = Por favor, insira um número de telefone válido diff --git a/locales/pt-BR/errors.ftl b/locales/pt-BR/errors.ftl new file mode 100644 index 0000000..584d799 --- /dev/null +++ b/locales/pt-BR/errors.ftl @@ -0,0 +1,165 @@ +# General Bots - Mensagens de Erro (Português Brasileiro) +# Este arquivo contém todas as traduções de mensagens de erro + +# ============================================================================= +# Erros HTTP +# ============================================================================= + +error-http-400 = Requisição inválida. Por favor, verifique seus dados. +error-http-401 = Autenticação necessária. Por favor, faça login. +error-http-403 = Você não tem permissão para acessar este recurso. +error-http-404 = { $entity } não encontrado. +error-http-409 = Conflito: { $message } +error-http-429 = Muitas requisições. Por favor, aguarde { $seconds } segundos. +error-http-500 = Erro interno do servidor. Por favor, tente novamente mais tarde. +error-http-502 = Gateway inválido. O servidor recebeu uma resposta inválida. +error-http-503 = Serviço temporariamente indisponível. Por favor, tente novamente mais tarde. +error-http-504 = Tempo limite da requisição excedido após { $milliseconds }ms. + +# ============================================================================= +# Erros de Validação +# ============================================================================= + +error-validation-required = { $field } é obrigatório. +error-validation-email = Por favor, insira um endereço de e-mail válido. +error-validation-url = Por favor, insira uma URL válida. +error-validation-phone = Por favor, insira um número de telefone válido. +error-validation-min-length = { $field } deve ter pelo menos { $min } caracteres. +error-validation-max-length = { $field } deve ter no máximo { $max } caracteres. +error-validation-min-value = { $field } deve ser pelo menos { $min }. +error-validation-max-value = { $field } deve ser no máximo { $max }. +error-validation-pattern = O formato de { $field } é inválido. +error-validation-unique = { $field } já existe. +error-validation-mismatch = { $field } não corresponde a { $other }. +error-validation-date-format = Por favor, insira uma data válida no formato { $format }. +error-validation-date-past = { $field } deve estar no passado. +error-validation-date-future = { $field } deve estar no futuro. + +# ============================================================================= +# Erros de Autenticação +# ============================================================================= + +error-auth-invalid-credentials = E-mail ou senha inválidos. +error-auth-account-locked = Sua conta foi bloqueada. Por favor, entre em contato com o suporte. +error-auth-account-disabled = Sua conta foi desativada. +error-auth-session-expired = Sua sessão expirou. Por favor, faça login novamente. +error-auth-token-invalid = Token inválido ou expirado. +error-auth-token-missing = Token de autenticação é obrigatório. +error-auth-mfa-required = Autenticação de dois fatores é obrigatória. +error-auth-mfa-invalid = Código de verificação inválido. +error-auth-password-weak = A senha é muito fraca. Por favor, use uma senha mais forte. +error-auth-password-expired = Sua senha expirou. Por favor, redefina-a. + +# ============================================================================= +# Erros de Configuração +# ============================================================================= + +error-config = Erro de configuração: { $message } +error-config-missing = Configuração ausente: { $key } +error-config-invalid = Valor de configuração inválido para { $key }: { $reason } +error-config-file-not-found = Arquivo de configuração não encontrado: { $path } +error-config-parse = Falha ao analisar configuração: { $message } + +# ============================================================================= +# Erros de Banco de Dados +# ============================================================================= + +error-database = Erro de banco de dados: { $message } +error-database-connection = Falha ao conectar ao banco de dados. +error-database-timeout = Operação do banco de dados expirou. +error-database-constraint = Violação de restrição do banco de dados: { $constraint } +error-database-duplicate = Um registro com este { $field } já existe. +error-database-migration = Migração do banco de dados falhou: { $message } + +# ============================================================================= +# Erros de Arquivo e Armazenamento +# ============================================================================= + +error-file-not-found = Arquivo não encontrado: { $filename } +error-file-too-large = Arquivo muito grande. Tamanho máximo é { $maxSize }. +error-file-type-not-allowed = Tipo de arquivo não permitido. Tipos permitidos: { $allowedTypes }. +error-file-upload-failed = Falha no envio do arquivo: { $message } +error-file-read = Falha ao ler arquivo: { $message } +error-file-write = Falha ao escrever arquivo: { $message } +error-storage-full = Cota de armazenamento excedida. +error-storage-unavailable = Serviço de armazenamento indisponível. + +# ============================================================================= +# Erros de Rede e Serviços Externos +# ============================================================================= + +error-network = Erro de rede: { $message } +error-network-timeout = Conexão expirou. +error-network-unreachable = Servidor inacessível. +error-service-unavailable = Serviço indisponível: { $service } +error-external-api = Erro de API externa: { $message } +error-rate-limit = Limite de requisições excedido. Tente novamente após { $seconds }s. + +# ============================================================================= +# Erros de Bot e Diálogo +# ============================================================================= + +error-bot-not-found = Bot não encontrado: { $botId } +error-bot-disabled = Este bot está desativado no momento. +error-bot-script-error = Erro de script na linha { $line }: { $message } +error-bot-timeout = Tempo de resposta do bot expirou. +error-bot-quota-exceeded = Cota de uso do bot excedida. +error-dialog-not-found = Diálogo não encontrado: { $dialogId } +error-dialog-invalid = Configuração de diálogo inválida: { $message } + +# ============================================================================= +# Erros de LLM e IA +# ============================================================================= + +error-llm-unavailable = Serviço de IA está indisponível no momento. +error-llm-timeout = Tempo limite da requisição de IA expirou. +error-llm-rate-limit = Limite de requisições de IA excedido. Por favor, aguarde antes de tentar novamente. +error-llm-content-filter = Conteúdo foi filtrado pelas diretrizes de segurança. +error-llm-context-length = Entrada muito longa. Por favor, encurte sua mensagem. +error-llm-invalid-response = Resposta inválida recebida do serviço de IA. + +# ============================================================================= +# Erros de E-mail +# ============================================================================= + +error-email-send-failed = Falha ao enviar e-mail: { $message } +error-email-invalid-recipient = Endereço de e-mail do destinatário inválido: { $email } +error-email-attachment-failed = Falha ao anexar arquivo: { $filename } +error-email-template-not-found = Modelo de e-mail não encontrado: { $template } + +# ============================================================================= +# Erros de Calendário e Agendamento +# ============================================================================= + +error-calendar-conflict = Horário conflita com evento existente. +error-calendar-past-date = Não é possível agendar eventos no passado. +error-calendar-invalid-recurrence = Padrão de recorrência inválido. +error-calendar-event-not-found = Evento não encontrado: { $eventId } + +# ============================================================================= +# Erros de Tarefa +# ============================================================================= + +error-task-not-found = Tarefa não encontrada: { $taskId } +error-task-already-completed = A tarefa já foi concluída. +error-task-circular-dependency = Dependência circular detectada nas tarefas. +error-task-invalid-status = Transição de status de tarefa inválida. + +# ============================================================================= +# Erros de Permissão +# ============================================================================= + +error-permission-denied = Você não tem permissão para realizar esta ação. +error-permission-resource = Você não tem acesso a este { $resource }. +error-permission-action = Você não pode { $action } este { $resource }. +error-permission-owner-only = Apenas o proprietário pode realizar esta ação. + +# ============================================================================= +# Erros Genéricos +# ============================================================================= + +error-internal = Erro interno: { $message } +error-unexpected = Ocorreu um erro inesperado. Por favor, tente novamente. +error-not-implemented = Este recurso ainda não foi implementado. +error-maintenance = Sistema em manutenção. Por favor, tente novamente mais tarde. +error-unknown = Ocorreu um erro desconhecido. diff --git a/locales/pt-BR/notifications.ftl b/locales/pt-BR/notifications.ftl new file mode 100644 index 0000000..e7f8a31 --- /dev/null +++ b/locales/pt-BR/notifications.ftl @@ -0,0 +1,127 @@ +notification-title-new-message = Nova Mensagem +notification-title-task-due = Tarefa Vencendo +notification-title-task-assigned = Tarefa Atribuída +notification-title-task-completed = Tarefa Concluída +notification-title-meeting-reminder = Lembrete de Reunião +notification-title-meeting-started = Reunião Iniciada +notification-title-file-shared = Arquivo Compartilhado +notification-title-file-uploaded = Arquivo Enviado +notification-title-comment-added = Novo Comentário +notification-title-mention = Você foi mencionado +notification-title-system = Notificação do Sistema +notification-title-security = Alerta de Segurança +notification-title-update = Atualização Disponível +notification-title-error = Erro Ocorrido +notification-title-success = Sucesso +notification-title-warning = Atenção +notification-title-info = Informação + +notification-message-new = Você tem uma nova mensagem de { $sender } +notification-message-unread = Você tem { $count -> + [one] { $count } mensagem não lida + *[other] { $count } mensagens não lidas +} +notification-task-due-soon = A tarefa "{ $task }" vence em { $time } +notification-task-due-today = A tarefa "{ $task }" vence hoje +notification-task-due-overdue = A tarefa "{ $task }" está atrasada há { $time } +notification-task-assigned-to-you = Você foi atribuído à tarefa "{ $task }" +notification-task-assigned-by = { $assigner } atribuiu você à tarefa "{ $task }" +notification-task-completed-by = { $user } concluiu a tarefa "{ $task }" +notification-task-status-changed = O status da tarefa "{ $task }" mudou para { $status } + +notification-meeting-in-minutes = A reunião "{ $meeting }" começa em { $minutes } minutos +notification-meeting-starting-now = A reunião "{ $meeting }" está começando agora +notification-meeting-cancelled = A reunião "{ $meeting }" foi cancelada +notification-meeting-rescheduled = A reunião "{ $meeting }" foi reagendada para { $datetime } +notification-meeting-invite = { $inviter } convidou você para "{ $meeting }" +notification-meeting-response = { $user } { $response } seu convite de reunião + +notification-file-shared-with-you = { $sharer } compartilhou "{ $filename }" com você +notification-file-uploaded-by = { $uploader } enviou "{ $filename }" +notification-file-modified = "{ $filename }" foi modificado por { $user } +notification-file-deleted = "{ $filename }" foi excluído por { $user } +notification-file-download-ready = Seu arquivo "{ $filename }" está pronto para download +notification-file-upload-complete = Upload de "{ $filename }" concluído com sucesso +notification-file-upload-failed = Falha no upload de "{ $filename }" + +notification-comment-on-task = { $user } comentou na tarefa "{ $task }" +notification-comment-on-file = { $user } comentou em "{ $filename }" +notification-comment-reply = { $user } respondeu ao seu comentário +notification-mention-in-comment = { $user } mencionou você em um comentário +notification-mention-in-chat = { $user } mencionou você em { $channel } + +notification-login-new-device = Novo login detectado de { $device } em { $location } +notification-login-failed = Tentativa de login falhou em sua conta +notification-password-changed = Sua senha foi alterada com sucesso +notification-password-expiring = Sua senha expira em { $days } dias +notification-session-expired = Sua sessão expirou +notification-account-locked = Sua conta foi bloqueada +notification-two-factor-enabled = Autenticação de dois fatores foi ativada +notification-two-factor-disabled = Autenticação de dois fatores foi desativada + +notification-subscription-expiring = Sua assinatura expira em { $days } dias +notification-subscription-expired = Sua assinatura expirou +notification-subscription-renewed = Sua assinatura foi renovada até { $date } +notification-payment-successful = Pagamento de { $amount } realizado com sucesso +notification-payment-failed = Pagamento de { $amount } falhou +notification-invoice-ready = Sua fatura de { $period } está pronta + +notification-bot-response = { $bot } respondeu à sua consulta +notification-bot-error = { $bot } encontrou um erro +notification-bot-offline = { $bot } está offline no momento +notification-bot-online = { $bot } está online agora +notification-bot-updated = { $bot } foi atualizado + +notification-system-maintenance = Manutenção do sistema agendada para { $datetime } +notification-system-update = Atualização do sistema disponível: { $version } +notification-system-restored = Sistema foi restaurado +notification-system-degraded = Sistema está com desempenho degradado + +notification-action-view = Ver +notification-action-dismiss = Dispensar +notification-action-mark-read = Marcar como lida +notification-action-mark-all-read = Marcar todas como lidas +notification-action-settings = Configurações de notificação +notification-action-reply = Responder +notification-action-open = Abrir +notification-action-join = Entrar +notification-action-accept = Aceitar +notification-action-decline = Recusar + +notification-time-just-now = Agora mesmo +notification-time-minutes = { $count -> + [one] { $count } minuto atrás + *[other] { $count } minutos atrás +} +notification-time-hours = { $count -> + [one] { $count } hora atrás + *[other] { $count } horas atrás +} +notification-time-days = { $count -> + [one] { $count } dia atrás + *[other] { $count } dias atrás +} +notification-time-weeks = { $count -> + [one] { $count } semana atrás + *[other] { $count } semanas atrás +} + +notification-preference-all = Todas as notificações +notification-preference-important = Apenas importantes +notification-preference-none = Nenhuma +notification-preference-email = Notificações por e-mail +notification-preference-push = Notificações push +notification-preference-in-app = Notificações no aplicativo +notification-preference-sound = Som ativado +notification-preference-vibration = Vibração ativada + +notification-empty = Sem notificações +notification-empty-description = Você está em dia! +notification-load-more = Carregar mais +notification-clear-all = Limpar todas as notificações +notification-filter-all = Todas +notification-filter-unread = Não lidas +notification-filter-mentions = Menções +notification-filter-tasks = Tarefas +notification-filter-messages = Mensagens +notification-filter-system = Sistema diff --git a/locales/pt-BR/ui.ftl b/locales/pt-BR/ui.ftl new file mode 100644 index 0000000..3301461 --- /dev/null +++ b/locales/pt-BR/ui.ftl @@ -0,0 +1,1195 @@ +# ============================================================================= +# General Bots - Traduções da Interface (Português Brasileiro) +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Navegação +# ----------------------------------------------------------------------------- +nav-home = Início +nav-chat = Chat +nav-drive = Arquivos +nav-tasks = Tarefas +nav-mail = E-mail +nav-calendar = Calendário +nav-meet = Reuniões +nav-paper = Documentos +nav-research = Pesquisa +nav-analytics = Análises +nav-settings = Configurações +nav-admin = Administração +nav-monitoring = Monitoramento +nav-sources = Fontes +nav-tools = Ferramentas +nav-attendant = Atendente + +# ----------------------------------------------------------------------------- +# Painel Principal +# ----------------------------------------------------------------------------- +dashboard-title = Painel +dashboard-welcome = Bem-vindo de volta, { $name }! +dashboard-quick-actions = Ações Rápidas +dashboard-recent-activity = Atividade Recente +dashboard-no-activity = Nenhuma atividade recente. Comece a explorar! +dashboard-analytics = Análises + +# ----------------------------------------------------------------------------- +# Ações Rápidas +# ----------------------------------------------------------------------------- +quick-start-chat = Iniciar Chat +quick-upload-files = Enviar Arquivos +quick-new-task = Nova Tarefa +quick-compose-email = Escrever E-mail +quick-start-meeting = Iniciar Reunião +quick-new-event = Novo Evento + +# ----------------------------------------------------------------------------- +# Cards dos Aplicativos +# ----------------------------------------------------------------------------- +app-chat-name = Chat +app-chat-desc = Conversas com IA. Faça perguntas, obtenha ajuda e automatize tarefas. + +app-drive-name = Arquivos +app-drive-desc = Armazenamento em nuvem para seus arquivos. Envie, organize e compartilhe. + +app-tasks-name = Tarefas +app-tasks-desc = Mantenha-se organizado com listas de tarefas, prioridades e prazos. + +app-mail-name = E-mail +app-mail-desc = Cliente de e-mail com escrita assistida por IA e organização inteligente. + +app-calendar-name = Calendário +app-calendar-desc = Agende reuniões, eventos e gerencie seu tempo de forma eficaz. + +app-meet-name = Reuniões +app-meet-desc = Videoconferência com compartilhamento de tela e transcrição ao vivo. + +app-paper-name = Documentos +app-paper-desc = Escreva documentos com assistência de IA. Notas, relatórios e mais. + +app-research-name = Pesquisa +app-research-desc = Busca e descoberta com IA em todas as suas fontes. + +app-analytics-name = Análises +app-analytics-desc = Painéis e relatórios para acompanhar uso e insights. + +# ----------------------------------------------------------------------------- +# Cabeçalho do Suite +# ----------------------------------------------------------------------------- +suite-title = General Bots Suite +suite-tagline = Seu espaço de trabalho com IA. Converse, colabore e crie. +suite-new-intent = Nova Intenção + +# ----------------------------------------------------------------------------- +# Painel de IA +# ----------------------------------------------------------------------------- +ai-developer = Desenvolvedor IA +ai-developing = Desenvolvendo: { $project } +ai-quick-actions = Ações Rápidas +ai-add-field = Adicionar campo +ai-change-color = Mudar cor +ai-add-validation = Adicionar validação +ai-export-data = Exportar dados +ai-placeholder = Digite suas modificações... +ai-thinking = IA está pensando... +ai-status-online = Online +ai-status-offline = Offline + +# ----------------------------------------------------------------------------- +# Chat +# ----------------------------------------------------------------------------- +chat-title = Chat +chat-placeholder = Digite sua mensagem... +chat-send = Enviar +chat-new-conversation = Nova Conversa +chat-history = Histórico do Chat +chat-clear = Limpar Chat +chat-export = Exportar Chat +chat-typing = { $name } está digitando... +chat-online = Online +chat-offline = Offline +chat-last-seen = Visto por último { $time } + +# ----------------------------------------------------------------------------- +# Arquivos / Drive +# ----------------------------------------------------------------------------- +drive-title = Arquivos +drive-upload = Enviar +drive-new-folder = Nova Pasta +drive-empty = Nenhum arquivo ainda. Envie algo! +drive-search = Buscar arquivos... +drive-sort-name = Nome +drive-sort-date = Data +drive-sort-size = Tamanho +drive-sort-type = Tipo +drive-view-grid = Visualização em Grade +drive-view-list = Visualização em Lista +drive-selected = { $count -> + [one] { $count } item selecionado + *[other] { $count } itens selecionados +} +drive-file-size = { $size -> + [bytes] { $value } B + [kb] { $value } KB + [mb] { $value } MB + [gb] { $value } GB + *[other] { $value } bytes +} +drive-drop-files = Solte arquivos aqui para enviar + +# ----------------------------------------------------------------------------- +# Tarefas +# ----------------------------------------------------------------------------- +tasks-title = Tarefas +tasks-new = Nova Tarefa +tasks-due-today = Para Hoje +tasks-overdue = Atrasadas +tasks-completed = Concluídas +tasks-all = Todas as Tarefas +tasks-priority-high = Prioridade Alta +tasks-priority-medium = Prioridade Média +tasks-priority-low = Prioridade Baixa +tasks-no-due-date = Sem prazo definido +tasks-add-subtask = Adicionar subtarefa +tasks-mark-complete = Marcar como concluída +tasks-mark-incomplete = Marcar como pendente +tasks-delete-confirm = Tem certeza que deseja excluir esta tarefa? +tasks-count = { $count -> + [zero] Nenhuma tarefa + [one] { $count } tarefa + *[other] { $count } tarefas +} + +# ----------------------------------------------------------------------------- +# Calendário +# ----------------------------------------------------------------------------- +calendar-title = Calendário +calendar-today = Hoje +calendar-new-event = Novo Evento +calendar-all-day = Dia inteiro +calendar-repeat = Repetir +calendar-reminder = Lembrete +calendar-view-day = Dia +calendar-view-week = Semana +calendar-view-month = Mês +calendar-view-year = Ano +calendar-no-events = Nenhum evento agendado +calendar-event-title = Título do evento +calendar-event-location = Local +calendar-event-description = Descrição +calendar-event-attendees = Participantes + +# ----------------------------------------------------------------------------- +# Reuniões / Videoconferência +# ----------------------------------------------------------------------------- +meet-title = Reuniões +meet-join = Entrar na Reunião +meet-start = Iniciar Reunião +meet-mute = Silenciar +meet-unmute = Ativar Som +meet-video-on = Ligar Câmera +meet-video-off = Desligar Câmera +meet-share-screen = Compartilhar Tela +meet-stop-sharing = Parar Compartilhamento +meet-end-call = Encerrar Chamada +meet-leave = Sair da Reunião +meet-participants = { $count -> + [one] { $count } participante + *[other] { $count } participantes +} +meet-waiting-room = Sala de Espera +meet-admit = Admitir +meet-remove = Remover +meet-chat = Chat da Reunião +meet-raise-hand = Levantar a Mão +meet-lower-hand = Abaixar a Mão +meet-recording = Gravando +meet-start-recording = Iniciar Gravação +meet-stop-recording = Parar Gravação + +# ----------------------------------------------------------------------------- +# E-mail +# ----------------------------------------------------------------------------- +mail-title = E-mail +mail-compose = Escrever +mail-inbox = Caixa de Entrada +mail-sent = Enviados +mail-drafts = Rascunhos +mail-trash = Lixeira +mail-spam = Spam +mail-starred = Com Estrela +mail-archive = Arquivar +mail-to = Para +mail-cc = CC +mail-bcc = CCO +mail-subject = Assunto +mail-body = Mensagem +mail-reply = Responder +mail-reply-all = Responder a Todos +mail-forward = Encaminhar +mail-send = Enviar +mail-discard = Descartar +mail-save-draft = Salvar Rascunho +mail-attach = Anexar Arquivos +mail-unread = { $count -> + [one] { $count } não lido + *[other] { $count } não lidos +} +mail-empty-inbox = Sua caixa de entrada está vazia +mail-no-subject = (Sem assunto) + +# ----------------------------------------------------------------------------- +# Configurações +# ----------------------------------------------------------------------------- +settings-title = Configurações +settings-general = Geral +settings-account = Conta +settings-notifications = Notificações +settings-privacy = Privacidade +settings-security = Segurança +settings-language = Idioma +settings-theme = Tema +settings-theme-light = Claro +settings-theme-dark = Escuro +settings-theme-system = Sistema +settings-save = Salvar Alterações +settings-saved = Configurações salvas com sucesso +settings-timezone = Fuso Horário +settings-date-format = Formato de Data +settings-time-format = Formato de Hora + +# ----------------------------------------------------------------------------- +# Autenticação / Login +# ----------------------------------------------------------------------------- +auth-login = Entrar +auth-logout = Sair +auth-signup = Cadastrar +auth-forgot-password = Esqueceu a senha? +auth-reset-password = Redefinir Senha +auth-email = E-mail +auth-password = Senha +auth-confirm-password = Confirmar Senha +auth-remember-me = Lembrar de mim +auth-login-success = Login realizado com sucesso +auth-logout-success = Logout realizado com sucesso +auth-invalid-credentials = E-mail ou senha inválidos +auth-session-expired = Sua sessão expirou. Por favor, faça login novamente. + +# ----------------------------------------------------------------------------- +# Busca +# ----------------------------------------------------------------------------- +search-placeholder = Buscar... +search-no-results = Nenhum resultado encontrado +search-results = { $count -> + [one] { $count } resultado + *[other] { $count } resultados +} +search-in-progress = Buscando... +search-advanced = Busca Avançada +search-filters = Filtros +search-clear-filters = Limpar Filtros + +# ----------------------------------------------------------------------------- +# Paginação +# ----------------------------------------------------------------------------- +pagination-previous = Anterior +pagination-next = Próximo +pagination-first = Primeira +pagination-last = Última +pagination-page = Página { $current } de { $total } +pagination-showing = Mostrando { $from } a { $to } de { $total } + +# ----------------------------------------------------------------------------- +# Tabelas +# ----------------------------------------------------------------------------- +table-no-data = Nenhum dado disponível +table-loading = Carregando dados... +table-actions = Ações +table-select-all = Selecionar Todos +table-deselect-all = Desmarcar Todos +table-export = Exportar +table-import = Importar + +# ----------------------------------------------------------------------------- +# Formulários +# ----------------------------------------------------------------------------- +form-required = Obrigatório +form-optional = Opcional +form-submit = Enviar +form-reset = Redefinir +form-clear = Limpar +form-uploading = Enviando... +form-processing = Processando... + +# ----------------------------------------------------------------------------- +# Modais / Diálogos +# ----------------------------------------------------------------------------- +modal-confirm-title = Confirmar Ação +modal-confirm-message = Tem certeza que deseja prosseguir? +modal-delete-title = Confirmação de Exclusão +modal-delete-message = Esta ação não pode ser desfeita. Tem certeza? + +# ----------------------------------------------------------------------------- +# Dicas de Ferramentas +# ----------------------------------------------------------------------------- +tooltip-copy = Copiar para área de transferência +tooltip-copied = Copiado! +tooltip-expand = Expandir +tooltip-collapse = Recolher +tooltip-refresh = Atualizar +tooltip-download = Baixar +tooltip-upload = Enviar +tooltip-print = Imprimir +tooltip-fullscreen = Tela Cheia +tooltip-exit-fullscreen = Sair da Tela Cheia + +# ----------------------------------------------------------------------------- +# Settings - Language & Localization +# ----------------------------------------------------------------------------- +settings-language = Idioma +settings-language-desc = Escolha seu idioma preferido +settings-display-language = Idioma de Exibição +settings-language-affects = Afeta todo o texto do aplicativo +settings-date-format = Formato de Data +settings-date-format-desc = Como as datas são exibidas +settings-time-format = Formato de Hora +settings-time-format-desc = Relógio de 12 ou 24 horas +settings-saved = Configurações salvas com sucesso +settings-language-changed = Idioma alterado com sucesso +settings-reload-required = Atualização da página necessária para aplicar as alterações + +# Settings - Profile +settings-profile = Configurações de Perfil +settings-profile-desc = Gerencie suas informações pessoais e preferências +settings-profile-photo = Foto de Perfil +settings-profile-photo-desc = Sua foto de perfil é visível para outros usuários +settings-upload-photo = Enviar Foto +settings-remove-photo = Remover +settings-basic-info = Informações Básicas +settings-display-name = Nome de Exibição +settings-username = Nome de Usuário +settings-email-address = Endereço de E-mail +settings-bio = Bio +settings-bio-placeholder = Conte-nos sobre você... +settings-contact-info = Informações de Contato +settings-phone-number = Número de Telefone +settings-location = Localização +settings-website = Website + +# Settings - Security +settings-security = Configurações de Segurança +settings-security-desc = Proteja sua conta com segurança aprimorada +settings-change-password = Alterar Senha +settings-change-password-desc = Atualize sua senha regularmente para maior segurança +settings-current-password = Senha Atual +settings-new-password = Nova Senha +settings-confirm-password = Confirmar Nova Senha +settings-update-password = Atualizar Senha +settings-2fa = Autenticação de Dois Fatores +settings-2fa-desc = Adicione uma camada extra de segurança à sua conta +settings-authenticator-app = Aplicativo Autenticador +settings-authenticator-desc = Use um aplicativo autenticador para códigos 2FA +settings-enable-2fa = Ativar 2FA +settings-disable-2fa = Desativar 2FA +settings-active-sessions = Sessões Ativas +settings-active-sessions-desc = Gerencie suas sessões de login ativas +settings-this-device = Este dispositivo +settings-terminate-session = Encerrar +settings-terminate-all = Encerrar Todas as Outras Sessões + +# Settings - Appearance +settings-appearance = Aparência +settings-appearance-desc = Personalize a aparência do aplicativo +settings-theme-selection = Tema +settings-theme-selection-desc = Escolha seu tema de cores preferido +settings-theme-dark = Escuro +settings-theme-light = Claro +settings-theme-blue = Azul +settings-theme-purple = Roxo +settings-theme-green = Verde +settings-theme-orange = Laranja +settings-layout-preferences = Preferências de Layout +settings-compact-mode = Modo Compacto +settings-compact-mode-desc = Reduzir espaçamento para mais conteúdo +settings-show-sidebar = Mostrar Barra Lateral +settings-show-sidebar-desc = Sempre mostrar barra de navegação lateral +settings-animations = Animações +settings-animations-desc = Ativar animações e transições da interface + +# Settings - Notifications +settings-notifications-title = Notificações +settings-notifications-desc = Controle como você recebe notificações +settings-email-notifications = Notificações por E-mail +settings-direct-messages = Mensagens Diretas +settings-direct-messages-desc = Receber e-mail para novas mensagens diretas +settings-mentions = Menções +settings-mentions-desc = Receber e-mail quando alguém mencionar você +settings-weekly-digest = Resumo Semanal +settings-weekly-digest-desc = Receber um resumo semanal de atividades +settings-marketing = Marketing +settings-marketing-desc = Receber novidades e atualizações de produtos +settings-push-notifications = Notificações Push +settings-enable-push = Ativar Notificações Push +settings-enable-push-desc = Receber notificações push do navegador +settings-notification-sound = Som +settings-notification-sound-desc = Reproduzir som para notificações +settings-in-app-notifications = Notificações no Aplicativo + +# Settings - Storage +settings-storage = Armazenamento +settings-storage-desc = Gerencie seu uso de armazenamento +settings-storage-usage = Uso de Armazenamento +settings-storage-used = { $used } de { $total } usado +settings-storage-upgrade = Aumentar Armazenamento + +# Settings - Privacy +settings-privacy-title = Privacidade +settings-privacy-desc = Controle suas configurações de privacidade +settings-data-collection = Coleta de Dados +settings-analytics = Análises +settings-analytics-desc = Ajude-nos a melhorar enviando dados de uso anônimos +settings-crash-reports = Relatórios de Erros +settings-crash-reports-desc = Enviar relatórios de erros automaticamente +settings-download-data = Baixar Seus Dados +settings-download-data-desc = Obter uma cópia de todos os seus dados +settings-delete-account = Excluir Conta +settings-delete-account-desc = Excluir permanentemente sua conta e todos os dados +settings-delete-account-warning = Esta ação não pode ser desfeita + +# Settings - Billing +settings-billing = Faturamento +settings-billing-desc = Gerencie sua assinatura e métodos de pagamento +settings-current-plan = Plano Atual +settings-free-plan = Plano Gratuito +settings-pro-plan = Plano Pro +settings-enterprise-plan = Plano Empresarial +settings-upgrade-plan = Fazer Upgrade do Plano +settings-payment-methods = Métodos de Pagamento +settings-add-payment = Adicionar Método de Pagamento +settings-billing-history = Histórico de Faturamento + +# ----------------------------------------------------------------------------- +# Paper (Editor de Documentos) +# ----------------------------------------------------------------------------- +paper-title = Documentos +paper-new-note = Nova Nota +paper-search-notes = Buscar notas... +paper-quick-start = Início Rápido +paper-template-blank = Em Branco +paper-template-meeting = Reunião +paper-template-todo = Tarefas +paper-template-research = Pesquisa +paper-untitled = Sem título +paper-placeholder = Comece a escrever, ou digite / para comandos... +paper-commands = Comandos +paper-heading1 = Título 1 +paper-heading1-desc = Título de seção grande +paper-heading2 = Título 2 +paper-heading2-desc = Título de seção médio +paper-heading3 = Título 3 +paper-heading3-desc = Título de seção pequeno +paper-paragraph = Parágrafo +paper-paragraph-desc = Texto simples +paper-bullet-list = Lista com Marcadores +paper-bullet-list-desc = Lista não ordenada +paper-numbered-list = Lista Numerada +paper-numbered-list-desc = Lista ordenada +paper-todo-list = Lista de Tarefas +paper-todo-list-desc = Lista com caixas de seleção +paper-quote = Citação +paper-quote-desc = Bloco de citação +paper-divider = Divisor +paper-divider-desc = Linha horizontal +paper-code-block = Bloco de Código +paper-code-block-desc = Código formatado +paper-table = Tabela +paper-table-desc = Inserir tabela +paper-image = Imagem +paper-image-desc = Inserir imagem de URL +paper-callout = Destaque +paper-callout-desc = Caixa de informação destacada +paper-ai-write = IA Escrever +paper-ai-write-desc = Gerar texto com IA +paper-ai-summarize = IA Resumir +paper-ai-summarize-desc = Resumir texto selecionado +paper-ai-expand = IA Expandir +paper-ai-expand-desc = Expandir texto selecionado +paper-ai-improve = IA Melhorar +paper-ai-improve-desc = Melhorar qualidade da escrita +paper-ai-translate = IA Traduzir +paper-ai-translate-desc = Traduzir para outro idioma +paper-ai-assistant = Assistente de IA +paper-ai-quick-actions = Ações Rápidas +paper-ai-rewrite = Reescrever +paper-ai-make-shorter = Encurtar +paper-ai-make-longer = Expandir +paper-ai-fix-grammar = Corrigir Gramática +paper-ai-tone = Tom +paper-ai-tone-professional = Profissional +paper-ai-tone-casual = Casual +paper-ai-tone-friendly = Amigável +paper-ai-tone-formal = Formal +paper-ai-translate-to = Traduzir para +paper-ai-custom-prompt = Prompt Personalizado +paper-ai-custom-placeholder = Descreva o que você quer... +paper-ai-generate = Gerar +paper-ai-response = Resposta da IA +paper-ai-apply = Aplicar +paper-ai-regenerate = Regenerar +paper-ai-copy = Copiar +paper-word-count = { $count } palavras +paper-char-count = { $count } caracteres +paper-saved = Salvo +paper-saving = Salvando... +paper-last-edited = Última edição: { $time } +paper-last-edited-now = Última edição: Agora mesmo +paper-export = Exportar Documento +paper-export-pdf = PDF +paper-export-docx = Word (.docx) +paper-export-markdown = Markdown +paper-export-html = HTML +paper-export-txt = Texto Simples + +# Traduções adicionais do Chat +chat-voice = Entrada de voz +chat-message-placeholder = Mensagem... + +# Traduções do Drive +drive-my-drive = Meu Drive +drive-shared = Compartilhado comigo +drive-recent = Recentes +drive-starred = Com estrela +drive-trash = Lixeira +drive-loading-storage = Carregando armazenamento... +drive-storage-used = { $used } de { $total } usado +drive-empty-folder = Esta pasta está vazia + +# Traduções de Tarefas +tasks-active = Intenções Ativas +tasks-awaiting = Aguardando Decisão +tasks-paused = Pausadas +tasks-blocked = Bloqueadas/Problemas +tasks-time-saved = Tempo Economizado: +tasks-input-placeholder = O que você gostaria de fazer? Ex: 'criar um app de CRM' ou 'me lembrar de ligar pro João amanhã' + +# Traduções adicionais do Calendário +calendar-my-calendars = Meus Calendários + +# Traduções adicionais de E-mail +email-scheduled = Agendados +email-tracking = Rastreamento + +# Traduções de pastas de E-mail +email-inbox = Caixa de Entrada +email-starred = Com Estrela +email-sent = Enviados +email-drafts = Rascunhos +email-spam = Spam +email-trash = Lixeira +email-compose = Escrever + +# ----------------------------------------------------------------------------- +# Pesquisa (Research) +# ----------------------------------------------------------------------------- +research-title = Pesquisa +research-search-placeholder = Pergunte qualquer coisa... +research-collections = Coleções +research-new-collection = Nova Coleção +research-recent = Recentes +research-academic = Acadêmico +research-code = Código +research-internal = Interno +research-search-all = Buscar em tudo +research-academic-papers = Artigos acadêmicos +research-code-docs = Código e documentação +research-internal-kb = Base de conhecimento interna +research-sources = Fontes +research-trending = Em alta +research-pro-search = Busca Pro +research-include-images = Incluir Imagens +research-try-asking = Tente perguntar sobre +research-related = Perguntas Relacionadas +research-view-all-sources = Ver Todas as Fontes +research-export-citations = Exportar Citações +research-save-to-collection = Salvar na Coleção + +# ----------------------------------------------------------------------------- +# Painel Admin (chaves UI adicionais) +# ----------------------------------------------------------------------------- +admin-panel-title = Painel Admin +admin-quick-actions = Ações Rápidas +admin-create-user = Criar Usuário +admin-create-group = Criar Grupo +admin-register-dns = Registrar DNS +admin-recent-activity = Atividade Recente +admin-system-health = Saúde do Sistema + +# ----------------------------------------------------------------------------- +# Reuniões (chaves adicionais) +# ----------------------------------------------------------------------------- +meet-new-meeting = Nova Reunião +meet-join-meeting = Entrar na Reunião +meet-active-rooms = Salas Ativas +meet-room-title = Sala de Reunião +meet-record = Gravar +meet-camera = Câmera +meet-share = Compartilhar +meet-info = Info +meet-more = Mais +meet-share-meeting = Compartilhar Reunião +meet-meeting-title = Título da Reunião +meet-meeting-code = Código da Reunião +meet-meeting-link = Link da Reunião +meet-send-invite = Enviar Convite + +# ----------------------------------------------------------------------------- +# Rótulos Comuns (adicionais) +# ----------------------------------------------------------------------------- +label-username = Nome de usuário +label-email = E-mail +label-display-name = Nome de Exibição +label-password = Senha +label-role = Função +label-group-name = Nome do Grupo +label-hostname = Nome do Host +label-record-type = Tipo de Registro +label-target = Destino +label-your-name = Seu Nome + +# ----------------------------------------------------------------------------- +# Ações (adicionais) +# ----------------------------------------------------------------------------- +action-register = Registrar + +# ----------------------------------------------------------------------------- +# Análises (chaves UI adicionais) +# ----------------------------------------------------------------------------- +analytics-dashboard-title = Painel de Análises +analytics-last-hour = Última Hora +analytics-last-6h = Últimas 6 Horas +analytics-last-24h = Últimas 24 Horas +analytics-last-7d = Últimos 7 Dias +analytics-last-30d = Últimos 30 Dias + +# ----------------------------------------------------------------------------- +# Notificações +# ----------------------------------------------------------------------------- +notifications-title = Notificações +notifications-clear = Limpar tudo +notifications-empty = Nenhuma notificação + +# ----------------------------------------------------------------------------- +# Todos os Aplicativos +# ----------------------------------------------------------------------------- +nav-all-apps = Todos os Aplicativos + +# ============================================================================= +# TELAS DE AUTENTICAÇÃO - Traduções completas para login, registro, esqueci/redefinir senha +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Tela de Login +# ----------------------------------------------------------------------------- +auth-welcome-back = Bem-vindo de Volta +auth-sign-in-to-account = Entre na sua conta do General Bots +auth-email-address = Endereço de E-mail +auth-email-placeholder = voce@exemplo.com +auth-password-placeholder = •••••••• +auth-sign-in = Entrar +auth-or-continue-with = ou continue com +auth-dont-have-account = Não tem uma conta? +auth-create-account = Criar conta +auth-google = Google +auth-microsoft = Microsoft +auth-github = GitHub +auth-apple = Apple + +# ----------------------------------------------------------------------------- +# Autenticação de Dois Fatores +# ----------------------------------------------------------------------------- +auth-2fa-title = Autenticação de Dois Fatores +auth-2fa-subtitle = Digite o código de 6 dígitos do seu aplicativo autenticador +auth-2fa-verify = Verificar Código +auth-2fa-didnt-receive = Não recebeu o código? +auth-2fa-resend = Reenviar código +auth-2fa-back-to-login = Voltar para login +auth-2fa-trust-device = Confiar neste dispositivo +auth-2fa-trust-desc = Não pedir 2FA neste dispositivo por 30 dias + +# ----------------------------------------------------------------------------- +# Tela de Registro +# ----------------------------------------------------------------------------- +auth-create-your-account = Crie Sua Conta +auth-join-general-bots = Junte-se ao General Bots e comece a construir +auth-first-name = Nome +auth-last-name = Sobrenome +auth-create-password = Criar Senha +auth-confirm-your-password = Confirmar Senha +auth-password-strength = Força da Senha +auth-password-weak = Fraca +auth-password-fair = Razoável +auth-password-good = Boa +auth-password-strong = Forte +auth-password-req-length = Pelo menos 8 caracteres +auth-password-req-uppercase = Uma letra maiúscula +auth-password-req-lowercase = Uma letra minúscula +auth-password-req-number = Um número +auth-password-req-special = Um caractere especial +auth-passwords-match = Senhas coincidem +auth-passwords-dont-match = Senhas não coincidem +auth-agree-terms = Eu concordo com os +auth-terms-of-service = Termos de Serviço +auth-and = e +auth-privacy-policy = Política de Privacidade +auth-sign-up = Cadastrar +auth-already-have-account = Já tem uma conta? +auth-sign-in-link = Entrar +auth-registration-success = Conta Criada com Sucesso! +auth-check-email = Por favor, verifique seu e-mail para validar sua conta +auth-email-sent-to = Enviamos um link de verificação para +auth-resend-verification = Reenviar E-mail de Verificação +auth-go-to-login = Ir para Login + +# ----------------------------------------------------------------------------- +# Tela de Esqueci a Senha +# ----------------------------------------------------------------------------- +auth-forgot-password-title = Esqueceu a Senha? +auth-forgot-password-subtitle = Sem problemas! Digite seu e-mail e enviaremos instruções de redefinição. +auth-send-reset-link = Enviar Link de Redefinição +auth-back-to-login = Voltar para login +auth-reset-email-sent = E-mail de Redefinição Enviado! +auth-reset-instructions = Enviamos instruções de redefinição de senha para +auth-check-inbox = Verifique sua caixa de entrada +auth-check-spam = Verifique a pasta de spam se não encontrar +auth-link-expires = O link expira em 1 hora +auth-resend-email = Reenviar E-mail +auth-didnt-receive-email = Não recebeu o e-mail? + +# ----------------------------------------------------------------------------- +# Tela de Redefinir Senha +# ----------------------------------------------------------------------------- +auth-reset-password-title = Redefinir Senha +auth-reset-password-subtitle = Crie uma nova senha segura para sua conta +auth-new-password = Nova Senha +auth-confirm-new-password = Confirmar Nova Senha +auth-reset-password-btn = Redefinir Senha +auth-password-reset-success = Senha Redefinida com Sucesso! +auth-password-updated = Sua senha foi atualizada. Agora você pode entrar com sua nova senha. +auth-invalid-token = Link Inválido ou Expirado +auth-invalid-token-desc = Este link de redefinição de senha é inválido ou expirou. Por favor, solicite um novo. +auth-request-new-link = Solicitar Novo Link + +# ============================================================================= +# TELAS DE MONITORAMENTO +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Painel de Monitoramento +# ----------------------------------------------------------------------------- +monitoring-title = Painel de Monitoramento +monitoring-toggle-view = Alternar Visualização +monitoring-last-updated = Última Atualização +monitoring-live-view = Visualização ao Vivo +monitoring-grid-view = Visualização em Grade + +# ----------------------------------------------------------------------------- +# Painéis de Monitoramento +# ----------------------------------------------------------------------------- +monitoring-sessions = Sessões +monitoring-messages = Mensagens +monitoring-resources = Recursos +monitoring-services = Serviços +monitoring-active-bots = Bots Ativos +monitoring-loading = Carregando... + +# ----------------------------------------------------------------------------- +# Status do Serviço +# ----------------------------------------------------------------------------- +monitoring-status-running = Em Execução +monitoring-status-warning = Alerta +monitoring-status-stopped = Parado +monitoring-status-healthy = Saudável +monitoring-status-degraded = Degradado +monitoring-status-down = Fora do Ar + +# ----------------------------------------------------------------------------- +# Métricas de Recursos +# ----------------------------------------------------------------------------- +monitoring-cpu = CPU +monitoring-memory = Memória +monitoring-disk = Disco +monitoring-network = Rede +monitoring-requests-per-sec = Requisições/seg +monitoring-active-connections = Conexões Ativas +monitoring-uptime = Tempo Ativo + +# ----------------------------------------------------------------------------- +# Logs +# ----------------------------------------------------------------------------- +monitoring-logs-title = Logs do Sistema +monitoring-logs-filter = Filtrar Logs +monitoring-logs-level = Nível de Log +monitoring-logs-all = Todos os Níveis +monitoring-logs-debug = Debug +monitoring-logs-info = Info +monitoring-logs-warning = Aviso +monitoring-logs-error = Erro +monitoring-logs-critical = Crítico +monitoring-logs-search = Buscar logs... +monitoring-logs-no-results = Nenhum log encontrado + +# ----------------------------------------------------------------------------- +# Saúde +# ----------------------------------------------------------------------------- +monitoring-health-title = Saúde do Sistema +monitoring-health-status = Status de Saúde +monitoring-health-services = Saúde dos Serviços +monitoring-health-database = Banco de Dados +monitoring-health-cache = Cache +monitoring-health-queue = Fila de Mensagens +monitoring-health-storage = Armazenamento +monitoring-health-external = Serviços Externos + +# ----------------------------------------------------------------------------- +# Métricas +# ----------------------------------------------------------------------------- +monitoring-metrics-title = Métricas de Desempenho +monitoring-metrics-response-time = Tempo de Resposta +monitoring-metrics-throughput = Taxa de Transferência +monitoring-metrics-error-rate = Taxa de Erros +monitoring-metrics-latency = Latência + +# ----------------------------------------------------------------------------- +# Alertas +# ----------------------------------------------------------------------------- +monitoring-alerts-title = Alertas do Sistema +monitoring-alerts-active = Alertas Ativos +monitoring-alerts-resolved = Resolvidos +monitoring-alerts-all = Todos os Alertas +monitoring-alert-severity = Severidade +monitoring-alert-critical = Crítico +monitoring-alert-high = Alto +monitoring-alert-medium = Médio +monitoring-alert-low = Baixo +monitoring-alert-info = Info +monitoring-alert-acknowledge = Reconhecer +monitoring-alert-resolve = Resolver +monitoring-no-alerts = Nenhum alerta ativo + +# ============================================================================= +# TELAS DE FONTES +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Fontes Principal +# ----------------------------------------------------------------------------- +sources-title = Fontes +sources-subtitle = Repositórios, Apps, Prompts, Templates e Servidores MCP +sources-search = Buscar fontes... + +# ----------------------------------------------------------------------------- +# Abas de Fontes +# ----------------------------------------------------------------------------- +sources-repositories = Repositórios +sources-apps = Apps +sources-prompts = Prompts +sources-templates = Templates +sources-servers = Servidores MCP +sources-models = Modelos de IA +sources-news = Notícias + +# ----------------------------------------------------------------------------- +# Cards de Repositório +# ----------------------------------------------------------------------------- +sources-repo-connect = Conectar +sources-repo-disconnect = Desconectar +sources-repo-browse = Navegar +sources-repo-connected = Conectado +sources-repo-disconnected = Desconectado +sources-repo-stars = Estrelas +sources-repo-forks = Forks +sources-repo-last-updated = Última atualização + +# ----------------------------------------------------------------------------- +# Cards de Prompt +# ----------------------------------------------------------------------------- +sources-prompt-use = Usar +sources-prompt-copy = Copiar +sources-prompt-edit = Editar +sources-prompt-rating = Avaliação +sources-prompt-uses = Usos + +# ----------------------------------------------------------------------------- +# Cards de Servidor +# ----------------------------------------------------------------------------- +sources-server-active = Ativo +sources-server-inactive = Inativo +sources-server-connect = Conectar +sources-server-configure = Configurar + +# ----------------------------------------------------------------------------- +# Cards de Modelo +# ----------------------------------------------------------------------------- +sources-model-active = Ativo +sources-model-coming-soon = Em Breve +sources-model-provider = Provedor +sources-model-context = Contexto +sources-model-tokens = tokens + +# ----------------------------------------------------------------------------- +# Cards de App +# ----------------------------------------------------------------------------- +sources-app-open = Abrir +sources-app-edit = Editar +sources-app-installed = Instalado +sources-app-install = Instalar + +# ----------------------------------------------------------------------------- +# Cards de Template +# ----------------------------------------------------------------------------- +sources-template-preview = Pré-visualizar +sources-template-use = Usar Template +sources-template-components = componentes + +# ----------------------------------------------------------------------------- +# Categorias +# ----------------------------------------------------------------------------- +sources-category-all = Todos +sources-category-development = Desenvolvimento +sources-category-productivity = Produtividade +sources-category-communication = Comunicação +sources-category-analytics = Análises +sources-category-security = Segurança +sources-category-other = Outros + +# ----------------------------------------------------------------------------- +# Estados Vazios +# ----------------------------------------------------------------------------- +sources-empty-repos = Nenhum repositório conectado +sources-empty-apps = Nenhum app disponível +sources-empty-prompts = Nenhum prompt encontrado +sources-empty-templates = Nenhum template disponível +sources-empty-servers = Nenhum servidor MCP configurado +sources-empty-models = Nenhum modelo disponível +sources-empty-results = Nenhum resultado encontrado +sources-empty-results-desc = Tente ajustar sua busca ou filtros + +# ============================================================================= +# TELAS DE FERRAMENTAS / CONFORMIDADE +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Conformidade Principal +# ----------------------------------------------------------------------------- +compliance-title = Relatório de Conformidade da API +compliance-subtitle = Verificação de segurança para todos os bots - Verifica senhas, código frágil e configurações incorretas +compliance-export-report = Exportar Relatório +compliance-run-scan = Executar Verificação de Conformidade +compliance-scanning = Verificando... + +# ----------------------------------------------------------------------------- +# Seletor de Bot +# ----------------------------------------------------------------------------- +compliance-all-bots = Todos os Bots +compliance-select-bots = Selecionar Bots + +# ----------------------------------------------------------------------------- +# Cards de Estatísticas +# ----------------------------------------------------------------------------- +compliance-critical = Crítico +compliance-critical-desc = Requer ação imediata +compliance-high = Alto +compliance-high-desc = Risco de segurança +compliance-medium = Médio +compliance-medium-desc = Deve ser corrigido +compliance-low = Baixo +compliance-low-desc = Boa prática +compliance-info = Info +compliance-info-desc = Informativo + +# ----------------------------------------------------------------------------- +# Filtros +# ----------------------------------------------------------------------------- +compliance-filter-severity = Severidade +compliance-filter-type = Tipo +compliance-filter-all-severities = Todas as Severidades +compliance-filter-all-types = Todos os Tipos +compliance-search-issues = Buscar problemas... + +# ----------------------------------------------------------------------------- +# Tipos de Problemas +# ----------------------------------------------------------------------------- +compliance-type-password = Senha na Configuração +compliance-type-hardcoded = Segredos Hardcoded +compliance-type-deprecated = Palavras-chave Obsoletas +compliance-type-fragile = Código Frágil +compliance-type-config = Problemas de Configuração + +# ----------------------------------------------------------------------------- +# Tabela de Resultados +# ----------------------------------------------------------------------------- +compliance-results = Resultados +compliance-results-count = { $count -> + [one] { $count } problema encontrado + *[other] { $count } problemas encontrados +} +compliance-col-severity = Severidade +compliance-col-issue = Problema +compliance-col-location = Localização +compliance-col-details = Detalhes +compliance-col-action = Ação +compliance-view-details = Ver Detalhes +compliance-fix-issue = Corrigir Problema +compliance-ignore = Ignorar +compliance-no-issues = Nenhum problema encontrado +compliance-no-issues-desc = Ótimo! Seus bots estão em conformidade. + +# ----------------------------------------------------------------------------- +# Progresso da Verificação +# ----------------------------------------------------------------------------- +compliance-scan-in-progress = Verificação em andamento... +compliance-scan-checking = Verificando { $item }... +compliance-scan-complete = Verificação concluída +compliance-scan-failed = Verificação falhou + +# ============================================================================= +# TELAS DE ATENDENTE / CRM +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Estado CRM Desabilitado +# ----------------------------------------------------------------------------- +attendant-crm-disabled = Recursos de CRM Não Habilitados +attendant-crm-disabled-desc = O Console do Atendente requer que os recursos de CRM estejam habilitados para este bot. Isso permite que agentes humanos recebam e respondam conversas transferidas do bot. +attendant-crm-enable-instruction = Para habilitar os recursos de CRM, adicione esta linha ao +attendant-crm-config-file = config.csv do seu bot +attendant-crm-create-attendant = Depois crie um arquivo +attendant-crm-attendant-file = attendant.csv +attendant-crm-configure-team = para configurar sua equipe + +# ----------------------------------------------------------------------------- +# Barra Lateral da Fila +# ----------------------------------------------------------------------------- +attendant-title = Console do Atendente +attendant-status-online = Online +attendant-status-busy = Ocupado +attendant-status-away = Ausente +attendant-status-offline = Offline +attendant-status-ready = Online - Pronto para conversas +attendant-status-busy-msg = Ocupado - Atendendo conversas +attendant-status-away-msg = Ausente - Volto em breve +attendant-status-offline-msg = Offline - Não disponível + +# ----------------------------------------------------------------------------- +# Estatísticas da Fila +# ----------------------------------------------------------------------------- +attendant-waiting = Aguardando +attendant-active = Ativas +attendant-resolved = Resolvidas +attendant-mine = Minhas + +# ----------------------------------------------------------------------------- +# Filtros da Fila +# ----------------------------------------------------------------------------- +attendant-filter-all = Todas +attendant-filter-waiting = Aguardando +attendant-filter-mine = Minhas +attendant-filter-priority = Prioridade + +# ----------------------------------------------------------------------------- +# Lista de Conversas +# ----------------------------------------------------------------------------- +attendant-no-conversations = Nenhuma conversa na fila +attendant-new-conversations-appear = Novas conversas aparecerão aqui +attendant-unread = Não lida +attendant-typing = digitando... +attendant-select-conversation = Selecione uma conversa +attendant-select-conversation-desc = Escolha uma conversa da fila para começar a responder + +# ----------------------------------------------------------------------------- +# Tags de Canal +# ----------------------------------------------------------------------------- +attendant-channel-whatsapp = WhatsApp +attendant-channel-teams = Teams +attendant-channel-instagram = Instagram +attendant-channel-web = Web +attendant-channel-telegram = Telegram +attendant-channel-email = E-mail + +# ----------------------------------------------------------------------------- +# Tags de Prioridade +# ----------------------------------------------------------------------------- +attendant-priority-urgent = Urgente +attendant-priority-high = Alta +attendant-priority-normal = Normal + +# ----------------------------------------------------------------------------- +# Área de Chat +# ----------------------------------------------------------------------------- +attendant-message-placeholder = Digite sua mensagem... +attendant-send = Enviar +attendant-attach-file = Anexar arquivo +attendant-insert-emoji = Inserir emoji +attendant-quick-responses = Respostas Rápidas +attendant-transfer = Transferir +attendant-resolve = Resolver +attendant-more-actions = Mais Ações + +# ----------------------------------------------------------------------------- +# Respostas Rápidas +# ----------------------------------------------------------------------------- +attendant-quick-greeting = Olá! Como posso ajudá-lo hoje? +attendant-quick-thanks = Obrigado pela sua paciência. +attendant-quick-checking = Deixe-me verificar isso para você. +attendant-quick-moment = Um momento, por favor. + +# ----------------------------------------------------------------------------- +# Modal de Transferência +# ----------------------------------------------------------------------------- +attendant-transfer-title = Transferir Conversa +attendant-transfer-to = Transferir para +attendant-transfer-reason = Motivo (opcional) +attendant-transfer-reason-placeholder = Por que você está transferindo esta conversa? +attendant-transfer-cancel = Cancelar +attendant-transfer-confirm = Transferir + +# ----------------------------------------------------------------------------- +# Barra Lateral de Insights de IA +# ----------------------------------------------------------------------------- +attendant-ai-insights = Insights de IA +attendant-ai-summary = Resumo da Conversa +attendant-ai-sentiment = Sentimento do Cliente +attendant-sentiment-positive = Positivo +attendant-sentiment-neutral = Neutro +attendant-sentiment-negative = Negativo +attendant-smart-replies = Respostas Inteligentes +attendant-confidence = Confiança +attendant-source = Fonte + +# ----------------------------------------------------------------------------- +# Detalhes do Cliente +# ----------------------------------------------------------------------------- +attendant-customer-details = Detalhes do Cliente +attendant-customer-name = Nome +attendant-customer-email = E-mail +attendant-customer-phone = Telefone +attendant-customer-location = Localização +attendant-customer-tags = Tags + +# ----------------------------------------------------------------------------- +# Histórico de Conversas +# ----------------------------------------------------------------------------- +attendant-history = Histórico +attendant-history-resolved = Resolvida +attendant-history-transferred = Transferida +attendant-history-abandoned = Abandonada +attendant-view-history = Ver Histórico Completo + +# ----------------------------------------------------------------------------- +# Mensagens Toast +# ----------------------------------------------------------------------------- +attendant-toast-transferred = Conversa transferida com sucesso +attendant-toast-resolved = Conversa marcada como resolvida +attendant-toast-assigned = Conversa atribuída a você +attendant-toast-error = Ocorreu um erro +attendant-toast-connection-lost = Conexão perdida. Reconectando... +attendant-toast-connection-restored = Conexão restaurada diff --git a/locales/pt-BR/video.ftl b/locales/pt-BR/video.ftl new file mode 100644 index 0000000..aa5004e --- /dev/null +++ b/locales/pt-BR/video.ftl @@ -0,0 +1,142 @@ +# ============================================================================= +# General Bots - Portuguese (Brazil) Video Editor Translations +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Navigation +# ----------------------------------------------------------------------------- +nav-video = Vídeo + +# ----------------------------------------------------------------------------- +# Video Editor - Main +# ----------------------------------------------------------------------------- +video-title = Editor de Vídeo +video-new-project = Novo Projeto +video-project-info = Informações do Projeto +video-duration = Duração +video-clips = Clips +video-layers = Camadas +video-resolution = Resolução + +# ----------------------------------------------------------------------------- +# Video Editor - Add Elements +# ----------------------------------------------------------------------------- +video-add-elements = Adicionar Elementos +video-add-clip = Clip de Vídeo +video-add-text = Texto +video-add-image = Imagem +video-add-shape = Forma +video-add-audio = Áudio +video-add-narration = Narração + +# ----------------------------------------------------------------------------- +# Video Editor - Properties +# ----------------------------------------------------------------------------- +video-properties = Propriedades +video-name = Nome +video-volume = Volume +video-opacity = Opacidade +video-position-x = Posição X +video-position-y = Posição Y +video-rotation = Rotação +video-transition-in = Transição de Entrada +video-transition-out = Transição de Saída + +# ----------------------------------------------------------------------------- +# Video Editor - Timeline +# ----------------------------------------------------------------------------- +video-video-track = Vídeo +video-text-track = Texto e Sobreposições +video-audio-track = Áudio + +# ----------------------------------------------------------------------------- +# Video Editor - Preview +# ----------------------------------------------------------------------------- +video-preview = Visualizar +video-add-content = Adicione clips ou elementos para começar a editar + +# ----------------------------------------------------------------------------- +# Video Editor - Chat +# ----------------------------------------------------------------------------- +video-ai-assistant = Assistente IA +video-playhead-at = Cursor: +video-selected = Selecionado: +video-chat-placeholder = Descreva o que você quer mudar... +video-chat-welcome = Olá! Sou seu assistente de edição de vídeo. Você pode me dizer o que mudar, como "adicione um título aqui" ou "faça maior". Vou entender sua seleção atual e a posição do cursor. + +# ----------------------------------------------------------------------------- +# Video Editor - Export +# ----------------------------------------------------------------------------- +video-export = Exportar +video-export-video = Exportar Vídeo +video-format = Formato +video-quality = Qualidade +video-start-export = Iniciar Exportação +video-exporting = Exportando... +video-export-complete = Exportação Concluída +video-export-failed = Exportação Falhou + +# ----------------------------------------------------------------------------- +# Video Editor - Projects +# ----------------------------------------------------------------------------- +video-recent-projects = Projetos Recentes +video-no-projects = Nenhum projeto ainda +video-create-first = Crie seu primeiro projeto de vídeo +video-project-name = Nome do Projeto +video-aspect-ratio = Proporção +video-frame-rate = Taxa de Quadros +video-create = Criar + +# ----------------------------------------------------------------------------- +# Video Editor - Text Layer +# ----------------------------------------------------------------------------- +video-text-content = Conteúdo do Texto +video-font-family = Fonte +video-font-size = Tamanho +video-text-color = Cor +video-duration-sec = Duração (seg) +video-add = Adicionar + +# ----------------------------------------------------------------------------- +# Video Editor - Actions +# ----------------------------------------------------------------------------- +video-undo = Desfazer +video-redo = Refazer +video-cut = Cortar +video-split = Dividir +video-delete = Excluir +video-save = Salvar + +# ----------------------------------------------------------------------------- +# Video Editor - Status +# ----------------------------------------------------------------------------- +video-status-draft = Rascunho +video-status-editing = Editando +video-status-exporting = Exportando +video-status-published = Publicado +video-status-archived = Arquivado + +# ----------------------------------------------------------------------------- +# Video Editor - Notifications +# ----------------------------------------------------------------------------- +video-project-created = Projeto criado +video-project-saved = Projeto salvo +video-clip-added = Clip adicionado +video-layer-added = Camada adicionada +video-text-added = Camada de texto adicionada +video-shape-added = Forma adicionada +video-audio-added = Faixa de áudio adicionada +video-item-deleted = Item excluído +video-export-started = Exportação iniciada +video-export-completed = Exportação concluída com sucesso +video-error-create-project = Falha ao criar projeto +video-error-load-project = Falha ao carregar projeto +video-error-add-clip = Falha ao adicionar clip +video-error-add-layer = Falha ao adicionar camada +video-error-delete = Falha ao excluir item +video-error-export = Falha ao iniciar exportação +video-create-project-first = Por favor crie um projeto primeiro +video-select-clip-to-split = Selecione um clip para dividir +video-playhead-within-clip = O cursor deve estar dentro do clip selecionado +video-tts-coming-soon = Geração de TTS em breve +video-split-coming-soon = Função de dividir em breve diff --git a/locales/pt-BR/webinar.ftl b/locales/pt-BR/webinar.ftl new file mode 100644 index 0000000..705f663 --- /dev/null +++ b/locales/pt-BR/webinar.ftl @@ -0,0 +1,313 @@ +# ============================================================================= +# General Bots - Webinar Translations (Portuguese - Brazil) +# ============================================================================= +# Traduções da interface de webinar, gravação e transcrição +# ============================================================================= + +# ----------------------------------------------------------------------------- +# Webinar Navigation & Headers +# ----------------------------------------------------------------------------- +webinar-title = Webinars +webinar-subtitle = Hospede e gerencie webinars +webinar-nav-upcoming = Próximos +webinar-nav-live = Ao Vivo +webinar-nav-past = Webinars Anteriores +webinar-nav-recordings = Gravações +webinar-nav-analytics = Análises + +# ----------------------------------------------------------------------------- +# Webinar Status +# ----------------------------------------------------------------------------- +webinar-status-draft = Rascunho +webinar-status-scheduled = Agendado +webinar-status-live = Ao Vivo +webinar-status-paused = Pausado +webinar-status-ended = Encerrado +webinar-status-cancelled = Cancelado + +# ----------------------------------------------------------------------------- +# Webinar Fields +# ----------------------------------------------------------------------------- +webinar-field-title = Título +webinar-field-description = Descrição +webinar-field-scheduled-start = Data e Hora de Início +webinar-field-scheduled-end = Data e Hora de Término +webinar-field-duration = Duração +webinar-field-timezone = Fuso Horário +webinar-field-host = Anfitrião +webinar-field-panelists = Painelistas +webinar-field-max-attendees = Máximo de Participantes +webinar-field-registration-url = URL de Inscrição + +# ----------------------------------------------------------------------------- +# Webinar Actions +# ----------------------------------------------------------------------------- +webinar-action-create = Criar Webinar +webinar-action-edit = Editar Webinar +webinar-action-delete = Excluir Webinar +webinar-action-cancel = Cancelar Webinar +webinar-action-start = Iniciar Webinar +webinar-action-end = Encerrar Webinar +webinar-action-pause = Pausar Webinar +webinar-action-resume = Retomar Webinar +webinar-action-join = Entrar no Webinar +webinar-action-leave = Sair do Webinar +webinar-action-share = Compartilhar Link +webinar-action-copy-link = Copiar Link +webinar-action-invite = Convidar Painelistas + +# ----------------------------------------------------------------------------- +# Participant Roles +# ----------------------------------------------------------------------------- +webinar-role-host = Anfitrião +webinar-role-cohost = Co-Anfitrião +webinar-role-presenter = Apresentador +webinar-role-panelist = Painelista +webinar-role-attendee = Participante + +# ----------------------------------------------------------------------------- +# Participant Actions +# ----------------------------------------------------------------------------- +webinar-participant-mute = Silenciar +webinar-participant-unmute = Ativar Som +webinar-participant-video-on = Ligar Vídeo +webinar-participant-video-off = Desligar Vídeo +webinar-participant-promote = Promover a Painelista +webinar-participant-demote = Rebaixar a Participante +webinar-participant-remove = Remover do Webinar +webinar-participant-allow-speak = Permitir Falar +webinar-participant-spotlight = Destacar + +# ----------------------------------------------------------------------------- +# Hand Raising +# ----------------------------------------------------------------------------- +webinar-hand-raise = Levantar a Mão +webinar-hand-lower = Abaixar a Mão +webinar-hand-raised-count = { $count } mãos levantadas +webinar-hand-allow = Permitir Falar +webinar-hand-dismiss = Dispensar + +# ----------------------------------------------------------------------------- +# Q&A Panel +# ----------------------------------------------------------------------------- +webinar-qa-title = Perguntas e Respostas +webinar-qa-submit = Enviar Pergunta +webinar-qa-placeholder = Digite sua pergunta... +webinar-qa-anonymous = Perguntar Anonimamente +webinar-qa-pending = Perguntas Pendentes +webinar-qa-answered = Perguntas Respondidas +webinar-qa-dismissed = Dispensadas +webinar-qa-upvote = Votar +webinar-qa-upvotes = { $count } votos +webinar-qa-answer = Responder +webinar-qa-answer-live = Responder Ao Vivo +webinar-qa-dismiss = Dispensar +webinar-qa-pin = Fixar Pergunta +webinar-qa-unpin = Desafixar +webinar-qa-highlight = Destacar +webinar-qa-no-questions = Nenhuma pergunta ainda + +# ----------------------------------------------------------------------------- +# Polls +# ----------------------------------------------------------------------------- +webinar-poll-title = Enquetes +webinar-poll-create = Criar Enquete +webinar-poll-launch = Lançar Enquete +webinar-poll-close = Fechar Enquete +webinar-poll-results = Mostrar Resultados +webinar-poll-hide-results = Ocultar Resultados +webinar-poll-question = Pergunta +webinar-poll-options = Opções +webinar-poll-add-option = Adicionar Opção +webinar-poll-single-choice = Escolha Única +webinar-poll-multiple-choice = Múltipla Escolha +webinar-poll-votes = { $count } votos +webinar-poll-vote = Votar +webinar-poll-voted = Você votou + +# ----------------------------------------------------------------------------- +# Registration +# ----------------------------------------------------------------------------- +webinar-registration-title = Inscrição +webinar-registration-required = Inscrição Obrigatória +webinar-registration-open = Inscrições Abertas +webinar-registration-closed = Inscrições Encerradas +webinar-registration-register = Inscrever-se +webinar-registration-registered = Você está Inscrito +webinar-registration-cancel = Cancelar Inscrição +webinar-registration-count = { $count } inscritos +webinar-registration-fields = Campos de Inscrição +webinar-registration-name = Nome Completo +webinar-registration-email = Endereço de E-mail +webinar-registration-confirmation = Inscrição Confirmada +webinar-registration-pending = Confirmação Pendente +webinar-registration-waitlist = Lista de Espera + +# ----------------------------------------------------------------------------- +# Webinar Settings +# ----------------------------------------------------------------------------- +webinar-settings-title = Configurações do Webinar +webinar-settings-general = Geral +webinar-settings-permissions = Permissões +webinar-settings-registration = Inscrição +webinar-settings-recording = Gravação +webinar-settings-allow-chat = Permitir Chat +webinar-settings-allow-qa = Permitir Perguntas e Respostas +webinar-settings-allow-hand-raise = Permitir Levantar a Mão +webinar-settings-allow-reactions = Permitir Reações +webinar-settings-moderated-qa = Perguntas Moderadas +webinar-settings-anonymous-qa = Permitir Perguntas Anônimas +webinar-settings-waiting-room = Habilitar Sala de Espera +webinar-settings-practice-session = Sessão de Prática +webinar-settings-auto-record = Gravar Automaticamente + +# ----------------------------------------------------------------------------- +# Recording +# ----------------------------------------------------------------------------- +recording-title = Gravações +recording-start = Iniciar Gravação +recording-stop = Parar Gravação +recording-pause = Pausar Gravação +recording-resume = Retomar Gravação +recording-status-recording = Gravando +recording-status-processing = Processando +recording-status-ready = Pronta +recording-status-failed = Falhou +recording-status-deleted = Excluída +recording-status-expired = Expirada +recording-duration = Duração +recording-size = Tamanho do Arquivo +recording-quality = Qualidade +recording-quality-standard = Padrão (720p) +recording-quality-high = Alta (1080p) +recording-quality-ultra = Ultra (4K) +recording-quality-audio = Apenas Áudio +recording-download = Baixar Gravação +recording-share = Compartilhar Gravação +recording-delete = Excluir Gravação +recording-view-count = { $count } visualizações +recording-download-count = { $count } downloads +recording-expires = Expira em { $date } + +# ----------------------------------------------------------------------------- +# Transcription +# ----------------------------------------------------------------------------- +transcription-title = Transcrição +transcription-start = Iniciar Transcrição +transcription-status-pending = Pendente +transcription-status-in-progress = Transcrevendo... +transcription-status-completed = Concluída +transcription-status-failed = Falhou +transcription-status-partial = Parcialmente Concluída +transcription-language = Idioma +transcription-speaker-identification = Identificação de Palestrantes +transcription-speakers = { $count } palestrantes identificados +transcription-words = { $count } palavras +transcription-confidence = { $percent }% de confiança +transcription-download = Baixar Transcrição +transcription-export = Exportar +transcription-export-txt = Texto Simples (.txt) +transcription-export-vtt = WebVTT (.vtt) +transcription-export-srt = SubRip (.srt) +transcription-export-json = JSON (.json) +transcription-search = Pesquisar transcrição... +transcription-jump-to = Ir para momento +transcription-edit = Editar Transcrição +transcription-save = Salvar Alterações + +# ----------------------------------------------------------------------------- +# Transcription Languages +# ----------------------------------------------------------------------------- +transcription-lang-en-us = Inglês (EUA) +transcription-lang-en-gb = Inglês (Reino Unido) +transcription-lang-es-es = Espanhol (Espanha) +transcription-lang-es-mx = Espanhol (México) +transcription-lang-fr-fr = Francês +transcription-lang-de-de = Alemão +transcription-lang-it-it = Italiano +transcription-lang-pt-br = Português (Brasil) +transcription-lang-pt-pt = Português (Portugal) +transcription-lang-nl-nl = Holandês +transcription-lang-pl-pl = Polonês +transcription-lang-ru-ru = Russo +transcription-lang-ja-jp = Japonês +transcription-lang-ko-kr = Coreano +transcription-lang-zh-cn = Chinês (Simplificado) +transcription-lang-zh-tw = Chinês (Tradicional) +transcription-lang-ar-sa = Árabe +transcription-lang-hi-in = Hindi +transcription-lang-tr-tr = Turco +transcription-lang-vi-vn = Vietnamita + +# ----------------------------------------------------------------------------- +# Webinar Analytics +# ----------------------------------------------------------------------------- +webinar-analytics-title = Análises do Webinar +webinar-analytics-overview = Visão Geral +webinar-analytics-registrations = Total de Inscrições +webinar-analytics-attendees = Total de Participantes +webinar-analytics-peak-attendees = Pico de Participantes +webinar-analytics-avg-watch-time = Tempo Médio de Visualização +webinar-analytics-questions = Perguntas Feitas +webinar-analytics-questions-answered = Perguntas Respondidas +webinar-analytics-reactions = Reações +webinar-analytics-poll-participation = Participação em Enquetes +webinar-analytics-engagement = Pontuação de Engajamento +webinar-analytics-retention = Retenção de Audiência +webinar-analytics-export = Exportar Relatório + +# ----------------------------------------------------------------------------- +# Empty States +# ----------------------------------------------------------------------------- +webinar-empty-upcoming = Nenhum webinar agendado +webinar-empty-past = Nenhum webinar anterior +webinar-empty-recordings = Nenhuma gravação disponível +webinar-empty-schedule = Agende seu primeiro webinar +webinar-empty-transcription = Nenhuma transcrição disponível + +# ----------------------------------------------------------------------------- +# Confirmations +# ----------------------------------------------------------------------------- +webinar-confirm-end = Tem certeza de que deseja encerrar este webinar? +webinar-confirm-cancel = Tem certeza de que deseja cancelar este webinar? +webinar-confirm-delete = Tem certeza de que deseja excluir este webinar? +webinar-confirm-delete-recording = Tem certeza de que deseja excluir esta gravação? +webinar-confirm-stop-recording = Tem certeza de que deseja parar a gravação? + +# ----------------------------------------------------------------------------- +# Success Messages +# ----------------------------------------------------------------------------- +webinar-success-created = Webinar criado com sucesso +webinar-success-updated = Webinar atualizado com sucesso +webinar-success-started = Webinar iniciado +webinar-success-ended = Webinar encerrado +webinar-success-cancelled = Webinar cancelado +webinar-success-recording-started = Gravação iniciada +webinar-success-recording-stopped = Gravação parada +webinar-success-transcription-started = Transcrição iniciada +webinar-success-transcription-completed = Transcrição concluída + +# ----------------------------------------------------------------------------- +# Error Messages +# ----------------------------------------------------------------------------- +webinar-error-create = Falha ao criar webinar +webinar-error-start = Falha ao iniciar webinar +webinar-error-join = Falha ao entrar no webinar +webinar-error-recording-start = Falha ao iniciar gravação +webinar-error-recording-stop = Falha ao parar gravação +webinar-error-transcription = Falha na transcrição +webinar-error-max-participants = Número máximo de participantes atingido +webinar-error-not-authorized = Você não está autorizado a realizar esta ação +webinar-error-webinar-ended = Este webinar foi encerrado +webinar-error-registration-closed = As inscrições estão encerradas + +# ----------------------------------------------------------------------------- +# Notifications +# ----------------------------------------------------------------------------- +webinar-notify-starting-soon = Webinar começando em { $minutes } minutos +webinar-notify-started = O webinar começou +webinar-notify-ended = O webinar foi encerrado +webinar-notify-hand-raised = { $name } levantou a mão +webinar-notify-question-submitted = Nova pergunta enviada +webinar-notify-recording-ready = A gravação está pronta +webinar-notify-transcription-ready = A transcrição está pronta diff --git a/src/i18n/bundle.rs b/src/i18n/bundle.rs new file mode 100644 index 0000000..66d7dcf --- /dev/null +++ b/src/i18n/bundle.rs @@ -0,0 +1,360 @@ +use crate::error::{BotError, BotResult}; +use std::collections::HashMap; +use std::fs; +use std::path::Path; + +use super::Locale; + +pub type MessageArgs = HashMap; + +#[derive(Debug)] +struct TranslationFile { + messages: HashMap, +} + +impl TranslationFile { + fn parse(content: &str) -> Self { + let mut messages = HashMap::new(); + let mut current_key: Option = None; + let mut current_value = String::new(); + + for line in content.lines() { + let trimmed = line.trim(); + + if trimmed.is_empty() || trimmed.starts_with('#') { + continue; + } + + if let Some(eq_pos) = line.find('=') { + if let Some(key) = current_key.take() { + messages.insert(key, current_value.trim().to_string()); + } + + let key = line[..eq_pos].trim().to_string(); + let value = line[eq_pos + 1..].trim().to_string(); + + if Self::is_multiline_start(&value) { + current_key = Some(key); + current_value = value; + } else { + messages.insert(key, value); + } + } else if current_key.is_some() { + current_value.push('\n'); + current_value.push_str(trimmed); + } + } + + if let Some(key) = current_key { + messages.insert(key, current_value.trim().to_string()); + } + + Self { messages } + } + + fn is_multiline_start(value: &str) -> bool { + let open_braces = value.matches('{').count(); + let close_braces = value.matches('}').count(); + open_braces > close_braces + } + + fn get(&self, key: &str) -> Option<&String> { + self.messages.get(key) + } + + fn merge(&mut self, other: Self) { + self.messages.extend(other.messages); + } +} + +#[derive(Debug)] +struct LocaleBundle { + locale: Locale, + translations: TranslationFile, +} + +impl LocaleBundle { + fn load(locale_dir: &Path) -> BotResult { + let dir_name = locale_dir + .file_name() + .and_then(|n| n.to_str()) + .ok_or_else(|| BotError::config("invalid locale directory name"))?; + + let locale = Locale::new(dir_name) + .ok_or_else(|| BotError::config(format!("invalid locale: {dir_name}")))?; + + let mut translations = TranslationFile { + messages: HashMap::new(), + }; + + let entries = fs::read_dir(locale_dir).map_err(|e| { + BotError::config(format!("failed to read locale directory: {e}")) + })?; + + for entry in entries { + let entry = entry.map_err(|e| { + BotError::config(format!("failed to read directory entry: {e}")) + })?; + + let path = entry.path(); + + if path.extension().map_or(false, |ext| ext == "ftl") { + let content = fs::read_to_string(&path).map_err(|e| { + BotError::config(format!( + "failed to read translation file {}: {e}", + path.display() + )) + })?; + + let file_translations = TranslationFile::parse(&content); + translations.merge(file_translations); + } + } + + Ok(Self { + locale, + translations, + }) + } + + fn get_message(&self, key: &str) -> Option<&String> { + self.translations.get(key) + } +} + +#[derive(Debug)] +pub struct I18nBundle { + bundles: HashMap, + available: Vec, + fallback: Locale, +} + +impl I18nBundle { + pub fn load(base_path: &str) -> BotResult { + let base = Path::new(base_path); + + if !base.exists() { + return Err(BotError::config(format!( + "locales directory not found: {base_path}" + ))); + } + + let mut bundles = HashMap::new(); + let mut available = Vec::new(); + + let entries = fs::read_dir(base).map_err(|e| { + BotError::config(format!("failed to read locales directory: {e}")) + })?; + + for entry in entries { + let entry = entry.map_err(|e| { + BotError::config(format!("failed to read directory entry: {e}")) + })?; + + let path = entry.path(); + + if path.is_dir() { + match LocaleBundle::load(&path) { + Ok(bundle) => { + available.push(bundle.locale.clone()); + bundles.insert(bundle.locale.to_string(), bundle); + } + Err(e) => { + log::warn!("failed to load locale bundle: {e}"); + } + } + } + } + + let fallback = Locale::default(); + + Ok(Self { + bundles, + available, + fallback, + }) + } + + pub fn get_message(&self, locale: &Locale, key: &str, args: Option<&MessageArgs>) -> String { + let negotiated = Locale::negotiate(&[locale], &self.available, &self.fallback); + + let message = self + .bundles + .get(&negotiated.to_string()) + .and_then(|b| b.get_message(key)) + .or_else(|| { + self.bundles + .get(&self.fallback.to_string()) + .and_then(|b| b.get_message(key)) + }); + + match message { + Some(msg) => Self::interpolate(msg, args), + None => format!("[{key}]"), + } + } + + pub fn available_locales(&self) -> Vec { + self.available.iter().map(ToString::to_string).collect() + } + + fn interpolate(template: &str, args: Option<&MessageArgs>) -> String { + let Some(args) = args else { + return Self::strip_placeholders(template); + }; + + let mut result = template.to_string(); + + for (key, value) in args { + let placeholder = format!("{{ ${key} }}"); + result = result.replace(&placeholder, value); + + let placeholder_compact = format!("{{${key}}}"); + result = result.replace(&placeholder_compact, value); + + let placeholder_spaced = format!("{{ ${key} }}"); + result = result.replace(&placeholder_spaced, value); + + let pattern = format!("${{${key}}}"); + result = result.replace(&pattern, value); + + result = result.replace(&format!("{{ ${key} }}"), value); + result = result.replace(&format!("{{${key}}}"), value); + result = result.replace(&format!("{{ ${key}}}"), value); + result = result.replace(&format!("{{${key} }}"), value); + } + + Self::handle_plurals(&result, args) + } + + fn strip_placeholders(template: &str) -> String { + let mut result = String::with_capacity(template.len()); + let mut chars = template.chars().peekable(); + + while let Some(c) = chars.next() { + if c == '{' && chars.peek() == Some(&' ') { + let mut placeholder = String::new(); + placeholder.push(c); + + while let Some(&next) = chars.peek() { + placeholder.push(chars.next().unwrap_or_default()); + if next == '}' { + break; + } + } + + if !placeholder.contains('$') { + result.push_str(&placeholder); + } + } else { + result.push(c); + } + } + + result + } + + fn handle_plurals(template: &str, args: &MessageArgs) -> String { + let mut result = template.to_string(); + + for (key, value) in args { + let count: i64 = value.parse().unwrap_or(0); + + let plural_pattern = format!("{{ ${key} ->"); + + if let Some(start) = result.find(&plural_pattern) { + if let Some(end) = result[start..].find('}') { + let plural_block = &result[start..start + end + 1]; + let replacement = Self::select_plural_form(plural_block, count); + result = result.replace(plural_block, &replacement); + } + } + } + + result + } + + fn select_plural_form(block: &str, count: i64) -> String { + let forms: Vec<&str> = block.split('\n').collect(); + + let form_key = match count { + 0 => "[zero]", + 1 => "[one]", + _ => "*[other]", + }; + + for form in &forms { + if form.contains(form_key) { + return form + .split(']') + .nth(1) + .unwrap_or("") + .trim() + .replace("{ $count }", &count.to_string()); + } + } + + for form in &forms { + if form.contains("*[other]") { + return form + .split(']') + .nth(1) + .unwrap_or("") + .trim() + .replace("{ $count }", &count.to_string()); + } + } + + count.to_string() + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_parse_simple_ftl() { + let content = r#" +hello = Hello +world = World +"#; + let file = TranslationFile::parse(content); + assert_eq!(file.get("hello"), Some(&"Hello".to_string())); + assert_eq!(file.get("world"), Some(&"World".to_string())); + } + + #[test] + fn test_parse_with_placeholder() { + let content = r#" +greeting = Hello, { $name }! +"#; + let file = TranslationFile::parse(content); + assert_eq!( + file.get("greeting"), + Some(&"Hello, { $name }!".to_string()) + ); + } + + #[test] + fn test_interpolate_simple() { + let mut args = MessageArgs::new(); + args.insert("name".to_string(), "World".to_string()); + + let result = I18nBundle::interpolate("Hello, { $name }!", Some(&args)); + assert!(result.contains("World") || result.contains("{ $name }")); + } + + #[test] + fn test_missing_key_returns_bracketed() { + let bundle = I18nBundle { + bundles: HashMap::new(), + available: vec![], + fallback: Locale::default(), + }; + + let locale = Locale::default(); + let result = bundle.get_message(&locale, "missing-key", None); + assert_eq!(result, "[missing-key]"); + } +} diff --git a/src/i18n/locale.rs b/src/i18n/locale.rs new file mode 100644 index 0000000..06f4012 --- /dev/null +++ b/src/i18n/locale.rs @@ -0,0 +1,235 @@ +use std::fmt; + +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub struct Locale { + language: String, + region: Option, +} + +impl Locale { + pub fn new(locale_str: &str) -> Option { + if locale_str.is_empty() { + return None; + } + + let parts: Vec<&str> = locale_str.split(&['-', '_'][..]).collect(); + + let language = parts.first()?.to_lowercase(); + if language.len() < 2 || language.len() > 3 { + return None; + } + + let region = parts.get(1).map(|r| r.to_uppercase()); + + Some(Self { language, region }) + } + + pub fn from_parts(language: &str, region: Option<&str>) -> Option { + if language.is_empty() || language.len() < 2 || language.len() > 3 { + return None; + } + + Some(Self { + language: language.to_lowercase(), + region: region.map(|r| r.to_uppercase()), + }) + } + + #[must_use] + pub fn language(&self) -> &str { + &self.language + } + + #[must_use] + pub fn region(&self) -> Option<&str> { + self.region.as_deref() + } + + #[must_use] + pub fn to_string_with_separator(&self, separator: char) -> String { + match &self.region { + Some(r) => format!("{}{separator}{r}", self.language), + None => self.language.clone(), + } + } + + #[must_use] + pub fn matches(&self, other: &Self) -> bool { + if self.language != other.language { + return false; + } + + match (&self.region, &other.region) { + (Some(a), Some(b)) => a == b, + (None, _) | (_, None) => true, + } + } + + pub fn negotiate<'a>( + requested: &[&'a Locale], + available: &'a [Locale], + fallback: &'a Locale, + ) -> &'a Locale { + for req in requested { + for avail in available { + if req.language == avail.language { + if req.region == avail.region { + return avail; + } + } + } + } + + for req in requested { + for avail in available { + if req.language == avail.language { + return avail; + } + } + } + + for avail in available { + if avail == fallback { + return avail; + } + } + + available.first().unwrap_or(fallback) + } +} + +impl Default for Locale { + fn default() -> Self { + Self { + language: "en".to_string(), + region: None, + } + } +} + +impl fmt::Display for Locale { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match &self.region { + Some(r) => write!(f, "{}-{r}", self.language), + None => write!(f, "{}", self.language), + } + } +} + +impl TryFrom<&str> for Locale { + type Error = &'static str; + + fn try_from(value: &str) -> Result { + Self::new(value).ok_or("invalid locale string") + } +} + +impl TryFrom for Locale { + type Error = &'static str; + + fn try_from(value: String) -> Result { + Self::new(&value).ok_or("invalid locale string") + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_parse_simple_locale() { + let locale = Locale::new("en").unwrap(); + assert_eq!(locale.language(), "en"); + assert_eq!(locale.region(), None); + } + + #[test] + fn test_parse_locale_with_region() { + let locale = Locale::new("pt-BR").unwrap(); + assert_eq!(locale.language(), "pt"); + assert_eq!(locale.region(), Some("BR")); + } + + #[test] + fn test_parse_locale_with_underscore() { + let locale = Locale::new("zh_CN").unwrap(); + assert_eq!(locale.language(), "zh"); + assert_eq!(locale.region(), Some("CN")); + } + + #[test] + fn test_locale_display() { + let locale = Locale::new("pt-BR").unwrap(); + assert_eq!(locale.to_string(), "pt-BR"); + + let locale_simple = Locale::new("en").unwrap(); + assert_eq!(locale_simple.to_string(), "en"); + } + + #[test] + fn test_locale_matches() { + let en = Locale::new("en").unwrap(); + let en_us = Locale::new("en-US").unwrap(); + let en_gb = Locale::new("en-GB").unwrap(); + let pt_br = Locale::new("pt-BR").unwrap(); + + assert!(en.matches(&en_us)); + assert!(en.matches(&en_gb)); + assert!(!en_us.matches(&en_gb)); + assert!(!en.matches(&pt_br)); + } + + #[test] + fn test_default_locale() { + let locale = Locale::default(); + assert_eq!(locale.language(), "en"); + assert_eq!(locale.region(), None); + } + + #[test] + fn test_invalid_locale() { + assert!(Locale::new("").is_none()); + assert!(Locale::new("x").is_none()); + } + + #[test] + fn test_negotiate_exact_match() { + let requested = Locale::new("pt-BR").unwrap(); + let available = vec![ + Locale::new("en").unwrap(), + Locale::new("pt-BR").unwrap(), + Locale::new("es").unwrap(), + ]; + let fallback = Locale::default(); + + let result = Locale::negotiate(&[&requested], &available, &fallback); + assert_eq!(result.to_string(), "pt-BR"); + } + + #[test] + fn test_negotiate_language_match() { + let requested = Locale::new("pt-PT").unwrap(); + let available = vec![ + Locale::new("en").unwrap(), + Locale::new("pt-BR").unwrap(), + Locale::new("es").unwrap(), + ]; + let fallback = Locale::default(); + + let result = Locale::negotiate(&[&requested], &available, &fallback); + assert_eq!(result.language(), "pt"); + } + + #[test] + fn test_negotiate_fallback() { + let requested = Locale::new("ja").unwrap(); + let available = vec![ + Locale::new("en").unwrap(), + Locale::new("pt-BR").unwrap(), + ]; + let fallback = Locale::new("en").unwrap(); + + let result = Locale::negotiate(&[&requested], &available, &fallback); + assert_eq!(result.language(), "en"); + } +} diff --git a/src/i18n/mod.rs b/src/i18n/mod.rs new file mode 100644 index 0000000..48ca22c --- /dev/null +++ b/src/i18n/mod.rs @@ -0,0 +1,56 @@ +mod bundle; +mod locale; + +pub use bundle::{I18nBundle, MessageArgs}; +pub use locale::Locale; + +use crate::error::{BotError, BotResult}; +use std::sync::OnceLock; + +static GLOBAL_BUNDLE: OnceLock = OnceLock::new(); + +pub fn init(locales_path: &str) -> BotResult<()> { + let bundle = I18nBundle::load(locales_path)?; + GLOBAL_BUNDLE + .set(bundle) + .map_err(|_| BotError::config("i18n already initialized")) +} + +pub fn get(locale: &Locale, message_id: &str) -> String { + get_with_args(locale, message_id, None) +} + +pub fn get_with_args(locale: &Locale, message_id: &str, args: Option<&MessageArgs>) -> String { + GLOBAL_BUNDLE + .get() + .map(|b| b.get_message(locale, message_id, args)) + .unwrap_or_else(|| format!("[{message_id}]")) +} + +pub fn available_locales() -> Vec { + GLOBAL_BUNDLE + .get() + .map(I18nBundle::available_locales) + .unwrap_or_default() +} + +pub fn is_initialized() -> bool { + GLOBAL_BUNDLE.get().is_some() +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_missing_message_returns_key() { + let locale = Locale::default(); + let result = get(&locale, "nonexistent-key"); + assert_eq!(result, "[nonexistent-key]"); + } + + #[test] + fn test_is_initialized_before_init() { + assert!(!is_initialized() || is_initialized()); + } +} diff --git a/src/lib.rs b/src/lib.rs index f7c1a70..090cb3e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,6 +2,8 @@ pub mod branding; pub mod error; #[cfg(feature = "http-client")] pub mod http_client; +#[cfg(feature = "i18n")] +pub mod i18n; pub mod limits; pub mod message_types; pub mod models; @@ -12,6 +14,8 @@ pub use branding::{ branding, init_branding, is_white_label, platform_name, platform_short, BrandingConfig, }; pub use error::{BotError, BotResult}; +#[cfg(feature = "i18n")] +pub use i18n::{available_locales, get, get_with_args, init as init_i18n, is_initialized, Locale}; pub use limits::{ check_array_length_limit, check_file_size_limit, check_loop_limit, check_recursion_limit, check_string_length_limit, format_limit_error_response, LimitExceeded, LimitType, RateLimiter,