Merge pull request 'translation-support' (#3) from translation-support into main
Reviewed-on: DHBW/Praxisbericht-Template-Typst#3
This commit is contained in:
commit
ce0301f065
42
src/main.typ
42
src/main.typ
|
@ -108,10 +108,24 @@
|
|||
#include "pages/gender-hinweis.typ"
|
||||
#include "pages/übersicht-arbeitspakete.typ"
|
||||
|
||||
#outline(title: "Inhaltsverzeichnis", indent: auto)
|
||||
#let heading_outline_title = if prelude.format.language == "de" [
|
||||
Inhaltsverzeichnis
|
||||
] else if prelude.format.language == "en" [
|
||||
Table of contents
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
#outline(title: heading_outline_title, indent: auto)
|
||||
|
||||
#pagebreak()
|
||||
|
||||
#let image_outline_title = if prelude.format.language == "de" [
|
||||
Abbildungsverzeichnis
|
||||
] else if prelude.format.language == "en" [
|
||||
List of figures
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
#outline(
|
||||
title: "Abbildungsverzeichnis",
|
||||
target: figure.where(kind: image),
|
||||
|
@ -119,15 +133,29 @@
|
|||
|
||||
#pagebreak()
|
||||
|
||||
#let table_outline_title = if prelude.format.language == "de" [
|
||||
Tabellensverzeichnis
|
||||
] else if prelude.format.language == "en" [
|
||||
List of tables
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
#outline(
|
||||
title: "Tabellensverzeichnis",
|
||||
title: table_outline_title,
|
||||
target: figure.where(kind: table),
|
||||
)
|
||||
|
||||
#pagebreak()
|
||||
|
||||
#let raw_outline_title = if prelude.format.language == "de" [
|
||||
Quelltextverzeichnis
|
||||
] else if prelude.format.language == "en" [
|
||||
Table of source code
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
#outline(
|
||||
title: "Quelltextverzeichnis",
|
||||
title: raw_outline_title,
|
||||
target: figure.where(kind: raw),
|
||||
)
|
||||
|
||||
|
@ -137,7 +165,13 @@
|
|||
#import "@preview/glossarium:0.2.6": make-glossary, print-glossary, gls, glspl
|
||||
#show: make-glossary
|
||||
|
||||
= Glossar
|
||||
#if prelude.format.language == "de" [
|
||||
= Glossar
|
||||
] else if prelude.format.language == "en" [
|
||||
= Glossary
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
|
||||
// read all entries from config file
|
||||
#let glossary = yaml("../conf/glossary.yaml")
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
#import "../prelude.typ" as prelude
|
||||
|
||||
// title
|
||||
#if prelude.format.language == "de" [
|
||||
= Sperrvermerk
|
||||
] else if prelude.format.language == "en" [
|
||||
= Confidential Clause
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
|
||||
#v(1cm)
|
||||
|
||||
#prelude.largetext()[
|
||||
#if prelude.format.language == "de" [
|
||||
Der Inhalt dieser Arbeit darf weder als Ganzes noch in
|
||||
Auszügen Personen außerhalb des Prüfungsprozesses
|
||||
und des Evaluationsverfahrens zugänglich gemacht werden,
|
||||
sofern keine anders lautende Genehmigung der Ausbildungsstätte vorliegt.
|
||||
] else if prelude.format.language == "en" [
|
||||
The content of this thesis may not be made accessible
|
||||
to persons outside the examination process and the evaluation procedure,
|
||||
either in whole or in part, unless otherwise authorized by the institution.
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
]
|
||||
|
||||
#prelude.signature
|
||||
|
||||
#pagebreak()
|
|
@ -0,0 +1,46 @@
|
|||
#import "../prelude.typ" as prelude
|
||||
|
||||
#set align(center)
|
||||
|
||||
// title
|
||||
#if prelude.format.language == "de" [
|
||||
= Selbständigkeitserklärung
|
||||
] else if prelude.format.language == "en" [
|
||||
= Declaration of independence
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
|
||||
#v(1cm)
|
||||
#prelude.largetext()[
|
||||
#if prelude.format.language == "de" [
|
||||
Ich versichere hiermit, dass ich meine #linebreak() Prüfung mit dem Thema
|
||||
] else if prelude.format.language == "en" [
|
||||
I hereby certify that I have written my #linebreak() exam with the topic
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
]
|
||||
|
||||
#v(1cm)
|
||||
#prelude.title(prelude.info.titel)
|
||||
|
||||
// subtitle
|
||||
#prelude.subtitle(prelude.info.untertitel)
|
||||
|
||||
#v(1cm)
|
||||
#prelude.largetext()[
|
||||
#if prelude.format.language == "de" [
|
||||
selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe.
|
||||
Ich versichere zudem, dass die eingereichte elektronische Fassung mit der gedruckten Fassung übereinstimmt.
|
||||
] else if prelude.format.language == "en" [
|
||||
independently and have not used any sources or aids other than those specified.
|
||||
I also confirm that the electronic version submitted is identical to the printed version.
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
]
|
||||
|
||||
#prelude.signature
|
||||
|
||||
#pagebreak()
|
|
@ -1,13 +0,0 @@
|
|||
|
||||
#import "../prelude.typ" as prelude
|
||||
|
||||
// title
|
||||
= Gender-Hinweis
|
||||
|
||||
#prelude.largetext()[
|
||||
Zur besseren Lesbarkeit wird in dieser Arbeit das generische Maskulinum verwendet.
|
||||
Die in dieser Arbeit verwendeten
|
||||
Personenbezeichnungen beziehen sich - sofern nicht anders kenntlich gemacht - auf alle Geschlechter.
|
||||
]
|
||||
|
||||
#pagebreak()
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
#import "../prelude.typ" as prelude
|
||||
|
||||
// title
|
||||
#if prelude.format.language == "de" [
|
||||
= Gender-Hinweis
|
||||
] else if prelude.format.language == "en" [
|
||||
= Gender note
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
|
||||
#prelude.largetext()[
|
||||
#if prelude.format.language == "de" [
|
||||
Zur besseren Lesbarkeit wird in dieser Arbeit das generische Maskulinum verwendet.
|
||||
Die in dieser Arbeit verwendeten Personenbezeichnungen beziehen sich, sofern nicht anders kenntlich gemacht, auf alle Geschlechter.
|
||||
] else if prelude.format.language == "en" [
|
||||
For better readability, the generic masculine is used in this work.
|
||||
The personal designations used in this work refer to all genders, unless otherwise indicated.
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
]
|
||||
|
||||
#pagebreak()
|
|
@ -1,29 +0,0 @@
|
|||
#import "../prelude.typ" as prelude
|
||||
|
||||
#set align(center)
|
||||
|
||||
// title
|
||||
= Selbständigkeitserklärung
|
||||
|
||||
#v(1cm)
|
||||
#prelude.largetext()[
|
||||
Ich versichere hiermit, dass ich meine #linebreak() Prüfung mit dem Thema
|
||||
]
|
||||
|
||||
#v(1cm)
|
||||
#prelude.title(prelude.info.titel)
|
||||
|
||||
// subtitle
|
||||
#prelude.subtitle(prelude.info.untertitel)
|
||||
|
||||
#v(1cm)
|
||||
#prelude.largetext()[
|
||||
selbständig verfasst und keine anderen als die angegebenen
|
||||
Quellen und Hilfsmittel benutzt habe. Ich versichere zudem, dass die
|
||||
eingereichte elektronische Fassung mit der gedruckten Fassung
|
||||
übereinstimmt.
|
||||
]
|
||||
|
||||
#prelude.signature
|
||||
|
||||
#pagebreak()
|
|
@ -1,17 +0,0 @@
|
|||
#import "../prelude.typ" as prelude
|
||||
|
||||
// title
|
||||
= Sperrvermerk
|
||||
|
||||
#v(1cm)
|
||||
|
||||
#prelude.largetext()[
|
||||
Der Inhalt dieser Arbeit darf weder als Ganzes noch in
|
||||
Auszügen Personen außerhalb des Prüfungsprozesses
|
||||
und des Evaluationsverfahrens zugänglich gemacht werden,
|
||||
sofern keine anders lautende Genehmigung der Ausbildungsstätte vorliegt.
|
||||
]
|
||||
|
||||
#prelude.signature
|
||||
|
||||
#pagebreak()
|
|
@ -1,85 +0,0 @@
|
|||
#import "../prelude.typ" as prelude
|
||||
|
||||
#let LogoHeight = 1.5cm
|
||||
|
||||
#set align(center)
|
||||
|
||||
// logo of ABB and DHBW
|
||||
#grid(
|
||||
// set width of columns
|
||||
// we need two, so make both half the page width
|
||||
columns: (50%, 50%),
|
||||
// left align logo of ABB
|
||||
align(left, image("../../res/svg/ABB.svg", height: LogoHeight)),
|
||||
// right align logo of DHBW
|
||||
align(right, image("../../res/svg/DHBW.svg", height: LogoHeight))
|
||||
)
|
||||
|
||||
// title
|
||||
#v(2cm)
|
||||
#prelude.title(prelude.info.titel)
|
||||
|
||||
// subtitle
|
||||
#prelude.subtitle(prelude.info.untertitel)
|
||||
|
||||
// type of paper
|
||||
#v(1cm)
|
||||
#prelude.largetext(prelude.info.typ)
|
||||
|
||||
// number of semester
|
||||
Praxisphase des #prelude.info.semester Studienjahrs
|
||||
|
||||
// fakulty
|
||||
#pad(top: 0.5cm)[
|
||||
an der Fakultät für #prelude.info.fakultät
|
||||
#linebreak()
|
||||
im Studiengang #prelude.info.studiengang
|
||||
]
|
||||
|
||||
// university
|
||||
#pad(top: 0.5cm)[
|
||||
an der
|
||||
#linebreak()
|
||||
#prelude.info.universität
|
||||
]
|
||||
|
||||
#set align(bottom + left)
|
||||
|
||||
#table(
|
||||
columns: 2,
|
||||
align: left,
|
||||
stroke: none,
|
||||
|
||||
"Verfasser:",
|
||||
prelude.info.autor,
|
||||
|
||||
"Bearbeitungszeitraum:",
|
||||
prelude.info.bearbeitungszeitraum,
|
||||
|
||||
"Matrikelnummer, Kurs:",
|
||||
str(prelude.info.matrikelnummer) + ", " + prelude.info.studiengang,
|
||||
|
||||
"Ausbildungsbetrieb:",
|
||||
prelude.info.betrieb,
|
||||
|
||||
"Betrieblicher Betreuer:",
|
||||
prelude.info.betreuer,
|
||||
|
||||
"Abgabedatum:",
|
||||
prelude.info.abgabe
|
||||
)
|
||||
|
||||
#pad(
|
||||
top: 1cm,
|
||||
grid(
|
||||
// set width of columns
|
||||
// we need two, so make both half the page width
|
||||
columns: (50%, 50%),
|
||||
align(left, "Unterschrift des betrieblichen Betreuers"),
|
||||
align(right, {line(length: 6cm)})
|
||||
)
|
||||
)
|
||||
|
||||
#pagebreak()
|
||||
|
||||
#counter(page).update(1)
|
|
@ -0,0 +1,140 @@
|
|||
#import "../prelude.typ" as prelude
|
||||
|
||||
#let LogoHeight = 1.5cm
|
||||
|
||||
#set align(center)
|
||||
|
||||
// logo of ABB and DHBW
|
||||
#grid(
|
||||
// set width of columns
|
||||
// we need two, so make both half the page width
|
||||
columns: (50%, 50%),
|
||||
// left align logo of ABB
|
||||
align(left, image("../../res/svg/ABB.svg", height: LogoHeight)),
|
||||
// right align logo of DHBW
|
||||
align(right, image("../../res/svg/DHBW.svg", height: LogoHeight))
|
||||
)
|
||||
|
||||
// title
|
||||
#v(2cm)
|
||||
#prelude.title(prelude.info.titel)
|
||||
|
||||
// subtitle
|
||||
#prelude.subtitle(prelude.info.untertitel)
|
||||
|
||||
// type of paper
|
||||
#v(1cm)
|
||||
#prelude.largetext(prelude.info.typ)
|
||||
|
||||
// number of semester
|
||||
#if prelude.format.language == "de" [
|
||||
Praxisphase des #prelude.info.semester Studienjahrs
|
||||
] else if prelude.format.language == "en" [
|
||||
Practical phase of the #prelude.info.semester academic year
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
|
||||
// fakulty
|
||||
#pad(top: 0.5cm)[
|
||||
#if prelude.format.language == "de" [
|
||||
an der Fakultät für #prelude.info.fakultät
|
||||
#linebreak()
|
||||
im Studiengang #prelude.info.studiengang
|
||||
] else if prelude.format.language == "en" [
|
||||
at the Faculty of #prelude.info.fakultät
|
||||
#linebreak()
|
||||
in the degree program #prelude.info.studiengang
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
]
|
||||
|
||||
// university
|
||||
#pad(top: 0.5cm)[
|
||||
#if prelude.format.language == "de" [
|
||||
an der
|
||||
] else if prelude.format.language == "en" [
|
||||
at
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
#linebreak()
|
||||
#prelude.info.universität
|
||||
]
|
||||
|
||||
#set align(bottom + left)
|
||||
|
||||
#if prelude.format.language == "de" [
|
||||
#table(
|
||||
columns: 2,
|
||||
align: left,
|
||||
stroke: none,
|
||||
|
||||
"Verfasser:",
|
||||
prelude.info.autor,
|
||||
|
||||
"Bearbeitungszeitraum:",
|
||||
prelude.info.bearbeitungszeitraum,
|
||||
|
||||
"Matrikelnummer, Kurs:",
|
||||
str(prelude.info.matrikelnummer) + ", " + prelude.info.studiengang,
|
||||
|
||||
"Ausbildungsbetrieb:",
|
||||
prelude.info.betrieb,
|
||||
|
||||
"Betrieblicher Betreuer:",
|
||||
prelude.info.betreuer,
|
||||
|
||||
"Abgabedatum:",
|
||||
prelude.info.abgabe
|
||||
)
|
||||
] else if prelude.format.language == "en" [
|
||||
#table(
|
||||
columns: 2,
|
||||
align: left,
|
||||
stroke: none,
|
||||
|
||||
"Author:",
|
||||
prelude.info.autor,
|
||||
|
||||
"Editing period:",
|
||||
prelude.info.bearbeitungszeitraum,
|
||||
|
||||
"Matriculation number, course:",
|
||||
str(prelude.info.matrikelnummer) + ", " + prelude.info.studiengang,
|
||||
|
||||
"Training company:",
|
||||
prelude.info.betrieb,
|
||||
|
||||
"Company supervisor:",
|
||||
prelude.info.betreuer,
|
||||
|
||||
"Submission date:",
|
||||
prelude.info.abgabe
|
||||
)
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
|
||||
#pad(
|
||||
top: 1cm,
|
||||
grid(
|
||||
// set width of columns
|
||||
// we need two, so make both half the page width
|
||||
columns: (60%, 40%),
|
||||
align(left, if prelude.format.language == "de" [
|
||||
Unterschrift des betrieblichen Betreuers
|
||||
] else if prelude.format.language == "en" [
|
||||
Signature of the company supervisor
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
),
|
||||
align(right, {line(length: 6cm)})
|
||||
)
|
||||
)
|
||||
|
||||
#pagebreak()
|
||||
|
||||
#counter(page).update(1)
|
|
@ -0,0 +1,51 @@
|
|||
#import "../prelude.typ" as prelude
|
||||
|
||||
// title
|
||||
#if prelude.format.language == "de" [
|
||||
= Übersicht Arbeitspakete
|
||||
Folgende Tabelle zeigt die Aktivtäten welche im Zeitraum vom #prelude.info.bearbeitungszeitraum abgehandelt wurden.
|
||||
] else if prelude.format.language == "en" [
|
||||
= Work package overview
|
||||
The following table shows the activities that were covered during the #prelude.info.processing period.
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
]
|
||||
|
||||
#let table_align(col, row) = {
|
||||
if row == 0 {
|
||||
center
|
||||
} else {
|
||||
left
|
||||
}
|
||||
}
|
||||
|
||||
#figure(
|
||||
kind: table,
|
||||
caption: if prelude.format.language == "de" [
|
||||
Übersicht Arbeitspakete
|
||||
] else if prelude.format.language == "en" [
|
||||
Work package overview
|
||||
] else [
|
||||
#panic("no translation for language: ", prelude.format.language)
|
||||
],
|
||||
table(
|
||||
columns: (1fr, auto, auto),
|
||||
align: table_align,
|
||||
inset: 0.25cm,
|
||||
[*Thema*], [*Zeitraum*], [*Dauer (Wochen)*],
|
||||
..for packet in prelude.info.arbeits-pakete {
|
||||
|
||||
let start_split = packet.start.split(".")
|
||||
let start = datetime(day: int(start_split.at(0)), month: int(start_split.at(1)), year: int(start_split.at(2)))
|
||||
|
||||
let end_split = packet.ende.split(".")
|
||||
let end = datetime(day: int(end_split.at(0)), month: int(end_split.at(1)), year: int(end_split.at(2)))
|
||||
|
||||
let dur = end - start
|
||||
|
||||
(packet.thema, packet.start + " - " + packet.ende, str(calc.round(dur.weeks())))
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
#pagebreak()
|
|
@ -1,31 +0,0 @@
|
|||
#import "../prelude.typ" as prelude
|
||||
|
||||
// title
|
||||
= Übersicht Arbeitspakete
|
||||
|
||||
Folgende Tabelle zeigt die Aktivtäten welche im Zeitraum vom #prelude.info.bearbeitungszeitraum abgehandelt wurden.
|
||||
|
||||
#figure(
|
||||
kind: table,
|
||||
caption: "Übersicht Arbeitspakete",
|
||||
table(
|
||||
columns: (1fr, auto, auto),
|
||||
align: center,
|
||||
inset: 0.25cm,
|
||||
[*Thema*], [*Zeitraum*], [*Dauer (Wochen)*],
|
||||
..for packet in prelude.info.arbeits-pakete {
|
||||
|
||||
let start_split = packet.start.split(".")
|
||||
let start = datetime(day: int(start_split.at(0)), month: int(start_split.at(1)), year: int(start_split.at(2)))
|
||||
|
||||
let end_split = packet.ende.split(".")
|
||||
let end = datetime(day: int(end_split.at(0)), month: int(end_split.at(1)), year: int(end_split.at(2)))
|
||||
|
||||
let dur = end - start
|
||||
|
||||
(packet.thema, packet.start + " - " + packet.ende, str(calc.round(dur.weeks())))
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
#pagebreak()
|
Loading…
Reference in New Issue