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.0": *
#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"
[en]
title = "A simple linguify example"
abstract = "Abstract"
[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.0": *
#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