Merge pull request 'translation-support' (#3) from translation-support into main

Reviewed-on: DHBW/Praxisbericht-Template-Typst#3
This commit is contained in:
Sven Vogel 2024-03-29 10:52:47 +00:00
commit ce0301f065
11 changed files with 331 additions and 179 deletions

View File

@ -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")

View File

@ -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()

View File

@ -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()

View File

@ -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()

25
src/pages/gender-note.typ Normal file
View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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)

140
src/pages/title.typ Normal file
View File

@ -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)

View File

@ -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()

View File

@ -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()