Skip to content

feat: Add Italian hyphenation support#584

Merged
daveallie merged 12 commits intocrosspoint-reader:masterfrom
drbourbon:Italian-hyphenation-support
Feb 9, 2026
Merged

feat: Add Italian hyphenation support#584
daveallie merged 12 commits intocrosspoint-reader:masterfrom
drbourbon:Italian-hyphenation-support

Conversation

@drbourbon
Copy link
Contributor

Summary

  • What is the goal of this PR? Add Italian language hyphenation support to improve text rendering for Italian books.

  • What changes are included?

    • Added Italian hyphenation trie (hyph-it.trie.h) generated from Typst's hypher patterns
    • Registered italianHyphenator in LanguageRegistry.cpp for language tag it
    • Added Italian to the hyphenation evaluation test suite
    • Added Italian test data file with 5000 test cases

Additional Context

  • Add any other information that might be helpful for the reviewer (e.g., performance implications, potential risks,
    specific areas to focus on).

AI Usage

While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? NO

@osteotek
Copy link
Member

osteotek commented Feb 1, 2026

Hi, thanks for the PR! Unfortunately, firmware in its current state already uses 95% of available flash size. So we've been hesitant to add new hyphenation dictionaries, which will push firmware size even higher. After we merge font improvements which will bring firmware size down significantly (hopefully soon), this and other hyphenation dictionaries will be added.

@DanieleDDM
Copy link

Any chance this could make it into v1.0? Would be great for Italian readers! 🙏 Thank'you for your work!

@drbourbon
Copy link
Contributor Author

Build size without the PR:

RAM:   [===       ]  31.0% (used 101652 bytes from 327680 bytes)
Flash: [==========]  96.0% (used 6291296 bytes from 6553600 bytes)

Build size with the PR:

RAM:   [===       ]  31.0% (used 101668 bytes from 327680 bytes)
Flash: [==========]  96.0% (used 6292940 bytes from 6553600 bytes)

@drbourbon
Copy link
Contributor Author

Hi, thanks for the PR! Unfortunately, firmware in its current state already uses 95% of available flash size. So we've been hesitant to add new hyphenation dictionaries, which will push firmware size even higher. After we merge font improvements which will bring firmware size down significantly (hopefully soon), this and other hyphenation dictionaries will be added.

Dear Arthur, italian hyphenation is surprisingly simple and adds up only 1644 bytes to the flash size (see my previous post). Please reconsider adding it to the 1.0.0 release.

Copy link
Member

@daveallie daveallie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hesitant to add too much more before cutting back some space, but you're right, this change is tiny and impactful.

@daveallie daveallie merged commit e73bb32 into crosspoint-reader:master Feb 9, 2026
5 checks passed
@drbourbon drbourbon deleted the Italian-hyphenation-support branch February 9, 2026 10:06
Marma92 pushed a commit to Marma92/crosspoint-reader that referenced this pull request Feb 10, 2026
## Summary

* **What is the goal of this PR?** Add Italian language hyphenation
support to improve text rendering for Italian books.
* **What changes are included?**

* Added Italian hyphenation trie (hyph-it.trie.h) generated from Typst's
hypher patterns
* Registered italianHyphenator in LanguageRegistry.cpp for language tag
it
  * Added Italian to the hyphenation evaluation test suite
  * Added Italian test data file with 5000 test cases

## Additional Context

* Add any other information that might be helpful for the reviewer
(e.g., performance implications, potential risks,
  specific areas to focus on).

---

### AI Usage

While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? _**NO**_

---------

Co-authored-by: drbourbon <[email protected]>
jdk2pq added a commit to jdk2pq/crosspoint-reader that referenced this pull request Feb 11, 2026
…king-space

* master:
  feat: use natural sort in file browser (crosspoint-reader#722)
  fix: issue if book href are absolute url and not relative to server (crosspoint-reader#741)
  feat: unify navigation handling with system-wide continuous navigation (crosspoint-reader#600)
  feat: Add Italian hyphenation support (crosspoint-reader#584)
  feat: Add percentage support to CSS properties (crosspoint-reader#738)
  Use GITHUB_REF_NAME over GITHUB_HEAD_REF in release candidate workflow
  Move release candidate workflow to manual dispatch
  fix: Allow OTA update from RC build to full release (crosspoint-reader#778)
  refactor: Rename "Embedded Style" to "Book's Embedded Style" (crosspoint-reader#746)
  perf: optimize drawPixel() (crosspoint-reader#748)
  feat: wakeup target detection (crosspoint-reader#731)
  fix: Scrolling page items calculation (crosspoint-reader#716)
  feat: optimize fillRectDither (crosspoint-reader#737)
  fix: increase lyra sideButtonHintsWidth to 30 (crosspoint-reader#727)
  fix: Remove separations after style changes (crosspoint-reader#720)
  fix: Lag before displaying covers on home screen (crosspoint-reader#721)
  feat: Add Settings for toggling CSS on or off (crosspoint-reader#717)
  Use GITHUB_HEAD_REF
  release: 1.0.0
jdk2pq added a commit to jdk2pq/crosspoint-reader that referenced this pull request Feb 13, 2026
* master: (25 commits)
  fix: Reduce MIN_SIZE_FOR_POPUP to 10KB (crosspoint-reader#809)
  docs: Update USER_GUIDE.md (crosspoint-reader#817)
  fix: Prevent sleeping when in OPDS browser / downloading books (crosspoint-reader#818)
  feat: Extend python debugging monitor functionality (keyword filter / suppress) (crosspoint-reader#810)
  docs: Update USER_GUIDE.md (crosspoint-reader#808)
  feat: Connect to last wifi by default (crosspoint-reader#752)
  feat: use natural sort in file browser (crosspoint-reader#722)
  fix: issue if book href are absolute url and not relative to server (crosspoint-reader#741)
  feat: unify navigation handling with system-wide continuous navigation (crosspoint-reader#600)
  feat: Add Italian hyphenation support (crosspoint-reader#584)
  feat: Add percentage support to CSS properties (crosspoint-reader#738)
  Use GITHUB_REF_NAME over GITHUB_HEAD_REF in release candidate workflow
  Move release candidate workflow to manual dispatch
  fix: Allow OTA update from RC build to full release (crosspoint-reader#778)
  refactor: Rename "Embedded Style" to "Book's Embedded Style" (crosspoint-reader#746)
  perf: optimize drawPixel() (crosspoint-reader#748)
  feat: wakeup target detection (crosspoint-reader#731)
  fix: Scrolling page items calculation (crosspoint-reader#716)
  feat: optimize fillRectDither (crosspoint-reader#737)
  fix: increase lyra sideButtonHintsWidth to 30 (crosspoint-reader#727)
  ...
Unintendedsideeffects pushed a commit to Unintendedsideeffects/crosspoint-reader that referenced this pull request Feb 17, 2026
## Summary

* **What is the goal of this PR?** Add Italian language hyphenation
support to improve text rendering for Italian books.
* **What changes are included?**

* Added Italian hyphenation trie (hyph-it.trie.h) generated from Typst's
hypher patterns
* Registered italianHyphenator in LanguageRegistry.cpp for language tag
it
  * Added Italian to the hyphenation evaluation test suite
  * Added Italian test data file with 5000 test cases

## Additional Context

* Add any other information that might be helpful for the reviewer
(e.g., performance implications, potential risks,
  specific areas to focus on).

---

### AI Usage

While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? _**NO**_

---------

Co-authored-by: drbourbon <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants