Modello per citazioni

Risorse linguistiche di varia natura

Moderatore: Cruscanti

Intervieni
Avatara utente
Millermann
Interventi: 1523
Iscritto in data: ven, 26 giu 2015 19:21
Località: Riviera dei Cedri

Modello per citazioni

Intervento di Millermann »

Lorenzo Federici ha scritto: ven, 05 apr 2024 15:03 Lascio ai revisori più esperti l'onore e l'onere di controllare il codice e snellirlo, anche perché soltanto per convertire il numero del volume in numero romano ci sono 25 condizioni del tipo «se vol è 1, scrivi I; altrimenti, se vol è 2, scrivi II; altrimenti, se vol è 3, scrivi III; [...]; altrimenti, se vol è 25, scrivi XXV; altrimenti, non scrivere niente».
Chiedo scusa se m'intrometto per un fuori tema prettamente tecnico: non ho alcuna esperienza di come si scrivano i modelli per la guichipedia, ma se sono in un linguaggio tipo JavaScript, perché fare 25 controlli di tipo se? Basterebbe forse dichiarare un vettore di 25 elementi (stringhe di testo) e poi prendere direttamente quello desiderato. :?

Piú o meno con istruzioni di questo tipo:

Codice: Seleziona tutto

const num_rom_25 = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XVIII", "XIX", "XX", "XXI", "XXII", "XXIII", "XXIV", "XXV"];

	let s = '';

	if ((vol > 0) && (vol < 26)) {
		s = num_rom_25[vol - 1];
	}

document.write(s);
È realizzabile? Chiedo ancora scusa se non va bene: sono non soltanto arrugginito con la programmazione, ma anche, come dicevo, digiuno di quella qui usata. Il mio vorrebbe essere soltanto un suggerimento per evitare di fare "impazzire" l'eventuale revisore. :P
In Italia, dotta, Foro fatto dai latini
Avatara utente
Lorenzo Federici
Interventi: 826
Iscritto in data: sab, 27 ago 2022 16:50
Località: Frosinone

Re: Modello per citazioni

Intervento di Lorenzo Federici »

Millermann ha scritto: ven, 05 apr 2024 16:03 Chiedo scusa se m'intrometto per un fuori tema prettamente tecnico: non ho alcuna esperienza di come si scrivano i modelli per la guichipedia, ma se sono in un linguaggio tipo JavaScript, perché fare 25 controlli di tipo se? Basterebbe forse dichiarare un vettore di 25 elementi (stringhe di testo) e poi prendere direttamente quello desiderato. :?

È realizzabile? Chiedo ancora scusa se non va bene: sono non soltanto arrugginito con la programmazione, ma anche, come dicevo, digiuno di quella qui usata. Il mio vorrebbe essere soltanto un suggerimento per evitare di fare "impazzire" l'eventuale revisore. :P
Di programmazione me ne intendo anche meno, ma poiché nessuno l'aveva già fatto prima in due decenni mi sembrava il caso di farlo. Non saprei dire se sia realizzabile o meno, probabilmente sì, ma non saprei come integrarlo in quello specifico ambiente.

Leggendo il codice di altri modelli e perdendoci un minimo di tempo con lo strumento Copilot di Bing sono riuscito ad arrivare ad avere {{#ifeq:{{{vol}}}|1|I|x}}, dove {{{vol}}} (che corrisponde al volume del GDLI) è la variabile dichiarata dall'utente che usa quel modello in una pagina, 1 è il numero per cui viene riportato I come valore di |vol= (del modello per citare un testo: |vol=IIIvol. III, mentre |volume=IIIIII senza la dicitura davanti) e x è il testo da riportare in caso la condizione non sia soddisfatta, dove si può mettere un altro {{#ifeq:|||}} per continuare il giro fino all'ultimo che sarà {{#ifeq:{{{vol}}}|25|XXV|}}, lasciando vuoto l'ultimo campo, in modo che se qualcuno dovesse scrivere un numero a caso non compreso tra quelli il modello non riempirebbe proprio quel campo.

Sicuramente c'è un modo più semplice di farlo, qualcosa che in JSON sarebbe tipo:

Codice: Seleziona tutto

{
  "1": "I";
  "2": "II";
  "3": "III";
  "4": "IV";
[...]
  "22": "XXII";
  "23": "XXIII";
  "24": "XXIV";
  "25": "XXV"
}
Ma il problema è che le mie conoscenze di logica e programmazione si fermano ai codicini per mettere le parole in corsivo su questo foro e ai pacchetti grafici per Minecraft, in cui con la notazione JSON puoi creare modelli tridimensionali, animazioni e testi personalizzati.
Fuori tema
Piccola curiosità (fuoritema per fuoritema): una volta avevo iniziato a realizzare un pacchetto che sostituiva tutte le parole inglesi con gli equivalenti italiani, quindi il pulsante Invia un feedback diventava Invia riscontro, lo strider (una creatura del gioco) diventava il ramingo e così via. È un progetto che dovrei riprendere, magari con le conoscenze che ho ora di lingua italiana e adattamenti.
Se vuole, qui trova il codice del modello, qui la struttura e qui, nella seconda nota, un esempio di esso.
Avatara utente
Millermann
Interventi: 1523
Iscritto in data: ven, 26 giu 2015 19:21
Località: Riviera dei Cedri

Re: Modello per citazioni

Intervento di Millermann »

La ringrazio per i riferimenti. Ho dato una rapida scorsa alle pagine d'aiuto guichipediane, in particolare a questa, e sto iniziando un po' a raccapezzarmi in questo complicato mondo dei «modelli».

Deve sapere che le mie conoscenze di programmazione sono praticamente ferme ad alcuni linguaggi degli anni Ottanta e Novanta (Pascal e C, poi Delphi e Java), decisamente diversi da quelli attuali. ;) Comunque, da ciò che ho visto, immagino che in questo caso la struttura piú giusta da usare non sia {{#ifeq}}, bensì {{#switch}}.

Codice: Seleziona tutto

{{ #switch: <valore di confronto>
 | <valore1>=<risultato1>
 | <valore2>=<risultato2>
 | ...
 | <valoren>=<risultaton> 
 | #default=<risultato di default>
 }}
In tal modo, il codice del suo modello diverrebbe ben piú leggibile e facile da modificare:

Codice: Seleziona tutto

{{ #switch: <{{{vol}}}>
 | <1>=<I>
 | <2>=<II>
 | ...
 | <25>=<XXV> 
 | #default=<>
 }}
Non sono certo che si debba scrivere esattamente questo, comunque: in particolare ho qualche dubbio sulla necessità delle parentesi graffe attorno a vol (pare che questo «linguaggio» ne sia pieno, tanto da oltrepassare ampiamente i limiti dell'umana comprensione! :lol:).
In Italia, dotta, Foro fatto dai latini
Avatara utente
Lorenzo Federici
Interventi: 826
Iscritto in data: sab, 27 ago 2022 16:50
Località: Frosinone

Re: Modello per citazioni

Intervento di Lorenzo Federici »

Era più facile di quanto sembrasse: guardando sulla stessa pagina in inglese (che, guarda caso, si chiama espressioni condizionali, mentre quella nostrana si chiama funzioni parser :roll:), ci sono degli esempi di come usare questa funzione. Il risultato è questo:

Codice: Seleziona tutto

|vol={{#switch: {{{vol|}}}
 | #default = 
 | 1 = I
 | 2 = II
 | 3 = III
 | 4 = IV
 | 5 = V
 | 6 = VI
 | 7 = VII
 | 8 = VIII
 | 9 = IX
 | 10 = XI
 | 11 = XI
 | 12 = XII
 | 13 = XIII
 | 14 = XIV
 | 15 = XV
 | 16 = XVI
 | 17 = XVII
 | 18 = XVIII
 | 19 = XIX
 | 20 = XX
 | 21 = XXI
 | 22 = XXII
 | 23 = XXIII
 | 24 = XXIV
 | 25 = XV
}}
Rimane il fatto che l'ideatore di questo linguaggio s'è decisamente divertito con le parentesi graffe. :D Grazie mille per l'aiuto, presto vedrò di sistemare anche i vari codici ISBN e le varie date di pubblicazione.
Intervieni

Chi c’è in linea

Utenti presenti in questa sezione: Nessuno e 1 ospite