Three-letter language codes equivalent to two-letter ones can behave differently (ISO 639)
Open
Nobody has claimed this yet.
bug
text
- Dominant language
- Rust
- Stars
- 56.1k
- Forks
- 1.7k
- Avg merge
- 3d 10h
- Merged PRs (30d)
- 22
Description
Description
Documentation says:
But these language codes have different direction:
#set text(lang: "he")
text
#set text(lang: "heb")
text
despite being assigned to the same language: https://www.loc.gov/standards/iso639-2/php/langcodes_name.php?iso_639_1=he.
https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes#Table
Reproduction URL
No response
Operating system
Linux
Typst version
- I am using the latest version of Typst
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read the language handling documented in crates/typst-library/src/text/mod.rs around line 401, then reproduce the examples using "he" and "heb". Trace how both ISO 639 codes are assigned text direction and make their behavior consistent with the documented language equivalence. Done means equivalent codes produce the same direction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- internationalization
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100