Skip to content

feat: add 10 formats (Mermaid, UDF, code sources), M4R ringtones and Ukrainian translation - #1373

Closed
Marouane-elfadli wants to merge 17 commits into
KnifeLemon:mainfrom
Marouane-elfadli:feat/formats-and-features-mermaid-udf-m4r-uk
Closed

Marouane-elfadli wants to merge 17 commits into
KnifeLemon:mainfrom
Marouane-elfadli:feat/formats-and-features-mermaid-udf-m4r-uk

Conversation

@Marouane-elfadli

Copy link
Copy Markdown
Contributor

What does this change?

Adds 10 new file formats and 2 small features. Each one is tagged with its issue where there is one.

Formats (label: formats)

Tag Issue What it does
[Format]: .mermaid Fixes #1309 .mermaid and .mmd diagram files are read as plain text and can be converted like other text files.
[Format]: .udf Fixes #1338 .udf disc images are unpacked with the bundled 7-Zip, like ISO and IMG. Read only, never a target.
[Format]: .rs .go .kt .swift .scala .scss .vue .tsx no issue Rust, Go, Kotlin, Swift, Scala, SCSS, Vue and TSX sources are read as plain text, the same way .java was added in #1176.

Features (label: enhancement)

Tag Issue What it does
[Feature]: Add iPhone ringtone (M4R) conversion Fixes #1291 New .m4r audio output. It is always AAC in the iPod muxer, because iOS does not play ALAC ringtones.
[Feature]: Add Ukrainian (Українська) as a target language for the Translator (Ollama) engine Fixes #1344 Українська is added to the Translate language list, with its code and English name for the prompt.

How it fits together

  • .udf and .m4r are graded General, like ISO and M4B, so they appear with the other common formats.
  • A settings migration (schema 77) teaches existing libraries the new extensions: text donut gets the 10 text extensions, archives donut gets .udf, audio donut gets .m4r. A donut that already claims one of them keeps it.
  • Docs: docs/ENGINES.md lists the new formats.

Not included, on purpose

Type of change

  • Bug fix
  • New feature or improvement
  • New format or engine
  • Translation
  • Documentation
  • Build, CI or dependencies

How was it tested?

  • dotnet format --verify-no-changes
  • dotnet test
  • Tried it in the app (what you converted or clicked, and on which OS):

Tests added or updated:

  • tests/Filee.Core.Tests/ScriptTextTests.cs: detection of every new text extension, UDF and M4R recognition, and the schema 76 to 77 migration (custom claims are kept, a second run changes nothing).
  • tests/Filee.Core.Tests/FormatFieldsTests.cs: General grade count goes from 95 to 97.
  • tests/Filee.Engines.Tests/ScriptTextTests.cs: Mermaid, Rust and Go files convert to PDF.
  • tests/Filee.Engines.Tests/ArchiveTests.cs: UDF has a one-step route to every archive target.
  • tests/Filee.Engines.Tests/MediaTests.cs: M4R is AAC in the iPod muxer, even when ALAC is asked for.

Screenshots (UI changes)

None. The only visible change is one more entry (Українська) in the Translate language list.

Checklist

  • New UI strings are in all src/Filee.App/Assets/i18n/*.json files (no new keys; the language name is written in its own language like the others)
  • New third-party code or binaries are listed in THIRD-PARTY-NOTICES.md (none added)
  • The PR does one thing (unrelated changes go in a separate PR)

This PR groups several small changes that share FormatRegistry.cs and the settings migration. I can split it by topic if you prefer.

Implemented the TranslationService class for offline document and text translation using local AI. The service includes methods for language normalization, model checking, and text translation while ensuring no data is sent to third-party services.
@github-actions github-actions Bot added the feature New features label Nov 10, 2026
@Marouane-elfadli
Marouane-elfadli deleted the feat/formats-and-features-mermaid-udf-m4r-uk branch November 10, 2026 23:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New features

Projects

None yet

1 participant