Skip to content

typst package to load strings for different languages easily.

License

Notifications You must be signed in to change notification settings

typst-community/linguify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Typst-linguify

Load strings for different languages easily. This can be useful if you create a package or template for multilingual usage.

Usage

The usage depends if you are using it inside a package or a template or in your own document.

For end users and own templates

You can use linguify global database.

Example:

#import "@preview/linguify:0.4.1": *

#let lang-data = toml("lang.toml")
#set-database(lang-data)

#set text(lang: "de")

#linguify("abstract")  // Shows "Zusammenfassung" in the document.

The lang.toml musst look like this:

[conf]
default-lang = "en"

[lang.en]
title = "A simple linguify example"
abstract = "Abstract"

[lang.de]
title = "Ein einfaches Linguify Beispiel"
abstract = "Zusammenfassung"

Inside a package

So that multiple packages can use linguify simultaneously, they should contain their own database. A linguify database is just a dictionary with a certain structure. (See database structure.)

Recommend is to store the database in a separate file like lang.toml and load it inside the document. And specify it in each linguify() function call.

Example:

#import "@preview/linguify:0.4.1": *

#let database = toml("lang.toml")

#linguify("key", from: database, default: "key")

Features

  • Use a toml or other file to load strings for different languages. You need to pass a typst dictionary which follows the structure of the shown toml file.
  • Specify a default-lang. If none is specified it will default to en
  • Fallback to the default-lang if a key is not found for a certain language.
  • Fluent support

About

typst package to load strings for different languages easily.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published