typst / typst/typst

Three-letter language codes equivalent to two-letter ones can behave differently (ISO 639)

Open
#6,182 6 comments 0 reactions 0 assignees View on GitHub

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:

https://github.com/typst/typst/blob/94a497a01ffd60743b0a2ae67367be168bbde076/crates/typst-library/src/text/mod.rs?plain=1#L401

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.