Reviewed and corrected quality/translations.md
Neu im Wörterbuch: concatenation = Konkatenation string = Zeichenkette textdomain = Textdomäne
This commit is contained in:
parent
3c0c956278
commit
7bc375a1ba
@ -102,14 +102,14 @@ Eine Variable hat nur einen der folgenden Typen und kann nach einer Zuweisung de
|
|||||||
|
|
||||||
Zu den Operatoren in Lua gehören:
|
Zu den Operatoren in Lua gehören:
|
||||||
|
|
||||||
| Symbol | Zweck | Beispiel |
|
| Symbol | Zweck | Beispiel |
|
||||||
|--------|---------------------------|---------------------------|
|
|--------|-------------------------------------------|---------------------------|
|
||||||
| A + B | Addition | 2 + 2 = 4 |
|
| A + B | Addition | 2 + 2 = 4 |
|
||||||
| A - B | Subtraktion | 2 - 10 = -8 |
|
| A - B | Subtraktion | 2 - 10 = -8 |
|
||||||
| A * B | Multiplikation | 2 * 2 = 4 |
|
| A * B | Multiplikation | 2 * 2 = 4 |
|
||||||
| A / B | Division | 100 / 50 = 2 |
|
| A / B | Division | 100 / 50 = 2 |
|
||||||
| A ^ B | Potenzieren | 2 ^ 2 = 2<sup>2</sup> = 4 |
|
| A ^ B | Potenzieren | 2 ^ 2 = 2<sup>2</sup> = 4 |
|
||||||
| A .. B | Zeichenketten verbinden | "foo" .. "bar" = "foobar" |
|
| A .. B | Konkatenation (Zeichenketten verbinden) | "foo" .. "bar" = "foobar" |
|
||||||
|
|
||||||
Bitte beachten Sie, dass diese Liste nicht vollständig ist; sie enthält nicht alle möglichen Operatoren.
|
Bitte beachten Sie, dass diese Liste nicht vollständig ist; sie enthält nicht alle möglichen Operatoren.
|
||||||
|
|
||||||
|
@ -13,24 +13,24 @@ marked_text_encoding:
|
|||||||
"\27(T@mymod)Hello everyone!\27E"
|
"\27(T@mymod)Hello everyone!\27E"
|
||||||
```
|
```
|
||||||
|
|
||||||
* `\27` is the escape character - it's used to tell Minetest to pay attention as
|
* `\27` ist das Escape-Zeichen - es wird verwendet, um Minetest mitzuteilen, dass er aufpassen soll, da
|
||||||
something special is coming up. This is used for both translations and text
|
etwas Besonderes bevorsteht. Es wird sowohl für Übersetzungen als auch für Text
|
||||||
colorisation.
|
Einfärbung benutzt.
|
||||||
* `(T@mymod)` says that the following text is translatable using the `mymod`
|
* `(T@mymod)` besagt, dass der folgende Text mit Hilfe der `mymod` Textdomäne
|
||||||
textdomain.
|
übersetzbar wird.
|
||||||
* `Hello everyone!` is the translatable text in English, as passed to the
|
* `Hello everyone!` ist der übersetzbare Text in Englisch, wie er an die
|
||||||
translator function.
|
Übersetzer-Funktion übergeben wird.
|
||||||
* `\27E` is the escape character again and `E`, used to signal that the end has
|
* `\27E` ist das Escape-Zeichen mit `E`, um zu signalisieren, dass das Ende
|
||||||
been reached.
|
erreicht wurde.
|
||||||
---
|
---
|
||||||
|
|
||||||
## Einleitung <!-- omit in toc -->
|
## Einleitung <!-- omit in toc -->
|
||||||
|
|
||||||
Wenn Sie Ihre Mods und Spiele mit Übersetzungsunterstützung versehen, können mehr Menschen sie genießen. Laut Google Play haben 64 % der Minetest-Android-Nutzer Englisch nicht als ihre Hauptsprache. Minetest verfolgt keine Statistiken für Benutzer
|
Wenn Sie ihre Mods und Spiele mit Übersetzungsunterstützung versehen, können mehr Menschen sie genießen. Laut Google Play haben 64 % der Minetest-Android-Nutzer Englisch nicht als ihre Hauptsprache. Minetest verfolgt keine Statistiken für Benutzer
|
||||||
über alle Plattformen hinweg, aber es ist wahrscheinlich, dass es einen hohen Anteil an
|
über alle Plattformen hinweg, aber es ist wahrscheinlich, dass es einen hohen Anteil an
|
||||||
nicht-englischsprachiger Benutzer gibt.
|
nicht-englischsprachiger Benutzer gibt.
|
||||||
|
|
||||||
Minetest ermöglicht es Ihnen, Ihre Mods und Spiele in verschiedene Sprachen zu übersetzen, indem Sie Texte auf Englisch verfassen und mit Hilfe von Übersetzungsdateien in übersetzen. Die Übersetzung wird auf dem Client eines jeden Spielers durchgeführt, so dass jeder Spieler eine andere Sprache sieht.
|
Minetest ermöglicht es Ihnen, ihre Mods und Spiele in verschiedene Sprachen zu übersetzen, indem Sie Texte auf Englisch verfassen und mit Hilfe von Übersetzungsdateien die Texte in unterschiedliche Sprachen zu übersetzen. Die Übersetzung wird auf dem Client jedes Spielers durchgeführt, so dass jeder Spieler eine andere Sprache sieht.
|
||||||
|
|
||||||
|
|
||||||
- [Wie funktioniert die clientseitige Übersetzung?](#wie-funktioniert-die-clientseitige-übersetzung)
|
- [Wie funktioniert die clientseitige Übersetzung?](#wie-funktioniert-die-clientseitige-übersetzung)
|
||||||
@ -59,14 +59,14 @@ minetest.register_craftitem("mymod:item", {
|
|||||||
```
|
```
|
||||||
|
|
||||||
Das erste Argument von `get_translator` ist `textdomain`, die als Namensraum dient. Anstatt alle Übersetzungen für eine Sprache in einer einzigen Datei zu speichern, werden die Übersetzungen in Textdomänen aufgeteilt (eine Datei pro Textdomäne
|
Das erste Argument von `get_translator` ist `textdomain`, die als Namensraum dient. Anstatt alle Übersetzungen für eine Sprache in einer einzigen Datei zu speichern, werden die Übersetzungen in Textdomänen aufgeteilt (eine Datei pro Textdomäne
|
||||||
pro Sprache). Die Textdomain sollte mit dem Namen des Mods übereinstimmen, da dies hilft, Mod-Konflikte zu vermeiden.
|
pro Sprache). Die Textdomäne sollte mit dem Namen des Mods übereinstimmen, da dies hilft, Mod-Konflikte zu vermeiden.
|
||||||
|
|
||||||
Markierter Text kann an den meisten Stellen verwendet werden, wo menschenlesbarer Text akzeptiert wird, einschließlich *formspecs*, *item def*-Felder, Infotext und mehr. Wenn Sie markierten Text in Formspecs, müssen Sie den Text mit `minetest.formspec_escape` entschlüsseln.
|
Markierter Text kann an den meisten Stellen verwendet werden, wo menschenlesbarer Text akzeptiert wird, einschließlich *formspecs*, *item def*-Felder, Infotext und mehr. Wenn Sie markierten Text in Formspecs einfügen, müssen Sie den Text mit `minetest.formspec_escape` entschlüsseln.
|
||||||
|
|
||||||
Wenn der Client auf übersetzbaren Text stößt, wie den, der an `description` übergeben wird, schaut er in der Übersetzungsdatei der Sprache des Spielers nach. Wenn eine Übersetzung nicht gefunden wird, greift er auf die englische Übersetzung zurück.
|
Wenn der Client auf übersetzbaren Text stößt, wie den, der an `description` übergeben wird, schaut er in der Übersetzungsdatei der Sprache des Spielers nach. Wenn eine Übersetzung nicht gefunden wird, greift er auf die englische Übersetzung zurück.
|
||||||
|
|
||||||
Der übersetzbare markierte Text enthält den englischen Ausgangstext, die Textdomäne,
|
Der übersetzbare markierte Text enthält den englischen Ausgangstext, die Textdomäne,
|
||||||
und alle zusätzlichen Argumente, die an `S()` übergeben werden. Es ist im Wesentlichen eine Textkodierung des `S`-Aufrufs, die alle erforderlichen Informationen enthält.
|
und alle zusätzlichen Argumente, die an `S()` übergeben werden. Es ist im wesentlichen eine Textkodierung des `S`-Aufrufs, die alle erforderlichen Informationen enthält.
|
||||||
|
|
||||||
Eine andere Art von markiertem Text ist der, der von `minetest.colorize` zurückgegeben wird.
|
Eine andere Art von markiertem Text ist der, der von `minetest.colorize` zurückgegeben wird.
|
||||||
|
|
||||||
@ -75,19 +75,19 @@ Eine andere Art von markiertem Text ist der, der von `minetest.colorize` zurück
|
|||||||
|
|
||||||
### Übersetzungsdateien
|
### Übersetzungsdateien
|
||||||
|
|
||||||
Übersetzungsdateien sind Mediendateien, die sich im Ordner `locale` für jeden Mod befinden. Zurzeit wird nur das Format `.tr` unterstützt, aber die Unterstützung für weitere gängige Formate wird wahrscheinlich in der Zukunft hinzugefügt. Übersetzungsdateien müssen folgendermaßen benannt werden: `[textdomain].[lang].tr`.
|
Übersetzungsdateien sind Mediendateien, die sich im Ordner `locale` von jeder Mod befinden. Zurzeit wird nur das Format `.tr` unterstützt, aber die Unterstützung für weitere gängige Formate wird wahrscheinlich in der Zukunft hinzugefügt. Übersetzungsdateien müssen folgendermaßen benannt werden: `[Textdomäne].[Sprache].tr`.
|
||||||
|
|
||||||
Dateien im `.tr` beginnen mit einem Kommentar, der die Textdomäne angibt, und dann weiteren Zeilen, die den englischen Ausgangstext auf die Übersetzung abbilden.
|
Dateien im `.tr` beginnen mit einem Kommentar, der die Textdomäne angibt, und dann weiteren Zeilen, die den englischen Ausgangstext in die Übersetzung übertragen.
|
||||||
|
|
||||||
Zum Beispiel: `mymod.fr.tr`:
|
Zum Beispiel: `mymod.de.tr`:
|
||||||
|
|
||||||
```
|
```
|
||||||
# textdomain: mymod
|
# textdomain: mymod
|
||||||
Hello everyone!=Bonjour à tous !
|
Hello everyone!=Hallo zusammen!
|
||||||
I like grapefruit=J'aime le pamplemousse
|
I like grapefruit=Ich mag Traubenfrüchte
|
||||||
```
|
```
|
||||||
|
|
||||||
Sie sollten Übersetzungsdateien auf der Grundlage des Quellcodes Ihres Mods/Spiels erstellen, unter Verwendung eines Tools wie [update_translations](https://github.com/minetest-tools/update_translations). Dieses Tool sucht nach `S(` in Ihrem Lua-Code und erstellt automatisch eine Vorlage, die Übersetzer für die Übersetzung in ihre Sprache verwenden können. Es kümmert sich auch darum, die Übersetzungsdateien zu aktualisieren, wenn sich Ihr Quelltext ändert.
|
Sie sollten Übersetzungsdateien auf der Grundlage des Quellcodes Ihres Mods/Spiels erstellen, unter Verwendung eines Tools wie [update_translations 🇬🇧](https://github.com/minetest-tools/update_translations). Dieses Tool sucht nach `S(` in Ihrem Lua-Code und erstellt automatisch eine Vorlage, die Übersetzer für die Übersetzung in ihre Sprache verwenden können. Es kümmert sich auch darum, die Übersetzungsdateien zu aktualisieren, wenn sich Ihr Quelltext ändert.
|
||||||
|
|
||||||
Sie sollten immer wörtlichen Text (`"`) in S einfügen, anstatt eine Variable zu verwenden,
|
Sie sollten immer wörtlichen Text (`"`) in S einfügen, anstatt eine Variable zu verwenden,
|
||||||
da dies den Werkzeugen hilft, Übersetzungen zu finden.
|
da dies den Werkzeugen hilft, Übersetzungen zu finden.
|
||||||
@ -104,7 +104,7 @@ end)
|
|||||||
|
|
||||||
Wenn Sie ein wörtliches `@` in Ihre Übersetzung einfügen wollen, müssen Sie die Escape-Schreibweise verwenden, indem Sie `@@` schreiben.
|
Wenn Sie ein wörtliches `@` in Ihre Übersetzung einfügen wollen, müssen Sie die Escape-Schreibweise verwenden, indem Sie `@@` schreiben.
|
||||||
|
|
||||||
Sie sollten die Verkettung *innerhalb* eines Satzes vermeiden, aber es wird empfohlen, dass mehrere Sätze durch Konkatenation zu verbinden. Dies hilft den Übersetzern, weil Zeichenketten kleiner gehalten sind.
|
Sie sollten die Konkatenation *innerhalb* eines Satzes vermeiden, aber es wird empfohlen, mehrere Sätze durch Konkatenation zu verbinden. Dies hilft den Übersetzern, weil Zeichenketten kleiner gehalten sind.
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
S("Hello @1!", player_name) .. " " .. S("You have @1 new messages.", #msgs)
|
S("Hello @1!", player_name) .. " " .. S("You have @1 new messages.", #msgs)
|
||||||
@ -113,15 +113,17 @@ S("Hello @1!", player_name) .. " " .. S("You have @1 new messages.", #msgs)
|
|||||||
|
|
||||||
## Beste Verfahren und verbreitete Unwahrheiten über die Übersetzung <a name="verfahren"></a>
|
## Beste Verfahren und verbreitete Unwahrheiten über die Übersetzung <a name="verfahren"></a>
|
||||||
|
|
||||||
* Vermeiden Sie die Verkettung von Text und verwenden Sie stattdessen Formatierungsargumente. Dies gibt Übersetzer die volle Kontrolle über die Änderung der Reihenfolge der Dinge.
|
* Vermeiden Sie die Konkatenation von Text und verwenden Sie stattdessen Formatierungsargumente.
|
||||||
|
Dies gibt den Übersetzern die volle Kontrolle über die Änderung der Reihenfolge.
|
||||||
* Erstellen Sie Übersetzungsdateien automatisch, indem Sie
|
* Erstellen Sie Übersetzungsdateien automatisch, indem Sie
|
||||||
[update_translations](https://github.com/minetest-tools/update_translations) verwenden.
|
[update_translations 🇬🇧](https://github.com/minetest-tools/update_translations) verwenden.
|
||||||
* Es ist üblich, dass Variablen den umgebenden Text verändern, zum Beispiel durch
|
* Es ist üblich, dass Variablen den umgebenden Text verändern, zum Beispiel durch
|
||||||
Geschlecht und Pluralisierung. Dies ist oft schwer zu handhaben, daher wird
|
Geschlecht und Pluralisierung. Dies ist oft schwer zu behandeln, daher wird
|
||||||
häufig mit geschlechtsneutralen Formulierungen umgangen.
|
häufig mit geschlechtsneutralen Formulierungen umgangen.
|
||||||
* Übersetzungen können viel länger oder viel kleiner als der englische Text sein. Stellen Sie
|
* Übersetzungen können viel länger oder viel kleiner als der englische Text sein. Stellen Sie
|
||||||
sicher, dass Sie viel Platz lassen.
|
sicher, dass Sie viel Platz lassen.
|
||||||
* In anderen Sprachen werden Zahlen möglicherweise anders geschrieben, zum Beispiel mit Kommas als Dezimalkomma. `1.000,23`, `1'000'000,32`
|
* In anderen Sprachen werden Zahlen möglicherweise anders geschrieben, zum Beispiel
|
||||||
|
mit Kommas als Dezimalkomma(also wie im Deutschen). `1.000,23`, `1'000'000,32`
|
||||||
* Gehen Sie nicht davon aus, dass andere Sprachen die Großschreibung auf die gleiche Weise verwenden.
|
* Gehen Sie nicht davon aus, dass andere Sprachen die Großschreibung auf die gleiche Weise verwenden.
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ child = Kind
|
|||||||
client = Client
|
client = Client
|
||||||
Cohesion = Kohäsion
|
Cohesion = Kohäsion
|
||||||
Command = Befehl
|
Command = Befehl
|
||||||
|
concatenation = Konkatenation
|
||||||
Context = Context
|
Context = Context
|
||||||
Cubic Nodes = Würfelförmiger Block
|
Cubic Nodes = Würfelförmiger Block
|
||||||
craft slots = Handwerksplätze
|
craft slots = Handwerksplätze
|
||||||
@ -122,9 +123,11 @@ small data = kleine Daten
|
|||||||
sneak elevators = Schleichfahrstühle
|
sneak elevators = Schleichfahrstühle
|
||||||
sneak glitch = sneak glitch
|
sneak glitch = sneak glitch
|
||||||
Stack = Stack
|
Stack = Stack
|
||||||
|
string = Zeichenkette
|
||||||
storage = Storage
|
storage = Storage
|
||||||
Subcommand = Unterbefehl
|
Subcommand = Unterbefehl
|
||||||
table = Tabelle
|
table = Tabelle
|
||||||
|
textdomain = Textdomäne
|
||||||
tile = Kachel
|
tile = Kachel
|
||||||
tiles = Kacheln
|
tiles = Kacheln
|
||||||
timer = timer
|
timer = timer
|
||||||
|
Loading…
x
Reference in New Issue
Block a user