Skip to content

Commit

Permalink
New Crowdin updates (#115)
Browse files Browse the repository at this point in the history
Co-authored-by: Calum H <[email protected]>
  • Loading branch information
FabricMCBot and IMB11 authored Jun 19, 2024
1 parent 50aee6e commit 7f29336
Show file tree
Hide file tree
Showing 37 changed files with 120 additions and 103 deletions.
4 changes: 2 additions & 2 deletions translated/de_de/develop/codecs.md
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ Wenn der zweite Codec ebenfalls fehlschlägt, wird der Fehler des _zweiten_ Code
Für die Verarbeitung von Maps mit beliebigen Schlüsseln, wie zum Beispiel `HashMap`s, kann `Codec.unboundedMap` verwendet werden. Dies gibt einen `Codec<Map<K, V>>` für einen gegebenen `Codec<K>` und `Codec<V>` zurück. Der resultierende Codec wird zu einem JSON-Objekt serialisiert oder oder ein gleichwertiges Objekt, das für die aktuellen dynamische Ops verfügbar ist.
Aufgrund der Einschränkungen von JSON und NBT muss der verwendete Schlüsselcodec zu einer Zeichenkette serialisiert werden. Dazu gehören auch Codecs für Typen, die selbst keine Strings sind, aber zu ihnen serialisiert werden, wie zum Beispiel `Identifier.CODEC`. Siehe folgendes Beispiel:
Aufgrund der Einschränkungen von JSON und NBT _muss_ der verwendete Schlüsselcodec zu einer Zeichenkette serialisiert werden. Dazu gehören auch Codecs für Typen, die selbst keine Strings sind, aber zu ihnen serialisiert werden, wie zum Beispiel `Identifier.CODEC`. Siehe folgendes Beispiel:
```java
// Erstellen eines Codecs für eine Abbildung von Bezeichnern auf Ganzzahlen
Expand All @@ -245,7 +245,7 @@ Wie du sehen kannst, funktioniert dies, weil `Identifier.CODEC` direkt zu einem
### Wechselseitig konvertierbare Typen
#### xmap
#### `xmap`
Angenommen, wir haben zwei Klassen, die ineinander umgewandelt werden können, aber keine Eltern-Kind-Beziehung haben. Zum Beispiel, eine einfache `BlockPos` und `Vec3d`. Wenn wir einen Codec für eine Richtung haben, können wir mit `Codec#xmap` einen Codec für die andere Richtung erstellen, indem wir eine Konvertierungsfunktion für jede Richtung angeben.
Expand Down
2 changes: 1 addition & 1 deletion translated/de_de/develop/commands/basics.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ Befehlsumleitungen - auch bekannt als Aliase - sind eine Möglichkeit, die Funkt

<br>

### Warum lässt sich mein Code nicht kompilieren?
### Warum kompiliert mein Code nicht?

- Abfangen oder Auslösen einer `CommandSyntaxException` - `CommandSyntaxException` ist keine `RuntimeException`. Wenn du sie auslöst, sollte sie in Methoden ausgelöst werden, die `CommandSyntaxException` in den Methodensignaturen auslösen, oder sie sollte abgefangen werden.
Brigadier wird die checked Exceptions behandeln und die entsprechende Fehlermeldung im Spiel für dich weiterleiten.
Expand Down
8 changes: 8 additions & 0 deletions translated/de_de/navbar_translations.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"title": "Fabric Dokumentation",
"home": "Startseite",
"download": "Herunterladen",
"contribute": "Mitwirken",
"contribute.api": "Fabric API",
"version_switcher": "Version wechseln"
}
6 changes: 3 additions & 3 deletions translated/de_de/players/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,19 @@ Es gibt viele Fragen, die häufig gestellt werden, deshalb haben wir hier eine L

## Allgemeine Fragen

### Welche Minecraft-Versionen werden von Fabric unterstützt?
### Welche Minecraft Versionen werden von Fabric unterstützt?

Offiziell unterstützt Fabric alle Minecraft-Versionen, beginnend mit Snapshot `18w43b` und höher, sowie Vollversionen beginnend mit Version `1.14` und höher.

### Wo kann ich veröffentlichte Mods für Fabric herunterladen?
### Wo kann ich veröffentlichte Fabric-Mods herunterladen?

:::info
Du solltest immer prüfen, ob Mods aus einer vertrauenswürdigen Quelle stammen. Weitere Informationen zum Finden von Mods findest du in dem Leitfaden [Vertrauenswürdige Mods finden](./finding-mods.md).
:::

Die meisten Autoren veröffentlichen ihre Mods auf [Modrinth](https://modrinth.com/mods?g=categories:%27fabric%27) und [CurseForge](https://www.curseforge.com/minecraft/search?class=mc-mods\\&gameVersionTypeId=4), manche laden sie jedoch auch auf ihre persönliche Website oder auf andere Plattformen wie GitHub hoch.

### Wo kann ich vorgefertigte Modpacks finden?
### Wo kann ich vorgemachte Fabric-Modpacks herunterladen?

Du kannst vorgefertigte Fabric-Modpacks auf einer Vielzahl von Plattformen finden, beispielsweise:

Expand Down
15 changes: 8 additions & 7 deletions translated/de_de/sidebar_translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,25 @@
"players.findingMods": "Vertrauenswürdige Mods finden",
"players.installingMods": "Mods installieren",
"players.troubleshooting": "Problembehandlung",
"players.troubleshooting.uploadingLogs": "Logs Hochladen",
"players.troubleshooting.uploadingLogs": "Deine Logs hochladen",
"players.troubleshooting.crashReports": "Absturzberichte",
"players.updatingFabric": "Aktualisieren von Fabric",
"develop.title": "Leitfäden für Entwickler",
"develop.gettingStarted": "Erste Schritte",
"develop.gettingStarted.introduction": "Einführung in Fabric und Modding",
"develop.gettingStarted.devEnvSetup": "Entwicklungsumgebung einrichten",
"develop.gettingStarted.creatingProject": "Erstelle ein Projekt",
"develop.gettingStarted.devEnvSetup": "Einrichten deiner Entwicklungsumgebung",
"develop.gettingStarted.creatingProject": "Ein Projekt erstellen",
"develop.gettingStarted.projectStructure": "Projektstruktur",
"develop.gettingStarted.launchGame": "Das Spiel starten",
"develop.gettingStarted.launchGame": "Starten des Spiels",
"develop.items": "Gegenstände",
"develop.items.potions": "Tränke",
"develop.entities": "Entitäten",
"develop.entities.effects": "Statuseffekte",
"develop.entities.damage-types": "Schadensarten",
"develop.commands": "Befehle",
"develop.commands.basics": "Befehle erstellen",
"develop.commands.arguments": "Befehlsargumente",
"develop.commands.suggestions": "Befehlsvorschläge",
"develop.commands.arguments": "Argumente",
"develop.commands.suggestions": "Vorschläge",
"develop.rendering": "Rendering",
"develop.rendering.basicConcepts": "Grundlegende Rendering-Konzepte",
"develop.rendering.drawContext": "Den Zeichenkontext verwenden",
Expand All @@ -42,5 +42,6 @@
"develop.misc.events": "Events",
"develop.sounds": "Sounds",
"develop.sounds.using-sounds": "SoundEvents abspielen",
"develop.sounds.custom": "Benutzerdefinierte Sounds erstellen"
"develop.sounds.custom": "Benutzerdefinierte Sounds erstellen",
"github.edit": "Diese Seite auf GitHub bearbeiten"
}
20 changes: 10 additions & 10 deletions translated/it_it/develop/codecs.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ JsonElement json = result.resultOrPartial(LOGGER::error).orElseThrow();

// Qui abbiamo il nostro valore json, che dovrebbe corrispondere a `[1, 2, 3]`,
// poiché quello è il formato usato dal codec di BlockPos.
LOGGER.info("BlockPos serializzato: {}", json);
LOGGER.info("Serialized BlockPos: {}", json);

// Ora deserializzeremo nuovamente il JsonElement in un BlockPos
DataResult<BlockPos> result = BlockPos.CODEC.parse(JsonOps.INSTANCE, json);
Expand All @@ -48,7 +48,7 @@ DataResult<BlockPos> result = BlockPos.CODEC.parse(JsonOps.INSTANCE, json);
BlockPos pos = result.resultOrPartial(LOGGER::error).orElseThrow();

// E possiamo notare che abbiamo serializzato e deserializzato il nostro BlockPos con successo!
LOGGER.info("BlockPos deserializzato: {}", pos);
LOGGER.info("Deserialized BlockPos: {}", pos);
```

### Codec Predefiniti
Expand Down Expand Up @@ -107,7 +107,7 @@ Codec<List<BlockPos>> listCodec = BlockPos.CODEC.listOf();

Bisogna sottolineare che i codec creati così verranno sempre deserializzati a un'`ImmutableList`. Se invece ti servisse una lista mutabile, puoi usare [xmap](#tipi-convertibili-mutualmente-e-tu) per convertirla ad una durante la deserializzazione.

### Unire i Codec per Classi simili ai Record
### Unire i Codec per Classi Simili ai Record

Ora che abbiamo codec separati per ciascun attributo, possiamo combinarli a formare un singolo codec per la nostra classe usando un `RecordCodecBuilder`. Questo suppone che la nostra classe abbia un costruttore che contiene ogni attributo che vogliamo serializzare, e che ogni attributo ha un metodo getter corrispondente. Questo lo rende perfetto per essere usato assieme ai record, ma può anche essere usato con classi regolari.

Expand All @@ -122,11 +122,11 @@ public static final Codec<CoolBeansClass> CODEC = RecordCodecBuilder.create(inst
).apply(instance, CoolBeansClass::new));
```

Ogni linea nel gruppo specifica un codec, il nome di un attributo, e un metodo getter. La chiamata a `Codec#fieldOf` è utilizzata per convertire il codec a un [MapCodec](#mapcodec-da-non-confondere-con-codecltmapgt), ed la chiamata a `forGetter` specifica il metodo getter utilizzato per ottenere il valore dell'attributo da un'istanza della classe. Inoltre, la chiamata ad `apply` specifica il costruttore usato per creare nuove istanze. Nota che l'ordine degli attributi nel gruppo dovrebbe essere lo stesso di quello degli parametri nel costruttore.
Ogni linea nel gruppo specifica un codec, il nome di un attributo, e un metodo getter. La chiamata a `Codec#fieldOf` è usata per convertire il codec a un [MapCodec](#mapcodec), e la chiamata a `forGetter` specifica il metodo getter usato per ottenere il valore dell'attributo da un'istanza della classe. Inoltre, la chiamata ad `apply` specifica il costruttore usato per creare nuove istanze. Nota che l'ordine degli attributi nel gruppo dovrebbe essere lo stesso di quello dei parametri nel costruttore.
Puoi anche usare `Codec#optionalFieldOf` in questo contesto per rendere un attributo opzionale, come spiegato nella sezione [Attributi Opzionali](#attributi-opzionali).
### MapCodec, da non confondere con Codec&amp;amp;lt;Map&amp;amp;gt;
### MapCodec, da non confondere con Codec&amp;lt;Map&amp;gt; {#mapcodec}
La chiamata a `Codec#fieldOf` convertirà un `Codec<T>` in un `MapCodec<T>`, che è una variante, ma non una diretta implementazione di `Codec<T>`. I `MapCodec`, come suggerisce il loro nome garantiscono la serializzazione a una mappa chiave-valore, o al suo equivalente nella `DynamicOps` usata. Alcune funzioni ne potrebbero richiedere uno invece di un codec normale.
Expand All @@ -136,7 +136,7 @@ Questo modo particolare di creare un `MapCodec` racchiude sostanzialmente il val
[1, 2, 3]
```

Ma se viene convertito in un `MapCodec<BlockPos>` usando `BlockPos.CODEC.fieldOf("pos")`, avrebbe il seguente aspetto:
Ma quando viene convertito in un `MapCodec<BlockPos>` usando `BlockPos.CODEC.fieldOf("pos")`, esso ha il seguente aspetto:

```json
{
Expand Down Expand Up @@ -183,7 +183,7 @@ Codec<Integer> amountOfFriendsYouHave = Codec.intRange(0, 2);
#### Coppia
`Codec.pair` unisce due codec, `Codec<A>` e `Codec<B>`, in un `Codec<Pair<A, B>>`. Tieni a mente che funziona correttamente soltanto con codec che serializzano a un attributo specifico, come [MapCodec convertiti](#mapcodec-da-non-confondere-con-codecltmapgt) oppure [Codec di Record](#unire-i-codec-per-classi-simili-ai-record).
`Codec.pair` unisce due codec, `Codec<A>` e `Codec<B>`, in un `Codec<Pair<A, B>>`. Tieni a mente che funziona correttamente soltanto con codec che serializzano a un attributo specifico, come [MapCodec convertiti](#mapcodec) oppure [Codec di Record](#unire-i-codec-per-classi-simili-ai-record).
Il codec risultante serializzerà a una mappa contenente gli attributi di entrambi i codec usati.
Per esempio, eseguire questo codice:
Expand Down Expand Up @@ -244,7 +244,7 @@ Come puoi vedere, questo funziona perché `Identifier.CODEC` serializza direttam
### Tipi Convertibili Mutualmente e Tu
#### xmap
#### `xmap`
Immagina di avere due classi che possono essere convertite l'una nell'altra e viceversa, ma che non hanno un legame gerarchico genitore-figlio. Per esempio, un `BlockPos` vanilla e un `Vec3d`. Se avessimo un codec per uno, possiamo usare `Codec#xmap` per creare un codec per l'altro specificando una funzione di conversione per ciascuna direzione.

Expand Down Expand Up @@ -350,15 +350,15 @@ Il nostro nuovo codec serializzerà fagioli a json così, prendendo solo attribu

### Codec Ricorsivi

A volte è utile avere un codec che utilizza _sé stesso_ per decodificare attributi specifici, per esempio quando si gestiscono certe strutture dati ricorsive. Nel codice vanilla, questo è utilizzato per gli oggetti `Text`, che potrebbero contenere altri `Text` come figli. Un codec del genere può essere costruito usando `Codecs#createRecursive`.
A volte è utile avere un codec che utilizza _sé stesso_ per decodificare attributi specifici, per esempio quando si gestiscono certe strutture dati ricorsive. Nel codice vanilla, questo è usato per gli oggetti `Text`, che potrebbero contenere altri `Text` come figli. Un codec del genere può essere costruito usando `Codecs#createRecursive`.

Per esempio, proviamo a serializzare una lista concatenata singolarmente. Questo metodo di rappresentare le liste consiste di una serie di nodi che contengono sia un valore sia un riferimento al nodo successivo nella lista. La lista è poi rappresentata dal suo primo nodo, e per attraversare la lista si segue il prossimo nodo finché non ce ne sono più. Ecco una semplice implementazione di nodi che contengono interi.

```java
public record ListNode(int value, ListNode next) {}
```

Non possiamo costruire un codec per questo come si fa di solito, quale codec utilizzeremmo per l'attributo `next`? Avremmo bisogno di un `Codec<ListNode>`, che è ciò che stiamo costruendo proprio ora! `Codecs#createRecursive` ci permette di fare ciò usando una lambda che sembra magia:
Non possiamo costruire un codec per questo come si fa di solito: quale codec useremmo per l'attributo `next`? Avremmo bisogno di un `Codec<ListNode>`, che è ciò che stiamo costruendo proprio ora! `Codecs#createRecursive` ci permette di fare ciò usando una lambda che sembra magia:
```java
Codec<ListNode> codec = Codecs.createRecursive(
Expand Down
10 changes: 5 additions & 5 deletions translated/it_it/develop/commands/basics.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ authors:
Creare comandi può permettere a uno sviluppatore di mod di aggiungere funzionalità che possono essere usate attraverso un comando. Questo tutorial ti insegnerà come registrare comandi e qual è la struttura generale dei comandi di Brigadier.

:::info
Brigadier è un parser e un dispatcher di comandi scritto da Mojang per Minecraft. È una libreria comandi basata su una gerarchia dove costruisci un albero di comandi e parametri. Brigadier è open-source: https://github.com/Mojang/brigadier
Brigadier è un parser e un dispatcher di comandi scritto da Mojang per Minecraft. È una libreria comandi basata su una gerarchia dove costruisci un albero di comandi e parametri. Brigadier è open source: https://github.com/Mojang/brigadier
:::

## L'interface `Command`
Expand Down Expand Up @@ -51,7 +51,7 @@ Puoi accedere alla sorgente del comando dal contesto del comando chiamando `getS

```java
Command<ServerCommandSource> command = context -> {
ServerCommandSource source = context.getSource();
ServerCommandSource source = context.getSource();
return 0;
};
```
Expand Down Expand Up @@ -128,7 +128,7 @@ I comandi reindirizzati - anche noti come alias - sono un modo di reindirizzare

<br>

### Perché il mio codice non viene compilato?
### Perché il Mio Codice Non Viene Compilato?

- Catturare o lanciare una `CommandSyntaxException` - `CommandSyntaxException` non è una `RuntimeException`. Se la lanci, dovresti farlo in metodi che lanciano una `CommandSyntaxException` nelle firme dei metodi, oppure dovresti catturarla.
Brigadier gestirà le eccezioni controllate e ti inoltrerà il messaggio d'errore effettivo nel gioco.
Expand All @@ -140,7 +140,7 @@ I comandi reindirizzati - anche noti come alias - sono un modo di reindirizzare

- Un Command dovrebbe restituire un intero - Quando registri comandi, il metodo `executes()` accetta un oggetto `Command`, che è solitamente una lambda. La lambda dovrebbe restituire un intero, anziché altri tipi.

### Posso registrare comandi al runtime?
### Posso Registrare Comandi al Runtime?

::: warning
You can do this, but it is not recommended. You would get the `CommandManager` from the server and add anything commands
Expand All @@ -151,7 +151,7 @@ Dopo averlo fatto, devi nuovamente inviare l'albero di comandi a ogni giocatore
Questo è necessario perché il client mantiene una cache locale dell'albero dei comandi che riceve durante il login (o quando i pacchetti per operatori vengono mandati) per suggerimenti locali e messaggi di errore ricchi.
:::

### Posso de-registrare comandi al runtime?
### Posso De-Registrare Comandi al Runtime?

::: warning
You can also do this, however, it is much less stable than registering commands at runtime and could cause unwanted side
Expand Down
4 changes: 2 additions & 2 deletions translated/it_it/develop/commands/suggestions.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: Suggerimenti di Comandi
title: Suggerimenti dei Comandi
description: Impara come suggerire i valori per gli argomenti dei comandi agli utenti.
authors:
- IMB11
---

# Suggerimenti di Comandi
# Suggerimenti dei Comandi

Minecraft ha un potente sistema di suggerimento comandi che viene usato in molti posti, come nel comando `/give`. Questo sistema ti permette di suggerire valori per argomenti dei comandi all'utente, da cui possono poi selezionare - è un ottimo modo per rendere i tuoi comandi più user-friendly ed ergonomici.

Expand Down
12 changes: 6 additions & 6 deletions translated/it_it/develop/getting-started/creating-a-project.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
title: Creare Un Progetto
title: Creare un Progetto
description: Una guida passo per passo su come creare un nuovo progetto per una mod con il generatore di mod modello di Fabric.
authors:
- IMB11
---

# Creare Un Progetto
# Creare un Progetto

Fabric offre un modo facile per creare un nuovo progetto per una mod attraverso il Generatore di Mod Modello di Fabric - se vuoi, puoi creare un nuovo progetto manualmente usando la repository della mod esempio, dovresti riferirti alla sezione [Creazione Manuale del Progetto](#creazione-manuale-del-progetto).

## Generare Un Progetto
## Generare un Progetto

Puoi usare il [Generatore di Mod Modello di Fabric](https://fabricmc.net/develop/template/) per generare un nuovo progetto per la tua mod - dovresti compilare i campi richiesti, come il nome del package e quello della mod, e la versione di Minecraft per la quale vuoi sviluppare.

Expand All @@ -25,7 +25,7 @@ Dovresti estrarre questo file zip a una posizione che scegli tu, e poi aprire la

![Prompt Apri Progetto](/assets/develop/getting-started/open-project.png)

## Importare Il Progetto
## Importare il Progetto

Non appena hai aperto il progetto in IntelliJ IDEA, l'ambiente di sviluppo dovrebbe automaticamente caricare la configurazione Gradle del progetto ed effettuare le operazioni di setup necessarie.

Expand Down Expand Up @@ -57,12 +57,12 @@ Quando avrai aperto il progetto in IntelliJ IDEA, esso dovrebbe automaticamente

Di nuovo, come già detto in precedenza, se ricevi una notifica riguardo a uno script di build Gradle, dovresti cliccare il pulsante `Importa Progetto Gradle`.

### Modificare Il Template
### Modificare il Template

Una volta che il progetto sarà importato, dovresti modificare i dettagli del progetto per corrispondere a quelli della tua mod:

- Modifica il file `gradle.properties` del tuo progetto per cambiare le proprietà `maven_group` e `archive_base_name` e farle corrispondere con i dettagli della tua mod.
- Modifica il file `fabric.mod.json` per cambiare le proprietà `id`, `name`, e `descrizione` per farle corrispondere ai dettagli della tua mod.
- Assicurati di aggiornare le versioni di Minecraft, i mapping, il loader e il loom - tutte queste possono essere trovate attraverso https://fabricmc.net/develop/ - per farle corrispondere alle versioni che vorresti prendere di mira.
- Assicurati di aggiornare le versioni di Minecraft, i mapping, il Loader e il Loom - tutte queste possono essere trovate attraverso https://fabricmc.net/develop/ - per farle corrispondere alle versioni che vorresti prendere di mira.

Ovviamente puoi cambiare il nome del package e la classe principale della mod per farli corrispondere ai dettagli della tua mod.
Loading

0 comments on commit 7f29336

Please sign in to comment.