- Changed the link for the "help us translate" section from crwd.in to crowdin.com for consistency and accuracy in localization configurations for various languages.
- Removed unnecessary period from the MCC instance reference.
- Reorganized the note section to improve clarity, moving it to a more appropriate location and ensuring consistent formatting for examples involving single and double quotes.
- Implemented a new Vite plugin that detects HTML errors in Vue translation pages and logs detailed error messages to the console.
- The plugin replaces the content of pages with a placeholder if errors are found, improving the robustness of the translation process.
- Integrated the plugin into the Vite bundler configuration for enhanced localization support.
- Included new translation paths for markdown files located in the /docs/guide/websocket directory, enhancing the localization support for websocket-related documentation.
- Added support for an `include_paths` parameter to filter files based on specified prefixes, taking priority over `exclude_paths`.
- Updated the `parse_xliff` and `process_language` functions to accommodate the new filtering logic.
- Enhanced command-line argument parsing to allow users to specify files for translation directly, improving flexibility in translation management.
- Removed hex color handling logic from ClassicConsoleBackend, streamlining the WriteLineFormatted method.
- Updated ColorHelper to ensure consistent formatting for color codes.
- Ensured console-specific settings are reapplied after backend initialization in Program.cs.
- Removed the default output directory constant and updated the logic to set the output directory based on the provided argument or default to a "translated" subdirectory within the bundle directory.
- Improved help text for the output directory argument to clarify its default behavior.
- Introduced a new variable to track successfully translated units, improving clarity and efficiency in the processing logic.
- Updated the logic for combining existing and new translation units, ensuring accurate output and preventing unnecessary uploads when no new translations are available.
- Added documentation for mapping system CultureInfo names to Minecraft game language codes.
- Included support for Tagalog (tl and tl-PH) language codes in the game settings.
- Added support for Filipino (fil and fil-PH) and Norwegian (no) language codes in the game settings.
- Corrected formatting for existing language codes to ensure consistency and prevent potential issues with language recognition.
- Implemented a new function to remove duplicate paragraphs from cached translations, addressing issues with the API returning repeated content.
- Updated the caching logic to apply deduplication both when loading from cache and after generating new translations, ensuring cleaner and more accurate cached data.
- Enhanced the `find_xliff_files` function to preserve the order of locales when mapping Crowdin locales to XLIFF paths.
- Updated the logic to return all available locales when no specific locales are provided, ensuring better handling of XLIFF files.
- Simplified the iteration over XLIFF files by removing unnecessary sorting in the final loop.
- Introduced a new Python script for automating the translation of Crowdin XLIFF bundles using the Alibaba Cloud Qwen-MT API.
- Updated .gitignore to include the Crowdin translation working directory, ensuring that temporary files are not tracked.
- The script supports downloading, parsing, translating, and uploading XLIFF files, streamlining the localization process.
- Modified the build command in the GitHub Actions workflow to use the .csproj file directly instead of the solution file, ensuring a more accurate build process for the specified project.
- Added a property to the MinecraftClient.csproj to disable the default Avalonia compilation, preventing file-lock races during parallel builds, as the project does not utilize XAML resources.
- Updated the GitHub Actions workflow to conditionally upload sources to Crowdin only for the MCCTeam/Minecraft-Console-Client repository, enhancing the workflow's flexibility.
- Add reentrant guard to Program.Restart: track the active restart
thread and silently drop concurrent calls from other threads while
allowing the restart thread itself to chain a new restart (needed
for AutoRelog retry flow).
- Fix double AutoRelog.OnDisconnectStatic invocation in HandleFailure:
the method was called once in the error-message branch and again in
the interactive-mode branch for the same failure event, doubling the
retry counter increment and potentially spawning duplicate restarts.
Made-with: Cursor
- Added a job to check for the presence of required secrets (GH_PAGES_TOKEN, Crowdin secrets) before proceeding with documentation deployment and translation downloads.
- Updated the deployment job to conditionally run based on the results of the secret checks.
- Upgraded the Crowdin GitHub Action to version 2.4.0 for improved functionality.
Minecraft 1.16+ servers can send custom hex colors in JSON text
components ("color": "#RRGGBB"). MCC's ChatParser.Color2tag() only
recognized the 16 named colors, silently dropping hex values and
leaving gradient/custom-colored chat as uncolored plain text.
- ChatParser: recognize hex color values and emit internal §#rrggbb
encoding; extend ColorCodeRegex to match the new format
- ClassicConsoleBackend: resolve §#rrggbb to ANSI escape codes via
ColorHelper before passing to ConsoleInteractive (adapts to the
configured ConsoleColorMode: 24-bit, 8-bit, 4-bit, or disable)
- McColorParser (TUI): parse §#rrggbb into exact SolidColorBrush
for full RGB fidelity in Avalonia
- ChatBot.GetVerbatim(): skip the full 8-char §#rrggbb sequence
instead of only 2 chars, preventing hex digits from leaking into
stripped text
Made-with: Cursor