Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
202 changes: 202 additions & 0 deletions src/locales.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
#let local-names = (
"sq": ( // Albanian
parameters: [Parametrat],
default: [Standard],
variables: [Variablat]
),
"ar": ( // Arabic
parameters: [المعلمات],
default: [الافتراضي],
variables: [المتغيرات]
),
"eu": ( // Basque
parameters: [Parametroak],
default: [Lehenetsia],
variables: [Aldagaiak]
),
"nb": ( // Bokmål
parameters: [Parametere],
default: [Standard],
variables: [Variabler]
),
"bg": ( // Bulgarian
parameters: [Параметри],
default: [По подразбиране],
variables: [Променливи]
),
"ca": ( // Catalan
parameters: [Paràmetres],
default: [Per defecte],
variables: [Variables]
),
"zh": ( // Chinese (Simplified)
parameters: [参数],
default: [默认值],
variables: [变量]
),
"hr": ( // Croatian
parameters: [Parametri],
default: [Zadano],
variables: [Varijable]
),
"cs": ( // Czech
parameters: [Parametry],
default: [Výchozí],
variables: [Proměnné]
),
"da": ( // Danish
parameters: [Parametre],
default: [Standard],
variables: [Variabler]
),
"nl": ( // Dutch
parameters: [Parameters],
default: [Standaard],
variables: [Variabelen]
),
"en": ( // English
parameters: [Parameters],
default: [Default],
variables: [Variables]
),
"et": ( // Estonian
parameters: [Parameetrid],
default: [Vaikimisi],
variables: [Muutujad]
),
"tl": ( // Filipino
parameters: [Mga Parameter],
default: [Karaniwan],
variables: [Mga Variable]
),
"fi": ( // Finnish
parameters: [Parametrit],
default: [Oletus],
variables: [Muuttujat]
),
"fr": ( // French
parameters: [Paramètres],
default: [Par défaut],
variables: [Variables]
),
"gl": ( // Galician
parameters: [Parámetros],
default: [Por defecto],
variables: [Variables]
),
"de": ( // German
parameters: [Parameter],
default: [Standard],
variables: [Variablen]
),
"el": ( // Greek
parameters: [Παράμετροι],
default: [Προεπιλογή],
variables: [Μεταβλητές]
),
"he": ( // Hebrew
parameters: [פרמטרים],
default: [ברירת מחדל],
variables: [משתנים]
),
"hu": ( // Hungarian
parameters: [Paraméterek],
default: [Alapértelmezett],
variables: [Változók]
),
"is": ( // Icelandic
parameters: [Færibreytur],
default: [Sjálfgefið],
variables: [Breytur]
),
"id": ( // Indonesian
parameters: [Parameter],
default: [Baku],
variables: [Variabel]
),
"it": ( // Italian
parameters: [Parametri],
default: [Predefinito],
variables: [Variabili]
),
"ja": ( // Japanese
parameters: [パラメーター],
default: [デフォルト],
variables: [変数]
),
"la": ( // Latin
parameters: [Parametri],
default: [Definitum],
variables: [Variabilia]
),
"dsb": ( // Lower Sorbian
parameters: [Parametry],
default: [Standard],
variables: [Wariable]
),
"nn": ( // Nynorsk
parameters: [Parametrar],
default: [Standard],
variables: [Variablar]
),
"pl": ( // Polish
parameters: [Parametry],
default: [Domyślne],
variables: [Zmienne]
),
"pt": ( // Portuguese
parameters: [Parâmetros],
default: [Padrão],
variables: [Variáveis]
),
"ro": ( // Romanian
parameters: [Parametri],
default: [Implicit],
variables: [Variabile]
),
"ru": ( // Russian
parameters: [Параметры],
default: [По умолчанию],
variables: [Переменные]
),
"sr": ( // Serbian (Cyrillic)
parameters: [Параметри],
default: [Подразумевано],
variables: [Променљиве]
),
"sk": ( // Slovak
parameters: [Parametre],
default: [Predvolené],
variables: [Premenné]
),
"sl": ( // Slovenian
parameters: [Parametri],
default: [Privzeto],
variables: [Spremenljivke]
),
"es": ( // Spanish
parameters: [Parámetros],
default: [Por defecto],
variables: [Variables]
),
"sv": ( // Swedish
parameters: [Parametrar],
default: [Standard],
variables: [Variabler]
),
"tr": ( // Turkish
parameters: [Parametreler],
default: [Varsayılan],
variables: [Değişkenler]
),
"uk": ( // Ukrainian
parameters: [Параметри],
default: [За замовчуванням],
variables: [Змінні]
),
"vi": ( // Vietnamese
parameters: [Tham số],
default: [Mặc định],
variables: [Biến số]
),
)
14 changes: 11 additions & 3 deletions src/show-module.typ
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@
/// are `parameters` and `default`. You can for example use:
/// `local-names: (parameters: [Parameter], default: [Standard], variables: [Variablen])`.
/// -> dictionary
local-names: (parameters: [Parameters], default: [Default], variables: [Variables])
local-names: auto

) = block({
let label-prefix = module-doc.label-prefix
if sort-functions == auto {
Expand All @@ -92,8 +93,16 @@
module-doc.variables = module-doc.variables.filter(filter)
}


let style-functions = utilities.get-style-functions(style)

if local-names == auto {
local-names = (:)
} else {
assert(
type(local-names) == dictionary,
message: "The parameter `local-names` expects a dictionary of translations. "
)
}

let style-args = (
style: style-functions,
Expand All @@ -107,7 +116,6 @@
local-names: local-names,
)


let eval-scope = (
// Predefined functions that may be called by the user in doc-comment code
example: style-functions.show-example.with(
Expand Down
12 changes: 9 additions & 3 deletions src/styles/default.typ
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
}

if module-doc.variables.len() > 0 {
text(style-args.local-names.at("variables"), weight: "bold")
text(get-local-name("variables", style-args: style-args), weight: "bold")
list(..module-doc.variables.map(var => gen-entry(var.name)))
}
}
Expand Down Expand Up @@ -139,7 +139,10 @@
#types.map(x => (style-args.style.show-type)(x, style-args: style-args)).join([ #text("or",size:.6em) ])

#content
#if show-default [ #parbreak() #style-args.local-names.default: #raw(lang: "typc", default) ]
#if show-default [
#parbreak()
#get-local-name("default", style-args: style-args): #raw(lang: "typc", default)
]
]
)

Expand All @@ -160,7 +163,10 @@
eval-docstring(fn.description, style-args)

block(breakable: style-args.break-param-descriptions, {
heading(style-args.local-names.parameters, level: style-args.first-heading-level + 2)
heading(
get-local-name("parameters", style-args: style-args),
level: style-args.first-heading-level + 2
)
(style-args.style.show-parameter-list)(fn, style-args: style-args)
})

Expand Down
7 changes: 5 additions & 2 deletions src/styles/minimal.typ
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@
}

if module-doc.variables.len() > 0 {
text(style-args.local-names.at("variables"), weight: "bold")
text(
get-local-name("variables", style-args: style-args, language: text.lang),
weight: "bold"
)
list(..module-doc.variables.map(var => gen-entry(var.name)))
}
}
Expand Down Expand Up @@ -123,7 +126,7 @@
}

if parameter-block != none {
[*#style-args.local-names.parameters:*]
[*#get-local-name("parameters", style-args: style-args):*]
parameter-block
}
v(4em, weak: true)
Expand Down
25 changes: 24 additions & 1 deletion src/utilities.typ
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#import "locales.typ"

// Matches doc-comment references of the form `@@otherfunc` or `@@otherfunc()`.
#let reference-matcher = regex(`@@([\w\d\-_\)\(]+)`.text)
Expand Down Expand Up @@ -69,4 +70,26 @@
)
}
return style-functions
}
}


/// Get the local name for a string with the given language.
#let get-local-name(

/// String to get the local name for -> str
target,

/// Style-args provided from styles -> dict
style-args: (:)

) = context {

if target in style-args.local-names {
return style-args.local-names.at(target)
}
let language = text.lang
if language not in locales.local-names.keys() {
panic("Unknown language '" + language + "', you can use custom translations with `#show-module(local-names: ...)`")
}
return locales.local-names.at(text.lang).at(target)
}
Loading