Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tutorial for using dependencies with fpm #18

Merged
merged 2 commits into from
Dec 12, 2021
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
245 changes: 228 additions & 17 deletions locale/de/LC_MESSAGES/tutorial.po
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fpm \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-11-26 13:25+0100\n"
"POT-Creation-Date: 2021-12-12 11:25+0100\n"
"PO-Revision-Date: 2021-11-26 12:38+0100\n"
"Last-Translator: Sebastian Ehlert <[email protected]>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
Expand All @@ -16,6 +16,232 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"

#: ../../pages/tutorial/dependencies.md:1
msgid "Adding dependencies"
msgstr ""
"Abhängigkeiten hinzufügen"

#: ../../pages/tutorial/dependencies.md:3
msgid ""
"This tutorial covers the usage of dependencies with fpm and how to reuse "
"existing fpm projects."
msgstr ""
"Dieses Tutorial behandelt die Benutzung von Abhängigkeiten mit fpm und wie "
"ein existierendes fpm-Projekt wiederverwenden werden kann."

#: ../../pages/tutorial/dependencies.md:5
msgid "Using the standard library"
msgstr ""
"Benutzung der Standardbibliothek"

#: ../../pages/tutorial/dependencies.md:7
msgid ""
"We start with a new project with fpm, we want to build a command line "
"application to read a file, find a certain pattern and replace it. Since "
"we do not want to write the replace function ourselves, we will use the "
"Fortran standard library ([stdlib]) as dependency. In the package "
"manifest we define *stdlib* in the *dependencies* table:"
msgstr ""
"Wir beginnen mit einem neuen Projekt mit fpm, wir möchten eine "
"Kommandozeilenanwendung bauen, die eine Datei liest, einebestimmtes Suchmuster "
"findet und ersetzt. Da wir nicht die Funktion zum Ersetzen selbst "
"schreiben wollen, werden wir die Standardbibliothek ([stdlib]) als "
"Abhängigkeit benutzen. Im Paketmanifest definieren wir *stdlib* "
"in der *depedencies* Tabelle:"

#: ../../pages/tutorial/dependencies.md:13
#: ../../pages/tutorial/dependencies.md:83
#: ../../pages/tutorial/dependencies.md:118
#: ../../pages/tutorial/hello-fpm.md:33
msgid "fpm.toml"
msgstr ""

#: ../../pages/tutorial/dependencies.md:20
msgid ""
"Now we create a module with a procedure to perform the substitution. It "
"requires three steps:"
msgstr ""
"Zuerst müssen wir ein Modul mit einer Prozedur erstellen, das die Substitution "
"durchführt. Diese benötigt drei Schritte:"

#: ../../pages/tutorial/dependencies.md:23
msgid "reading a whole line from one unit"
msgstr ""
"eine ganze Zeile von einer Adresse lesen"

#: ../../pages/tutorial/dependencies.md:24
msgid "replace the pattern in the string"
msgstr ""
"ein Muster in einem String ersetzen"

#: ../../pages/tutorial/dependencies.md:25
msgid "write the new string to an output"
msgstr ""
"einen neuen String in der Ausgabe schreiben"

#: ../../pages/tutorial/dependencies.md:27
msgid ""
"We will use the *replace\\_all* function from the *stdlib\\_strings* "
"module for this purpose. The implementation is shown here"
msgstr ""
"Wir werden die *replace\\_all*-Funktion aus dem *stdlib\\_strings*-Modul "
"für diesen Zweck verwenden. Die Implementierung ist hier angegeben"

#: ../../pages/tutorial/dependencies.md:30
msgid "src/demo.f90"
msgstr ""

#: ../../pages/tutorial/dependencies.md:1
msgid ""
"To work with deferred length characters we added a small helper function "
"to read a whole line."
msgstr ""
"Um mit deferred length characters zu arbeiten haben wir eine kleine Hilfsfunktion "
"für das Lesen einer ganzen Zeile hinzugefügt."

#: ../../pages/tutorial/dependencies.md:39
msgid "Finally, we need a command line driver to make use of our new function."
msgstr ""
"Zuletzt brauchen wir einen Kommandozeilen-Treiber, um unsere neue Funktion zu "
"nutzen."

#: ../../pages/tutorial/dependencies.md:41
#: ../../pages/tutorial/dependencies.md:131
#: ../../pages/tutorial/hello-fpm.md:52
msgid "app/main.f90"
msgstr ""

#: ../../pages/tutorial/dependencies.md:60
msgid "We can check our command line driver by running it with fpm:"
msgstr ""
"Wir können unseren Kommandozeilen-Treiber über fpm testen:"

#: ../../pages/tutorial/dependencies.md:74
msgid "Adding a testing framework"
msgstr ""
"Hinzufügen eines Test-Frameworks"

#: ../../pages/tutorial/dependencies.md:76
msgid ""
"Before we continue implementing new features, we want to add some tests "
"to verify that our implementation keeps worked as we modify it. A "
"minimalist testing framework is available with [test-drive]. Since the "
"testing framework is only required when developing the package itself, "
"but not for other packages which might in the future make use of our "
"modules, we add a local dependency. The *test-drive* package is added in "
"the *dev-dependencies* table as shown below"
msgstr ""
"Bevor wir weitermachen, um neue Funktionen zu implementieren, möchten wir "
"einige Tests hinzufügen, um zu verifizieren, dass unsere Implementierung "
"weiterhin funktioniert, wenn wir es ändern. Ein minimalistes Test-Framework "
"ist verfügbar mit [test-drive]. Da das Test-Framework nur benötigt wird, wenn "
"wir das Paket selbst entwickeln, aber nicht für andere Pakete, die in der "
"Zukunft unsere Module nutzen, fügen wir eine lokale Abhängigkeit hinzu. Das "
"*test-drive*-Paket wird in der *dev-dependencies*-Tabelle wie unten angegeben "
"hinzugefügt"

#: ../../pages/tutorial/dependencies.md:1
msgid ""
"For a development dependency like a testing framework we choose a strict "
"version pin by specifying the *tag* we want to use."
msgstr ""
"Für eine Entwicklungsabhängigkeit wie das Test-Framework wählen wir eine "
"strikte Versions Einschränkung, indem wir den *tag* angeben, den wir "
"benutzen wollen."

#: ../../pages/tutorial/dependencies.md:94
msgid ""
"Now we can write a simple unit test, since our function works with units,"
" we will create scratch units to create the input and capture the output."
" For now we will add a simple one line substitution as single test case"
msgstr ""
"Wir können nun einen einfachen Test schreiben, da unsere Funktion mit "
"Units arbeitet, werden wir temporäre Units erstellen, um den Eingang und "
"die Ausgabe zu erfassen. Für den Moment werden wir eine einfache Ersetzung "
"in einer Zeile als Test hinzufügen."


#: ../../pages/tutorial/dependencies.md:97
msgid "test/main.f90"
msgstr ""

#: ../../pages/tutorial/dependencies.md:102
msgid "We run our new test using fpm"
msgstr ""
"Wir führen unseren neuen Test mit fpm aus"

#: ../../pages/tutorial/dependencies.md:110
msgid ""
"Creating the scratch units for multiple unit tests will be repetitive, "
"this kind of tasks can usually be done in a separate procedure and reused"
" in several tests."
msgstr ""
"Die Erstellung der temporären Units für mehrere Unit-Tests wird "
"repetitiv sein, diese Aufgaben können in einer separatem Prozedur "
"erledigt werden und in mehreren Tests wiederverwendet werden."

#: ../../pages/tutorial/dependencies.md:113
msgid "Target-specific dependencies"
msgstr ""
"Ziel-spezifische Abhängigkeiten"

#: ../../pages/tutorial/dependencies.md:115
msgid ""
"Dependencies can also be used for specific targets only. This can be used"
" for adding a command line interface package, which is only used for the "
"executable but not part of the library dependencies."
msgstr ""
"Abhängigkeiten können auch nur für bestimmte Ziele verwendet werden. Dies "
"kann verwendet werden, um ein Kommandozeilen-Interface-Paket hinzuzufügen, "
"das nur für die Ausführungsdatei benutzt wird, aber nicht Teil der "
"Bibliotheksabhängigkeiten ist."

#: ../../pages/tutorial/dependencies.md:124
msgid ""
"We restructure our main program a bit for using [M\\_CLI2] to handle the "
"command line input. The *unnamed* array contains all positional command "
"line arguments, we still use the first two as pattern and replacement, "
"and use all remaining arguments as input. We also add an option to "
"redirect the output. Our final main program looks like"
msgstr ""
"Wir restrukturieren unsere Hauptprogramm etwas, um [M\\_CLI2] zu benutzen was "
"die Kommandozeileneingabe verarbeitet. Das *unnamed*-Feld enthält alle "
"positionsbezogenen Kommandozeilenargumente, wir benutzen die ersten zwei "
"als Muster und Ersetzung, und verwenden alle weiteren Argumente als Eingabe. "
"Wir fügen auch eine Option hinzu, um die Ausgabe zu umleiten. Unser finale "
"Hauptprogramm sieht wie folgt aus:"

#: ../../pages/tutorial/dependencies.md:136
msgid "Again we run a quick check using fpm"
msgstr ""
"Wir führen einen kurzen Test mit fpm aus"

#: ../../pages/tutorial/dependencies.md:158
msgid "The output looks as expected with two substitutions."
msgstr ""
"Die Ausgabe sieht wie erwartet aus, mit zwei Ersetzungen."

#: ../../pages/tutorial/dependencies.md:161
#: ../../pages/tutorial/hello-fpm.md:97
msgid "Summary"
msgstr "Zusammenfassing"

#: ../../pages/tutorial/dependencies.md:1 ../../pages/tutorial/hello-fpm.md:1
msgid "In this tutorial you learned how to"
msgstr "In diesem Kurs haben wir gelernt, wie man"

#: ../../pages/tutorial/dependencies.md:3
msgid "depend on another fpm project in the package manifest"
msgstr ""

#: ../../pages/tutorial/dependencies.md:4
msgid "add development dependencies for testing"
msgstr ""

#: ../../pages/tutorial/dependencies.md:5
msgid "use dependencies for executables"
msgstr ""

#: ../../pages/tutorial/hello-fpm.md:1
msgid "First steps with fpm"
msgstr "Erste Schritte mit fpm"
Expand Down Expand Up @@ -55,10 +281,6 @@ msgstr ""
"Zuerst inspizieren wir das Paketmanifest ``fpm.toml``, das mit "
"Platzhaltern für uns gefüllt ist"

#: ../../pages/tutorial/hello-fpm.md:33
msgid "fpm.toml"
msgstr ""

#: ../../pages/tutorial/hello-fpm.md:49
msgid ""
"The package manifest contains all the required meta data for the new "
Expand All @@ -69,10 +291,6 @@ msgstr ""
"Projekt. Als nächstes überprüfen wir die ausführbare Hauptdatei "
"``app/main.f90``, die fpm für uns erzeugt hat"

#: ../../pages/tutorial/hello-fpm.md:52
msgid "app/main.f90"
msgstr ""

#: ../../pages/tutorial/hello-fpm.md:62
msgid ""
"The program already uses a module from our library, which we can find in "
Expand Down Expand Up @@ -107,14 +325,6 @@ msgstr ""
"Fpm verfolgt automatisch die Änderungen in Ihrem Projekt, wenn die "
"Befehle *run* and *test* ausführt werden."

#: ../../pages/tutorial/hello-fpm.md:97
msgid "Summary"
msgstr "Zusammenfassing"

#: ../../pages/tutorial/hello-fpm.md:1
msgid "In this tutorial you learned how to"
msgstr "In diesem Kurs haben wir gelernt, wie man"

#: ../../pages/tutorial/hello-fpm.md:3
msgid "create a new project from the fpm command line"
msgstr "ein neues Projekt über die fpm-Befehlszeile erstellt"
Expand All @@ -139,3 +349,4 @@ msgid ""
msgstr ""
"In diesem Abschnitt befinden sich Kurse zum Erlernen der Verwendung von "
"fpm an ausgewählten Beispielen."

Loading