{"id":23444,"date":"2026-06-01T01:35:32","date_gmt":"2026-05-31T22:35:32","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/"},"modified":"2026-06-01T01:35:32","modified_gmt":"2026-05-31T22:35:32","slug":"autolang","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/","title":{"rendered":"AutoLang"},"content":{"rendered":"<p># AutoLang &#8211; Automatic Minecraft Chat Translation<\/p>\n<p>AutoLang is a sophisticated Minecraft plugin designed to break down language barriers by providing real-time, bi-directional chat translation. Built with performance and flexibility in mind, it seamlessly integrates with your existing server setup while providing extensive customization options for server administrators.<\/p>\n<p>## Table of Contents<br \/>\n1. [Core Features](#core-features)<br \/>\n2. [Installation Guide](#installation-guide)<br \/>\n3. [Configuration Reference](#configuration-reference)<br \/>\n4. [Language Support](#language-support)<br \/>\n5. [Command Reference](#command-reference)<br \/>\n6. [Advanced Usage](#advanced-usage)<br \/>\n7. [Troubleshooting](#troubleshooting)<br \/>\n8. [Performance Tuning](#performance-tuning)<br \/>\n9. [API Integration](#api-integration)<br \/>\n10. [Frequently Asked Questions](#frequently-asked-questions)<\/p>\n<p>## Core Features<\/p>\n<p>### Intelligent Language Detection<br \/>\nAutoLang employs a sophisticated two-tier detection system:<br \/>\n1. **Primary Detection**: Uses the Lingua library, a highly accurate language identification system that analyzes character patterns and statistical properties of text<br \/>\n2. **Fallback Detection**: Falls back to a lightweight heuristic-based detector if Lingua cannot be initialized or if performance is a concern<\/p>\n<p>### Translation Architecture<br \/>\n&#8211; **Asynchronous Processing**: All translation operations are performed asynchronously to prevent server lag<br \/>\n&#8211; **Smart Caching Layer**: Implements an LRU (Least Recently Used) cache with configurable size and TTL to minimize redundant translations<br \/>\n&#8211; **Bidirectional Translation**: Maintains message context for accurate bidirectional translations between any supported language pairs<\/p>\n<p>### Player Experience<br \/>\n&#8211; **Seamless Integration**: Works with existing chat plugins and permission systems<br \/>\n&#8211; **Client-Language Awareness**: Detects and respects player client language settings (Paper servers only)<br \/>\n&#8211; **Non-Intrusive**: Players can opt-out of translation or view original messages<br \/>\n&#8211; **Context Preservation**: Maintains formatting, colors, and clickable elements in translated messages<\/p>\n<p>## Installation Guide<\/p>\n<p>### System Requirements<br \/>\n&#8211; **Minecraft Server**: Paper\/Spigot 1.21.1 or higher (recommended for full feature support)<br \/>\n&#8211; **Java**: Java 21 or later<br \/>\n&#8211; **Memory**: Minimum 4GB RAM (6GB+ recommended for larger servers)<br \/>\n&#8211; **Storage**: 1GB free space (more if using local translation models)<\/p>\n<p>### Step-by-Step Installation<br \/>\n1. Download the latest AutoLang JAR from the Modrinth releases page<br \/>\n2. Place the JAR file in your server&#8217;s `plugins\/` directory<br \/>\n3. Start your server to generate the default configuration<br \/>\n4. Stop the server and edit `plugins\/AutoLang\/config.yml` to your preferences<br \/>\n5. Restart your server to apply changes<\/p>\n<p>### Initial Setup Recommendations<br \/>\n1. **For New Servers**:<br \/>\n   &#8211; Start with default settings<br \/>\n   &#8211; Test basic functionality with a few languages<br \/>\n   &#8211; Gradually enable additional features<\/p>\n<p>2. **For Existing Servers**:<br \/>\n   &#8211; Test in a staging environment first<br \/>\n   &#8211; Consider starting with translation disabled (`autodetect.enabled: false`)<br \/>\n   &#8211; Gradually roll out to staff before enabling for all players<\/p>\n<p>## Configuration Reference<\/p>\n<p>### Core Settings<br \/>\n&#8220;`yaml<br \/>\n# Default server language (must be a configured language code)<br \/>\ndefault-language: &#8220;en&#8221;<\/p>\n<p># Maximum concurrent translation threads<br \/>\nmax-translation-threads: 4<\/p>\n<p># Maximum time to wait for a translation (milliseconds)<br \/>\ntranslation-timeout-ms: 3000<\/p>\n<p># Enable debug logging (verbose)<br \/>\ndebug: false<\/p>\n<p>### Language Configuration<\/p>\n<p>AutoLang provides flexible language management with support for automatic language discovery and manual overrides. The configuration is structured to be both powerful and easy to use.<\/p>\n<p>&#8220;`yaml<br \/>\nlanguages:<br \/>\n  # Auto-fetch supported languages from LibreTranslate<br \/>\n  # When enabled, the plugin will query your LibreTranslate instance for available languages<br \/>\n  auto-from-libretranslate: true<\/p>\n<p>  # Whitelist specific language codes (case-insensitive)<br \/>\n  # Example: [&#8220;en&#8221;, &#8220;es&#8221;, &#8220;fr&#8221;, &#8220;de&#8221;, &#8220;ja&#8221;]<br \/>\n  # If empty, all languages from the source will be included<br \/>\n  include: []<\/p>\n<p>  # Blacklist specific language codes<br \/>\n  # Example: [&#8220;zh-tw&#8221;, &#8220;pt-br&#8221;] (to exclude specific regional variants)<br \/>\n  # These languages will be excluded even if included above or in static<br \/>\n  exclude: []<\/p>\n<p>  # Static language definitions<br \/>\n  # These are used in three scenarios:<br \/>\n  # 1. As fallback if auto-fetching fails<br \/>\n  # 2. To add languages not provided by your LibreTranslate instance<br \/>\n  # 3. To override properties of auto-fetched languages<br \/>\n  static:<br \/>\n    &#8211; code: &#8220;en&#8221;<br \/>\n      name: &#8220;English&#8221;<br \/>\n    &#8211; code: &#8220;es&#8221;<br \/>\n      name: &#8220;Espa\u00f1ol&#8221;<\/p>\n<p>  # Override display names for specific language codes<br \/>\n  # This only affects how languages are displayed to players<br \/>\n  # Format: {code: &#8220;display name&#8221;}<br \/>\n  overrides:<br \/>\n    &#8211; code: &#8220;zh&#8221;<br \/>\n      name: &#8220;\u7b80\u4f53\u4e2d\u6587&#8221;  # Simplified Chinese<br \/>\n    &#8211; code: &#8220;zh-tw&#8221;<br \/>\n      name: &#8220;\u7e41\u9ad4\u4e2d\u6587&#8221;  # Traditional Chinese<br \/>\n    &#8211; code: &#8220;pt-br&#8221;<br \/>\n      name: &#8220;Portugu\u00eas (Brasil)&#8221;  # Brazilian Portuguese<\/p>\n<p># Language detection settings<br \/>\ndetection:<br \/>\n  # Minimum confidence threshold (0.0 to 1.0)<br \/>\n  # Lower values may increase false positives<br \/>\n  # Higher values may fail to detect some languages<br \/>\n  confidence-threshold: 0.75<\/p>\n<p>  # Number of messages to analyze before making a detection<br \/>\n  # More messages increase accuracy but delay detection<br \/>\n  min-messages: 3<\/p>\n<p>  # Maximum message length to analyze (characters)<br \/>\n  # Longer messages provide more context but use more resources<br \/>\n  max-message-length: 1000<\/p>\n<p># Client language integration (Paper servers only)<br \/>\nclient-locale:<br \/>\n  # Enable\/disable client language detection<br \/>\n  enabled: true<\/p>\n<p>  # Automatically set the detected language<br \/>\n  auto-accept: true<\/p>\n<p>  # Notify players when their language is auto-detected<br \/>\n  notify-on-detect: true<\/p>\n<p>  # Message format for language detection notification<br \/>\n  # Available placeholders: %player%, %lang%, %code%<br \/>\n  detection-message: &#8220;&#038;aYour chat language has been set to %lang%&#8221;<\/p>\n<p># Formatting options for translated messages<br \/>\nformatting:<br \/>\n  # Format for translated messages<br \/>\n  # Available placeholders:<br \/>\n  # %player% &#8211; Original message sender<br \/>\n  # %message% &#8211; Translated message<br \/>\n  # %original% &#8211; Original message (if show-original is true)<br \/>\n  # %lang% &#8211; Target language name<br \/>\n  # %code% &#8211; Target language code<br \/>\n  format: &#8220;&#038;7[%lang%] &#038;f%player%&#038;7: &#038;r%message%&#8221;<\/p>\n<p>  # Show original message after translation<br \/>\n  show-original: false<\/p>\n<p>  # Format for original message when show-original is true<br \/>\n  original-format: &#8221; &#038;7(Original: %original%)&#8221;<\/p>\n<p># Message cooldown settings<br \/>\ncooldown:<br \/>\n  # Global cooldown between messages (seconds)<br \/>\n  global: 0.5<\/p>\n<p>  # Per-player cooldown (seconds)<br \/>\n  per-player: 2.0<\/p>\n<p>  # Message to show when cooldown is active<br \/>\n  # Available placeholders: %time%<br \/>\n  message: &#8220;&#038;cPlease wait %time% seconds before sending another message.&#8221;<\/p>\n<p># Anti-spam settings<br \/>\nanti-spam:<br \/>\n  # Enable\/disable anti-spam<br \/>\n  enabled: true<\/p>\n<p>  # Maximum similar messages allowed within time window<br \/>\n  max-similar: 3<\/p>\n<p>  # Time window for similar message detection (seconds)<br \/>\n  time-window: 10<\/p>\n<p>  # Message to show when anti-spam is triggered<br \/>\n  message: &#8220;&#038;cPlease avoid sending similar messages in quick succession.&#8221;<\/p>\n<p>### Translation Engine Configuration<\/p>\n<p>AutoLang supports multiple translation backends, each with its own configuration options. Choose the one that best fits your server&#8217;s needs.<\/p>\n<p>#### 1. LibreTranslate (Recommended)<\/p>\n<p>LibreTranslate is an open-source translation API that supports over 100 languages. It can be self-hosted or used against public instances.<\/p>\n<p>&#8220;`yaml<br \/>\nlibretranslate:<br \/>\n  # Enable\/disable the LibreTranslate integration<br \/>\n  enabled: true<\/p>\n<p>  # Base URL of your LibreTranslate instance<br \/>\n  # Examples:<br \/>\n  # &#8211; Local: &#8220;http:\/\/127.0.0.1:5000&#8221;<br \/>\n  # &#8211; Public: &#8220;https:\/\/libretranslate.com&#8221;<br \/>\n  base-url: &#8220;http:\/\/127.0.0.1:5000&#8221;<\/p>\n<p>  # Required when connecting to non-localhost URLs<br \/>\n  allow-remote: false<\/p>\n<p>  # Disable SSL certificate validation (for self-signed certificates)<br \/>\n  insecure-tls: false<\/p>\n<p>  # API key if required by your LibreTranslate instance<br \/>\n  api-key: &#8220;&#8221;<\/p>\n<p>  # Request timeout in seconds<br \/>\n  timeout: 30<\/p>\n<p>  # Maximum retry attempts for failed requests<br \/>\n  max-retries: 3<\/p>\n<p>  # Delay between retry attempts in seconds<br \/>\n  retry-delay: 2<\/p>\n<p>  # Automatic Language Detection<br \/>\n  auto-detect: true<\/p>\n<p>  # Preferred language pairs for better quality<br \/>\n  # Format: &#8220;source-target&#8221;<br \/>\n  preferred-pairs:<br \/>\n    &#8211; &#8220;en-es&#8221;<br \/>\n    &#8211; &#8220;es-en&#8221;<br \/>\n    &#8211; &#8220;fr-en&#8221;<br \/>\n    &#8211; &#8220;en-fr&#8221;<\/p>\n<p>  # Managed LibreTranslate Server (Optional)<br \/>\n  # Auto-downloads and manages a local LibreTranslate instance<br \/>\n  managed:<br \/>\n    enabled: false<\/p>\n<p>    # Command to start LibreTranslate<br \/>\n    # Examples:<br \/>\n    # &#8211; &#8220;libretranslate&#8221; (if installed via pip)<br \/>\n    # &#8211; &#8220;python -m libretranslate&#8221;<br \/>\n    # &#8211; &#8220;docker run -p 5000:5000 libretranslate\/libretranslate&#8221;<br \/>\n    command: &#8220;libretranslate&#8221;<\/p>\n<p>    # Port to run the server on<br \/>\n    port: 5000<\/p>\n<p>    # Host to bind to (use 0.0.0.0 for network access)<br \/>\n    host: &#8220;127.0.0.1&#8221;<\/p>\n<p>    # Limit loaded languages to reduce memory usage<br \/>\n    # Example: &#8220;en,es,fr,de,ru,zh,ja,ko&#8221;<br \/>\n    load-only: &#8220;&#8221;<\/p>\n<p>    # Automatically download language models on first run<br \/>\n    download-models: true<\/p>\n<p>    # Path to store models (default: ~\/.local\/share\/libretranslate)<br \/>\n    models-path: &#8220;&#8221;<\/p>\n<p>    # Additional command-line arguments<br \/>\n    # Example: &#8220;&#8211;load-only en,es &#8211;threads 4&#8221;<br \/>\n    extra-args: &#8220;&#8221;<\/p>\n<p>    # Environment variables<br \/>\n    env:<br \/>\n      # Example: &#8220;CUDA_VISIBLE_DEVICES=0&#8221;<br \/>\n      # Example: &#8220;PUID=1000&#8221;<\/p>\n<p>    # Health check settings<br \/>\n    health-check:<br \/>\n      # Enable health checks<br \/>\n      enabled: true<\/p>\n<p>      # Health check interval in seconds<br \/>\n      interval: 30<\/p>\n<p>      # Timeout for health check requests in seconds<br \/>\n      timeout: 5<\/p>\n<p>      # Number of consecutive failures before considering the service unhealthy<br \/>\n      threshold: 3<\/p>\n<p>    # Automatic restart settings<br \/>\n    auto-restart:<br \/>\n      # Enable automatic restart on failure<br \/>\n      enabled: true<\/p>\n<p>      # Maximum restart attempts before giving up<br \/>\n      max-attempts: 5<\/p>\n<p>      # Delay between restart attempts in seconds<br \/>\n      delay: 10<\/p>\n<p>      # Maximum uptime in minutes (0 = no limit)<br \/>\n      max-uptime: 0<\/p>\n<p># Alternative Translation Backend<br \/>\n# Uncomment and configure if not using LibreTranslate<br \/>\n#<br \/>\n# local-model:<br \/>\n#   # Enable local model translation<br \/>\n#   enabled: false<br \/>\n#<br \/>\n#   # Path to your local translation command\/script<br \/>\n#   # The command should accept text via STDIN and output translation to STDOUT<br \/>\n#   command: &#8220;\/path\/to\/translator&#8221;<br \/>\n#<br \/>\n#   # Working directory for the command<br \/>\n#   working-directory: &#8220;\/path\/to\/working\/directory&#8221;<br \/>\n#<br \/>\n#   # Command-line arguments<br \/>\n#   # Use placeholders: {from} {to} for language codes<br \/>\n#   args: &#8220;&#8211;from {from} &#8211;to {to}&#8221;<br \/>\n#<br \/>\n#   # Environment variables<br \/>\n#   env:<br \/>\n#     MODEL_PATH: &#8220;\/path\/to\/model&#8221;<br \/>\n#     DEVICE: &#8220;cuda&#8221;  # or &#8220;cpu&#8221;<br \/>\n#<br \/>\n#   # Timeout in seconds<br \/>\n#   timeout: 30<br \/>\n#<br \/>\n#   # Maximum concurrent translations<br \/>\n#   max-concurrent: 2<br \/>\n#<br \/>\n#   # Input\/output encoding (default: UTF-8)<br \/>\n#   encoding: &#8220;UTF-8&#8221;<br \/>\n#<br \/>\n#   # Error handling<br \/>\n#   error-handling:<br \/>\n#     # Maximum retry attempts<br \/>\n#     max-retries: 3<br \/>\n#<br \/>\n#     # Delay between retries in seconds<br \/>\n#     retry-delay: 2<br \/>\n#<br \/>\n#     # Fallback language when translation fails<br \/>\n#     fallback-language: &#8220;en&#8221;<br \/>\n#<br \/>\n# External API (Example for Google Translate)<br \/>\n#<br \/>\n# google-translate:<br \/>\n#   enabled: false<br \/>\n#   api-key: &#8220;your-api-key&#8221;<br \/>\n#   project-id: &#8220;your-project-id&#8221;<br \/>\n#   location: &#8220;global&#8221;<br \/>\n#   model: &#8220;projects\/{project-id}\/locations\/{location}\/models\/general\/nmt&#8221;<\/p>\n<p>### Detection Settings<br \/>\n&#8220;`yaml<br \/>\ndetector:<br \/>\n  # &#8220;lingua&#8221; (more accurate) or &#8220;heuristic&#8221; (lighter)<br \/>\n  type: &#8220;lingua&#8221;<\/p>\n<p># Auto-detection settings<br \/>\nautodetect:<br \/>\n  enabled: true<br \/>\n  # Minimum messages before attempting detection<br \/>\n  min-messages-before-detect: 3<br \/>\n  # Confidence threshold (0.0-1.0)<br \/>\n  confidence-threshold: 0.80<\/p>\n<p># Client language detection (requires Paper)<br \/>\nclient-locale:<br \/>\n  enabled: true<br \/>\n  # Auto-set language on first join<br \/>\n  auto-accept: true<br \/>\n  # Prompt on client language change<br \/>\n  on-change: true<br \/>\n&#8220;`<\/p>\n<p>### Storage<br \/>\n&#8220;`yaml<br \/>\nstorage:<br \/>\n  # &#8220;sqlite&#8221; or &#8220;yaml&#8221;<br \/>\n  type: &#8220;sqlite&#8221;<br \/>\n  # Only for SQLite<br \/>\n  sqlite-file: &#8220;plugins\/AutoLang\/languages.db&#8221;<\/p>\n<p># Cache settings<br \/>\ncache:<br \/>\n  enabled: true<br \/>\n  # Maximum cached translations<br \/>\n  size: 500<br \/>\n  # Time-to-live in seconds (0 = no expiration)<br \/>\n  ttl-seconds: 0<br \/>\n&#8220;`<\/p>\n<p>##  Commands &#038; Permissions<\/p>\n<p>### Commands<br \/>\n&#8211; `\/lang` &#8211; Show current language<br \/>\n&#8211; `\/lang set <code>` - Set your language<br \/>\n- `\/lang list` - List available languages<br \/>\n- `\/lang reload` - Reload configuration<br \/>\n- `\/lang health` - Check LibreTranslate status<\/p>\n<p>### Permissions<br \/>\n- `autolang.use` - Allow using language commands (default: true)<br \/>\n- `autolang.admin` - Allow admin commands like reload (default: op)<br \/>\n- `autolang.bypass` - Bypass translation (see all messages in original language)<\/p>\n<p>##  Language Support<\/p>\n<p>AutoLang supports all languages available in your LibreTranslate instance (100+ languages by default). The plugin automatically fetches and caches the available languages on startup.<\/p>\n<p>### Common Language Codes<br \/>\n- `en` - English<br \/>\n- `es` - Spanish<br \/>\n- `fr` - French<br \/>\n- `de` - German<br \/>\n- `ru` - Russian<br \/>\n- `zh` - Chinese (Simplified)<br \/>\n- `ja` - Japanese<br \/>\n- `ar` - Arabic<br \/>\n- `pt` - Portuguese<br \/>\n- `hi` - Hindi<\/p>\n<p>##  Installation<\/p>\n<p>1. Download the latest version from Modrinth<br \/>\n2. Place the JAR in your server's `plugins\/` folder<br \/>\n3. Start your server to generate the config<br \/>\n4. Edit `plugins\/AutoLang\/config.yml` to your preferences<br \/>\n5. Run `\/reload` or restart your server<\/p>\n<p>## \ud83d\udd27 Troubleshooting<\/p>\n<p>### LibreTranslate Connection Issues<br \/>\n- Ensure `allow-remote: true` if using a remote server<br \/>\n- For HTTPS with self-signed certs, enable `insecure-tls: true`<br \/>\n- Check server logs for connection errors<\/p>\n<p>### Language Detection<br \/>\n- Lingua detector requires at least 2 languages configured<br \/>\n- More messages improve detection accuracy<br \/>\n- Try the heuristic detector if Lingua causes performance issues<\/p>\n<p>### Performance<br \/>\n- Adjust `max-translation-threads` based on your server's CPU<br \/>\n- Enable caching to reduce API calls<br \/>\n- Consider a local LibreTranslate instance for better performance<\/p>\n<p>##  Dependencies<br \/>\n- **Required**: Java 21+<br \/>\n- **Recommended**: Paper\/Spigot 1.21.1+ (for full feature support)<br \/>\n- **Optional**: LibreTranslate server (local or remote)<\/p>\n<p>##  License<br \/>\nAutoLang is licensed under the MIT License.<\/p>\n<p>##  Support<br \/>\nFound a bug or have a feature request? Open an issue on GitHub.<\/p>\n<p>##  Metrics<br \/>\nAutoLang uses bStats for anonymous usage statistics. You can opt out in the `bStats\/config.yml` file.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A lightweight plugin that supports up to 100 languages, automatically translating chat messages into each player\u2019s preferred language for seamless communication.<\/p>\n","protected":false},"featured_media":23445,"template":"","meta":{"_minecraft_slug":"autolang","_minecraft_project_id":"ijTgQ2WA","_minecraft_author":"Bobcat","_minecraft_license":"LicenseRef-All-Rights-Reserved","_minecraft_downloads":1010,"_minecraft_follows":5,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"autolang.zip","_minecraft_size_bytes":574280318,"_minecraft_version_count":4,"_minecraft_updated_at":"2026-05-16T08:35:43.085411Z","_minecraft_date_created":"2025-09-10T18:49:23.813256Z","_minecraft_date_modified":"2025-10-03T02:54:47.206196Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/autolang","_minecraft_icon_attachment_id":23445,"_minecraft_imported_at":"2026-05-31T22:35:33+00:00","_minecraft_import_hash":"5fb0ede1a1d4a14a17bccf7954042128","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[97,104,127,867,123,92],"mod_loader":[132],"minecraft_version":[36,60,93,94,101,102,62,37,73,74,38,78,79,80,81,82],"class_list":["post-23444","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-fabric","mod_category-forge","mod_category-paper","mod_category-social","mod_category-technology","mod_category-utility","mod_loader-paper","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AutoLang - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AutoLang - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A lightweight plugin that supports up to 100 languages, automatically translating chat messages into each player\u2019s preferred language for seamless communication.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autolang\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autolang\\\/\",\"name\":\"AutoLang - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autolang\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autolang\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/autolang-icon-57890db12f6bdd006a0e9b15d81453b37560762d_96.webp\",\"datePublished\":\"2026-05-31T22:35:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autolang\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autolang\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autolang\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/autolang-icon-57890db12f6bdd006a0e9b15d81453b37560762d_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/autolang-icon-57890db12f6bdd006a0e9b15d81453b37560762d_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/autolang\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"AutoLang\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AutoLang - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/","og_locale":"en_US","og_type":"article","og_title":"AutoLang - Minecraft","og_description":"A lightweight plugin that supports up to 100 languages, automatically translating chat messages into each player\u2019s preferred language for seamless communication.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/","name":"AutoLang - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/autolang-icon-57890db12f6bdd006a0e9b15d81453b37560762d_96.webp","datePublished":"2026-05-31T22:35:32+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/autolang\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/autolang-icon-57890db12f6bdd006a0e9b15d81453b37560762d_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/autolang-icon-57890db12f6bdd006a0e9b15d81453b37560762d_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/autolang\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"AutoLang"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/23444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/23445"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=23444"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=23444"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=23444"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=23444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}