= Alan Italian Tristano Ajmone tajmone@gmail.com 2019-08-22 // tag::AlanRevInfo[] :AlanItaV: 22 :AlanSDK: 3.0beta6 build 2022 :revnumber: 0.{AlanItaV}-Alpha // end::AlanRevInfo[] :lang: it // TOC Settings: :toclevels: 5 // GitLab setting to show TOC after Preamble :toc: macro // TOC ... HTML Backend Hack to show TOC on the Left ifdef::backend-html5[] :toc: left endif::[] // TOC ... GitHub Hack to show TOC after Preamble (required) ifdef::env-github[] :toc: macro endif::[] // Sections Numbering: :sectnums!: :sectnumlevels: 2 // Cross References: :xrefstyle: short :section-refsig: Sect. // Misc Settings: :experimental: true :icons: font :linkattrs: true :reproducible: true :sectanchors: // GitHub Settings for Admonitions Icons: ifdef::env-github[] :caution-caption: :fire: :important-caption: :heavy_exclamation_mark: :note-caption: :information_source: :tip-caption: :bulb: :warning-caption: :warning: endif::[] // ============================================================================= // ATTRIBUTI ASCIIDOC ITALIANI // ============================================================================= // Italian translation, courtesy of Marco Ciampa ciampix@libero.it ifndef::env-github[] :caution-caption: Attenzione :important-caption: Importante :note-caption: Nota :tip-caption: Suggerimento :warning-caption: Attenzione endif::[] ifdef::listing-caption[:listing-caption: Elenco] ifdef::preface-title[:preface-title: Prefazione] :example-caption: Esempio :figure-caption: Figura :last-update-label: Ultimo aggiornamento :table-caption: Tabella :toc-title: Indice :untitled-label: Senza titolo :version-label: Versione
// ============================================================================== // RELATIVE PATHS ATTRIBUTES // ============================================================================== // Some attributes to handle relative paths so that when regions of this file // are included in other docs the paths may be adjusted.
:path2_docs_src: docs_src/ // ============================================================================= // CUSTOM ATTRIBUTES FOR SUBSTITUTIONS // =============================================================================
// Donazione PayPal
// tag::link_paypal[] :PyaPal_img: {path2_docs_src}donazione-paypal.gif :PyaPal_url: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=55GFRM9EBF3SU&source=url :PulsanteDonazionePayPal: pass:a[image:{PyaPal_img}[Pulsante donazione PayPal,float=right, link={PyaPal_url}, title="Sostieni il progetto Alan Italian con una donazione..."]] // end::link_paypal[]
// Cartelle del progetto (link testuali) :avventura_dimostrativa: link:./demo/README.md[avventura dimostrativa,title="Vai alla cartella dell'avventura dimostrativa"]
// Cartelle del progetto (inline code)
:alanlib_ita: pass:q[link:./alanlib_ita[/alanlib_ita/
,title="Vai alla cartella"]]
:alanlib: pass:q[link:./alanlib[/alanlib/
,title="Vai alla cartella"]]
:2_1: pass:q[link:./alanlib/2.1/[/2.1/
,title="Vai alla cartella"]]
:demo: pass:q[link:./demo[/demo/
,title="Vai alla cartella"]]
:docs: pass:q[link:./docs[/docs/
,title="Vai alla cartella"]]
:docs_src: pass:q[link:./docs_src[/docs_src/
,title="Vai alla cartella"]]
:ricettario: pass:q[link:./ricettario[/ricettario/
,title="Vai alla cartella"]]
:test: pass:q[link:./test[/test/
,title="Vai alla cartella"]]
:docs_src_haml: pass:q[link:./docs_src/haml/[/docs_src/haml/
,title="Vai alla cartella"]]
// File di progetto (inline code)
:helpers_scss: pass:q[link:./docs_src/sass/_helpers.scss[docs_src/sass/_helpers.scss
^,title="Vedi sorgente"]]
:highlight-treeprocessor_mod: pass:q[link:./docs_src/adoc/highlight-treeprocessor_mod.rb[docs_src/adoc/highlight-treeprocessor_mod.rb
^,title="Vedi sorgente"]]
:lib_definizioni_html: pass:q[link:./docs/lib_definizioni.html[docs/lib_definizioni.html
^,title="Apri il file HTML"]]
:lib_italian: pass:q[link:./alanlib_ita/lib_italian.i[lib_italian.i
^,title="Vedi file sorgente"]]
:lib_verbi_html: pass:q[link:./docs/lib_verbi.html[docs/lib_verbi.html
^,title="Apri il file HTML"]]
:LICENSE: pass:q[link:./LICENSE[LICENSE
^,title="Leggi il testo completo della Artistic License 2.0"]]
:README_EN: pass:q[link:./README_EN.md[README_EN.md
^,title="View English README"]]
// Risorse per aggiornamento info versione:
:ver_sh: pass:q[link:./ver.sh[ver.sh
,title="Vedi sorgente"]]
:verbump_sh: pass:q[link:./verbump.sh[verbump.sh
,title="Vedi sorgente"]]
:VERSIONING: pass:q[link:./VERSIONING.md[VERSIONING.md
,title="Vedi sorgente"]]
:AGGIORNA_TUTTO: pass:q[link:./AGGIORNA_TUTTO.bat[AGGIORNA_TUTTO.bat
,title="Vedi sorgente"]]
// HTML Live Links
:lib_verbi_html_live: link:https://tajmone.github.io/Alan3-Italian/lib_verbi.html[Anteprima Live HTML^,title="Anteprima HTML sul sito Alan Italian"] :lib_definizioni_html_live: link:https://tajmone.github.io/Alan3-Italian/lib_definizioni.html[Anteprima Live HTML^,title="Anteprima HTML sul sito Alan Italian"]
// Link di approfondimento
:GitHubAlanStdLib: https://github.com/AnssiR66/AlanStdLib[GitHub » AlanStdLib^,title="Visita il repository upstream della Alan Standard Library su GitHub"] :BitbucketAlan: link:https://bitbucket.org/alanif/alan[Bitbucket » Alan^,title="Visita il repository di Alan su Bitbucket"] :IFWikiAlan: link:http://www.ifwiki.org/index.php/Alan[IFWiki » Alan^,title="Visita la pagina di Alan su IFWiki"] :YahooAlan: link:https://groups.yahoo.com/neo/groups/alan-if/info[Yahoo Groups » Alan-IF^,title="Visita il gruppo di discussione Alan-IF su Yahoo Groups"]
// Alan Links
// tag::link_alan[] :Alan3: link:https://www.alanif.se/[ALAN 3^,title="Visita il sito ufficiale di Alan"] :AlanWWW: link:https://www.alanif.se/[www.alanif.se^,title="Visita il sito ufficiale di Alan"] :Alan_Standard_Library: pass:q[link:https://github.com/AnssiR66/AlanStdLib[_Alan Standard Library_^,title="Visita il repository upstream della Alan Standard Library"]] :Alan_Italian: pass:q[link:https://github.com/tajmone/Alan3-Italian[*Alan Italian*^,title="Visita il repository del progetto Alan Italian su GitHub"]] // end::link_alan[]
// Alan SDK Links
:developer_snaphshot: link:https://www.alanif.se/download-alan-v3/development-snapshots/development-snapshots[developer snaphshot^,title="Vai alla pagina delle Developer Snapshots sul sito di Alan"]
// Alan SDK Developer Snapshots Links
:build_1852: link:https://www.alanif.se/download-alan-v3/development-snapshots/development-snapshots/build1852[3.0beta6 build 1852^,title="Vai alla pagina di download della snapshot Alan 3.0beta6 build 1852"] :build_1855: link:https://www.alanif.se/download-alan-v3/development-snapshots/development-snapshots/build1855[3.0beta6 build 1855^,title="Vai alla pagina di download della snapshot Alan 3.0beta6 build 1855"] :build_1862: link:https://www.alanif.se/download-alan-v3/development-snapshots/development-snapshots/build1862[3.0beta6 build 1862^,title="Vai alla pagina di download della snapshot Alan 3.0beta6 build 1862"] :build_1866: link:https://www.alanif.se/download-alan-v3/development-snapshots/development-snapshots/build1866[3.0beta6 build 1866^,title="Vai alla pagina di download della snapshot Alan 3.0beta6 build 1866"] :build_1870: link:https://www.alanif.se/download-alan-v3/development-snapshots/development-snapshots/build1870[3.0beta6 build 1870^,title="Vai alla pagina di download della snapshot Alan 3.0beta6 build 1870"] :build_1878: link:https://www.alanif.se/download-alan-v3/development-snapshots/development-snapshots/build1878[3.0beta6 build 1878^,title="Vai alla pagina di download della snapshot Alan 3.0beta6 build 1878"] :build_1880: link:https://www.alanif.se/download-alan-v3/development-snapshots/development-snapshots/build1880[3.0beta6 build 1880^,title="Vai alla pagina di download della snapshot Alan 3.0beta6 build 1880"] :build_2015: link:https://www.alanif.se/download-alan-v3/development-snapshots/development-snapshots/build2015[3.0beta6 build 2015^,title="Vai alla pagina di download della snapshot Alan 3.0beta6 build 2015"] :build_2022: link:https://www.alanif.se/download-alan-v3/development-snapshots/development-snapshots/build2022[3.0beta6 build 2022^,title="Vai alla pagina di download della snapshot Alan 3.0beta6 build 2022"]
// Alan Upstream Commits Links
:054581b: link:https://bitbucket.org/alanif/alan/commits/054581b[054581b^,title="Vedi i dettagli del commit nel repository di Alan su Bitbucket"] :1bfc8f7: link:https://bitbucket.org/alanif/alan/commits/1bfc8f7[1bfc8f7^,title="Vedi i dettagli del commit nel repository di Alan su Bitbucket"] :ad2c7de: link:https://bitbucket.org/alanif/alan/commits/ad2c7de[ad2c7de^,title="Vedi i dettagli del commit nel repository di Alan su Bitbucket"]
// Miscellanea
// tag::link_misc[] :IFWiki: link:http://www.ifwiki.org[IFWiki^,title="Visita IFWiki.org, il Wiki dedicato all'Interactive Fiction"] :avventure_testuali: link:https://it.wikipedia.org/wiki/Avventura_testuale[avventure testuali^,title="Vedi la pagina Wikipedia sulle avventure testuali"] :ISO-8859-1: link:https://it.wikipedia.org/wiki/ISO/IEC_8859-1[ISO-8859-1^,title="Vedi la pagina Wikipedia sullo ISO-8859-1"] :i7RecipeBook: pass:q[link:http://inform7.com/learn/man/RB_1_1.html[_The Inform Recipe Book_^,title="Naviga alla versione online di 'The Inform Recipe Book'"]] // end::link_misc[]
// Third Party Tools & Assets
// tag::link_3rd_party[] :Doxter: link:https://git.io/doxter[Doxter^,title="Visita il sito di Doxter"] :Highlight: link:http://www.andre-simon.de/[Highlight^,title="Visita il sito di Highlight"] :highlight_js: link:https://highlightjs.org/[highlight.js^,title="Visita il sito highlight.js"] :Inform7: link:http://inform7.com[Inform 7^,title="Visita il sito di Inform 7"] // Asciidoctor :Asciidoctor: link:https://asciidoctor.org/[Asciidoctor^,title="Visita il sito di Asciidoctor"] :Progetto_Asciidoctor: link:https://github.com/asciidoctor[Progetto Asciidoctor^,title="Visita il progetto Asciidoctor su GitHub"] :Asciidoctor_Extensions_Lab: link:https://github.com/asciidoctor/asciidoctor-extensions-lab/[Asciidoctor Extensions Lab^,title="Visita il progetto Asciidoctor Extensions Lab su GitHub"] :Asciidoctor_Backends: link:https://github.com/asciidoctor/asciidoctor-backends[Asciidoctor Backends^,title="Visita il progetto Asciidoctor Backends su GitHub"] :template_Haml_HTML5: link:https://github.com/asciidoctor/asciidoctor-backends/tree/master/haml/html5[template Haml HTML5^,title="Vedi i sorgenti upstream su GitHub"] :highlight-treeprocessor: pass:q[link:https://github.com/asciidoctor/asciidoctor-extensions-lab/blob/18bdf62/lib/highlight-treeprocessor.rb[`highlight-treeprocessor.rb`^,title="Vedi il sorgente upstream originale"]] // Base16 :Base16: link:http://chriskempson.com/projects/base16/[Base16^,title="Visita il sito di Base16"] :base16-builder: link:https://github.com/chriskempson/base16-builder[base16-builder^,title="Visita il repository di base16-builder"] :Base16_Eighties: link:https://github.com/chriskempson/base16-builder/blob/master/schemes/eighties.yml[Base16 Eighties^,title="Vedi il sorgente originale dello schema di colore"] :Base16_Google: link:https://github.com/chriskempson/base16-builder/blob/master/schemes/google.yml[Base16 Google^,title="Vedi il sorgente originale dello schema di colore"] // Sass Boilerplate :Sass_Boilerplate: link:https://github.com/magnetikonline/sass-boilerplate[Sass Boilerplate^,title="Visita il progetto Sass Boilerplate su GitHub"] :fontface_scss: pass:q[link:https://github.com/magnetikonline/sass-boilerplate/blob/702d924/fontface.scss[`fontface.scss`^,title="Vedi il sorgente upstream originale"]] // end::link_3rd_party[]
// Persone
// tag::link_persone[] :Andre_Simon: link:https://gitlab.com/saalen[André Simon^,title="Guarda il profilo GitLab di André Simon"] :Anssi_Raisanen: link:https://github.com/AnssiR66[Anssi Räisänen^,title="Guarda il profilo GitHub di Anssi Räisänen"] :Chris_Kempson: link:http://chriskempson.com[Chris Kempson^,title="Visita il sito di Chris Kempson"] :Ivan_Sagalaev: link:https://github.com/isagalaev[Ivan Sagalaev^,title="Guarda il profilo GitHub di Ivan Sagalaev"] :Leonardo_Boselli: link:https://github.com/Leonardo-Boselli[Leonardo Boselli^,title="Guarda il profilo GitHub di Leonardo Boselli"] :Seth_Wright: link:http://sethawright.com[Seth Wright^,title="Visita il sito di Seth Wright"] :Thomas_Nilefalk: link:https://github.com/thoni56[Thomas Nilefalke^,title="Guarda il profilo GitHub di Thomas Nilefalke"] :Tristano_Ajmone: link:https://github.com/tajmone[Tristano Ajmone^,title="Guarda il profilo GitHub di Tristano Ajmone"] // end::link_persone[]
// // // Document Preamble // //
// [subs=attributes] // .......................................... // Alan Italian Status: Alpha {AlanItaV} // Alan Standard Library: 2.1 // Alan Development Kit: {AlanSDK} // ..........................................
:license-link: ./LICENSE
// tag::benvenuti[]
Benvenuti al progetto {Alan_Italian}, la libreria italiana per realizzare {avventure_testuali} con {ALAN3}, una piattaforma open source per la creazione di giochi di Interactive Fiction.
Questo progetto si prefigge is seguenti obiettivi:
Alan Italian diventerà il sistema di autoraggio di AT italiane più facile da usare per i non programmatori, grazie alla sua sintassi intuitiva e una ricca libreria standard di partenza con oltre 170 verbi e una vasta gamma di classi predefinite e funzionalità per creare personaggi, fonti di luce, dispositivi, vestiario, porte e finestre, serrature, e molto altro ancora.
// end::benvenuti[]
[TIP] link:./README_EN.md[ENGLISH README AVAILABLE!]
// >>> GitLab/GitHub hacks to ensure TOC is shown after Preamble: >>>>>>>>>>>>>> ifndef::backend-html5[] ''' toc::[] ''' endif::[] ifdef::env-github[] ''' toc::[] ''' endif::[] // <<< GitHub/GitLab hacks <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
== Introduzione
// tag::presentazione_alan[]
Il progetto Alan Italian si prefigge i seguenti obiettivi:
Sia la Libreria Standard Italiana che il modulo per l'italiano consentiranno la creazione di avventure testuali in lingua italiana utilizzando Alan 3, un linguaggio dedicato alla creazione di opere di interactive fiction.
La Libreria Standard è mirata a fornire ai novizi di Alan uno strumento di facile utilizzo per la creazione di avventure in italiano, grazie a una ricca infrastruttura di classi e verbi comunemente utilizzati nelle avventure.
Il modulo indipedente per l'italiano è mirato agli utenti più esperti di Alan, che vogliono creare le proprie avventure partendo solo con il supporto per la lingua italiana, e costruirsi da zero tutti i verbi e l'infrastruttura dell'avventura.
=== Alan IF
Alan (acronimo per Adventure LANguage) è un linguaggio dedicato alla creazione di {avventure_testuali} (dette anche "AT
", o "IF
"/"Interactive Fiction
").
Creato nel lontano 1985 da {Thomas_Nilefalk} (all'epoca, Thomas Nilsson) e Göran Forslund, Alan è oggi giunto alla sua terza incarnazione (Alan 3).
Sebbene la versione 3 di Alan sia ancora in fase Beta, è sufficientemente stabile da poter essere usata per la creazione di avventure.
Gli ideatori di Alan hanno voluto creare uno strumento che fosse semplice da usare per chi non avesse esperienza di programmazione, e che non imponesse un modello standard su come debba essere strutturato il mondo delle avventure. Queste caretterstiche rendono Alan un ottimo candidato per la creazione di avventure in italiano.
==== Programmazione prosaica
La sintassi di Alan è modellata attorno alle esigenze dello scrittore, più che del programmatore, quindi l'uso di parentesi, punteggiatura e altri simboli per l'organizzazione sintattica del codice è ridotto al minimo indispensabile, e non vi sono vincoli strutturali riguardo l'uso di indentazione e la ripartizione del codice nelle righe del sorgente. L'aspetto di un file sorgente di Alan è più simile alla prosa che non alla programmazione.
Questo è un esempio (completo) di codice Alan per creare un'avventura con una stanza, un attore ed un verbo, scritto in forma prosaica:
The classroom IsA location Name 'English Literature Classroom'. Exit south to corridor. Description "there are no studends in the classroom, except you." End the classroom.
Syntax greet = greet (person) where person IsA actor else "You can only greet people."
The teacher IsA actor at classroom. Name teacher. Name professor mr John Keating. Pronoun him. Description "Mr Keating is busy at his desk, proofreading the students' homework." Verb greet does "-- Good evening professor Keating. $nA whole minute goes by before your teacher finally raises his head from the papers and acknowledges your presence. $n-- How may I help you, Mr. Anderson?" End verb. End the teacher.
The corridor IsA location EXit north to classroom. End the corridor.
Questo è il medesimo codice, scritto in una forma che è più tipica della programmazione:
THE classroom IsA location NAME 'English Literature Classroom'. DESCRIPTION "There are no studends in the classroom, except you." EXIT south TO corridor. END THE classroom.
SYNTAX greet = greet (person) WHERE person IsA actor ELSE "You can only greet people."
THE teacher IsA actor AT classroom. NAME teacher. NAME professor mr John Keating. PRONOUN him. DESCRIPTION "Mr Keating is busy at his desk, proofreading the students' homework." VERB greet DOES "-- Good evening professor Keating. $nA whole minute goes by before your teacher finally raises his head from the papers and acknowledges your presence. $n-- How may I help you, Mr. Anderson?" END VERB greet. END THE teacher.
THE corridor IsA location EXIT north TO classroom. END THE corridor.
In entrambi i casi, anche un lettore che non conoscesse Alan sarebbe in grado di intuire a cosa serve il codice, e come funzionerà l'avventura da esso creato. Il primo esempio risulterà più facile da comprendere a chi non ha esperienza di programmazione, mentre il secondo risulterà più familiare ai programmatori. Ogni autore è libero di adottare lo stile che preferisce nel proprie avventure.
Nei sorgenti della libreria di questo progetto, adotteremo uno stile di programmazione formale, più simile al secondo esempio, per ragioni di praticità di editing. Nei sorgenti degli esempi adotteremo invece uno stile meno formale, più prosaico.
Sebbene Alan adotti un approccio sintattico alla programmazione che ne semplifica l'uso, avvicinandola il più possibile all'uso naturale della lingua inglese, si tratta comunque di un vero e proprio linguaggio di programmazione formale -- da non confodere, per esempio, con la link:https://en.wikipedia.org/wiki/Natural-language_programming[programmazione in lingua naturale^,title="Vedi la pagina Wikipedia su 'Natural-language_programming'"] adottata da {Inform7}.
==== Libertà autoriale
A differenza di altri sistemi per la creazione di AT, Alan non impone un modello standard del mondo dell'avventura, o un set di verbi predefiniti; la filosofia di Alan è di lasciare all'autore totale autonomia su come modellare l'avventura.
Alan mette a disposizione un insieme di funzionalità e meccanismi che sono comuni a tutte le avventure, ma starà ai singoli autori decidere se e come usarle -- ad esempio le funzionalità per il salvataggio e il caricamento di una partita sono controllate dall parole chiave Save
e Restore
, ma sarà l'autore a dover decidere se e come rendere queste funzionalità accessibili al giocatore (p.es. implementando i comandi per il giocatore 'salva
' e 'carica
').
Per gli autori che sono abituati a lavorare con Inform, TADS, e altri sistemi di autoraggio dotati di una libreria standard che mette a disposizione i verbi, le classi ed i messaggi d'uso comune, l'approccio tabula rasa di Alan potrà sembrare insolito. Lavorare con Alan è come dipingere partendo da una tela bianca: toccherà a noi scegliere i pennelli ed i colori da usare, e preparare la tela dandogli un fondo appropriato al tipo di colori che useremo. Gli altri sistemi, invece, sono come un kit di partenza dove il materiale di lavoro è già presente: abbiamo pennelli di varie misure, un set di tubetti con tutti i colori principali, e una tela già pretrattata e pronta all'uso.
A secondo del tipo di avventura che si vuole creare, i modelli preconfezionati potranno risultare troppo dettagliati o troppo scarni -- molto dipende dal tipo di realismo che vogliamo conseguire. Magari non ci servono affatto le funzionalità per il vestiario o per i dialoghi, oppure ce ne servirebbe una versione più dettagliata e realistica. Alan ci consente di costruire un'infrastruttura ad hoc per le nostre avventure, partendo da zero.
Alan mette a disposizione le seguenti classi di base con cui modellare il mondo delle AT:
.Le classi predefinite di Alan image::{path2_docs_src}predefined-classes.svg[width=70%, align=center, title="Le classi predefinite di Alan"]
Si tratta delle classi universali che sono alla base di qualsiasi avventura, e ciascuna di esse ha caratteristiche specifiche studiate appositamente per l'interactive fiction. L'autore potrà estenderle e specializzarle secondo necessità -- creando supporti, animali, persone, indumenti, cibi e bevande, armi, e quant'altro. Queste classi sono come i colori primari dell'artista, e usandole saggiamente sarà possibile illustrare mondi fantastici ricchi e vivaci, creando le giuste tinte e sfumature con cui narrare la propria avventura.
=== Alan Italian vs Libreria Standard Italiana
Per gli amanti della libertà assoluta nel plasmare il mondo delle avventure, Alan "nudo e crudo
" è lo strumento ideale, e Alan Italian è un modulo a sé stante che aggiunge il supporto della grammatica italiana senza intaccare la tabula rasa offerta da Alan.
Per chi invece preferisce scrivere le proprie avventure avvalendosi di un modello ricco e consolidato, la Alan Standard Library è lo strumento ideale da cui partire, rendendo l'uso di Alan simile agli altri sistemi di autoraggio. Per gli autori italiani, questo progetto mette a disposizione la Libreria Standard Italiana, che è la traduzione/adattamento della libreria inglese.
=== Alan Standard Library
La Alan Standard Library, scritta da {Anssi_Raisanen}, definisce un ricco insieme di verbi, classi e funzionalità comunemente usati nelle avventure testuali, che gli autori possono usare come fondamenta su cui costruire le proprie avventure.
La libreria standard non è inclusa nella distribuzione ufficiale di Alan, e va scaricata separatamente.
Questo progetto è finalizzato alla traduzione italiana della Alan Standard Library.
// end::presentazione_alan[]
== Stato del progetto
Non mi è ancora possibile fornire una data prevista per l'ultimazione della libreria, dato che vi sto lavoro a singhiozzo, a seconda del tempo libero a disposizione (sicuramente ci vorrà ancora parecchio tempo).
Ho comunque scelto di condividere su GitHub il progetto sin dall'inizio, nel caso qualcuno fosse interessanto a seguirne gli sviluppi e contribuirvi attivamente. I contributi e le opinoni di terzi sarebero di grande aiuto per accellerare il progetto; quindi sarei grato a chiunque volesse contribuire clonando il repository, sperimentando con la libreria, condvidendo opinioni, consigli e segnalandomi bachi ed errori.
Potete seguire la discussione di questo progetto all'interno del link:https://groups.yahoo.com/neo/groups/alan-if/info[gruppo di discussione Alan-IF su Yahoo Groups^,title="Visita il newsgroup Alan IF su Yahoo Groups"] (in inglese). Per qualsiasi domanda e suggerimento, potete https://github.com/tajmone/Alan3-Italian/issues/new[aprire uno issue qui].
== Sostieni il progetto
{PulsanteDonazionePayPal}
Da aprile 2018 ad oggi sono state investite centinaia di ore di lavoro (ed ettolitri di caffé) in questo progetto open source. Sostieni il progetto con una donazione libera.
E non dimenticarti di dare una stella al progetto!
Grazie.
== Ultime novità
Alcune notizie flash sugli aggiornamenti importanti del progetto...
=== 2019/08/22 -- Passaggio a Alan 3.0beta6 build 2022
La libreria adotta la nuova {developer_snaphshot} di Alan {build_2022}.
=== 2019/04/02 -- Modulo Italian unificato
I moduli lib_grammatica.i
e lib_supplemento.i
sono stati unificati in un unico modulo
rinominato lib_italian.i
.
Questo modulo contiene ora tutto il codice per il supporto della lingua italiana in Alan, e può essere utilizzato indipendentemente dalla Libreria Standard Italiana.
=== 2019/03/23 -- Passaggio a Alan 3.0beta6 build 1880
La libreria adotta la nuova {developer_snaphshot} di Alan {build_1880}.
=== 2019/03/07 -- Ecco la prima demo: Cloak of Darkness
È ora disponibile Cloak of Darkness, la prima avventura italiana realizzata in Alan:
demo/cloak/
, title="Vai alla cartella di Cloak of Darkness"]Questa piccola avventura di Roger Firth è considerata la "Stele di Rosetta
" delle avventure testuali, ed è stata implementata in quasi tutti i linguaggi e piattaforme per lo sviluppo di AT.
Per la sua realizzazione, si è usato solo il modulo per il supporto della lingua italiana ({lib_italian}), senza appoggiarsi alla Libreria Standard. Questa demo è quindi un esempio su piccola scala di come sia possibile realizzare un'avventura in Alan partendo da zero, creando le proprie definizioni di tutti i verbi richiesti dal caso.
=== 2019/02/28 -- Adozione di Highlight per la documentazione
image:https://assets.gitlab-static.net/uploads/-/system/project/avatar/6678916/highlight_256.png[Highlight logo,192,float=left,title="Logo di Highlight, il coloratore di sintassi di André Simon"]
D'ora in poi il progetto utilizzerà lo strumento {Highlight} di {Andre_Simon} (anziché {highlight_js}) per la colorazione sintattica del codice nella documentazione del progetto.
=== 2019/02/27 -- Passaggio a Alan 3.0beta6 build 1878
La libreria adotta la nuova {developer_snaphshot} di Alan {build_1878}.
=== 2019/02/21 -- Passaggio a Alan 3.0beta6 build 1870
La libreria adotta la nuova {developer_snaphshot} di Alan {build_1870}.
=== 2019/02/19 -- Riscritto il codice per il vestiario
A partire dalla versione v0.15.0, la Libreria adotta un nuovo sistema per la gestione del vestiario. Adesso l'uso del vestiario da parte dell'utente finale sarà più semplice ed intuitivo.
Il codice riguardante gli indumenti è stato praticamente riscritto tutto, per ovviare a una serie di problematiche e bachi presenti nella libreria originale.
Queste modifiche consentiranno inoltre di introdurre a breve nuove funzionalità per il vestiario, che ne renderanno l'uso nelle avventure ancora più flessibile e personalizzabile.
=== 2019/02/07 -- Inizio lavori per il Ricettario di Alan
La cartella {ricettario} conterrà il Ricettario di Alan, una collezione organizzata di esempi ispirati a {i7RecipeBook}, uno dei manuali inclusi con il sistema di sviluppo {Inform7}. Lo scopo del ricettario sarà fornire esempi pratici e documentati su come sia possibile implementare idee e funzionalità nelle avventure.
=== 2019/02/05 -- Modulo per l'italiano indipendente e pronto all'uso
Tutto il codice per il supporto della lingua italiana è stato spostato in un modulo a sé stante che può essere utilizzato indipendentemente dalla Libreria Standard:
Il modulo è già pronto all'uso, e parzialmente documentato.
Quindi, è finalmente possibile creare avventure italiane con Alan, anche se la traduzione della Libreria Standard non è ultimata.
=== 2019/02/01 -- Passaggio a Alan 3.0beta6 build 1866
La libreria adotta la nuova {developer_snaphshot} di Alan {build_1866}.
=== 2019/01/24 -- Passaggio a Alan 3.0beta6 build 1862
La libreria adotta la nuova {developer_snaphshot} di Alan {build_1862}, in cui sono stati risolti alcuni bachi (tra cui un baco che preveniva la definizione di pronomi multipli).
=== 2019/01/17 -- Passaggio a Alan 3.0beta6 build 1855
La nuova {developer_snaphshot} di Alan {build_1855} implementa una funzionalità che avevo richiesto per supportare l'uso di due AND WORDS consecutive nell'input del giocatore, di modo che sia possibile digitare:
Prima il parser vedeva "E POI
" come "AND AND
", e non era in grado di interpretare il comando.
Adesso, più AND WORDS consecutive vengono trattate come una singola occorrenza.
Per i dettagli dell'implementazione, si veda il commit {054581b} sul repository di Alan su Bitbucket.
=== 2019/01/15 -- Grossa svolta con Alan 3.0beta6 build 1852
La nuova {developer_snaphshot} di Alan {build_1852} introduce una nuova funzionalità che era stata richiesta specificamente per l'italiano, e segna un punto di svolta nello sviluppo di questo progetto. Risolve anche un baco che affliggeva la lingua italiana e alcuni verbi della Libreria.
==== Supporto per le preposizioni apostrofate
Thomas ha generosamente implementato in Alan la funzionalità da me richiesta per supportare le preposizioni articolate modificando il parsing di token compositi (uniti da un apostrofo) come due parole distinte.
Adesso il parser è in grado di gestire articoli e preposizioni con apostrofo in comandi come questi:
... che ora sono supportati nativamente da Alan.
Questa nuova funzionalità risolve il problema riservando un trattamento speciale ai lessemi contenenti apostrofi: se il token parserizzato non viene riconosciuto, Alan proverà a spezzarlo in due lessemi nel punto in cui cade l'apostrofo (il primo, nel caso di apostrofi multipli), e poi ritenta il parsing dei due lessemi separati.
La nuova funzonalità rende anche superfluo dover creare sinonimi con articolo-e-sostantivo (es. l'albero
) per gli oggetti il cui articolo richiede l'apostrofo -- che, fino ad oggi, richiedevano tali sinonimi affinché il parser potesse riconoscere l'albero
come albero
.
Ringrazio tantissimo Thomas Nilefalk per aver implementato questa funzionalità appositamente in sostegno del progetto Alan Italian!
Per una discussione sulle previe limitazioni, vedi:
Per i dettagli d'implementazione, vedi il commit {1bfc8f7} che ha introdtto questa funzionalità:
Handle elisions (contractions) with apostrophes
In latin langauges, such as Italian, contractions are commonly used
and represented with an apostrophe between the parts. This change
allows handling them as separated words although they are typed
together ("l'acqua" will be tried as the two words "l'" and "acqua").
==== Baco della e-grave risolto!
La nuova build 1852 risolve anche un baco che impediva la preservazione delle 'e' con accento grave (è
) nelle sintassi e nei sinonimi (il problema non si estendeva alle istanze e ai parametri).
Questo bug-fix risolve vari "verbi domande
" della Libreria, che in precedenza dovevano ripiegare sull'uso della 'e' con accento acuto (é
).
Il problema era causato dall'omissione accidentale della E-grave in una costante del codice sorgente.
Il problema è stato risolto nel commit {ad2c7de} ("Add forgotten grave accented e
").
=== 2018/11/13 -- Tutti i verbi tradotti
Tutti verbi della libreria (circa 171) sono ora tradotti in italiano -- per maggiori dettagli vedi:
Ora restano ancora da tradurre molti messagi di risposta dei verbi, e l'intera libreria va documentata.
È in corso lo sviluppo di una test suite per la libreria, nella cartella {test}, di cui potranno beneficiare quanti desiderano accedere ad un'anteprima dello stato della libreria (perlopiù "alla vaniglia
") senza dover compilare ed eseguire i sorgenti dei test.
È in preparazione una nuova {avventura_dimostrativa} nella cartella {demo} (la demo iniziale è diventata troppo caotica e verrà riscritta da zero), con tanto di script per la simulazione automatizzata delle sessioni di gioco e la creazione di trascrizioni di partita.
== Contenuti del progetto
Una copia completa della versione upstream della Alan Standard Library impiegata in questo progetto viene conservata nella cartella {alanlib}. Quando la libreria viene aggiornata, i file della upstream attualmente utilizzata possono essere diffati con la nuova versione al fine di tracciare quali modifiche andrebbero integrate nei sorgenti della libreria italiana al fine di portarla in pari con la versione più recente dell'originale inglese.
=== Script per gli sviluppatori
Per gli sviluppatori della Libreria. I seguenti script automatizzano l'aggiornamento delle info di versione riguardano Alan Italian e la Alan SDK nei sorgenti del progetto:
Quando la libreria passa ad una versione successiva, sarà necessario eseguire i seguenti passaggi:
Lo script {verbump_sh} utilizzerà le informazioni contenute in {ver_sh} per aggiornare tutti i riferimenti alle versioni di Alan Italian e della Alan SDK in tutti i file sorgenti del progetto -- commenti di header, attributi Alan, AsciiDoc e AsciiDoc/Doxter, ecc. Lo script {AGGIORNA_TUTTO} propagherà le versioni aggiornate nei sorgenti anche ai file prodotti tratime automazione -- trascirzioni dei test, documentazione HTML, ecc.
Poiché queste operazioni andranno a modificare parecchi file, è consigliabile partire con uno status Git pulito, di modo da poter controllare le modifiche tramite il diffing dell'area di lavoro prima di eseguire il commit.
Per maggiori dettagli, vedi:
== Impostare l'ambiente di lavoro
Per poter lavorare a questo progetto, assicurati di impostare correttamente alcuni settagi nel tuo editor preferito.
=== Encoding dei file
Le seguenti estensioni file devono essere trattate con encoding {ISO-8859-1}:
[horizontal]
.alan
:: avventura sorgente di Alan.
.i
:: modulo sorgente per avventura di Alan.
.a3log
:: trascrizione di partita.
.a3sol
:: file di soluzione ("script di comandi
") per eseguire un'avventura.
... se il tuo editor non è in grado di preservare corretamente l'encoding per questi file, ti troverai ad affrontare problemi con i caratteri speciali, p.es. le lettere accentate -- che in italiano sono comunissime!
== Ringraziamenti
La mia gratitudine va inanzitutto a {Thomas_Nilefalk} e Göran Forslund, per aver creato Alan, e a {Anssi_Raisanen} per aver creato la {Alan_Standard_Library}. Ma voglio anche rigraziarli per tutto il supporto offerto a questo progetto rispondendo ai mei (molteplici) quesiti ed aiutandomi a superare i vari ostacoli in cui mi sono imbattuto nel corso dell'opera.
Ringrazio la comunità degli utenti di Alan, attiva sul link:https://groups.yahoo.com/neo/groups/alan-if/info[gruppo di discussione Alan-IF su Yahoo Groups^,title="Visita il newsgroup Alan IF su Yahoo Groups"], per la calorosa accoglienza, il duraturo sostegno e la loro disponibilità.
Infine, ci tengo a ringraziare S3RioUs JokER, che mi ha aiutato sin dall'inizio con le difficili scelte di traduzione della terminologia della libreria e della sua messaggistica, e {Leonardo_Boselli}, la cui esperienza in materia di implementazione e traduzione in Italiano di strumenti per le AT l'ha reso il mio bersaglio d'elezione quando necessito di consulenze tecniche e dell'opinione di un esperto. Grazie di cuore, senza di voi questo progetto sarebbe stata un'impresa alquanto solitaria!
== Componenti terze parti
Questo progetto impiega i seguenti componenti e risorse di terze parti.
=== Base16
Nel tema CSS di colorazione sintattica di Alan, per {Highlight}, ho usato i seguenti temi di colore {Base16}, presi dal progetto {base16-builder}, di {Chris_Kempson} (licenza MIT):
................................................................................ Base16 Builder is released under the MIT License:
Copyright (C) 2012 Chris Kempson
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ................................................................................
=== Asciidoctor
La toolchain per la documentazione HTML tramite {Asciidoctor} riutilizza varie risorse attinte dal {Progetto_Asciidoctor}, adattate alle esigenze di questo progetto.
==== Attributi italiani Asciidoctor
La documentazione del progetto usa una versione adattata del file attributes-it.adoc
(preso da Asciidoctor), tradotto da Marco Ciampa (licenza MIT):
................................................................................ MIT License
Copyright (C) 2012-2018 Dan Allen, Ryan Waldron and the Asciidoctor Project
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ................................................................................
=== Estensione per Highlight
Il file {highlight-treeprocessor_mod} è un adattamento a cura di Tristano Ajmone dell'estensione {highlight-treeprocessor} presa dal progetto {Asciidoctor_Extensions_Lab} (commit 18bdf62), Copyright (C) 2014-2016 {Progetto_Asciidoctor} (licenza MIT):
................................................................................ The MIT License
Copyright (C) 2018 Tristano Ajmone. Copyright (C) 2014-2016 The Asciidoctor Project
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ................................................................................
==== Haml Templates
I file nella cartella {docs_src_haml} sono adattamenti (a cura di Tristano Ajmone) di {template_Haml_HTML5} presi dal progetto {Asciidoctor_Backends}, Copyright (C) 2012-2016 Dan Allen e il {Progetto_Asciidoctor} (licenza MIT):
................................................................................ The MIT License
Copyright (C) 2018 Tristano Ajmone. Copyright (C) 2012-2016 Dan Allen and the Asciidoctor Project
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ................................................................................
=== Sass Boilerplate
Il mixin fontFace
all'interno del file {helpers_scss} è un adattamento del file {fontface_scss}, preso dal progetto {Sass_Boilerplate}, Copyright (C) 2013 Peter Mescalchin, (licenza MIT):
................................................................................ The MIT License (MIT)
Copyright (c) 2013 Peter Mescalchin
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ................................................................................
== Link di approfondimento
Alan:
Alan Standard Library:
// EOF //