Add i18n localization support with locales
This commit is contained in:
parent
a50d229346
commit
ff599a2cd4
41 changed files with 11483 additions and 1 deletions
|
|
@ -11,11 +11,12 @@ categories = ["api-bindings", "web-programming"]
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
full = ["database", "http-client", "validation", "resilience"]
|
full = ["database", "http-client", "validation", "resilience", "i18n"]
|
||||||
database = ["dep:diesel"]
|
database = ["dep:diesel"]
|
||||||
http-client = ["dep:reqwest"]
|
http-client = ["dep:reqwest"]
|
||||||
validation = ["dep:validator"]
|
validation = ["dep:validator"]
|
||||||
resilience = []
|
resilience = []
|
||||||
|
i18n = []
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
# Core
|
# Core
|
||||||
|
|
|
||||||
557
locales/en/admin.ftl
Normal file
557
locales/en/admin.ftl
Normal file
|
|
@ -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
|
||||||
|
}
|
||||||
173
locales/en/analytics.ftl
Normal file
173
locales/en/analytics.ftl
Normal file
|
|
@ -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
|
||||||
256
locales/en/auth.ftl
Normal file
256
locales/en/auth.ftl
Normal file
|
|
@ -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
|
||||||
150
locales/en/bot-templates.ftl
Normal file
150
locales/en/bot-templates.ftl
Normal file
|
|
@ -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.
|
||||||
186
locales/en/channels.ftl
Normal file
186
locales/en/channels.ftl
Normal file
|
|
@ -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
|
||||||
347
locales/en/common.ftl
Normal file
347
locales/en/common.ftl
Normal file
|
|
@ -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
|
||||||
301
locales/en/contacts.ftl
Normal file
301
locales/en/contacts.ftl
Normal file
|
|
@ -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
|
||||||
165
locales/en/errors.ftl
Normal file
165
locales/en/errors.ftl
Normal file
|
|
@ -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.
|
||||||
127
locales/en/notifications.ftl
Normal file
127
locales/en/notifications.ftl
Normal file
|
|
@ -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
|
||||||
1197
locales/en/ui.ftl
Normal file
1197
locales/en/ui.ftl
Normal file
File diff suppressed because it is too large
Load diff
142
locales/en/video.ftl
Normal file
142
locales/en/video.ftl
Normal file
|
|
@ -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
|
||||||
313
locales/en/webinar.ftl
Normal file
313
locales/en/webinar.ftl
Normal file
|
|
@ -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
|
||||||
365
locales/es/admin.ftl
Normal file
365
locales/es/admin.ftl
Normal file
|
|
@ -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
|
||||||
148
locales/es/analytics.ftl
Normal file
148
locales/es/analytics.ftl
Normal file
|
|
@ -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
|
||||||
256
locales/es/auth.ftl
Normal file
256
locales/es/auth.ftl
Normal file
|
|
@ -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
|
||||||
150
locales/es/bot-templates.ftl
Normal file
150
locales/es/bot-templates.ftl
Normal file
|
|
@ -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.
|
||||||
186
locales/es/channels.ftl
Normal file
186
locales/es/channels.ftl
Normal file
|
|
@ -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
|
||||||
347
locales/es/common.ftl
Normal file
347
locales/es/common.ftl
Normal file
|
|
@ -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
|
||||||
301
locales/es/contacts.ftl
Normal file
301
locales/es/contacts.ftl
Normal file
|
|
@ -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
|
||||||
165
locales/es/errors.ftl
Normal file
165
locales/es/errors.ftl
Normal file
|
|
@ -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.
|
||||||
127
locales/es/notifications.ftl
Normal file
127
locales/es/notifications.ftl
Normal file
|
|
@ -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
|
||||||
500
locales/es/ui.ftl
Normal file
500
locales/es/ui.ftl
Normal file
|
|
@ -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
|
||||||
142
locales/es/video.ftl
Normal file
142
locales/es/video.ftl
Normal file
|
|
@ -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
|
||||||
313
locales/es/webinar.ftl
Normal file
313
locales/es/webinar.ftl
Normal file
|
|
@ -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
|
||||||
557
locales/pt-BR/admin.ftl
Normal file
557
locales/pt-BR/admin.ftl
Normal file
|
|
@ -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
|
||||||
|
}
|
||||||
173
locales/pt-BR/analytics.ftl
Normal file
173
locales/pt-BR/analytics.ftl
Normal file
|
|
@ -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
|
||||||
256
locales/pt-BR/auth.ftl
Normal file
256
locales/pt-BR/auth.ftl
Normal file
|
|
@ -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
|
||||||
150
locales/pt-BR/bot-templates.ftl
Normal file
150
locales/pt-BR/bot-templates.ftl
Normal file
|
|
@ -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.
|
||||||
186
locales/pt-BR/channels.ftl
Normal file
186
locales/pt-BR/channels.ftl
Normal file
|
|
@ -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
|
||||||
347
locales/pt-BR/common.ftl
Normal file
347
locales/pt-BR/common.ftl
Normal file
|
|
@ -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
|
||||||
301
locales/pt-BR/contacts.ftl
Normal file
301
locales/pt-BR/contacts.ftl
Normal file
|
|
@ -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
|
||||||
165
locales/pt-BR/errors.ftl
Normal file
165
locales/pt-BR/errors.ftl
Normal file
|
|
@ -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.
|
||||||
127
locales/pt-BR/notifications.ftl
Normal file
127
locales/pt-BR/notifications.ftl
Normal file
|
|
@ -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
|
||||||
1195
locales/pt-BR/ui.ftl
Normal file
1195
locales/pt-BR/ui.ftl
Normal file
File diff suppressed because it is too large
Load diff
142
locales/pt-BR/video.ftl
Normal file
142
locales/pt-BR/video.ftl
Normal file
|
|
@ -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
|
||||||
313
locales/pt-BR/webinar.ftl
Normal file
313
locales/pt-BR/webinar.ftl
Normal file
|
|
@ -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
|
||||||
360
src/i18n/bundle.rs
Normal file
360
src/i18n/bundle.rs
Normal file
|
|
@ -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<String, String>;
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
struct TranslationFile {
|
||||||
|
messages: HashMap<String, String>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TranslationFile {
|
||||||
|
fn parse(content: &str) -> Self {
|
||||||
|
let mut messages = HashMap::new();
|
||||||
|
let mut current_key: Option<String> = 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<Self> {
|
||||||
|
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<String, LocaleBundle>,
|
||||||
|
available: Vec<Locale>,
|
||||||
|
fallback: Locale,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl I18nBundle {
|
||||||
|
pub fn load(base_path: &str) -> BotResult<Self> {
|
||||||
|
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<String> {
|
||||||
|
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]");
|
||||||
|
}
|
||||||
|
}
|
||||||
235
src/i18n/locale.rs
Normal file
235
src/i18n/locale.rs
Normal file
|
|
@ -0,0 +1,235 @@
|
||||||
|
use std::fmt;
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||||
|
pub struct Locale {
|
||||||
|
language: String,
|
||||||
|
region: Option<String>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Locale {
|
||||||
|
pub fn new(locale_str: &str) -> Option<Self> {
|
||||||
|
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<Self> {
|
||||||
|
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, Self::Error> {
|
||||||
|
Self::new(value).ok_or("invalid locale string")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TryFrom<String> for Locale {
|
||||||
|
type Error = &'static str;
|
||||||
|
|
||||||
|
fn try_from(value: String) -> Result<Self, Self::Error> {
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
}
|
||||||
56
src/i18n/mod.rs
Normal file
56
src/i18n/mod.rs
Normal file
|
|
@ -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<I18nBundle> = 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<String> {
|
||||||
|
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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,8 @@ pub mod branding;
|
||||||
pub mod error;
|
pub mod error;
|
||||||
#[cfg(feature = "http-client")]
|
#[cfg(feature = "http-client")]
|
||||||
pub mod http_client;
|
pub mod http_client;
|
||||||
|
#[cfg(feature = "i18n")]
|
||||||
|
pub mod i18n;
|
||||||
pub mod limits;
|
pub mod limits;
|
||||||
pub mod message_types;
|
pub mod message_types;
|
||||||
pub mod models;
|
pub mod models;
|
||||||
|
|
@ -12,6 +14,8 @@ pub use branding::{
|
||||||
branding, init_branding, is_white_label, platform_name, platform_short, BrandingConfig,
|
branding, init_branding, is_white_label, platform_name, platform_short, BrandingConfig,
|
||||||
};
|
};
|
||||||
pub use error::{BotError, BotResult};
|
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::{
|
pub use limits::{
|
||||||
check_array_length_limit, check_file_size_limit, check_loop_limit, check_recursion_limit,
|
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,
|
check_string_length_limit, format_limit_error_response, LimitExceeded, LimitType, RateLimiter,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue