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

docs: Added Getting-Started-IT (Italian language) #412

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
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
207 changes: 207 additions & 0 deletions .github/documentation/localization/GettingStarted-IT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
# Exiled Low-Level Documentation
**(Scritto da [KadeDev](https://github.com/KadeDev) per la community) (tradotto da [Inzi](https://github.com/InziDeveloperMode))**

## Getting Started
### Intro
Exiled è un'API di basso livello, il che significa che è possibile richiamare funzioni dal gioco senza bisogno di un mucchio di API bloatware.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"senza bisogno di un mucchio di API bloatware" => "senza dover ricorrere a un insieme di API pesanti e ridondanti" seems for me a more correct approach to the language and not to use words that people could not know or have a double meaning


Ciò consente di aggiornare Exiled con estrema facilità e di aggiornarlo anche prima che l'aggiornamento arrivi al gioco.

Inoltre, consente agli sviluppatori di plugin di non dover modificare il proprio codice dopo ogni aggiornamento di Exiled o di SCP:SL. In effetti, non devono nemmeno aggiornare i loro plugin!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Inoltre, consente agli sviluppatori di plugin di non dover modificare il proprio codice dopo ogni aggiornamento di Exiled o di SCP:SL. In effetti, non devono nemmeno aggiornare i loro plugin!" => "Inoltre, gli sviluppatori di plugin non devono modificare il proprio codice dopo ogni aggiornamento di Exiled o di SCP:SL. Anzi, in molti casi, non è nemmeno necessario aggiornare i loro plugin!", changed the phrase to look more professional and removed some redundant use of connectors


Questa documentazione vi mostrerà le basi della creazione di un plugin per Exiled. Da qui potrete iniziare a mostrare al mondo quali cose creative potete realizzare con questo framework!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Questa documentazione vi guiderà attraverso le basi della creazione di un plugin per Exiled." => "Questa documentazione vi guiderà attraverso le basi della creazione di un plugin per Exiled." or other forms that could match a more appropriate language


### Plugin di esempio
Il [Plugin di esempio](https://github.com/ExMod-Team/EXILED/tree/master/EXILED/Exiled.Example) è un semplice plugin che mostra gli eventi e come realizzarli correttamente. L'uso di questo esempio vi aiuterà a imparare a usare correttamente Exiled. Ci sono un paio di cose importanti in questo plugin, e ne parliamo

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Ci sono un paio di cose importanti" => "Ci sono alcuni aspetti importanti" or other forms that could match a more appropriate language

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"realizzarli" => "implementarli" this could be a better translation from the english to italian

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"e ne parliamo" => "di cui parleremo" or other forms that could match a more formal usage of the language to match the english counterpart

#### On Enable + On Disable Dynamic Updates
Exiled è un framework che ha un comando **Reload** che può essere usato per ricaricare tutti i plugin e ottenerne di nuovi. Ciò significa che i plugin devono essere **aggiornabili dinamicamente**. Questo significa che ogni variabile, evento, coroutine, ecc. *deve* essere assegnata quando è abilitata e annullata quando è disabilitata. Il metodo **On Enable** dovrebbe abilitare tutto e il metodo **On Disable** dovrebbe disabilitare tutto. Ma ci si potrebbe chiedere: e **On Reload**? Questo void ha lo scopo di trasportare le variabili statiche, in quanto ogni costante statica creata non sarà cancellata. Quindi si potrebbe fare qualcosa del genere:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"che ha un comando Reload" => "che include il comando Reload" sounds more professional

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"che può essere usato per ricaricare tutti i plugin e ottenerne di nuovi" => "il quale permette di ricaricare tutti i plugin e caricarne di nuovi" sounds more professional and overall sounds better in italian for me and translated better from english to italian.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Questo significa che" => "Ciò significa che" more formal

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"ogni variabile, evento, coroutine, ecc. deve essere assegnata quando è abilitata e annullata quando è disabilitata" => "ogni variabile, evento, coroutine, ecc. deve essere inizializzata quando il plugin viene abilitato e annullata quando viene disabilitato" in the context of developing "Assegnare" is incorrect a better approach to a technical level of the subject is "inizializzata", and added some small clarification for the dumb people :3

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Il metodo On Enable dovrebbe abilitare tutto e il metodo On Disable dovrebbe disabilitare tutto." => "Il metodo OnEnable dovrebbe attivare tutto, mentre il metodo OnDisable dovrebbe disattivare tutto.", attached the OnEnable and OnDisabled, made a formal approach of the usage of enable and disable and removed that connector not really needed

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Ma ci si potrebbe chiedere: e On Reload?" => "Ma sorge una domanda: e OnReload?"
better usage of the language and a formal way of posing questions

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Questo void ha lo scopo di trasportare le variabili statiche" => "Questo metodo ha lo scopo di gestire le variabili statiche"
Usage of again a more technical usage of the language and changed to a more better sounding and translation of "managing variables"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"in quanto ogni costante statica creata non sarà cancellata" => "poiché le costanti statiche non vengono rimosse durante il reload"

More natural sounding, redundancy removed and better clarified.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Quindi si potrebbe fare qualcosa del genere" => "Pertanto, si potrebbe implementare qualcosa di simile:"

Sounds wrong for me the usage and so i made it sound more professional and less like a "uso di lingua di uno scappato di casa"

```csharp
public static int StaticCount = 0;
public int counter = 0;

public override void OnEnable()
{
counter = StaticCount;
counter++;
Info(counter);
}

public override void OnDisable()
{
counter++;
Info(counter);
}

public override void OnReload()
{
StaticCount = counter;
}
```

E l'output sarebbe:
```bash
# On enable fires

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Traduci.

1
# Reload command

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Traduci

# On Disable fires

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Traduci

2
# On Reload fires

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Traduci

# On Enable fires again

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Traduci

3

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cazzo ci fa sto 3 qui?


```
(Ovviamente escludendo tutto ciò che non sia le risposte effettive).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"che non sia le risposte effettive" => "che non riguarda le risposte effettive"
It seems ok but i don't think that "sia" (Connector) is needed

Senza questo, si sarebbe semplicemente passati a 1 e poi di nuovo a 2.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Si sarebbe semplicemente passati" => "Si passerebbe semplicemente"

Ahia inzi. Ho un italiano di merda ma non penso che questo suona bene :3


### Giocatori + Eventi
Ora che abbiamo finito di rendere i nostri plugin **dinamicamente aggiornabili** possiamo concentrarci sul tentativo di interagire con i giocatori con gli eventi!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Ora che abbiamo finito di rendere" => "Ora che abbiamo reso"
Sounds more professional and clean

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"possiamo concentrarci sul tentativo di interagire con i giocatori con gli eventi" => "possiamo concentrarci sull'interazione con i giocatori tramite gli eventi"

More clear sounding and better sounds for me


Un evento è piuttosto interessante: permette a SCP:SL di comunicare con Exiled e poi con Exiled a tutti i plugin!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Un evento è piuttosto interessante" => "Gli eventi sono particolarmente interessanti"
More professional and using plural (we don't have one event but multiple)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"permette a SCP:SL di comunicare con Exiled e poi con Exiled a tutti i plugin" => "permettono a SCP:SL di comunicare con Exiled, che a sua volta trasmette le informazioni a tutti i plugin"

More clear.


Potete ascoltare gli eventi per il vostro plugin aggiungendo questo in cima al file sorgente del vostro plugin principale:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Potete ascoltare gli eventi per il vostro plugin aggiungendo questo in cima al file sorgente del vostro plugin principale" => "Per ascoltare gli eventi nel vostro plugin, aggiungete questa riga all'inizio del file sorgente del vostro plugin principale"

More clear.


```csharp
using EXILED;
```
E poi si deve fare riferimento al file `Exiled.Events.dll` per ottenere effettivamente gli eventi.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"E poi si deve fare riferimento" => "Successivamente, è necessario fare riferimento"

Sounds wrong for me the usage and so i made it sound more professional and less like a "uso di lingua di uno scappato di casa"


Per fare riferimento a un evento, utilizzeremo una nuova classe creata, chiamata “EventHandlers”. Il gestore di eventi non è fornito di default; è necessario crearlo.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Per fare riferimento a un evento, utilizzeremo una nuova classe creata, chiamata 'EventHandlers'" => "Per gestire un evento, creeremo una nuova classe chiamata EventHandlers."

Better translation from english to italian is managing in this case and removed some redundancy

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Il gestore di eventi non è fornito di default; è necessario crearlo." => "Il gestore di eventi non è fornito di default, quindi deve essere creato manualmente."

More natural sounding from english to italian :3



Possiamo fare riferimento ad esso nelle void OnEnable e OnDisable in questo modo:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Possiamo fare riferimento ad esso nelle void OnEnable e OnDisable in questo modo" => "Possiamo quindi fare riferimento a questa classe all'interno dei metodi OnEnable e OnDisable nel seguente modo:"

More clear and use the more technical side of the language


`MainClass.cs`
```csharp
using Player = Exiled.Events.Handlers.Player;

public EventHandlers EventHandler;

public override OnEnable()
{
// Registriamo la classe del gestore di eventi. E aggiungere l'evento,
// all'ascoltatore di eventi EXILED_Events, in modo da ricevere l'evento.
EventHandler = new EventHandlers();
Player.Verified += EventHandler.PlayerVerified;
}

public override OnDisable()
{
// Rendiamolo aggiornabile dinamicamente.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Rendiamolo aggiornabile dinamicamente" => "Rendiamolo dinamicamente aggiornabile"

More natural sounding.

// Lo facciamo rimuovendo l'ascoltatore dell'evento e poi annullando il gestore dell'evento.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Lo facciamo rimuovendo" => "Per farlo, rimuoviamo"

Idk sounds better like this, idk why its too long and doesn't sound right for my brain

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"e poi annullando" => "e poi annulliamo"

Ahia inzi, i verbi cazzo. il tempo verbale non è Gerundio ma Presente dato dal rimuovendo :3

// Questo processo deve essere ripetuto per ogni evento.
Player.Verified -= EventHandler.PlayerVerified;
EventHandler = null;
}
```


E nella classe EventHandlers si fa:

```csharp
public class EventHandlers
{
public void PlayerVerified(VerifiedEventArgs ev)
{

}
}
```
Ora abbiamo preso un evento player verified, che si attiva quando un giocatore viene autenticato dopo essersi unito al server! È importante notare che ogni evento ha diversi argomenti, e ogni tipo di argomento ha diverse proprietà associate.
Copy link

@NotZer0Two NotZer0Two Feb 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"preso un evento player verified" => "intercettato l'evento PlayerVerified".

Allora se dobbiamo farlo italiano, la mia sarebbe corretta per significato ma cazzo stiamo lavorando per un progetto di scappati di casa.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"ogni evento ha diversi argomenti, e ogni tipo di argomento ha diverse proprietà associate" => "ogni evento dispone di diversi argomenti e che ogni tipo di argomento ha proprietà specifiche"

More formal and clarified


EXILED fornisce già una funzione di broadcast, quindi usiamola nel nostro evento:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"quindi usiamola nel nostro evento" => "quindi utilizziamola nel nostro evento"

Sounds better and probably more appropriate from the english translation


```csharp
public class EventHandlers
{
public void PlayerVerified(VerifiedEventArgs ev)
{
ev.Player.Broadcast(5, "<color=lime>Benvenuti nel mio server cool!</color>");
}
}
```

Come detto in precedenza, ogni evento ha argomenti diversi. Di seguito è riportato un evento diverso che disattiva i tesla gate per i giocatori della NineTailedFox.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"un evento diverso" => "un esempio di un evento"

Bro your providing another event that's nothing different from the other is just another example.


`MainClass.cs`
```csharp
using Player = Exiled.Events.Handlers.Player;

public EventHandlers EventHandler;

public override OnEnable()
{
EventHandler = new EventHandlers();
Player.TriggeringTesla += EventHandler.TriggeringTesla;
}

public override OnDisable()
{
// Non dimenticate che gli eventi devono essere disconnessi e annullati con il metodo disable.
Player.TriggeringTesla -= EventHandler.TriggeringTesla;
EventHandler = null;
}
```

E nella classe EventHandlers.

`EventHandlers.cs`
```csharp
public class EventHandlers
{
public void TriggeringTesla(TriggeringTeslaEventArgs ev)
{
// Disattivare l'evento per i giocatori del personale della fondazione.
// Questo può essere fatto controllando il lato del giocatore.
if (ev.Player.Role.Side == Side.Mtf) {
// Disattiva il trigger Tesla impostando ev.IsTriggerable su false.
// I giocatori che faranno parte della MTF non attiveranno più i Tesla Gate.
ev.IsTriggerable = false;
}
}
}
```


### Configs
La maggior parte dei plugin di Exiled contiene delle configurazioni. Le configurazioni permettono ai manutentori del server di modificare i plugin a loro piacimento, anche se questo è limitato alla configurazione fornita dallo sviluppatore del plugin.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"contiene delle configurazioni" => "include delle configurazioni"

Ok so its not totally your fault but someone didn't put "includes" but "contains" so i understand why you translated in "contiene" but i find in this case to be better to use "includes" than "contains"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"modificare i plugin a loro piacimento" => "personalizzare i plugin a loro piacimento"

Same as before, i think this sounds better in italian that the literal translation

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"anche se questo è limitato alla configurazione fornita dallo sviluppatore del plugin" => "sebbene ciò sia limitato alle opzioni fornite dallo sviluppatore del plugin"

I think it sounds more professional and used a different term for "config" that could be translated as both "config" and "option" in italian depending the context


Per prima cosa, creare una classe `config.cs` e cambiare l'ereditarietà dei plugin da `Plugin<>` a `Plugin<Config>`.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"cambiare l'ereditarietà dei plugin" => "modifica l'ereditarietà del plugin"

Sounds better ngl


Ora è necessario fare in modo che la configurazione erediti da `IConfig`. Dopo aver ereditato da `IConfig`, aggiungere alla classe una proprietà intitolata `IsEnabled` e `Debug`. La classe Config dovrebbe ora avere questo aspetto:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"aggiungere alla classe una proprietà intitolata" => "aggiungi alla classe due proprietà"

Specified the 2 types of proprieties needed :3


```csharp
public class Config : IConfig
{
public bool IsEnabled { get; set; }
public bool Debug { get; set; }
}
```

È possibile aggiungere qualsiasi opzione di configurazione e fare riferimento ad essa in questo modo:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"in questo modo" => "nel seguente modo"

idk it sounds more professional


`Config.cs`
```csharp
public class Config : IConfig
{
public bool IsEnabled { get; set; }
public bool Debug { get; set; }
public string TextThatINeed { get; set; } = "this is the default";
}
```

`MainClass.cs`
```csharp
public override OnEnabled()
{
Log.Info(Config.TextThatINeed);
}
```

E poi congratulazioni! Avete creato il vostro primo plugin Exiled! È importante notare che tutti i plugin **devono** avere una configurazione IsEnabled. Questa configurazione consente ai proprietari del server di attivare e disattivare il plugin a loro piacimento. La configurazione IsEnabled sarà letta dal Loader di Exiled (il vostro plugin non ha bisogno di controllare se `IsEnabled == true` o meno).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"E poi congratulazioni!" => "E infine, congratulazioni!"

Sounds more professional and natural

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"consente ai proprietari del server di attivare e disattivare il plugin a loro piacimento" => "permette ai proprietari del server di attivare o disattivare il plugin a loro piacimento"

Better use of the language from "consente" to "permette"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"La configurazione IsEnabled sarà letta" => "La configurazione IsEnabled verrà letta"

More formal way to say the same thing

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"controllare" => "verificare"

Sounds more professional again something that is missing from all of this doc


### E ora?
Se volete maggiori informazioni dovreste unirvi al nostro [discord!](https://discord.gg/PyUkWTg)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Se volete maggiori informazioni dovreste unirvi" => "Se desiderate maggiori informazioni, vi invitiamo a unirvi"

Sounds more professional, shit someone needs to do a count of how many times i said "Sounds more professional"


Abbiamo un canale #resources che potreste trovare utile, così come collaboratori di Exiled e sviluppatori di plugin che sarebbero disposti ad assistervi nella creazione dei vostri plugin.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"così come collaboratori di Exiled e sviluppatori di plugin" => "insieme a collaboratori di Exiled e sviluppatori di plugin"

Idk sounds better and probably better translated from the original

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"che sarebbero disposti ad assistervi" => "disposti ad assistervi"

This is real bloatware not the "API bloatware"


Oppure puoi leggere tutti gli eventi che abbiamo! Se vuoi darci un'occhiata [qui!](https://github.com/ExMod-Team/EXILED/tree/master/EXILED/Exiled.Events/EventArgs)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Oppure puoi leggere tutti gli eventi che abbiamo!" => "In alternativa, potete esplorare tutti gli eventi che abbiamo!"

Yea sounds better

2 changes: 1 addition & 1 deletion .github/documentation/localization/README-IT.md
Original file line number Diff line number Diff line change
@@ -81,7 +81,7 @@ Tuttavia, alcuni plugin possono ottenere le loro impostazioni di configurazione

# Per gli Sviluppatori

Se desideri creare un Plugin per EXILED, è piuttosto semplice farlo. Se vuoi un tutorial più dettagliato, visita la nostra [Pagina di Inizio](GettingStarted.md).
Se desideri creare un Plugin per EXILED, è piuttosto semplice farlo. Se vuoi un tutorial più dettagliato, visita la nostra [Pagina di Inizio](GettingStarted-IT.md).

Per tutorial più completi e costantemente aggiornati, consulta [il sito web di EXILED](https://exmod-team.github.io/EXILED/).