Release Notes - Ariane v26.3.0
This release introduces multilingual UI support (French, German, Spanish), a new dynamic plugin container with proper JPMS module loading, the new XYZ export plugin, an Excel-style data table mode, and a major overhaul of the licensing pipeline.
New Features
- Multilingual UI Support (i18n):
- The user interface is now fully translatable through resource bundles, with built-in support for English, French, German, and Spanish.
- Languages other than English currently rely on automatic translation and may include minor wording inaccuracies. The plugins are open source and contribution is welcome !
- Language is selectable from the Options dialog and persisted as a user preference.
- Translations are delivered as separate plugin modules (fr, de, es), allowing additional languages to be shipped independently of the main application.
- Property files are now loaded with proper UTF-8 handling for correct rendering of accented characters.
- Dynamic Plugin Container:
- Introduced PluginContainer, a new modular plugin loading mechanism built on the Java Platform Module System (JPMS).
- Plugins are now resolved through their actual module names embedded in each jar, making discovery robust even when filenames differ from module names.
- External plugins coexist cleanly with bundled translation and import/export plugins under a unified module layer.
- XYZ Export Plugin:
- New plugin to export survey data in plain XYZ coordinate format, useful for interchange with point-cloud and GIS tools.
- Excel Mode in Data Table:
- Added a spreadsheet-style editing mode with full keyboard navigation (Tab / Enter / arrow keys) for fast data entry across survey rows.
- Reset Preferences / Reset All:
- The launcher now offers explicit "Reset Preferences" and "Reset All" actions to recover from a corrupted local state without manual file cleanup.
- A matching erasePrefs Gradle task is available for developers and support workflows.
Improvements & Fixes
- Plugin System:
- Fixed external plugin name casing in PluginContainer.
- Refactored ModuleLayer retrieval to remain compatible with nested module layers used by the plugin loader.
- Build scripts now compile i18n translation plugins and generate per-module manifest files.
- UI / FXML:
- Refined FXML layouts across multiple views for improved consistency, alignment, and platform behavior under the updated JavaFX version.
- Reverted icon changes in the Layer tab, Carto tool section, and the swap button to preserve the established iconography.
- Fixed null handling in the language display conversion in OptionsController.
- DisplayTool.fxml: wrapped displayDataToggleLabel in a Group and adjusted rotation for correct labeling on rotated views.
- Survey Data:
- Fixed SurveyData#setDate to correctly handle empty string input.
- Optimized local coordinate retrieval by caching offsets in CaveGeo, reducing redundant computation in map rendering paths.
- Build & Tooling:
- Updated Gradle wrapper to 9.4.1.
- Updated GitHub Actions workflows to the latest action versions.
- Updated JavaFX version.
- Image assets refreshed for various tools and icons.