Index: trunk/l10n-support/it/summit/docmessages/rkward/rkwardplugins.po =================================================================== --- trunk/l10n-support/it/summit/docmessages/rkward/rkwardplugins.po (revision 1572248) +++ trunk/l10n-support/it/summit/docmessages/rkward/rkwardplugins.po (revision 1572249) @@ -1,15652 +1,15684 @@ # # Vincenzo Reale , 2020. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2020-05-15 09:52+0200\n" -"PO-Revision-Date: 2020-06-14 12:32+0200\n" +"PO-Revision-Date: 2020-06-18 15:40+0200\n" "Last-Translator: Vincenzo Reale \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 20.04.1\n" +"X-Generator: Lokalize 20.04.2\n" #. Tag: title #. +> trunk5 #: index.docbook:21 #, no-c-format msgid "Introduction to Writing Plugins for &rkward;" msgstr "Introduzione alla scrittura delle estensioni per &rkward;" #. Tag: author #. +> trunk5 #: index.docbook:24 #, no-c-format msgid "Thomas Friedrichsmeier" msgstr "Thomas Friedrichsmeier" #. Tag: email #. +> trunk5 #: index.docbook:28 index.docbook:36 #, no-c-format msgid "rkward-devel AT kde DOT org" msgstr "rkward-devel AT kde DOT org" #. Tag: author #. +> trunk5 #: index.docbook:32 #, no-c-format msgid "Meik Michalke" msgstr "Meik Michalke" #. Tag: trans_comment #. +> trunk5 #: index.docbook:41 #, no-c-format msgid "ROLES_OF_TRANSLATORS" msgstr "" "VincenzoReale
smart2128@baslug.org
Traduzione italiana
" #. Tag: holder #. +> trunk5 #: index.docbook:48 #, no-c-format msgid "Thomas Friedrichsmeier" msgstr "Thomas Friedrichsmeier" #. Tag: date #. +> trunk5 #: index.docbook:55 #, no-c-format #| msgid "2015-11-05" msgid "2020-05-11" msgstr "11/5/2020" #. Tag: releaseinfo #. +> trunk5 #: index.docbook:56 #, no-c-format msgid "0.7.2" msgstr "0.7.2" #. Tag: para #. +> trunk5 #: index.docbook:59 #, no-c-format msgid "This is a guide to writing plugins for &rkward;." msgstr "Questa è una guida per scrivere estensioni per &rkward;." #. Tag: keyword #. +> trunk5 #: index.docbook:65 #, no-c-format msgid "KDE" msgstr "KDE" #. Tag: keyword #. +> trunk5 #: index.docbook:66 #, no-c-format msgid "R" msgstr "R" #. Tag: keyword #. +> trunk5 #: index.docbook:67 #, no-c-format msgid "rkward" msgstr "rkward" #. Tag: keyword #. +> trunk5 #: index.docbook:68 #, no-c-format msgid "plugins" msgstr "estensioni" #. Tag: title #. +> trunk5 #: index.docbook:74 #, no-c-format msgid "Introduction" msgstr "Introduzione" #. Tag: para #. +> trunk5 #: index.docbook:77 #, no-c-format msgid "Documentation as of &rkward; release 0.6.4." msgstr "Documentazione per &rkward; versione 0.6.4." #. Tag: para #. +> trunk5 #: index.docbook:81 #, no-c-format msgid "" "This document describes how to write your own plugins. Note, that at the " "time of this writing, some of the concepts are not yet set in stone. " "Therefore, this document should be regarded as an introduction to the " "current approach, and as a basis for discussion. All sorts of comments are " "welcome. The documentation has grown quite large over time. Do not let that " "scare you. We recommend reading through the four basic steps (as outlined, " "below), to get a basic idea of how things work. After that you may want to " "skim the table of contents to see which advanced topics could be of " "relevance to you." msgstr "" "Questo documento descrive come scrivere le proprie estensioni. Si noti che " "al momento di questa scrittura, alcuni dei concetti non sono ancora scolpiti " "nella pietra. Perciò, questo documento dovrebbe essere considerato " "un'introduzione all'attuale approccio, e come base per la discussione. Sono " "benvenuti tutti i tipi di commenti. La documentazione è cresciuta abbastanza " "nel tempo. Non lasciatevi spaventare. Noi consigliamo di leggere i quattro " "passaggi essenziali (come indicato di seguito) per ottenere un'idea di base " "su come funzionano le cose. Dopo di che potreste voler scremare l'indice per " "vedere quali argomenti avanzati potrebbero essere rilevanti per le vostre " "esigenze." #. Tag: para #. +> trunk5 #: index.docbook:87 #, no-c-format msgid "" "For questions and comments, please write to the &rkward; development mailing " "list." msgstr "" "Per domande e commenti, scrivere alla lista di distribuzione di sviluppo di " "&rkward;." #. Tag: para #. +> trunk5 #: index.docbook:90 #, no-c-format msgid "" "You do not need to read this in order to use &rkward;. " "This document is about extending &rkward;. It is targeted at advanced users, " "or people willing to help improve &rkward;." msgstr "" "Non è necessario leggere questo documento per utilizzare &rkward;." " Questo documento riguarda l'estensione di &rkward;. È rivolto a " "utenti esperti o persone che desiderano contribuire a migliorare &rkward;." #. Tag: para #. +> trunk5 #: index.docbook:93 #, no-c-format msgid "Writing a standard plugin is basically a four-step process:" msgstr "" "La scrittura di un'estensione standard è fondamentalmente un processo in " "quattro fasi:" #. Tag: link #. +> trunk5 #: index.docbook:97 #, no-c-format msgid "Placing a new Action in the menu hierarchy" msgstr "Inserimento di una nuova azione nella gerarchia dei menu" #. Tag: link #. +> trunk5 #: index.docbook:98 #, no-c-format msgid "Describing the looks and behavior of the plugin &GUI;" msgstr "Descrivere l'aspetto e il comportamento dell'estensione e della &GUI;" #. Tag: link #. +> trunk5 #: index.docbook:99 #, no-c-format msgid "" "Defining, how R-code is to be generated from the settings, the user makes in " "the &GUI;" msgstr "" "Definire come deve essere generato il codice R dalle impostazioni che " "l'utente effettua nella &GUI;" #. Tag: link #. +> trunk5 #: index.docbook:100 #, no-c-format msgid "Adding a help page to your plugin" msgstr "Aggiunta di una pagina della guida alla propria estensione" #. Tag: para #. +> trunk5 #: index.docbook:102 #, no-c-format msgid "Those will be dealt with in turn." msgstr "Queste saranno trattate a turno." #. Tag: para #. +> trunk5 #: index.docbook:105 #, no-c-format msgid "" "Some advanced concepts may be used in those four steps, but are dealt with " "in separate chapters, to keep things simple:" msgstr "" "Alcuni concetti avanzati possono essere utilizzati in queste quattro fasi, " "ma sono trattati in capitoli separati, per semplificare le cose:" #. Tag: link #. +> trunk5 #: index.docbook:108 #, no-c-format msgid "&GUI; logic" msgstr "Logica della &GUI;" #. Tag: link #. +> trunk5 #: index.docbook:109 #, no-c-format msgid "Embedding Plugins into Plugins" msgstr "" "Integrazione di estensioni in estensioni" #. Tag: link #. +> trunk5 #: index.docbook:110 #, no-c-format msgid "Useful concepts for creating many series of similar plugins" msgstr "Concetti utili per creare molte serie di estensioni simili" #. Tag: para #. +> trunk5 #: index.docbook:113 #, no-c-format msgid "" "Also, none of the chapters shows all options, but rather only the basic " "concepts. A complete reference of options " "is provided separately." msgstr "" "Inoltre, nessuno dei capitoli mostra tutte le opzioni, ma piuttosto solo i " "concetti di base. Una guida completa alle " "opzioni è fornita separatamente." #. Tag: title #. +> trunk5 #: index.docbook:119 #, no-c-format msgid "Preliminaries: What are plugins in &rkward;? How do they work?" msgstr "Preliminari: cosa sono le estensioni in &rkward;? Come funzionano?" #. Tag: para #. +> trunk5 #: index.docbook:120 #, no-c-format msgid "" "Of course the first question you might have is: what portions of &rkward; " "functionality is realized using plugins? Or: what can plugins do?" msgstr "" "Naturalmente la prima domanda che potreste avere è: quali parti della " "funzionalità di &rkward; sono realizzate utilizzando le estensioni? Oppure: " "cosa possono fare le estensioni?" #. Tag: para #. +> trunk5 #: index.docbook:123 #, no-c-format msgid "" "One way to answer this is: deselect all &pluginmap; files under " "SettingsConfigure &rkward;Plugins, and see what is " "missing. A slightly more helpful answer: most actual statistics functions " "accessible via the &GUI; are realized using plugins. Also, you can create " "fairly flexible &GUI;s for all kinds of operations using plugins." msgstr "" "Un modo per rispondere è: deselezionare tutti i file di &pluginmap; in " "ImpostazioniConfigura &rkward;Estensione e vedere cosa " "manca. Una risposta leggermente più utile: la maggior parte delle funzioni " "statistiche effettive accessibili tramite la &GUI; sono realizzati " "utilizzando estensioni. Inoltre, è possibile creare &GUI; abbastanza " "flessibili per tutti i tipi di operazioni utilizzando le estensioni." #. Tag: para #. +> trunk5 #: index.docbook:126 #, no-c-format msgid "" "The basic paradigm behind &rkward; plugins is the one we will walk you " "through in this document: an &XML; file describes what the &GUI; looks like. " "An additional &javascript; file is used to generate &R; syntax from the " "&GUI; settings. That is, plugins do not really have to perform any " "statistical calculations. Rather plugins generate the &R; syntax needed to " "run those calculations. The &R; syntax is then sent to the &R; backend for " "evaluation, and typically a result is shown in the output window." msgstr "" "Il paradigma di base dietro le estensioni di &rkward; è quello che con cui " "vi guideremo in questo documento: un file &XML; descrive l'aspetto della " "&GUI;. Un ulteriore file &javascript; viene utilizzato per generare la " "sintassi di &R; dalle impostazioni della &GUI;. Cioè, le estensioni non " "devono realmente eseguire calcoli statistici. Piuttosto le estensioni " "generano la sintassi di &R; necessaria per eseguire tali calcoli. La " "sintassi di &R; viene quindi inviata al backend di &R; per la valutazione e " "in genere un risultato viene visualizzato nella finestra di uscita." #. Tag: para #. +> trunk5 #: index.docbook:129 #, no-c-format msgid "Read on in the next chapters to see how this is done." msgstr "Leggere nei prossimi capitoli per vedere come viene fatto." #. Tag: title #. +> trunk5 #: index.docbook:135 #, no-c-format msgid "Creating menu entries" msgstr "Creazione delle voci di menu" #. Tag: para #. +> trunk5 #: index.docbook:136 #, no-c-format msgid "" "When you create a new plugin, you need to tell &rkward; about it. So the " "first thing to do, is to write a &pluginmap; file (or modify an existing " "one). The format of &pluginmap; is &XML;. I will walk you through an example " "(also of course, be sure you have &rkward; configured to load your " "&pluginmap; -- SettingsConfigure " "&rkward;Plugins):" msgstr "" "Quando si crea una nuova estensione, è necessario indicarlo a &rkward;. " "Quindi la prima cosa da fare è scrivere un file di &pluginmap; (o " "modificarne uno esistente). Il formato del file di &pluginmap; è &XML;. Vi " "guideremo attraverso un esempio (assicurarsi, ovviamente, di aver " "configurato &rkward; per caricare la propria &pluginmap; - " "ImpostazioniConfigura &rkward;Estensioni):" #. Tag: para #. +> trunk5 #: index.docbook:140 index.docbook:258 #, no-c-format msgid "" "After reading this chapter, have a look at the rkwarddev package as well. It provides " "some &R; functions to create most of &rkward;'s &XML; tags for you." msgstr "" "Dopo aver letto questo capitolo, dare un'occhiata anche al pacchetto rkwarddev. Fornisce " "alcune funzioni di &R; per creare al vostro posto la maggior parte dei tag " "&XML; di &rkward;." #. Tag: programlisting #. +> trunk5 #: index.docbook:144 #, no-c-format msgid "<!DOCTYPE rkpluginmap>" msgstr "<!DOCTYPE rkpluginmap>" #. Tag: para #. +> trunk5 #: index.docbook:145 #, no-c-format msgid "" "The doctype is not really interpreted, but set it to " "\"rkpluginmap\" anyway." msgstr "" "Il doctype non è realmente interpretato, ma impostarlo comunque a " "\"rkpluginmap\"." #. Tag: programlisting #. +> trunk5 #: index.docbook:148 #, no-c-format msgid "" "<document base_prefix=\"\" namespace=\"myplugins\" id=\"mypluginmap\">" msgstr "" "<document base_prefix=\"\" namespace=\"mie_estensioni\" id=" "\"mia_mappa_estensioni\">" #. Tag: para #. +> trunk5 #: index.docbook:149 #, no-c-format msgid "" "The base_prefix attribute can be used, if all your " "plugins reside in a common directory. Basically, then you can omit that " "directory from the filenames specified below. It safe to leave this at " "\"\"." msgstr "" "L'attributo base_prefix può essere utilizzato, se " "tutte le estensioni si trovano in una cartella comune. Fondamentalmente, " "quindi è possibile omettere quella cartella dai nomi dei file specificati di " "seguito. È sicuro lasciarlo su \"\"." #. Tag: para #. +> trunk5 #: index.docbook:151 #, no-c-format msgid "" "As you will see below, all plugins get a unique identifier, id. The namespace is a way to organize those " "IDs, and make it less likely to create a duplicate identifier accidentally. " "Internally, basically the namespace and then a :: gets " "prepended to all the identifiers you specify in this &pluginmap;. In " "general, if you intend to distribute " "your plugins in an &R; package, it is a good idea to use the package " "name as namespace parameter. Plugins shipped with the " "official &rkward; distribution have namespace=\"rkward\"." msgstr "" "Come si vedrà di seguito, tutte le estensioni ottengono un identificatore " "univoco, id. namespace è un " "modo per organizzare tali ID e rendere meno probabile la creazione " "accidentale di un identificatore duplicato. Internamente, fondamentalmente " "lo spazio dei nomi e quindi un :: viene anteposto a tutti gli " "identificatori specificati in questa &pluginmap;. In generale, se si intende " "distribuire le estensioni in un " "pacchetto di &R;, è una buona idea utilizzare il nome del pacchetto " "come parametro namespace. Le estensioni fornite con " "la distribuzione ufficiale di &rkward; hanno namespace=\"rkward" "\"." #. Tag: para #. +> trunk5 #: index.docbook:154 #, no-c-format msgid "" "The id attribute is optional, but specifying an id " "for your &pluginmap; makes it possible for other people to make their " "&pluginmap;s load your &pluginmap;, automatically (see the section on dependencies)." msgstr "" "L'attributo id è facoltativo, ma specificando un id " "per la propria &pluginmap; si consente ad altre persone di poter caricare " "automaticamente la vostra &pluginmap; dalle loro &pluginmap; (vedere la sezione sulle dipendenze)." #. Tag: programlisting #. +> trunk5 #: index.docbook:157 #, no-c-format msgid "<components>" msgstr "<components>" #. Tag: para #. +> trunk5 #: index.docbook:158 #, no-c-format msgid "" "Components? Are not we talking about plugins? Yes, but in the future, " "plugins will be no more than a special class of components. What we do here, " "then, is to register all components/plugins with &rkward;. Let's look at an " "example entry:" msgstr "" "Componenti? Non stiamo parlando di estensioni? Sì, ma in futuro le " "estensioni non saranno altro che una classe speciale di componenti. Quello " "che facciamo qui, quindi, è registrare tutti i componenti/estensioni con " "&rkward;. Diamo un'occhiata a una voce di esempio:" #. Tag: programlisting #. +> trunk5 #: index.docbook:161 #, no-c-format msgid "" "<component type=\"standard\" id=\"t_test_two_vars\" file=" "\"t_test_two_vars.xml\" label=\"Two Variable t-Test\" />" msgstr "" "<component type=\"standard\" id=\"t_test_two_vars\" file=" "\"test_t_due_variabili.xml\" label=\"Test t a due variabili\" />" #. Tag: para #. +> trunk5 #: index.docbook:162 #, no-c-format msgid "" "First the type attribute: Leave this to " "\"standard\" for now. Further types are not yet implemented. " "The id we have already hinted at. Each component has " "to be given a unique (in its namespace) identifier. Pick one that is easily " "recognizable. Avoid spaces and any special characters. Those are not banned, " "so far, but might have special meanings. With the file attribute, you specify where the description of the actual plugin itself is located. This is " "relative to the directory the &pluginmap; file is in, and the " "base_prefix above. Finally, give the component a " "label. This label will be shown wherever the plugin is placed in the menu " "(or in the future perhaps in other places as well)." msgstr "" "Innanzitutto l'attributo type: lasciarlo su " "\"standard\" per ora. Altri tipi non sono ancora " "implementati. L 'id a cui abbiamo già accennato. A " "ciascun componente deve essere assegnato un identificativo univoco (nel suo " "spazio dei nomi). Sceglierne uno facilmente riconoscibile. Evitare spazi e " "caratteri speciali. Finora non sono stati vietati, ma potrebbero avere " "significati speciali. Con l'attributo file, si " "specifica dove si trova la descrizione " "dell'estensione attuale. Questo è relativo alla cartella in cui si " "trova il file di &pluginmap; e il base_prefix sopra. " "Infine, fornire un'etichetta al componente. Questa etichetta sarà mostrata " "nel momento in cui l'estensione viene inserita nel menu (o in futuro, forse " "anche in altri posti)." #. Tag: para #. +> trunk5 #: index.docbook:165 #, no-c-format msgid "" "Typically a &pluginmap; file will contain several components, so here are a " "few more:" msgstr "" "Tipicamente un file di &pluginmap; conterrà diversi componenti, quindi " "eccone alcuni:" #. Tag: programlisting #. +> trunk5 #: index.docbook:168 #, no-c-format msgid "" "<component type=\"standard\" id=\"unimplemented_test\" file=\"means/" "unimplemented.xml\" />\n" " <component type=\"standard\" id=\"fictional_t_test\" file=" "\"means/ttests/fictional.xml\" label=\"This is a fictional t-test\" />\n" " <component type=\"standard\" id=\"descriptive\" file=" "\"descriptive.xml\" label=\"Descriptive Statistics\" />\n" " <component type=\"standard\" id=\"corr_matrix\" file=" "\"corr_matrix.xml\" label=\"Correlation Matrix\" />\n" " <component type=\"standard\" id=\"simple_anova\" file=" "\"simple_anova.xml\" label=\"Simple Anova\" />\n" " </components>" msgstr "" "<component type=\"standard\" id=\"test_non_implementato\" file=\"means/" "unimplemented.xml\" />\n" " <component type=\"standard\" id=\"test_t_fittizio\" file=" "\"means/ttests/fictional.xml\" label=\"Questo è un test t fittizio\" />\n" " <component type=\"standard\" id=\"descrittiva\" file=" "\"descriptive.xml\" label=\"Statistiche descrittive\" />\n" " <component type=\"standard\" id=\"corr_matrix\" file=" "\"corr_matrix.xml\" label=\"Matrice di correlazione\" />\n" " <component type=\"standard\" id=\"anova_semplice\" file=" "\"simple_anova.xml\" label=\"Anova semplice\" />\n" " </components>" #. Tag: para #. +> trunk5 #: index.docbook:169 #, no-c-format msgid "" "OK, this was the first step. &rkward; now knows those plugins exist. But how " "to invoke them? They need to be placed in a menu hierarchy:" msgstr "" "OK, questo è stato il primo passo. &RKWard; ora sa che esistono quelle " "estensioni. Ma come invocarle? Devono essere inserite in una gerarchia di " "menu:" #. Tag: programlisting #. +> trunk5 #: index.docbook:172 #, no-c-format msgid "" "<hierarchy>\n" " <menu id=\"analysis\" label=\"Analysis\">" msgstr "" "<hierarchy>\n" " <menu id=\"analisi\" label=\"Analisi\">" #. Tag: para #. +> trunk5 #: index.docbook:173 #, no-c-format msgid "" "Right below the <hierarchy> tag, you start " "describing, in which <menu> your plugins should go. " "With the above line, you basically say, that your plugin should be in the " "Analysis menu (not necessarily " "directly there, but in a submenu). The Analysis menu is standard in &rkward;, so it does not actually " "have to be created from scratch. However, if it did not exist yet, using the " "label attribute you would give it its name. Finally, " "the id once again identifies this <" "menu>. This is needed, so several &pluginmap; files can place " "their plugins in the same menus. They do this by looking for a <" "menu> with the given id. If the ID does " "not yet exist, a new menu will be created. Otherwise the entries will be " "added to the existing menu." msgstr "" "Proprio sotto il tag <hierarchy>, si inizia a " "descrivere, in quale <menu> le proprie estensioni " "dovrebbero andare. Con la riga sopra, in pratica si indica che la propria " "estensione dovrebbe essere nel menu Analisi (non necessariamente direttamente lì, ma in un sottomenu). Il " "menu Analisi è standard in " "&rkward;, quindi non deve essere creato da zero. Tuttavia, se non esistesse " "ancora, usando l'attributo label si attribuisce il " "suo nome. Infine, id identifica ancora una volta " "questo <menu>. Questo è necessario, in modo che " "diversi file di &pluginmap; possono posizionare le loro estensioni negli " "stessi menu. Lo fanno cercando un <menu> con il " "id indicato. Se l'ID non esiste ancora, sarà creato " "un nuovo menu. Altrimenti le voci saranno aggiunte al menu esistente." #. Tag: programlisting #. +> trunk5 #: index.docbook:177 #, no-c-format msgid "<menu id=\"means\" label=\"Means\">" msgstr "<menu id=\"medie\" label=\"Medie\">" #. Tag: para #. +> trunk5 #: index.docbook:178 #, no-c-format msgid "" "Basically the same thing here: Now we define a submenu to the " "Analysis menu. It is to be " "called Means." msgstr "" "Fondamentalmente la stessa cosa qui: ora definiamo un sottomenu nel menu " "Analisi. Deve essere chiamato " "Medie." #. Tag: programlisting #. +> trunk5 #: index.docbook:181 #, no-c-format msgid "<menu id=\"ttests\" label=\"t-Tests\">" msgstr "<menu id=\"test_t\" label=\"Test t\">" #. Tag: para #. +> trunk5 #: index.docbook:182 #, no-c-format msgid "" "And a final level in the menu hierarchy: A submenu of the submenu " "Means." msgstr "" "E un livello finale nella gerarchia dei menu: un sottomenu del sottomenu " "Medie." #. Tag: programlisting #. +> trunk5 #: index.docbook:185 #, no-c-format msgid "<entry component=\"t_test_two_vars\" />" msgstr "<entry component=\"test_t_due_variabili />" #. Tag: para #. +> trunk5 #: index.docbook:186 #, no-c-format msgid "" "Now, finally, this is the menu we want to place the plugin in. The " "<entry> tag signals, this actually is the real " "thing, instead of another submenu. The component " "attribute refers to the id you gave the plugin/" "component above." msgstr "" "Ora, finalmente, questo è il menu in cui vogliamo inserire l'estensione. Il " "tag <entry> segnala che in realtà è il posto " "effettivo, invece di un altro sottomenu. L'attributo component si riferisce all'id fornito all'estensione/" "componente suddetta." #. Tag: programlisting #. +> trunk5 #: index.docbook:189 #, no-c-format msgid "" "<entry component=\"fictional_t_test\" />\n" " </menu>\n" " <entry component=\"fictional_t_test\" /" ">\n" " </menu>\n" " <menu id=\"frequency\" label=\"Frequency\" index=" "\"2\"/>" msgstr "" "<entry component=\"fictional_t_test\" />\n" " </menu>\n" " <entry component=\"fictional_t_test\" /" ">\n" " </menu>\n" " <menu id=\"frequency\" label=\"Frequenza\" index=" "\"2\"/>" #. Tag: para #. +> trunk5 #: index.docbook:190 #, no-c-format msgid "" "In case you have lost track: This is another submenu to the " "Analysis menu. See the " "screenshot below. We will skip some of what is not visible, marked with " "[...]." msgstr "" "In caso di smarrimento: questo è un altro sottomenu del menu " "Analisi. Vedere la schermata " "seguente. Salteremo parte di ciò che non è visibile, contrassegnato da [...]." #. Tag: programlisting #. +> trunk5 #: index.docbook:193 #, no-c-format msgid "" "[...]\n" " </menu>\n" " <entry component=\"corr_matrix\"/>\n" " <entry component=\"descriptive\"/>\n" " <entry component=\"simple_anova\"/>\n" " </menu>" msgstr "" "[...]\n" " </menu>\n" " <entry component=\"corr_matrix\"/>\n" " <entry component=\"descriptive\"/>\n" " <entry component=\"simple_anova\"/>\n" " </menu>" #. Tag: para #. +> trunk5 #: index.docbook:194 #, no-c-format msgid "These are the final entries visible in the screenshots below." msgstr "Queste sono le voci finali visibili nelle schermate seguenti." #. Tag: programlisting #. +> trunk5 #: index.docbook:197 #, no-c-format msgid "" "<menu id=\"plots\" label=\"Plots\">\n" " [...]\n" " </menu>" msgstr "" "<menu id=\"grafici\" label=\"grafici\">\n" " [...]\n" " </menu>" #. Tag: para #. +> trunk5 #: index.docbook:198 #, no-c-format msgid "" "Of course you can also place your plugins in menus other than " "Analysis." msgstr "" "Ovviamente è possibile inserire anche le proprie estensioni in menu diversi " "da Analisi." #. Tag: programlisting #. +> trunk5 #: index.docbook:201 #, no-c-format msgid "" "<menu id=\"file\" label=\"File\">\n" " [...]\n" " </menu>" msgstr "" "<menu id=\"file\" label=\"File\">\n" " [...]\n" " </menu>" #. Tag: para #. +> trunk5 #: index.docbook:202 #, no-c-format msgid "" "Even in standard-menus such as File. All you need is the correct id." msgstr "" "Anche nei menu standard come File. Tutto ciò di cui si ha bisogno è l'id " "corretto." #. Tag: programlisting #. +> trunk5 #: index.docbook:205 #, no-c-format msgid "" "</hierarchy> \n" "</document>" msgstr "" "</hierarchy> \n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:206 #, no-c-format msgid "That is how to do it. And this screenshot shows the result:" msgstr "Ecco come farlo. E questa schermata mostra il risultato:" #. Tag: screeninfo #. +> trunk5 #: index.docbook:210 #, no-c-format msgid "Menu hierarchy created by the code shown above" msgstr "" "Gerarchia di menu creata dal codice mostrato sopra" #. Tag: phrase #. +> trunk5 #: index.docbook:216 #, no-c-format msgid "Menu hierarchy created by the code shown above" msgstr "Gerarchia di menu creata dal codice mostrato sopra" #. Tag: para #. +> trunk5 #: index.docbook:220 #, no-c-format msgid "" "Confused? The easiest way to get started is probably taking some of the " "existing &pluginmap; files shipped with the distribution, and modifying them " "to your needs. Also, if you need help, do not hesitate to write to the " "development mailing list." msgstr "" "Confusi? Il modo più semplice per iniziare è probabilmente prendere alcuni " "dei file di &pluginmap; esistenti forniti con la distribuzione e " "modificandoli in base alle proprie esigenze. Inoltre, se si ha bisogno di " "aiuto, non esitare a scrivere alla lista di distribuzione di sviluppo." #. Tag: title #. +> trunk5 #: index.docbook:223 #, no-c-format msgid "Controlling the order of menu entries" msgstr "Controllo dell'ordine delle voci di menu" #. Tag: para #. +> trunk5 #: index.docbook:224 #, no-c-format msgid "" "By default, all items (entries / submenus) inside a menu will be sorted " "alphabetically, automatically. In some cases you may " "want more control. In this case you can group elements as follows:" msgstr "" "In modo predefinito, tutti gli elementi (voci / sottomenu) all'interno di un " "menu saranno ordinati alfabeticamente, automaticamente. In alcuni casi si potrebbe volere un maggiore controllo. In tal caso, è " "possibile raggruppare gli elementi come segue:" #. Tag: para #. +> trunk5 #: index.docbook:227 #, no-c-format msgid "" "You can define groups inside any menu like this. All elements belonging to " "the same group will be grouped together:" msgstr "" "È possibile definire gruppi all'interno di qualsiasi menu come questo. Tutti " "gli elementi appartenenti allo stesso gruppo saranno raggruppati insieme:" #. Tag: programlisting #. +> trunk5 #: index.docbook:228 #, no-c-format msgid "<group id=\"somegroup\"/>" msgstr "<group id=\"un_gruppo\"/>" #. Tag: para #. +> trunk5 #: index.docbook:230 #, no-c-format msgid "If you want the group to be visually separated from other entries, use:" msgstr "" "Se si desidera che il gruppo sia separato visivamente da altre voci, " "utilizzare:" #. Tag: programlisting #. +> trunk5 #: index.docbook:231 #, no-c-format msgid "<group id=\"somegroup\" separated=\"true\"/>" msgstr "<group id=\"un_gruppo\" separated=\"true\"/>" #. Tag: para #. +> trunk5 #: index.docbook:233 #, no-c-format msgid "Entries, menus, and groups can be appended to a specified group, using:" msgstr "" "Voci, menu e gruppi possono essere aggiunti a un gruppo specificato, " "utilizzando:" #. Tag: programlisting #. +> trunk5 #: index.docbook:234 #, no-c-format msgid "<entry component=\"...\" group=\"somegroup\"/>" msgstr "<entry component=\"...\" group=\"un_gruppo\"/>" #. Tag: para #. +> trunk5 #: index.docbook:236 #, no-c-format msgid "" "In fact, it is also possible to define groups (without separator lines) " "implicitly:" msgstr "" "In effetti, è anche possibile definire i gruppi (senza linee di separazione) " "implicitamente:" #. Tag: programlisting #. +> trunk5 #: index.docbook:237 #, no-c-format msgid "" "<entry component=\"first\" group=\"a\"/>\n" " <entry component=\"third\"/>\n" " <entry component=\"second\" group=\"a\"/>" msgstr "" "<entry component=\"primo\" group=\"a\"/>\n" " <entry component=\"terzo\"/>\n" " <entry component=\"secondo\" group=\"a\"/>" #. Tag: para #. +> trunk5 #: index.docbook:239 #, no-c-format msgid "" "Group names are specific to each menu. Group \"a\" in menu \"Data\" does not " "conflict with group \"a\" in menu \"Analysis\", for example." msgstr "" "I nomi dei gruppi sono specifici per ciascun menu. Il gruppo «a» nel menu " "«Dati» non è in conflitto con il gruppo «a» nel menu «Analisi», ad esempio." #. Tag: para #. +> trunk5 #: index.docbook:241 #, no-c-format msgid "" "The most common use case is defining groups at the top, or at the bottom of " "a menu. For this, there are pre-defined groups \"top\" and \"bottom\" in " "each menu." msgstr "" "Il caso d'uso più comune è la definizione di gruppi nella parte superiore o " "nella parte inferiore di un menu. Per questo, ci sono gruppi predefiniti " "«top» e «bottom» in ciascun menu." #. Tag: para #. +> trunk5 #: index.docbook:243 #, no-c-format msgid "" "Entries within each group are sorted, alphabetically. Groups appear in the " "order of declaration (unless appended to another group, of course)." msgstr "" "Le voci all'interno di ciascun gruppo sono ordinate in ordine alfabetico. I " "gruppi compaiono nell'ordine della dichiarazione (a meno che non vengano " "aggiunti a un altro gruppo, ovviamente)." #. Tag: para #. +> trunk5 #: index.docbook:245 #, no-c-format msgid "" "Menus and entries without group specification logically form a group (\"\"), " "too." msgstr "" "Anche i menu e le voci senza specifica di gruppo formano logicamente un " "gruppo (\"\")." #. Tag: title #. +> trunk5 #: index.docbook:252 #, no-c-format msgid "Defining the &GUI;" msgstr "Definizione della &GUI;" #. Tag: title #. +> trunk5 #: index.docbook:253 #, no-c-format msgid "Defining a dialog" msgstr "Definire una finestra" #. Tag: para #. +> trunk5 #: index.docbook:254 #, no-c-format msgid "" "In the previous chapter you have seen how " "to register a plugin with &rkward;. The most important ingredient was " "specifying the path to an &XML; file with a description of what the plugin " "actually looks like. In this chapter you will learn how to create this &XML; " "file." msgstr "" "Nel capitolo precedente si è visto come " "registrare un'estensione con &rkward;. L'ingrediente più importante è stato " "specificare il percorso di un file &XML; con una descrizione dell'aspetto " "dell'estensione. In questo capitolo imparerete come creare questo file &XML;." #. Tag: para #. +> trunk5 #: index.docbook:262 #, no-c-format msgid "" "Once again we will walk you through an example. The example is a (slightly " "simplified) version of the two variable t-Test." msgstr "" "Ancora una volta vi guideremo attraverso un esempio. L'esempio è una " "versione (leggermente semplificata) del test t a due variabili." #. Tag: programlisting #. +> trunk5 #: index.docbook:265 #, no-c-format msgid "<!DOCTYPE rkplugin>" msgstr "<!DOCTYPE rkplugin>" #. Tag: para #. +> trunk5 #: index.docbook:266 #, no-c-format msgid "" "The doctype is not really interpreted, yet. Set it to rkplugin, anyway." msgstr "" "Il doctype non è ancora realmente interpretato. Impostarlo comunque a " "rkplugin." #. Tag: programlisting #. +> trunk5 #: index.docbook:269 #, no-c-format msgid "" "<document>\n" " <code file=\"t_test_two_vars.js\"/>" msgstr "" "<document>\n" " <code file=\"test_t_due_variabili.js\"/>" #. Tag: para #. +> trunk5 #: index.docbook:270 #, no-c-format msgid "" "All plugins generate some code. Currently the only way to do so is using JS, " "as detailed in the next chapter. This " "defines, where to look for the JS code. The filename is relative to the " "directory the plugin &XML; is in." msgstr "" "Tutti le estensioni generano del codice. Attualmente l'unico modo per farlo " "è utilizzare JS, come descritto nel prossimo " "capitolo. Questo definisce dove cercare il codice JS. Il nome file è " "relativo alla cartella in cui si trova l'estensione &XML;." #. Tag: programlisting #. +> trunk5 #: index.docbook:273 #, no-c-format msgid "<help file=\"t_test_two_vars.rkh\"/>" msgstr "<help file=\"test_t_due_variabili.rkh\"/>" #. Tag: para #. +> trunk5 #: index.docbook:274 #, no-c-format msgid "" "It is usually a good idea to also provide a help page for your plugin. The " "filename of that help page is given, here, relative to the directory, the " "plugin &XML; is in. Writing help pages is documented here. If you do not provide a help file, omit this " "line." msgstr "" "Di solito è una buona idea fornire anche una pagina della guida per la " "propria estensione. Il nome del file di tale pagina, qui fornito, si " "riferisce, alla cartella in cui si trova l'estensione &XML;. La scrittura " "delle pagine della guida è documentata qui. Se non si fornisce un file della guida, omettere questa riga." #. Tag: programlisting #. +> trunk5 #: index.docbook:277 #, no-c-format msgid "<dialog label=\"Two Variable t-Test\">" msgstr "<dialog label=\"Test t a due variabili\">" #. Tag: para #. +> trunk5 #: index.docbook:278 #, no-c-format msgid "" "As you know, plugins may have either a dialog or a wizard interface or both. " "Here we start defining a dialog interface. The label " "attribute specifies the caption of the dialog." msgstr "" "Come è noto, le estensioni possono avere una finestra di dialogo o " "un'interfaccia guidata o entrambi. Qui iniziamo a definire un'interfaccia di " "dialogo. L'attributo labelspecifica la didascalia " "della finestra di dialogo." #. Tag: programlisting #. +> trunk5 #: index.docbook:281 #, no-c-format msgid "" "<tabbook>\n" " <tab label=\"Basic settings\">" msgstr "" "<tabbook>\n" " <tab label=\"Impostazioni di base\">" #. Tag: para #. +> trunk5 #: index.docbook:282 #, no-c-format msgid "" "&GUI; elements can be organized using a tabbook. Here we define a tabbook as " "the first element in the dialog. Use <tabbook>[...]</tabbook> to define the tabbook and " "then for each page in the tabbook use <tab>[...]</tab>. The label attribute in the <tab> element allows " "you to specify a caption for that page of the tabbook." msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:285 #, no-c-format msgid "<row id=\"main_settings_row\">" msgstr "<row id=\"riga_configurazione_principale\">" #. Tag: para #. +> trunk5 #: index.docbook:286 #, no-c-format msgid "" "The <row> and <column> " "tags specify the layout of the &GUI; elements. Here you say, that you would " "like to place some elements side-by-side (left to right). The id attribute is not strictly necessary, but we will use it later on, " "when adding a wizard interface to our plugin. The first element to place in " "the row, is:" msgstr "" "I tag <row> e <column> " "specificano la struttura degli elementi della &GUI;. Qui si indica che si " "desidera posizionare alcuni elementi affiancati (da sinistra a destra). " "L'attributo id non è strettamente necessario, ma sarà " "utilizzato in seguito, quando si aggiunge un'interfaccia guidata alla nostra " "estensione. Il primo elemento da posizionare nella riga è:" #. Tag: programlisting #. +> trunk5 #: index.docbook:289 #, no-c-format msgid "<varselector id=\"vars\"/>" msgstr "<varselector id=\"variabili\"/>" #. Tag: para #. +> trunk5 #: index.docbook:290 #, no-c-format msgid "" "Using this simple tag you create a list from which the user can select " "variables. You have to specify an id for this " "element, so &rkward; knows how to find it." msgstr "" "Utilizzando questo semplice tag si crea un elenco da cui l'utente può " "selezionare le variabili. È necessario specificare un id per questo elemento, in modo che &rkward; sappia come trovarlo." #. Tag: para #. +> trunk5 #: index.docbook:294 #, no-c-format msgid "You may NOT use a dot (.) in the id string." msgstr "" "NON si dovrebbe utilizzare un punto (.) Nella stringa id." #. Tag: programlisting #. +> trunk5 #: index.docbook:298 #, no-c-format msgid "<column>" msgstr "<column>" #. Tag: para #. +> trunk5 #: index.docbook:299 #, no-c-format msgid "" "Next, we nest a <column> inside the row. That is " "the following elements will be placed above each other (top-to-bottom), and " "all will be to the right of the <varselector>." msgstr "" "Successivamente, annidiamo una <column> all'interno " "della riga. Cioè i seguenti elementi saranno posizionati uno sopra l'altro " "(dall'alto verso il basso) e tutti saranno a destra del <" "varselector>." #. Tag: programlisting #. +> trunk5 #: index.docbook:302 #, no-c-format msgid "" "<varslot types=\"number\" id=\"x\" source=\"vars\" required=\"true\" " "label=\"compare\"/>\n" " <varslot types=\"number\" " "id=\"y\" source=\"vars\" required=\"true\" label=\"against\" i18n_context=" "\"compare against\"/>" msgstr "" "<varslot types=\"number\" id=\"x\" source=\"vars\" required=\"true\" " "label=\"compare\"/>\n" " <varslot types=\"number\" " "id=\"y\" source=\"vars\" required=\"true\" label=\"against\" i18n_context=" "\"confronta con\"/>" #. Tag: para #. +> trunk5 #: index.docbook:303 #, no-c-format msgid "" "These elements are the counterpart to the <varselector>. They represent slots into which the user can put " "variables. You will note that the source is set to " "the same value as the id of the <" "varselector>. This means, the <varslot>s will each take their variables from the varselector. The " "<varslot>s also have to be given an id. They may have a label, and they may be " "set to required. This means that the " "Submit button will not be enabled until the " "<varslot> holds a valid value. Finally the " "type attribute is not interpreted yet, but it will be " "used to take care that only the correct types of variables will be allowed " "in the <varslot>." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:306 #, no-c-format msgid "" "In case you are wondering about the i18n_context-" "attribute: This is to provide context to help the correct translation of the " "word \"against\", used as the <varslot>'s label, " "but does not affect the functionality of the plugin, directly. More on this " "in a separate chapter." msgstr "" "Nel caso ci si stia chiedendo dell'attributo i18n_context: questo serve a fornire un contesto per aiutare la traduzione " "corretta della parola «contro», utilizzata come etichetta del <" "varslot>, ma non influisce direttamente sulla funzionalità " "dell'estensione. Altre informazioni al riguardo in un capitolo separato." #. Tag: programlisting #. +> trunk5 #: index.docbook:310 #, no-c-format msgid "" "<radio id=\"hypothesis\" label=\"using test hypothesis\">\n" " <option value=" "\"two.sided\" label=\"Two-sided\"/>\n" " <option value=" "\"greater\" label=\"First is greater\"/>\n" " <option value=" "\"less\" label=\"Second is greater\"/>\n" " </radio>" msgstr "" "<radio id=\"hypothesis\" label=\"ipotesi del test in uso\">\n" " <option value=" "\"due.lati\" label=\"Due lati\"/>\n" " <option value=" "\"maggiore\" label=\"Il primo è più grande\"/>\n" " <option value=" "\"minore\" label=\"Il secondo è più grande\"/>\n" " </radio>" #. Tag: para #. +> trunk5 #: index.docbook:311 #, no-c-format msgid "" "Here, you define a group of <radio> exclusive " "buttons. The group has a label and an id. Each <option> (button) has a " "label and is assigned a value. " "This is the value the <radio> element will return " "when the option is selected." msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:314 #, no-c-format msgid "" "</column>\n" " </row>\n" " </tab>" msgstr "" "</column>\n" " </row>\n" " </tab>" #. Tag: para #. +> trunk5 #: index.docbook:315 #, no-c-format msgid "" "Each tag has to be closed. We have put all the elements we wanted (the two " "<varslots> and the <radio>) in the <column>. We put all elements we " "wanted (the <varselector> and the <" "column> with those elements) in the <row>. And we have put all the elements we wanted into the first page in " "the <tabbook>. We are not yet done defining the " "<tabbook> (more pages to come), and of course there " "is more to come in the <dialog>, too. But this " "screenshot is basically what we have done so far:" msgstr "" #. Tag: screeninfo #. +> trunk5 #: index.docbook:319 #, no-c-format msgid "t-Test plugin" msgstr "Estensione test t" #. Tag: phrase #. +> trunk5 #: index.docbook:325 #, no-c-format msgid "t-Test plugin" msgstr "Estensione test t" #. Tag: para #. +> trunk5 #: index.docbook:329 #, no-c-format msgid "" "Note that we have not specified the Submit, " "Close, &etc; buttons or the code view. Those elements " "get generated automatically. But of course we still have to define the " "second page of the <tabbook>:" msgstr "" "Notare che non abbiamo specificato i pulsanti Invia, " "Chiudi &etc; o la vista del codice. Questi elementi " "sono generati automaticamente. Ma ovviamente dobbiamo ancora definire la " "seconda pagina del <tabbook>:" #. Tag: programlisting #. +> trunk5 #: index.docbook:332 #, no-c-format msgid "" "<tab label=\"Options\">\n" " <checkbox id=\"varequal\" label=\"assume " "equal variances\" value=\", var.equal=TRUE\"/>" msgstr "" "<tab label=\"Opzioni\">\n" " <checkbox id=\"varequal\" label=\"assumi " "varianze uguali\" value=\", var.equal=TRUE\"/>" #. Tag: para #. +> trunk5 #: index.docbook:333 #, no-c-format msgid "" "By default elements will be placed top-to-bottom like in a <" "column>. Since that is what we want here, we do not have to " "explicitly state a <row> or <column>" " layout. The first element we define is a checkbox. Just like the " "<radio><option>s, the " "checkbox has a label and a value. The value is what gets returned, if the " "check box is checked. Of course the checkbox also needs an id." msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:336 #, no-c-format msgid "<frame label=\"Confidence Interval\" id=\"frame_conf_int\">" msgstr "<frame label=\"Intervallo di confidenza\" id=\"frame_conf_int\">" #. Tag: para #. +> trunk5 #: index.docbook:337 #, no-c-format msgid "" "Here is yet another layout element: In order to signal that the two elements " "below belong together, we draw a <frame> (box). " "That frame may have a label (caption). Since the " "frame is just a passive layout element, it does not need an id, we still define one here, as we will refer to it later, when " "defining an additional wizard interface." msgstr "" "Ecco ancora un altro elemento di struttura: per segnalare che i due elementi " "sottostanti sono uniti, tracciamo un <frame> " "(scatola). Quella cornice può avere una label " "(didascalia). Poiché la cornice è solo un elemento passivo della struttura, " "non ha bisogno di un id, ne definiamo ancora uno qui, " "come faremo riferimento in seguito, quando definiremo un'interfaccia " "aggiuntiva della procedura " #. Tag: programlisting #. +> trunk5 #: index.docbook:340 #, no-c-format msgid "" "<checkbox id=\"confint\" label=\"print confidence interval\" value=\"1\" " "checked=\"true\"/>\n" " <spinbox type=\"real\" id=" "\"conflevel\" label=\"confidence level\" min=\"0\" max=\"1\" initial=" "\"0.95\"/>\n" " </frame>" msgstr "" "<checkbox id=\"confint\" label=\"stampa l'intervallo di confidenza\" " "value=\"1\" checked=\"true\"/>\n" " <spinbox type=\"real\" id=" "\"conflevel\" label=\"livello di confidenza\" min=\"0\" max=\"1\" initial=" "\"0.95\"/>\n" " </frame>" #. Tag: para #. +> trunk5 #: index.docbook:341 #, no-c-format msgid "" "Inside the <frame> we place another <" "checkbox> (using checked=" "\"true\", we signal that check box should be checked by " "default), and a <spinbox>. The spinbox allows the " "user to select a value between \"min\" and " "\"max\" with the default/initial value " "\"0.95\". Setting the type " "to \"real\" signals that real numbers are " "accepted as opposed to type=\"integer\" which would accept integers only." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:344 #, no-c-format msgid "" "It is also possible, and often preferable, to make the <frame>" " itself checkable, instead of adding a <checkbox> inside. See the reference for details. This is not done here, for " "illustrational purposes." msgstr "" "È anche possibile, e spesso preferibile, rendere il <frame><" "/command> stesso controllabile, invece di aggiungere una <checkbox> all'interno. Vedere il riferimento per i" " dettagli. Questo non è fatto qui, a scopo illustrativo." #. Tag: programlisting #. +> trunk5 #: index.docbook:347 #, no-c-format msgid "" "</tab>\n" " </tabbook>\n" " </dialog>" msgstr "" "</tab>\n" " </tabbook>\n" " </dialog>" #. Tag: para #. +> trunk5 #: index.docbook:348 #, no-c-format msgid "" "That is all for the second page of the <tabbook>, " "all pages in the <tabbook> and all elements in the " "<dialog>. We are finished defining what the dialog " "looks like." msgstr "" "Questo è tutto per la seconda pagina del <tabbook>," " tutte le pagine nel <tabbook> e tutti gli elementi" " nella <dialog>. Abbiamo finito di definire" " l'aspetto della finestra." #. Tag: programlisting #. +> trunk5 #: index.docbook:351 #, no-c-format msgid "</document>" msgstr "</document>" #. Tag: para #. +> trunk5 #: index.docbook:352 #, no-c-format msgid "" "Finally we close the <document> tag, and that is " "it. The &GUI; is defined. You can save the file now. But how does &R; syntax " "get generated from the &GUI; settings? We will deal with that in the next chapter. First, however, we will look " "into adding a wizard interface, and some general considerations." msgstr "" "Alla fine chiudiamo il tag <document>, e basta. La" " &GUI; è definita. È possibile salvare il file ora. Ma come viene generata la" " sintassi di &R; dalle impostazioni della &GUI;? Ci occuperemo di ciò nel <" "link linkend=\"jstemplate\">prossimo capitolo. In primo luogo," " tuttavia, esamineremo l'aggiunta di un'interfaccia guidata e alcune" " considerazioni generali." #. Tag: title #. +> trunk5 #: index.docbook:358 #, no-c-format msgid "Adding a wizard interface" msgstr "Aggiunge un'interfaccia di procedura guidata" #. Tag: para #. +> trunk5 #: index.docbook:359 #, no-c-format msgid "" "Actually we do not have to define an additional <wizard> interface, but here is how that would be done. To add a wizard " "interface, you will add a <wizard> tag at the same " "level as the <dialog> tag:" msgstr "" "In realtà non è necessario definire un'interfaccia aggiuntiva <wizard>, ma ecco come dovrebbe essere fatto. " "Per aggiungere un'interfaccia della procedura guidata, aggiungere un tag <" "command><wizard> allo stesso livello del tag <dialog>:" #. Tag: programlisting #. +> trunk5 #: index.docbook:362 #, no-c-format msgid "" "<wizard label=\"Two Variable t-Test\">\n" " <page id=\"firstpage\">\n" " <text>As a first step, select the two " "variables you want to compare against\n" " each other. And specify, which one " "you theorize to be greater. Select two-sided,\n" " if your theory does not tell you, " "which variable is greater.</text>\n" " <copy id=\"main_settings_row\"/>\n" " </page>" msgstr "" "<wizard label=\"Test t a due variabili\">\n" " <page id=\"prima_pagina\">\n" " <text>Come primo passo, seleziona le " "due variabili che desideri confrontare.\n" " E specifica, quale ipotizzi sia la " "più grande. Seleziona due lati,\n" " se la tua ipotesi non indica quale " "variabile sia la più grande.</text>\n" " <copy id=\"riga_impostazioni_principali\"/" ">\n" " </page>" #. Tag: para #. +> trunk5 #: index.docbook:363 #, no-c-format msgid "" "Some of this is pretty self explanatory: We add a <wizard> tag with a label for the wizard. Since a " "wizard can hold several pages that are shown one after another, we next " "define the first <page>, and put an explanatory " "<text> note in there. Then we use a <" "copy> tag. What this does, is really it saves us having to " "define yet again, what we already wrote for the <dialog>: The copy tag looks for another tag with the same id earlier in the &XML;. This happens to be defined in the " "<dialog> section, and is a <row> in which there are the <varselector>, " "<varslots> and the hypothesis " "<radio> control. All of this is copied 1:1 and " "inserted right at the <copy> element." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:366 #, no-c-format msgid "Now to the second page:" msgstr "Ora alla seconda pagina:" #. Tag: programlisting #. +> trunk5 #: index.docbook:369 #, no-c-format msgid "" "<page id=\"secondpage\">\n" " <text>Below are some advanced options. " "It is generally safe not to assume the\n" " variables have equal variances. An " "appropriate correction will be applied then.\n" " Choosing \"assume equal variances\" " "may increase test-strength, however.</text>\n" " <copy id=\"varequal\"/>\n" " <text>Sometimes it is helpful to get " "an estimate of the confidence interval of\n" " the difference in means. Below you " "can specify whether one should be shown, and\n" " which confidence-level should be " "applied (95% corresponds to a 5% level of\n" " significance).</text>\n" " <copy id=\"frame_conf_int\"/>\n" " </page>\n" " </wizard>" msgstr "" "<page id=\"seconda_pagina\">\n" " <text>Di seguito sono disponibili " "alcune opzioni avanzate. È generalmente sicura non assumere che\n" " le variabili abbiano varianze " "uguali. Una correzione appropriata sarà quindi applicata.\n" " Tuttavia, la scelta di \"assumi " "varianze uguali\" potrebbe incrementare la potenza del test.</text>\n" " <copy id=\"varequal\"/>\n" " <text>A volte è utile ottenere una " "stima dell'intervallo di confidenza della\n" " differenza tra le medie. Sotto, puoi " "specificare se una dovrebbe essere mostrata, e\n" " quale livello di confidenza dovrebbe " "essere applicata (95% corrisponde a un livello di significatività\n" " del 5%).</text>\n" " <copy id=\"frame_conf_int\"/>\n" " </page>\n" " </wizard>" #. Tag: para #. +> trunk5 #: index.docbook:370 #, no-c-format msgid "" "Much of the same thing here. We add some texts, and in between that " "<copy> further sections from the dialog interface." msgstr "" "Quasi la stessa cosa qui. Aggiungiamo alcuni testi e tra queste ulteriori " "sezioni <copy> dall'interfaccia." #. Tag: para #. +> trunk5 #: index.docbook:373 #, no-c-format msgid "" "You may of course make the wizard interface look very different to the plain " "dialog, and not use the <copy> tag at all. Be sure, " "however, to assign corresponding elements the same id " "in both interfaces. This is not only used to transfer settings from the " "dialog interface to the wizard interface and back, when the user switches " "interfaces (which does not yet happen in the current version of &rkward;), " "but also simplifies writing your code template (see below)." msgstr "" "Ovviamente, è possibile rendere l'interfaccia della procedura guidata molto " "diversa dalla semplice finestra e non utilizzare affatto il tag <" "copy>. Assicurarsi, tuttavia, di assegnare agli elementi " "corrispondenti lo stesso id in entrambe le " "interfacce. Questo non viene utilizzato solo per trasferire le impostazioni " "dall'interfaccia di dialogo all'interfaccia della procedura guidata e " "viceversa, quando l'utente cambia interfaccia (che non si verifica ancora " "nella versione attuale di &rkward;), ma semplifica anche la scrittura del " "modello di codice (vedere sotto) ." #. Tag: title #. +> trunk5 #: index.docbook:379 #, no-c-format msgid "Some considerations on &GUI; design" msgstr "Alcune considerazioni sulla struttura della &GUI;" #. Tag: para #. +> trunk5 #: index.docbook:380 #, no-c-format msgid "" "This section contains some general considerations on which &GUI; elements to " "use where. If this is your first attempt of creating a plugin, feel free to " "skip over this section, as it is not relevant to getting a basic &GUI; " "working. Come back here, later, to see, whether you can refine your plugin's " "&GUI; in some way or another." msgstr "" "Questa sezione contiene alcune considerazioni generali su quali elementi " "della &GUI; utilizzare. Se questo è il primo tentativo di creare " "un'estensione, non esitare a saltare questa sezione, poiché non è rilevante " "per ottenere una &GUI; di base funzionante. Tornare qui, più tardi, per " "vedere se è possibile perfezionare la &GUI; della propria estensione in un " "modo o nell'altro." #. Tag: title #. +> trunk5 #: index.docbook:385 #, no-c-format msgid "<radio> vs. <checkbox> vs. <dropdown>" msgstr "<radio> vs. <checkbox> vs. <dropdown>" #. Tag: para #. +> trunk5 #: index.docbook:386 #, no-c-format msgid "" "The three elements <radio>, <" "checkbox>, <dropdown>, all serve a " "similar function: To select one out of several options. Obviously, a check " "box only allows to choose between two options: checked or not checked, so " "you cannot use it, if there are more than two options to choose from. But " "when to use which of the elements? Some rules of thumb:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:389 #, no-c-format msgid "" "If you find yourself creating a <radio> or " "<dropdown> with only two options, ask yourself, " "whether the question is essentially a yes / no type of question. E.g. a " "choice between adjust results and do not adjust " "results, or between remove missing values and " "keep missing values. In this case a <checkbox>" " is the best choice: It uses little space, will have the least " "words of labels, and is easiest to read for the user. There are very few " "situations where you should choose a <radio> over a " "<checkbox>, when there are only two options. An " "example of that might be: Method of calculation: " "'pearson'/'spearman'. Here, more methods might be thinkable, and " "they do not really form a pair of opposites." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:392 #, no-c-format msgid "" "Choosing between a <radio> and a <" "dropdown> is mostly a question of space. The <" "dropdown> has the advantage of using little space, even if " "there are a lot of options to choose from. On the other hand, a <" "radio> has the advantage of making all possible choices visible " "to the user at once, without clicking on the dropdown arrow. Generally, if " "there are six or more options to choose from, a <dropdown> is preferable. If there are five or less options, a <" "radio> is the better choice." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:400 #, no-c-format msgid "Generating &R; code from &GUI; settings" msgstr "Generare il codice di &R; dalle impostazioni della &GUI;" #. Tag: title #. +> trunk5 #: index.docbook:401 #, no-c-format msgid "Using &javascript; in &rkward; plugins" msgstr "Utilizzare &javascript; nelle estensioni di &rkward;" #. Tag: para #. +> trunk5 #: index.docbook:402 #, no-c-format msgid "" "Now we have a &GUI; defined, but we still need to generate some &R; code " "from that. For that, we need another text file, code.js, located in the same directory as the description.xml. You may or may not be " "familiar with &javascript; (or, to be technically precise: ECMA-script). " "Documentation on JS can be found in abundance, both in printed form, and on " "the Internet (⪚: https://developer.mozilla.org/en/" "Core_JavaScript_1.5_Guide). But for most purposes you will not need " "to know much about JS at all, as we will only use some very basic features." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:406 #, no-c-format msgid "" "After reading this chapter, have a look at the rkwarddev package as well. It provides " "some &R; functions to create &javascript; code commonly used in &rkward;. It " "can also autodetect variables used in a plugin &XML; file and create basic " "&javascript; code from that for you to start with." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:411 #, no-c-format msgid "" "Plugin .js files are assumed to be " "UTF-8 encoded. Be sure to check you editor's encoding, if using any non-" "ascii characters." msgstr "" "Si presume che i file .js " "dell'estensione siano codificati in UTF-8. Assicurarsi di controllare la " "codifica dell'editor, se si utilizzano caratteri non ascii." #. Tag: para #. +> trunk5 #: index.docbook:415 #, no-c-format msgid "" "For the two variable t-test, the code.js file looks as " "follows (with comments in between):" msgstr "" "Per il test t a due variabili, il file code.js ha il " "seguente aspetto (con commenti nel mezzo):" #. Tag: title #. +> trunk5 #: index.docbook:418 #, no-c-format msgid "preprocess()" msgstr "preprocess()" #. Tag: programlisting #. +> trunk5 #: index.docbook:419 #, no-c-format msgid "" "function preprocess () {\n" "}" msgstr "" "function preprocess () {\n" "}" #. Tag: para #. +> trunk5 #: index.docbook:420 #, no-c-format msgid "" "The JS file is organized into three separate functions: " "preprocess(), calculate(), and " "printout(). This is because not all code is needed at " "all stages. Currently the preprocess-function is not really used in many " "places (typically you will omit it altogether)." msgstr "" "Il file JS è organizzato in tre funzioni separate: " "preprocess(), calculate() e <" "function>printout(). " "Questo perché non tutto il codice è necessario in tutte le fasi. Attualmente" " la funzione di pre-elaborazione " "non è realmente utilizzata in molti punti (in genere sarà omessa del tutto)." #. Tag: title #. +> trunk5 #: index.docbook:424 #, no-c-format msgid "calculate()" msgstr "calculate()" #. Tag: programlisting #. +> trunk5 #: index.docbook:425 #, no-c-format msgid "" "function calculate () {\n" " echo ('res <- t.test (x=' + getString (\"x\") + ', y=' + " "getString (\"y\") + ', hypothesis=\"' + getString (\"hypothesis\") + '\"' + " "getString (\"varequal\"));\n" " var conflevel = getString (\"conflevel\");\n" " if (conflevel != \"0.95\") echo (', conf.level=' + conflevel);\n" " echo (')\\n');\n" "}" msgstr "" "function calculate () {\n" " echo ('res <- t.test (x=' + getString (\"x\") + ', y=' + " "getString (\"y\") + ', hypothesis=\"' + getString (\"ipotesi\") + '\"' + " "getString (\"varequal\"));\n" " var conflevel = getString (\"conflevel\");\n" " if (conflevel != \"0.95\") echo (', conf.level=' + conflevel);\n" " echo (')\\n');\n" "}" #. Tag: para #. +> trunk5 #: index.docbook:426 #, no-c-format msgid "" "This function generates the actual &R; syntax to be run from the &GUI; " "settings. Let's look at this in detail: The code to be used is generated " "using echo() statement. Looking at the " "echo() statement step by step, the first part of it is" msgstr "" "Questa funzione genera l'attuale sintassi di &R; da eseguire dalle " "impostazioni della &GUI;. Vediamo questo in dettaglio: il codice da " "utilizzare è generato utilizzando l'istruzione echo(). " "Osservando l'istruzione echo() passo dopo passo, la " "prima parte è" #. Tag: screen #. +> trunk5 #: index.docbook:429 #, no-c-format msgid "res <- t.test (" msgstr "res <- t.test (" #. Tag: para #. +> trunk5 #: index.docbook:430 #, no-c-format msgid "" "as plain text. Next we need to fill in the value, the user selected as the " "first variable. We fetch this using getString (\"x\"), " "and append it to the string to be echoed. This prints out the " "value of the &GUI;-element with id=\"x" "\": our first <checkbox>. Next, we " "append a ', ', and do the same to fetch the value of the element " "\"y\" - the second <checkbox>. For the hypothesis (the <radio> group), " "and the equal variances <checkbox>, the procedure " "is very similar." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:433 #, no-c-format msgid "" "Note that instead of concatenating the output snippets with +, you can also use several echo() statements. " "Everything is printed on a single line. To produce a line break in the " "generated code, insert a \"\\n\" in the echoed " "string. In theory, you can even produce many lines with a single echo-" "statement, but please keep it to one line (or less) of generated code per " "echo()." msgstr "" "Tenere presente che invece di concatenare i frammenti di uscita con " "+, è possibile anche utilizzare diverse istruzioni echo(). Tutto è stampato su una sola riga. Per produrre un'interruzione " "di riga nel codice generato, inserire un \"\\n\" " "nella stringa stampata. In teoria, è possibile persino produrre molte righe " "con una singola istruzione echo, ma consigliamo limitarsi a una riga (o " "meno) di codice generato per echo()." #. Tag: para #. +> trunk5 #: index.docbook:437 #, no-c-format msgid "" "Besides getString(), there are also functions " "getBoolean(), which will try to return the value as a " "logical (suitable for using in an if()-statement), and " "getList(), which will try to return list-like data in a " "JS Array(). We will show examples of those, later." msgstr "" "Oltre a getString(), ci sono anche funzioni " "getBoolean(), che proveranno a restituire il valore " "come logico (adatto per l'uso in un'istruzione if() e " "getList(), che proveranno a restituire dati simili a " "quelli di una lista in un Array() JS. Ne mostreremo " "esempi in seguito." #. Tag: para #. +> trunk5 #: index.docbook:438 #, no-c-format msgid "" "When looking at existing plugins, you will also find plenty of plugins using " "getValue(), instead of getString(), and in fact the two are almost identical. " "However using getString(), getBoolean() and getList() is the recommended practice " "since version 0.6.1." msgstr "" "Quando si cercano le estensioni esistenti, si troveranno molte estensioni" " utilizzando " "getValue(), invece di getString()," " e in effetti " "le due sono quasi identiche. Tuttavia, l'utilizzo di <" "function>getString(), " "getBoolean() e getList() è la" " pratica consigliata" "dalla versione 0.6.1." #. Tag: para #. +> trunk5 #: index.docbook:441 #, no-c-format msgid "" "It gets a little more tricky for the confidence level. For reasons of " "aesthetics, we do not want to explicitly specify the confidence level to " "use, if it corresponds to the default value. Hence, instead of printing the " "value unconditionally, we first fetch into a variable. Then we check, " "whether that variable differs from \"0.95\" and " "if so print out an additional argument. Finally, we echo a closing bracket " "and a line break: \")\\n\". That is all for the " "calculate function." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:445 #, no-c-format msgid "printout()" msgstr "printout()" #. Tag: programlisting #. +> trunk5 #: index.docbook:446 #, no-c-format msgid "" "function printout () {\n" " echo ('rk.header (' + i18n (\"Two Variable t-Test\") + ')\\n');\n" " echo ('rk.print (res)\\n');\n" "}" msgstr "" "function printout () {\n" " echo ('rk.header (' + i18n (\"Test t a due variabili\") + ')\\n');\n" " echo ('rk.print (res)\\n');\n" "}" #. Tag: para #. +> trunk5 #: index.docbook:447 #, no-c-format msgid "" "And this was all there is to the printout function in most cases. " "rk.header() prints a standard headline for the results. " "Note that in the .js files, you have " "to mark up all translatable strings by hand, using i18n(), or some alternative commands. More on this in the chapter on internationalization. You can also add some " "more information to this, if you like, ⪚:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:452 #, no-c-format msgid "" "function printout () {\n" " new Header (i18n (\"Two Variable t-Test\"))\n" " .addFromUI (\"varequal\")\n" " .add (i18n (\"Confidence level\"), getString (\"conflevel" "\")) // Note: written like this for illustration purposes. More automatic:\n" " // .addFromUI (\"conflevel\")\n" " .print ();\n" "echo ('rk.print (res)\\n');\n" "}" msgstr "" "function printout () {\n" " new Header (i18n (\"Test t a due variabili\"))\n" " .addFromUI (\"varequal\")\n" " .add (i18n (\"Livello di confidenza\"), getString " "(\"conflevel\")) // Nota: scritto in questo modo a scopo illustrativo. Più " "automatico:\n" " // .addFromUI (\"conflevel\")\n" " .print ();\n" "echo ('rk.print (res)\\n');\n" "}" #. Tag: para #. +> trunk5 #: index.docbook:453 #, no-c-format msgid "" "rk.print() utilizes the R2HTML package to provide " "&HTML; formatted output. Another helpful function is rk.results(), which can also output different kinds of result tables. If in " "doubt, however, just use rk.print(), and be done with. " "The JS class Header is a JS level helper to generate a " "call to rk.header() (just take a look at the generated " "&R; code). In some cases you may want to call echo ('rk.header " "(...)') directly to print a header for your output." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:456 #, no-c-format msgid "" "Note that internally, the output is just a plain &HTML; document at this " "point of time. Therefore you might be tempted to add custom &HTML; using " "rk.cat.output(). While this will work, please do not do " "this. The output format may change (⪚ to ODF) in the future, so it is " "best not to introduce &HTML; specific code. Rather keep things simple with " "rk.header(), rk.print(), " "rk.results(), and -- if needed -- rk.print." "literal(). If those do not seem to satisfy your formatting needs, " "contact us on the mailing list for help." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:459 #, no-c-format msgid "" "Congratulations! You created your first plugin. Read on in the next chapters " "for more advanced concepts." msgstr "" "Congratulazioni! Avete creato la vostra prima estensione. Continuare a " "leggere nei prossimi capitoli per concetti più avanzati." #. Tag: title #. +> trunk5 #: index.docbook:466 #, no-c-format msgid "Conventions, policies, and background" msgstr "Convenzioni, criteri e sfondo" #. Tag: para #. +> trunk5 #: index.docbook:467 #, no-c-format msgid "" "There are many ways to write &R; code for a certain task, and there are even " "more ways to generate this &R; code from JS. How exactly you do it, is left " "up to you. Still there are a number of considerations that you should " "follow, and background information you should understand." msgstr "" "Esistono molti modi per scrivere codice &R; per un determinato compito e ci " "sono ancora più modi per generare questo codice &R; da JS. Come farlo " "esattamente, è lasciato a voi. Ci sono ancora alcune considerazioni che si " "dovrebbero seguire e informazioni di base che si dovrebbero comprendere." #. Tag: title #. +> trunk5 #: index.docbook:472 #, no-c-format msgid "Understanding the local() environment" msgstr "Comprendere l'ambiente local()" #. Tag: para #. +> trunk5 #: index.docbook:473 #, no-c-format msgid "" "More often than not you will have to create one or more temporary &R; " "objects in the code generated by your plugin. Normally, you do not want " "those to be placed in the user's workspace, potentially even overwriting " "user variables. Hence, all plugin generated code is run in a " "local() environment (see &R; help page on function " "local()). This means, all variables you create are " "temporary and will not be saved permanently." msgstr "" "Molto spesso sarà necessario creare uno o più oggetti temporanei di &R; nel " "codice generato dalla propria estensione. Normalmente, non si desidera che " "vengano posizionati nell'area di lavoro dell'utente, potenzialmente anche " "sovrascrivendo le variabili utente. Quindi, tutto il codice generato " "dall'estensione viene eseguito in un ambiente local() " "(consultare la pagina della guida di &R; sulla funzione local()). Ciò significa che tutte le variabili create sono temporanee e " "non saranno salvate in modo permanente." #. Tag: para #. +> trunk5 #: index.docbook:476 #, no-c-format msgid "" "If the user explicitly asks for a variable to be saved, you will need to " "assign to that object using .GlobalEnv$objectname <- value. In general, do not use the <<- " "operator. It will not necessarily assign in .GlobalEnv." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:479 #, no-c-format msgid "" "One important pitfall is using eval(). Here, you need " "to note that eval will by default use the current environment for " "evaluation, &ie; the local one. This will work well most of the times, but " "not always. Thus, if you need to use eval(), you will " "probably want to specify the envir parameter: " "eval(..., envir=globalenv())." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:485 #, no-c-format msgid "Code formatting" msgstr "Formattazione del codice" #. Tag: para #. +> trunk5 #: index.docbook:486 #, no-c-format msgid "" "The most important thing is for your generated &R; code to work, but it " "should be also easy to read. Therefore, please also keep an eye on " "formatting. Some considerations:" msgstr "" "La cosa più importante perché il proprio codice &R; generato funzioni, ma " "dovrebbe anche essere facile da leggere. Pertanto, fare attenzione anche " "alla formattazione. Alcune considerazioni:" #. Tag: para #. +> trunk5 #: index.docbook:489 #, no-c-format msgid "Normal top-level &R; statements should be left aligned." msgstr "" "Le istruzioni di primo livello di &R; dovrebbero essere allineate a sinistra." #. Tag: para #. +> trunk5 #: index.docbook:492 #, no-c-format msgid "" "Statements in a lower block should be indented with one tab (see example " "below)." msgstr "" "Le istruzioni in un blocco inferiore devono essere rientrate con una " "tabulazione (vedere l'esempio seguente)." #. Tag: para #. +> trunk5 #: index.docbook:495 #, no-c-format msgid "" "If you do very complex calculations, add a comment here and there, esp. to " "mark up logical sections. Note that there is a dedicated function " "comment() for inserting translatable comments in the " "generated code." msgstr "" "Se si eseguono calcoli molto complessi, aggiungere un commento ogni tanto, " "specialmente per contrassegnare sezioni logiche. Si noti che esiste una " "funzione dedicata comment() per l'inserimento di commenti " "traducibili nel codice generato." #. Tag: para #. +> trunk5 #: index.docbook:499 #, no-c-format msgid "" "For example, generated code might look like this. The same code without " "indentation or comments would be pretty hard to read, despite its modest " "complexity:" msgstr "" "Ad esempio, il codice generato potrebbe apparire così. Lo stesso codice " "senza rientri o commenti sarebbe piuttosto difficile da leggere, nonostante " "la sua modesta complessità:" #. Tag: programlisting #. +> trunk5 #: index.docbook:502 #, no-c-format msgid "" "# first determine the wobble and rotation\n" "my.wobble <- wobble (x, y)\n" "my.rotation <- wobble.rotation (my.wobble, z)\n" "\n" "# boggling method needs to be chosen according to rotation\n" "if (my.rotation > wobble.rotation.limit (x)) {\n" " method <- \"foo\"\n" " result <- boggle.foo (my.wobble, my.rotation)\n" "} else {\n" " method <- \"bar\"\n" " result <- boggle.bar (my.wobble, my.rotation)\n" "}" msgstr "" "# determina prima l'oscillazione e la rotazione\n" "my.wobble <- wobble (x, y)\n" "my.rotation <- wobble.rotation (my.wobble, z)\n" "\n" "# il metodo preciso deve essere scelto in base alla rotazione\n" "if (my.rotation > wobble.rotation.limit (x)) {\n" " method <- \"foo\"\n" " result <- boggle.foo (my.wobble, my.rotation)\n" "} else {\n" " method <- \"bar\"\n" " result <- boggle.bar (my.wobble, my.rotation)\n" "}" #. Tag: title #. +> trunk5 #: index.docbook:506 #, no-c-format msgid "Dealing with complex options" msgstr "Gestire le operazioni complesse" #. Tag: para #. +> trunk5 #: index.docbook:507 #, no-c-format msgid "" "Many plugins can do more than one thing. For instance, the " "Descriptive Statistics plugin can compute mean, range, sum, " "product, median, length, &etc; However, typically the user will only choose " "to have some of those calculations performed. In this case, please try to " "keep the generated code as simple as possible. It should only contain " "portions relevant to the options that are actually selected. To achieve " "this, here is an example of a common design patterns as you would use it (in " "JS; here, \"domean\", \"domedian\", and \"dosd\" would be <checkbox> " "elements):" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:510 #, no-c-format msgid "" "function calculate () {\n" " echo ('x <- <' + getString (\"x\") + ')\\n');\n" " echo ('results <- list ()\\n');\n" "\n" " if (getBoolean (\"domean.state\")) echo (\"results$\" + i18n (\"Mean " "value\") + \" <- mean (x)\\n\");\n" " if (getBoolean (\"domedian.state\")) echo (\"results$\" + i18n " "(\"Median\") + \" <- median (x)\\n\");\n" " if (getBoolean (\"dosd.state\")) echo (\"results$\" + i18n " "(\"Standard deviation\") + \" <- sd (x)\\n\");\n" " //...\n" "}" msgstr "" "function calculate () {\n" " echo ('x <- <' + getString (\"x\") + ')\\n');\n" " echo ('results <- list ()\\n');\n" "\n" " if (getBoolean (\"domean.state\")) echo (\"results$\" + i18n (\"Mean " "value\") + \" <- mean (x)\\n\");\n" " if (getBoolean (\"domedian.state\")) echo (\"results$\" + i18n " "(\"Median\") + \" <- median (x)\\n\");\n" " if (getBoolean (\"dosd.state\")) echo (\"results$\" + i18n " "(\"Standard deviation\") + \" <- sd (x)\\n\");\n" " //...\n" "}" #. Tag: title #. +> trunk5 #: index.docbook:515 #, no-c-format msgid "Tips and tricks" msgstr "Suggerimenti e trucchi" #. Tag: para #. +> trunk5 #: index.docbook:516 #, no-c-format msgid "" "Here are a few assorted tricks which may make writing plugins less tedious:" msgstr "" "Ecco alcuni trucchi assortiti che possono rendere meno noiosa la scrittura " "delle estensioni:" #. Tag: para #. +> trunk5 #: index.docbook:519 #, no-c-format msgid "" "If you need the value of a &GUI; setting at several places in you plugin's " "code, consider assigning it to a variable in JS, and using that instead of " "fetching it again and again with getString()/getBoolean()/" "getList(). This is faster, more readable, and less typing all at " "the same time:" msgstr "" "Se si ha bisogno del valore di un'impostazione della &GUI; in diversi punti " "del codice della propria estensione, considerare di assegnarlo a una " "variabile in JS e usarlo invece di recuperarlo ancora e ancora con " "getString()/getBoolean()/getList(). Questo è più " "veloce, più leggibile e comporta una minore digitazione allo stesso tempo:" #. Tag: programlisting #. +> trunk5 #: index.docbook:522 #, no-c-format msgid "" "function calculate () {\n" " var narm = \"\"; // na.rm=FALSE is the default in all " "functions below\n" " if (getBoolean (\"remove_nas\")) {\n" " $narm = \", na.rm=TRUE\";\n" " }\n" " // ...\n" " echo (\"results$foo <- foo (x\" + narm + \")\\n\");\n" " echo (\"results$bar <- bar (x\" + narm + \")\\n\");\n" " echo (\"results$foobar <- foobar (x\" + narm \"\\n\");\n" " // ...\n" "}" msgstr "" "function calculate () {\n" " var narm = \"\"; // na.rm=FALSE is the default in all " "functions below\n" " if (getBoolean (\"remove_nas\")) {\n" " $narm = \", na.rm=TRUE\";\n" " }\n" " // ...\n" " echo (\"results$foo <- foo (x\" + narm + \")\\n\");\n" " echo (\"results$bar <- bar (x\" + narm + \")\\n\");\n" " echo (\"results$foobar <- foobar (x\" + narm \"\\n\");\n" " // ...\n" "}" #. Tag: para #. +> trunk5 #: index.docbook:523 #, no-c-format msgid "" "The simple helper function makeOption() can make it " "easier to omit parameters that are at their default value, in many cases:" msgstr "" "La semplice funzione di supporto makeOption() può " "rendere più semplice l'omissione di parametri che sono al loro valore " "predefinito, in molti casi:" #. Tag: programlisting #. +> trunk5 #: index.docbook:526 #, no-c-format msgid "" "function calculate () {\n" " var options\n" " //...\n" " // This will do nothing, if VALUE is 0.95 (the default). Otherwise " "it will append ', conf.int=VALUE' to options.\n" " options += makeOption (\"conf.int\", getString (\"confint\"), " "\"0.95\");\n" " //...\n" "}" msgstr "" "function calculate () {\n" " var options\n" " //...\n" " // This will do nothing, if VALUE is 0.95 (the default). Otherwise " "it will append ', conf.int=VALUE' to options.\n" " options += makeOption (\"conf.int\", getString (\"confint\"), " "\"0.95\");\n" " //...\n" "}" #. Tag: title #. +> trunk5 #: index.docbook:531 #, no-c-format msgid "Writing a help page" msgstr "Scrivere una pagina della guida" #. Tag: para #. +> trunk5 #: index.docbook:532 #, no-c-format msgid "" "When your plugin basically works, the time has come to provide a help page. " "While typically you will not want to explain all the underlying concepts in " "depth, you may want to add some more explanation for some of the options, " "and link to related plugins and &R; functions." msgstr "" "Quando la propria estensione praticamente funziona, è arrivato il momento di " "fornire una pagina di guida. Mentre in genere non si vorranno spiegare tutti " "i concetti sottostanti in profondità, si potrebbe voler aggiungere qualche " "spiegazione in più per alcune delle opzioni e fornire collegamenti alle " "estensioni correlate e alle funzioni di &R;." #. Tag: para #. +> trunk5 #: index.docbook:536 #, no-c-format msgid "" "After reading this chapter, have a look at the rkwarddev package as well. It provides " "some &R; functions to create most of &rkward;'s &XML; tags for you. It is " "also capable of creating basic help file skeletons from existing plugin " "&XML; files for you to start with." msgstr "" "Dopo aver letto questo capitolo, dare un'occhiata anche al pacchetto rkwarddev. " "Fornisce alcune funzioni di &R; per creare la maggior parte dei tag &XML; di" " &rkward;. È anche in grado di creare scheletri di file di aiuto di base " "da file &XML; di estensioni esistenti cui iniziare." #. Tag: para #. +> trunk5 #: index.docbook:540 #, no-c-format msgid "" "You may recall putting this inside your plugin &XML; (if you have not put " "this in, do so now):" msgstr "" "Ci si dovrebbe ricordare di inserirlo nel codice &XML; della propria " "estensione (se non è stato inserito, farlo subito):" #. Tag: programlisting #. +> trunk5 #: index.docbook:543 #, no-c-format msgid "" "<document>\n" " [...]\n" " <help file=\"filename.rkh\" />\n" " [...]\n" "</document>" msgstr "" "<document>\n" " [...]\n" " <help file=\"nomefile.rkh\" />\n" " [...]\n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:544 #, no-c-format msgid "" "Where, obviously, you would replace filename with a " "more appropriate name. Now it is time to create this .rkh file. Here is a self-descriptive example:" msgstr "" "Dove, ovviamente, si desidera sostituire nomefile con un" " nome più appropriato. " "Ora è il momento di creare questo file .rkh<" "/literal>. Ecco un esempio auto-descrittivo:" #. Tag: programlisting #. +> trunk5 #: index.docbook:547 #, no-c-format msgid "" "<!DOCTYPE rkhelp>\n" "<document>\n" " <summary>\n" "In this section, you will put some short, very basic information about what " "the plugin does.\n" "This section will always show up on the very top of the help page.\n" " </summary>\n" "\n" " <usage>\n" "The usage section may contain a little more practical information. It does " "not explain all\n" "the settings in detail (that is done in the \"settings\" section), however.\n" "\n" "To start a new paragraph, insert an empty line, as shown above.\n" "This line, in contrast, will be in the same paragraph.\n" "\n" "In all sections you can insert some simple HTML code, such as <b>" "bold</b> or\n" "<i>italic</i> text. Please keep formatting to the minimum " "needed, however.\n" "\n" "The usage section is always the second section shown in a help page.\n" " </usage>\n" "\n" " <section id=\"sectionid\" title=\"Generic section\" short_title=" "\"Generic\">\n" "If you need to, you can add additional sections between the usage and " "settings sections.\n" "However, usually, you will not need this while documenting plugins. The \"id" "\"-attribute\n" "provides an anchor point to jump to this section from the navigation menu. " "The \"short_title\"\n" "attribute provides a short title to use in the navigation bar. This is " "optional, by default\n" "the main \"title\" will be used both as a heading to the section, and as the " "link name in the\n" "navigation bar.\n" "\n" "In any section you may want to insert links to further information. You do " "this by adding\n" "\n" "<link href=\"URL\">link name</link>\n" "\n" "Where URL could be an external link such as https://rkward.kde.org .\n" "Several special URLs are supported in the help pages:\n" "\n" "<link href=\"rkward://page/path/page_id\"/>\n" "\n" "This links to a top level rkward help page (not for a plugin).\n" "\n" "<link href=\"rkward://component/[namespace/]component_id\"/>\n" "\n" "This links to the help page of another plugin. The [namespace/] part may be " "omitted\n" "(in this case, rkward is assumed as the standard namespace, e.g.:\n" "<link href=\"rkward://component/import_spss\"/> or\n" "<link href=\"rkward://component/rkward/import_spss\"/> are " "equivalent).\n" "The component_id is the same that you specified in the &pluginmap;.\n" "\n" "<link href=\"rkward://rhelp/rfunction\"/>\n" "\n" "Links to the &R; help page on \"rfunction\".\n" "\n" "Note that the link names will be generated automatically for these types of " "links.\n" " </section>\n" "\n" " <settings>\n" " <caption id=\"id_of_tab_or_frame\"/>\n" " <setting id=\"id_of_element\">\n" "Description of the GUI element identified by the given id\n" " </setting>\n" " <setting id=\"id_of_elementb\" title=\"description\">\n" "Usually the title of the GUI element will be extracted from the\n" "&XML; definition of the plugin, " "automatically. However,\n" "for some GUI elements, this description may not be enough to identify them, " "reliably.\n" "In this case, you can add an explicit title using the \"title\" attribute.\n" " </setting>\n" " <setting id=\"id_of_elementc\">\n" "Description of the GUI element identified by \"id_of_elementc\"\n" " </setting>\n" " [...]\n" " </settings>\n" "\n" " <related>\n" "The related section typically just contains some links, such as:\n" "\n" "<ul>\n" " <li><link href=\"rkward://rhelp/mean\"/></li>\n" " <li><link href=\"rkward://rhelp/median\"/></li>\n" " <li><link href=\"rkward://component/related_component\"/>" "</li>\n" "</ul>\n" " </related>\n" "\n" " <technical>\n" "The technical section (optional, always last) may contain some technical " "details of the plugin\n" "implementation, which are of interest only to RKWard developers. This is " "particularly relevant\n" "for plugins that are designed to be embedded in many other plugins, and " "could detail, which\n" "options are available to customize the embedded plugin, and which code " "sections contain which\n" "R code.\n" " </technical>\n" "</document>" msgstr "" "<!DOCTYPE rkhelp>\n" "<document>\n" " <summary>\n" "In questa sezione, fornirai alcune brevi informazioni di base su ciò che fa " "l'estensione\n" "Questa sezione sarà sempre visualizzata nella parte superiore della pagina " "di aiuto.\n" " </summary>\n" "\n" " <usage>\n" "La sezione sull'utilizzo può contenere alcune informazioni più pratiche. " "Tuttavia, non spiega tutte\n" "le impostazioni in dettaglio (questo è fatto nella sezione di \"settings" "\").\n" "\n" "Per iniziare un nuovo paragrafo, inserire una riga vuota, come mostrato " "sopra.\n" "Questa riga, al contrario, sarà nello stesso paragrafo.\n" "\n" "In tutte le sezioni puoi inserire del semplice codice HTML, come <b>" "bold</b> o\n" "<i>italic</i> text. Comunque, mantieni la formattazione al " "minimo necessario.\n" "\n" "La sezione sull'utilizzo è sempre la seconda sezione mostrata in un pagina " "della guida.\n" " </usage>\n" "\n" " <section id=\"sectionid\" title=\"Sezione generica\" short_title=" "\"Generica\">\n" "Se necessario, è possibile aggiungere ulteriori sezioni tra le sezioni di " "utilizzo e impostazioni.\n" "Tuttavia, di solito, non sarà necessario durante la documentazione delle " "estensioni. L'attributo «id»\n" "fornisce un punto di ancoraggio per saltare a questa sezione dal menu di " "navigazione. L'attributo «short_title»\n" "fornisce un breve titolo da utilizzare nella barra di navigazione. Questo è " "facoltativo, in modo predefinito\n" "sarà utilizzato il titolo principale «title» sia come intestazione alla " "sezione, sia come nome del collegamento nella\n" "barra di navigazione.\n" "\n" "In ogni sezione potresti voler inserire dei collegamenti a ulteriori " "informazioni. Lo puoi fare aggiungendo\n" "\n" "<link href=\"URL\">link name</link>\n" "\n" "Dove URL può essere un collegamento esterno del tipo https://rkward.kde." "org .\n" "Sono supportati diversi URL speciali nelle pagine della guida:\n" "\n" "<link href=\"rkward://pagina/percorso/id_pagina\"/>\n" "\n" "Questo collega a una pagina della guida di primo livello di rkward (non per " "un'estensione).\n" "\n" "<link href=\"rkward://componente/[spazio_dei_nomi/]id_componente\"/>\n" "\n" "Questo collega alla pagina della guida di un'altra estensione. La parte " "[spazio_dei_nomi/] potrebbe essere omessa\n" "(in questo caso, rkward è assunto come spazio dei nomi standard, ad es.:\n" "<link href=\"rkward://componente/importa_spss\"/> o\n" "<link href=\"rkward://componente/rkward/importa_spss\"/> sono " "equivalenti).\n" "L'id_componente è lo stesso che hai specificato nella &pluginmap;.\n" "\n" "<link href=\"rkward://rhelp/rfunction\"/>\n" "\n" "Collega alla pagina della guida di &R; per «rfunction».\n" "\n" "Nota che i nomi dei collegamenti saranno generati automaticamente per questi " "tipi di collegamenti.\n" " </section>\n" "\n" " <settings>\n" " <caption id=\"id_scheda_o_cornice\"/>\n" " <setting id=\"id_elemento\">\n" "Descrizione dell'elemento della GUI identificato dall'ID specificato\n" " </setting>\n" " <setting id=\"id_elementob\" title=\"descrizione\">\n" "Normalmente, il titolo dell'elemento della GUI sarà estratto dalla\n" "definizione &XML; dell'estensione, " "automaticamente. Tuttavia,\n" "per alcuni elementi della GUI, questa descrizione potrebbe non essere " "sufficiente per identificarli, in modo affidabile.\n" "In questo caso, puoi aggiungere un titolo esplicito utilizzando l'attributo " "«title».\n" " </setting>\n" " <setting id=\"id_elementoc\">\n" "Descrizione dell'elemento della GUI identificato da «id_elementoc»\n" " </setting>\n" " [...]\n" " </settings>\n" "\n" " <related>\n" "La sezione relativa tipicamente contiene solo alcuni elementi, come:\n" "\n" "<ul>\n" " <li><link href=\"rkward://rhelp/mean\"/></li>\n" " <li><link href=\"rkward://rhelp/median\"/></li>\n" " <li><link href=\"rkward://componente/componente_relativo\"/" "></li>\n" "</ul>\n" " </related>\n" "\n" " <technical>\n" "La sezione tecnica (facoltativa, sempre ultima) può contenere alcuni " "dettagli tecnici dell'implementazione\n" "dell'estensione, che sono d'interesse solo per gli sviluppatori di RKWard. " "Questo è particolarmente rilevante\n" "per le estensioni che sono progettate per essere integrate in altre " "estensioni, e può dettagliare quali\n" "opzioni sono disponibili per personalizzare l'estensione integrata, e quali " "sezioni di codice contengono quale\n" "codice di R.\n" " </technical>\n" "</document>" #. Tag: title #. +> trunk5 #: index.docbook:552 #, no-c-format msgid "Logic interactions between &GUI; elements" msgstr "Interazioni logiche tra gli elementi della &GUI;" #. Tag: title #. +> trunk5 #: index.docbook:553 #, no-c-format msgid "&GUI; logic" msgstr "Logica della &GUI;" #. Tag: para #. +> trunk5 #: index.docbook:554 #, no-c-format msgid "" "All the basic concepts of creating a plugin for &rkward; have been described " "in the previous chapters. Those basic concepts should be sufficient for many " "-- if not most -- cases. However, sometimes you want more control over how " "your plugin's &GUI; behaves." msgstr "" "Tutti i concetti di base per la creazione di un estensioni per &rkward; sono" " stati descritti nei capitoli precedenti. " "Tali concetti di base dovrebbero essere sufficienti per molti, se non nella" " maggior parte dei casi. Tuttavia, a volte " "si potrebbe desiderare un maggiore controllo sul comportamento della &GUI;" " della propria estensione." #. Tag: para #. +> trunk5 #: index.docbook:557 #, no-c-format msgid "" "For instance, suppose you want to extend the t-test example used in this " "documentation to allow both: comparing a variable against another variable " "(as shown), and comparing a variable against a constant value. Now, one way " "of doing this would be to add a radio-control that switches between the two " "modes, and adding a spinbox to enter the constant value to compare against. " "Consider this simplified example:" msgstr "" "Ad esempio, supponiamo di voler estendere l'esempio del test t utilizzato in " "questa documentazione per consentire entrambi: il confronto di una variabile " "con un'altra variabile (come mostrato) e il confronto di una variabile con " "un valore costante. Ora, un modo per farlo sarebbe quello di aggiungere un " "controllo radio che commuta tra le due modalità e aggiungere una casella di " "selezione per inserire il valore costante da confrontare. Considera questo " "esempio semplificato:" #. Tag: programlisting #. +> trunk5 #: index.docbook:560 #, no-c-format msgid "" "<!DOCTYPE rkplugin>\n" "<document>\n" " <code file=\"code.js\"/>\n" "\n" " <dialog label=\"T-Test\">\n" " <row>\n" " <varselector id=\"vars\"/>\n" " <column>\n" " <varslot id=\"x\" types=\"number\" source=" "\"vars\" required=\"true\" label=\"compare\"/>\n" " <radio id=\"mode\" label=\"Compare against" "\">\n" " <option value=\"variable\" " "checked=\"true\" label=\"another variable (select below)\"/>\n" " <option value=\"constant\" label=" "\"a constant value (set below)\"/>\n" " </radio>\n" " <varslot id=\"y\" types=\"number\" source=" "\"vars\" required=\"true\" label=\"variable\" i18n_context=\"Noun; a variable" "\"/>\n" " <spinbox id=\"constant\" initial=\"0\" " "label=\"constant\" i18n_context=\"Noun; a constant\"/>\n" " </column>\n" " </row>\n" " </dialog>\n" "</document>" msgstr "" "<!DOCTYPE rkplugin>\n" "<document>\n" " <code file=\"code.js\"/>\n" "\n" " <dialog label=\"T-Test\">\n" " <row>\n" " <varselector id=\"vars\"/>\n" " <column>\n" " <varslot id=\"x\" types=\"number\" source=" "\"vars\" required=\"true\" label=\"compare\"/>\n" " <radio id=\"mode\" label=\"Compare against" "\">\n" " <option value=\"variable\" " "checked=\"true\" label=\"another variable (select below)\"/>\n" " <option value=\"constant\" label=" "\"a constant value (set below)\"/>\n" " </radio>\n" " <varslot id=\"y\" types=\"number\" source=" "\"vars\" required=\"true\" label=\"variable\" i18n_context=\"Noun; a variable" "\"/>\n" " <spinbox id=\"constant\" initial=\"0\" " "label=\"constant\" i18n_context=\"Noun; a constant\"/>\n" " </column>\n" " </row>\n" " </dialog>\n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:561 #, no-c-format msgid "" "So far so good, but there are a number of problems with this &GUI;. First, " "both the varslot and the spinbox are always shown, whereas only one of the " "two is really used. Worse, the varslot always requires a valid selection, " "even if you compare against a constant. Obviously, if we create a multi-" "purpose &GUI; like this, we want more flexibility. Enter: the <" "logic> section (inserted at the same level as <" "code>, <dialog>, or <" "wizard>)." msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:564 #, no-c-format msgid "" "[...]\n" " <code file=\"code.js\"/>\n" "\n" " <logic>\n" " <convert id=\"varmode\" mode=\"equals\" sources=\"mode." "string\" standard=\"variable\" />\n" "\n" " <connect client=\"y.visible\" governor=\"varmode\" />\n" " <connect client=\"constant.visible\" governor=\"varmode." "not\" />\n" " </logic>\n" "\n" " <dialog label=\"T-Test\">\n" " [...]" msgstr "" "[...]\n" " <code file=\"code.js\"/>\n" "\n" " <logic>\n" " <convert id=\"varmode\" mode=\"equals\" sources=\"mode." "string\" standard=\"variable\" />\n" "\n" " <connect client=\"y.visible\" governor=\"varmode\" />\n" " <connect client=\"constant.visible\" governor=\"varmode." "not\" />\n" " </logic>\n" "\n" " <dialog label=\"T-Test\">\n" " [...]" #. Tag: para #. +> trunk5 #: index.docbook:565 #, no-c-format msgid "" "The first line inside the logic section is a <convert> tag. Basically, this provides a new boolean (on or off, true or " "false) property, which can be used later on. This property (" "\"varmode\") is true, whenever the upper radio button is " "selected and false whenever the lower radio button is selected. How is this " "done?" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:568 #, no-c-format msgid "" "First, under sources, the source properties to work " "on are listed (in this case only one each; you could list several as " "sources=\"mode.string;somethingelse\", then \"varmode\" would only be " "true, if both \"mode.string\" and " "\"somethingelse\" are equal to the string " "\"variable\"). Note that in this case we do not just write " "\"mode\" (as we would in " "getString(\"mode\")), but \"mode.string\". This is actually the internal way a radio control works: It " "has a property string, which holds its string value. " "getString(\"mode\") is just a shorthand, and equivalent " "to getString(\"mode.string\"). See the reference for " "all properties of the different &GUI; elements." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:571 #, no-c-format msgid "" "Second, we set the mode of conversion to mode=\"equals\". This means, we want to " "check, whether the source(s) is (are) equal to a certain value. Finally " "standard is the value to compare against, so with standard=\"variable\", we check whether the " "property \"mode.string\" is equal to the string " "\"variable\" (the value of the upper radio " "option). If it is equal, then the property varmode is true, else it is false." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:574 #, no-c-format msgid "" "Now to the real stuff: We <connect> the " "\"varmode\" property to y.visible, which controls " "whether the varslot \"y\" is shown or not. Note " "that any element which is made invisible is implicitly non-required. Thus, " "if the upper radio-option is selected, the varslot \"y\" is required, and visible. Else it is not required and hidden." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:577 #, no-c-format msgid "" "For the spinbox, we want the exact reverse. Fortunately, we do not need " "another <convert> for this: Boolean properties can " "be negated very easily by appending the modifier \"not\", so we <connect> " "\"varmode.not\" to the spinbox's visibility property. In " "effect, either the varslot is shown and required, or " "the spinbox is shown and required - depending on which option is selected in " "the radio control. The &GUI; is changing itself according to the radio " "option. Try the example, if you like." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:582 #, no-c-format msgid "" "For a complete list of properties, refer to the reference. One more property, however, is special in that all " "&GUI; elements have it: enabled. This is slightly less " "drastic than visible. It does not show/hide the &GUI; " "element, but only enables/disables it. Disabled elements are typically shown " "grayed out, and do not react to user input." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:586 #, no-c-format msgid "" "Besides <convert> and <connect>, there are several further elements for use in the <" "logic> section. E.g. conditional constructs can also be " "implemented using the <switch>-element. Refer to " "the reference on logic elements for " "details." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:590 #, no-c-format msgid "Scripted &GUI; logic" msgstr "Logica della &GUI; programmata" #. Tag: para #. +> trunk5 #: index.docbook:591 #, no-c-format msgid "" "While connecting properties as described above is often enough, sometimes it " "is more flexible or more convenient to use JS to script the &GUI; logic. In " "this way, the above example could be re-written as:" msgstr "" "Mentre connettere le proprietà come descritto sopra è spesso sufficiente, a " "volte è più flessibile o più conveniente utilizzare JS per creare script " "della logica della &GUI;. In questo modo, l'esempio sopra potrebbe essere " "riscritto come:" #. Tag: programlisting #. +> trunk5 #: index.docbook:594 #, no-c-format msgid "" "[...]\n" " <code file=\"code.js\"/>\n" "'\n" " <logic>\n" " <script><![CDATA[\n" " // ECMAScript code in this block\n" " // the top-level statement is only called once\n" " gui.addChangeCommand (\"mode.string\", \"modeChanged " "()\");\n" "\n" " // this function is called whenever the \"mode\" was " "changed\n" " modeChanged = function () {\n" " var varmode = (gui.getString (\"mode.string" "\") == \"variable\");\n" " gui.setValue (\"y.enabled\", varmode);\n" " gui.setValue (\"constant.enabled\", !" "varmode);\n" " }\n" " ]]></script>\n" " </logic>\n" "\n" " <dialog label=\"T-Test\">\n" " [...]" msgstr "" "[...]\n" " <code file=\"code.js\"/>\n" "'\n" " <logic>\n" " <script><![CDATA[\n" " // Codice ECMAScript in questo blocco\n" " // l'istruzione di primo livello è invocata solo una " "volta\n" " gui.addChangeCommand (\"mode.string\", \"modeChanged " "()\");\n" "\n" " // questa funzione è invocata ogni volta che viene " "modificata la «modalità»\n" " modeChanged = function () {\n" " var varmode = (gui.getString (\"mode.string" "\") == \"variable\");\n" " gui.setValue (\"y.enabled\", varmode);\n" " gui.setValue (\"constant.enabled\", !" "varmode);\n" " }\n" " ]]></script>\n" " </logic>\n" "\n" " <dialog label=\"T-Test\">\n" " [...]" #. Tag: para #. +> trunk5 #: index.docbook:595 #, no-c-format msgid "" "The first line of code tells &rkward; to call the function " "modeChanged() whenever the value of the id=\"mode\" radio box changes. Inside this " "function, we define a helper-variable \"varmode\" " "which is true when the mode is \"variable\", " "false as it is \"constant\". Then we use " "gui.setValue() to set the enabled " "properties of \"y\" and \"constant" "\", in just the same way as we did using <" "connect> statements, before." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:598 #, no-c-format msgid "" "The scripted approach to &GUI; logic becomes particularly useful when you " "want to change the available option according to the type of object that the " "user has selected. See the reference for available functions." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:601 #, no-c-format msgid "" "Note that the scripted approach to &GUI; logic can be mixed with " "<connect> and <convert>-" "statements if you like. Also note that the <script> " "tag allows to specify a script file name in addition to or as an alternative " "to inlining the script code. Typically, inlining the script code as shown " "above is most convenient, however." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:608 #, no-c-format msgid "Embedding Plugins into Plugins" msgstr "Integrazione di estensioni in estensioni" #. Tag: title #. +> trunk5 #: index.docbook:609 #, no-c-format msgid "Use cases for embedding" msgstr "Casi di utilizzo per l'integrazione" #. Tag: para #. +> trunk5 #: index.docbook:610 #, no-c-format msgid "" "When writing plugins, you will often find that you are creating a number of " "plugins that only differ in some respects, but have a lot more in common. " "For instance, for plotting, there are a number of generic &R; options that " "can be used with mostly all types of plots. Should you create a &GUI; and JS-" "template for those over and over again?" msgstr "" "Quando si scrivono estensioni, spesso si scoprirà che si sta creando diverse " "estensioni che differiscono solo per alcuni aspetti, ma hanno molto di più " "in comune. Ad esempio, per il tracciamento dei grafici, ci sono numerose " "opzioni generiche di &R; che possono essere utilizzate con quasi tutti i " "tipi di grafici. Vorreste creare una &GUI; e un modello JS ancora e ancora?" #. Tag: para #. +> trunk5 #: index.docbook:613 #, no-c-format msgid "" "Obviously that would be quite a hassle. Fortunately, you do not have to do " "that. Rather you create the common functionality once, and later you can " "embed it into several plugins. In fact it is possible to embed any plugin " "into any other plugin, even if the original author of the embedded plugin " "never thought, somebody would want to embed their plugin into another one." msgstr "" "Ovviamente sarebbe una vera seccatura. Fortunatamente, non è necessario " "farlo. Piuttosto, si crea una volta la funzionalità comune e successivamente " "la si può integrare in diverse estensioni. In effetti è possibile integrare " "qualsiasi estensione in un'altra estensione, anche se l'autore originale " "dell'estensione integrata non lo ha mai immaginato, qualcuno potrebbe voler " "integrare l'estensione in un'altra." #. Tag: title #. +> trunk5 #: index.docbook:618 #, no-c-format msgid "Embedding inside a dialog" msgstr "Integrazione in una finestra" #. Tag: para #. +> trunk5 #: index.docbook:619 #, no-c-format msgid "" "OK, enough said. How does it work? Simple: Just use the <" "embed> tag. Here is a stripped down example:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:622 #, no-c-format msgid "" "<dialog>\n" " <tabbook>\n" " <tab [...]>\n" " [...]\n" " </tab>\n" " <tab label=\"Plot Options\" i18n_context=\"Options " "concerning the plot\">\n" " <embed id=\"plotoptions\" component=\"rkward::" "plot_options\"/>\n" " </tab>\n" " <tab [...]>\n" " [...]\n" " </tab>\n" " </tabbook>\n" "</dialog>" msgstr "" "<dialog>\n" " <tabbook>\n" " <tab [...]>\n" " [...]\n" " </tab>\n" " <tab label=\"Plot Options\" i18n_context=\"Opzioni " "relative al grafico\">\n" " <embed id=\"plotoptions\" component=\"rkward::" "plot_options\"/>\n" " </tab>\n" " <tab [...]>\n" " [...]\n" " </tab>\n" " </tabbook>\n" "</dialog>" #. Tag: para #. +> trunk5 #: index.docbook:623 #, no-c-format msgid "" "What happens here, is that the entire &GUI; or the plot options plugin " "(except of course for the standard elements like Submit button, &etc;) is embedded right into your plugin (try it!)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:626 #, no-c-format msgid "" "As you can see the syntax of the <embed>-tag is " "fairly simple. It takes an id as most elements. The " "parameter component specifies which plugin to embed, as defined in the " "&pluginmap; file (\"rkward::plot_options\" is the " "result of concatenating the namespace rkward, a separator " "::, and the name of the component plot_options)." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:631 #, no-c-format msgid "Code generation when embedding" msgstr "Generazione di codice durante l'integrazione" #. Tag: para #. +> trunk5 #: index.docbook:632 #, no-c-format msgid "" "So far so good, but what about the generated code? How are the code for the " "embedding and embedded plugin merged? In the embedding plugin's JS code, " "simply write something like this:" msgstr "" "Fin qui tutto bene, ma per quanto riguarda il codice generato? Come vengono " "uniti il codice per l'integrazione e l'estensione integrata? Nel codice JS " "dell'estensione di integrazione, basta scrivere qualcosa del genere:" #. Tag: programlisting #. +> trunk5 #: index.docbook:635 #, no-c-format msgid "" "function printout () {\n" " // ...\n" " echo (\"myplotfunction ([...]\" + getString (\"plotoptions.code." "printout\"); + \")\\n\");\n" " // ...\n" "}" msgstr "" "function printout () {\n" " // ...\n" " echo (\"myplotfunction ([...]\" + getString (\"plotoptions.code." "printout\"); + \")\\n\");\n" " // ...\n" "}" #. Tag: para #. +> trunk5 #: index.docbook:636 #, no-c-format msgid "" "So essentially, we are fetching the code generated by the embedded plugin " "just like we are fetching any other &GUI; setting. Here the string " "\"plotoptions.code.printout\" can be deparsed to: " "The printout section of the generated code of the element with the " "id plotoptions (plotoptions is the ID we gave " "for the <embed> tag above). And yes, if you want " "advanced control, you can even fetch the values of individual &GUI; elements " "inside the embedded plugin (but not the other way around, as the embedded " "plugin does not know anything about its surroundings)." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:641 #, no-c-format msgid "Embedding inside a wizard" msgstr "Integrazione in una procedura guidata" #. Tag: para #. +> trunk5 #: index.docbook:642 #, no-c-format msgid "" "If your plugin provides a wizard &GUI;, embedding works basically in the " "same way. You will generally use:" msgstr "" "Se la propria estensione fornisce una procedura guidata e una &GUI;, " "l'integrazione funziona sostanzialmente allo stesso modo. Si utilizzerà " "generalmente:" #. Tag: programlisting #. +> trunk5 #: index.docbook:645 #, no-c-format msgid "" "<wizard [...]>\n" " [...]\n" " <page id=\"page12\">\n" " [...]\n" " </page>\n" " <embed id=\"plotoptions\" component=\"rkward::plot_options" "\"/>\n" " <page id=\"page13\">\n" " [...]\n" " </page>\n" " [...]\n" " </wizard>" msgstr "" "<wizard [...]>\n" " [...]\n" " <page id=\"page12\">\n" " [...]\n" " </page>\n" " <embed id=\"plotoptions\" component=\"rkward::plot_options" "\"/>\n" " <page id=\"page13\">\n" " [...]\n" " </page>\n" " [...]\n" " </wizard>" #. Tag: para #. +> trunk5 #: index.docbook:646 #, no-c-format msgid "" "If the embedded plugin provides a wizard interface, its pages will be " "inserted right between \"page12\" and " "\"page13\" of your plugin. If the embedded plugin " "provides a dialog interface only, a single new page will be added between " "your pages \"page12\" and " "\"page13\". The user will never notice." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:651 #, no-c-format msgid "Less embedded embedding: Further Options button" msgstr "Integrazione meno integrata: pulsante Altre opzioni" #. Tag: para #. +> trunk5 #: index.docbook:652 #, no-c-format msgid "" "While embedding is cool, you should be careful not to overdo it. Too many " "functions inside a &GUI; just make it hard to find the relevant options. Of " "course, sometimes you may want to embed a great deal of options (like all " "the options to plot()), but as those are really " "optional, you do not want them prominently in your &GUI;." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:655 #, no-c-format msgid "An alternative is to embed those options as a button:" msgstr "" "Un'alternativa è integrare queste opzioni come un pulsante:" #. Tag: programlisting #. +> trunk5 #: index.docbook:658 #, no-c-format msgid "" "<dialog>\n" " <tabbook>\n" " [...]\n" " <tab label=\"Options\">\n" " [...]\n" " <embed id=\"plotoptions\" component=\"rkward::" "plot_options\" as_button=\"true\" label=\"Specify plotting options\"/>\n" " </tab>\n" " [...]\n" " </tabbook>\n" "</dialog>" msgstr "" "<dialog>\n" " <tabbook>\n" " [...]\n" " <tab label=\"Options\">\n" " [...]\n" " <embed id=\"plotoptions\" component=\"rkward::" "plot_options\" as_button=\"true\" label=\"Specifica le opzioni del grafico\"/" ">\n" " </tab>\n" " [...]\n" " </tabbook>\n" "</dialog>" #. Tag: para #. +> trunk5 #: index.docbook:659 #, no-c-format msgid "" "In this case, a single push button will be added to your plugin, labeled " "Specify plotting options. When you press that button, " "a separate dialog will come up, with all the options of the embedded plugin. " "Even while this embedded &GUI; is not visible most of the time, you can " "fetch its settings just as described above." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:664 #, no-c-format msgid "" "Probably the button approach should only ever be used for " "plugins that can never be invalid (for missing/bad settings). Otherwise the " "user would not be able to submit the code, but might have a hard time " "finding out, the reason for that is hidden behind some button." msgstr "" "Probabilmente l'approccio del pulsante dovrebbe essere " "utilizzato esclusivamente per le estensioni che non possono mai essere non " "valide (per impostazioni mancanti/errate). Altrimenti l'utente non sarebbe " "in grado di inviare il codice, ma potrebbe avere difficoltà a trovarlo, il " "motivo per cui è nascosto dietro un pulsante." #. Tag: title #. +> trunk5 #: index.docbook:671 #, no-c-format msgid "Embedding/defining incomplete plugins" msgstr "Integrazione/definizione di estensioni incomplete" #. Tag: para #. +> trunk5 #: index.docbook:672 #, no-c-format msgid "" "Some plugins -- and as a matter of fact, the plot_options used as an example " "above, is one of them -- are not complete by themselves. They simply do not " "have the &GUI; elements to select some important values. They are meant to " "be used only embedded into other plugins." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:675 #, no-c-format msgid "" "In how far is the plot_options plugin incomplete? Well, for some option " "settings, it needs to know the name of the objects/expressions for the x and " "y axes (actually it will do fine if it only has either, but it needs at " "least one to function properly). However, it does not have a mechanism of " "selecting those objects, or entering them any other way. So how does it know " "about them?" msgstr "" "In che misura l'estensione plot_options è incompleta? Bene, per alcune " "impostazioni delle opzioni, deve conoscere il nome degli oggetti/espressioni " "per gli assi x e y (in realtà andrà bene se ne ha solo uno, ma ha bisogno di " "almeno uno per funzionare correttamente). Tuttavia, non ha un meccanismo per " "selezionare quegli oggetti o inserirli in altro modo. Quindi come li conosce?" #. Tag: para #. +> trunk5 #: index.docbook:678 #, no-c-format msgid "" "In the logic section of the plot_options plugin there are two additional " "lines, not covered, yet:" msgstr "" "Nella sezione logica dell'estensione plot_options ci sono due righe " "aggiuntive, non ancora coperte:" #. Tag: programlisting #. +> trunk5 #: index.docbook:681 #, no-c-format msgid "" "<logic>\n" " <external id=\"xvar\" />\n" " <external id=\"yvar\" />\n" "\n" " [...]\n" " </logic>" msgstr "" "<logic>\n" " <external id=\"xvar\" />\n" " <external id=\"yvar\" />\n" "\n" " [...]\n" " </logic>" #. Tag: para #. +> trunk5 #: index.docbook:682 #, no-c-format msgid "" "This defines two additional properties in the plot_options plugin, whose " "sole purpose is to be connected to some (yet unknown) properties of the " "embedding plugin. In the plot_options plugin those two properties are simply " "used like any other, and for instance there are calls to " "getString(\"xvar\") in the plot_options JS template." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:685 #, no-c-format msgid "" "Now, for the incomplete plugin there is no way of knowing, where it will be " "embedded, and what the relevant settings in the embedding plugin will be " "called. So we need to add two additional lines in the embedding plugin's " "logic section as well:" msgstr "" "Ora, per l'estensione incompleta non c'è modo di sapere dove sarà integrata " "e come saranno chiamate le impostazioni rilevanti nell'estensione di " "integrazione. Quindi dobbiamo aggiungere anche due righe aggiuntive nella " "sezione logica dell'estensione di integrazione:" #. Tag: programlisting #. +> trunk5 #: index.docbook:688 #, no-c-format msgid "" "<logic>\n" " [...]\n" "\n" " <connect client=\"plotoptions.xvar\" governor=\"xvarslot." "available\" />\n" " <connect client=\"plotoptions.yvar\" governor=\"yvarslot." "available\" />\n" " </logic>" msgstr "" "<logic>\n" " [...]\n" "\n" " <connect client=\"plotoptions.xvar\" governor=\"xvarslot." "available\" />\n" " <connect client=\"plotoptions.yvar\" governor=\"yvarslot." "available\" />\n" " </logic>" #. Tag: para #. +> trunk5 #: index.docbook:689 #, no-c-format msgid "" "This is nothing new in principle, we have covered <connect> statements in the chapter of &GUI; logic. You simply connect the values in two varlots (called " "\"xvarslot\" and \"yvarslot\" in " "this example) to the receiving external properties of the " "embedded plugin. That is it. Everything else is taken care of automatically." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:696 #, no-c-format msgid "Dealing with many similar plugins" msgstr "Gestire molte estensioni singole" #. Tag: title #. +> trunk5 #: index.docbook:697 #, no-c-format msgid "Overview on different approaches" msgstr "Panoramica su diversi approcci" #. Tag: para #. +> trunk5 #: index.docbook:698 #, no-c-format msgid "" "Sometimes, you may wish to develop plugins for a series of similar " "functions. As an example, consider the distribution plots. These generate " "fairly similar code, and of course it is desirable to make the graphical " "interfaces look similar to each other. Finally large sections of the help " "files can be identical. Only a few parameters are different for each plugin." msgstr "" "A volte, si potrebbe voler sviluppare le estensioni per una serie di " "funzioni simili. Ad esempio, considerare i grafici di distribuzione. Questi " "generano un codice abbastanza simile e, naturalmente, è desiderabile rendere " "le interfacce grafiche simili tra loro. Infine, ampie sezioni dei file della " "guida possono essere identiche. Solo alcuni parametri sono diversi per ogni " "estensione." #. Tag: para #. +> trunk5 #: index.docbook:701 #, no-c-format msgid "" "The naive approach to this is to develop one plugin, then basically copy and " "paste the entire contents of the .js, " ".xml, and ." "rkh files, then changing the few portions that are different. " "However, what if sometime later you find a spelling mistake that has been " "copied and pasted to all plugins? What if you want to add support for a new " "feature? You would have to visit all plugins again, and change each single " "one. A tiresome and tedious process." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:704 #, no-c-format msgid "" "A second approach would be to use embedding. However, in some cases this does not lend itself well to the problem " "at hand, mostly because the chunks you can embed are " "sometimes too large to be useful, and it places some constraints on the " "layout. For these cases, the concepts including " ".js files, including .xml files and snippets can be very useful (but " "see the thoughts on when it " "is preferable to use embedding)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:707 #, no-c-format msgid "" "One word of caution, before you begin reading, though: These concepts can " "help making it simpler to deal with many similar plugins, and can improve " "maintainability and readability of those plugins. However, overdoing it can " "easily lead to the reverse effect. Use with some caution." msgstr "" "Un avvertimento, prima di iniziare a leggere, però: questi concetti possono " "aiutare a semplificare la gestione di molte estensioni simili e possono " "migliorare la manutenibilità e la leggibilità delle estensioni stesse. " "Tuttavia, esagerare può facilmente portare all'effetto contrario. Utilizzare " "con una certa cautela." #. Tag: title #. +> trunk5 #: index.docbook:712 #, no-c-format msgid "Using the JS include statement" msgstr "Utilizzare l'istruzione include di JS" #. Tag: para #. +> trunk5 #: index.docbook:713 #, no-c-format msgid "" "You can easily include one script file into another in &rkward; plugins. The " "value of this becomes immediately obvious, if some sections of your JS code " "are similar across plugins. You can simply define those sections in a " "separate .js file, and include this in " "all the plugin .js files. For example, " "as in:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:716 #, no-c-format msgid "" "// this is a file called \"common_functions.js\"\n" "\n" "function doCommonStuff () {\n" " // perhaps fetch some options, etc.\n" " // ...\n" " comment (\"This is R code you want in several different plugins\\n" "\");\n" " // ...\n" "}" msgstr "" "// questo è un file chiamato «common_functions.js»\n" "\n" "function doCommonStuff () {\n" " // forse prende qualche opzione, ecc.\n" " // ...\n" " comment (\"Questo è il codice R che vuoi in diverse estensioni\\n" "\");\n" " // ...\n" "}" #. Tag: programlisting #. +> trunk5 #: index.docbook:717 #, no-c-format msgid "" "// this is one of your regular plugin .js files\n" "\n" "// include the common functions\n" "include (\"common_functions.js\");\n" "\n" "function calculate () {\n" " // do something\n" " // ...\n" "\n" " // insert the common code\n" " doCommonStuff ();\n" "}" msgstr "" "// questo è uno dei file .js delle tue " "normali estensioni\n" "\n" "// includi le funzioni comuni\n" "include (\"common_functions.js\");\n" "\n" "function calculate () {\n" " // fai qualcosa\n" " // ...\n" "\n" " // inserisci il codice comune\n" " doCommonStuff ();\n" "}" #. Tag: para #. +> trunk5 #: index.docbook:718 #, no-c-format msgid "" "Note that sometimes it is even more useful to reverse this, and define the " "skeleton of preprocess(), " "calculate(), and printout() " "functions is a common file, and make these call back for those part which " "are different across plugins. E.g.:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:721 #, no-c-format msgid "" "// this is a file called \"common_functions.js\"\n" "\n" "function calculate () {\n" " // do some things which are the same in all plugins\n" " // ...\n" "\n" " // add in something that is different across plugins\n" " getSpecifics ();\n" "\n" " // ...\n" "}" msgstr "" "// questo è un file chiamato \"common_functions.js\"\n" "\n" "function calculate () {\n" " // fare qualcosa che è uguale in tutte le estensioni\n" " // ...\n" "\n" " // aggiungere qualcosa che è diverso tra le estensioni\n" " getSpecifics ();\n" "\n" " // ...\n" "}" #. Tag: programlisting #. +> trunk5 #: index.docbook:722 #, no-c-format msgid "" "// this is one of your regular plugin .js files\n" "\n" "// include the common functions\n" "include (\"common_functions.js\");\n" "\n" "// note: no calculate() function is defined in here.\n" "// it in the common_functions.js, instead.\n" "\n" "function getSpecifics () {\n" " // print some R code\n" "}" msgstr "" "// questo è una delle normali estensioni .js files\n" "\n" "// includi le funzioni comuni\n" "include (\"common_functions.js\");\n" "\n" "// nota: nessuna funzione calculate() è definita qui.\n" "// è, invece, la common_functions.js.\n" "\n" "function getSpecifics () {\n" " // stampa codice R\n" "}" #. Tag: para #. +> trunk5 #: index.docbook:723 #, no-c-format msgid "" "One issue you should be aware of when using this technique is variable " "scoping. See the JS manual on variable scopes." msgstr "" "Un problema da tenere presente quando si utilizza questa tecnica è l'ambito " "delle variabili. Vedere il manuale di JS sugli ambiti delle variabili." #. Tag: para #. +> trunk5 #: index.docbook:726 #, no-c-format msgid "" "This technique is heavily used in the distribution plot and distribution CLT " "plot plugins, so you may want to look there for examples." msgstr "" "Questa tecnica è ampiamente utilizzata nel grafico di distribuzione e nelle " "estensioni con creazione di grafici TLC di distribuzione, quindi si potrebbe " "voler cercare degli esempi." #. Tag: title #. +> trunk5 #: index.docbook:732 #, no-c-format msgid "Including .xml files" msgstr "Includere i file .xml" #. Tag: para #. +> trunk5 #: index.docbook:733 #, no-c-format msgid "" "Basically the same feature of including files is also available for use in " "the .xml, &pluginmap; and .rkh files. At any place in these files you can " "place an <include> tag as shown below. The effect " "is that the entire contents of that &XML; file (to be precise: everything " "within the <document> tag of that file) is included " "verbatim at this point in the file. Note that you can only include another " "&XML; file." msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:736 #, no-c-format msgid "" "<document>\n" " [...]\n" " <include file=\"another_xml_file.xml\"/>\n" " [...]\n" "</document>" msgstr "" "<document>\n" " [...]\n" " <include file=\"altro_file_xml.xml\"/>\n" " [...]\n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:737 #, no-c-format msgid "" "The attribute file is the filename relative to the " "directory the current file is located in." msgstr "" "L'attributo file è il nome file relativo alla " "cartella in cui si trova il file attuale." #. Tag: title #. +> trunk5 #: index.docbook:743 #, no-c-format msgid "Using <snippets>" msgstr "Utilizzare <snippets>" #. Tag: para #. +> trunk5 #: index.docbook:744 #, no-c-format msgid "" "While including files as shown in the previous " "section is fairly powerful, it become most useful when used in " "combination with <snippets>. Snippets are really " "smaller sections which you can insert at another point in the file. An " "example illustrates this best:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:747 #, no-c-format msgid "" "<document>\n" " <snippets>\n" " <snippet id=\"note\">\n" " <frame>\n" " <text>\n" " This will be inserted at two places in the GUI\n" " </text>\n" " </frame>\n" " </snippet>\n" " </snippets>\n" " <dialog label=\"test\">\n" " <column>\n" " <insert snippet=\"note\"/>\n" " [...]\n" " <insert snippet=\"note\"/>\n" " </column>\n" " </dialog>\n" "</document>" msgstr "" "<document>\n" " <snippets>\n" " <snippet id=\"note\">\n" " <frame>\n" " <text>\n" " Questo sarà inserito in due posizioni nell'interfaccia\n" " </text>\n" " </frame>\n" " </snippet>\n" " </snippets>\n" " <dialog label=\"test\">\n" " <column>\n" " <insert snippet=\"note\"/>\n" " [...]\n" " <insert snippet=\"note\"/>\n" " </column>\n" " </dialog>\n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:748 #, no-c-format msgid "" "Hence, you define the snippet at one place at the top of the &XML; file, and " "then you <insert> it at any place(s) you wish." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:751 #, no-c-format msgid "" "While this example is not too useful in itself, think about combining this " "with an <include>d ." "xml file. Note that you can also place snippets for the .rkh file in the same file. You would simply " "<include> the file there as well, and <" "insert> the relevant snippet:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:754 #, no-c-format msgid "" "<!-- This is a file called \"common_snippets.xml\" -->\n" "<document>\n" " <snippet id=\"common_options\">\n" " <spinbox id=\"something\" [...]/>\n" " [...]\n" " </snippet>\n" " <snippet id=\"common_note\">\n" " <text>An important note for this type of plugin</" "text>\n" " </snippet>\n" "\n" " <snippet id=\"common_help\">\n" " <setting id=\"something\">This does something</" "setting>\n" " [...]\n" " </snippet>\n" "</document>" msgstr "" "<!-- Questo è un file chiamato \"common_snippets.xml\" -->\n" "<document>\n" " <snippet id=\"opzioni_comuni\">\n" " <spinbox id=\"qualcosa\" [...]/>\n" " [...]\n" " </snippet>\n" " <snippet id=\"nota_comune\">\n" " <text>Una nota importante per questo tipo di " "estensione</text>\n" " </snippet>\n" "\n" " <snippet id=\"guida_comune\">\n" " <setting id=\"qualcosa\">Questa fa qualcosa>\n" " [...]\n" " </snippet>\n" "</document>" #. Tag: programlisting #. +> trunk5 #: index.docbook:755 #, no-c-format msgid "" "<!-- This is the .xml file of the plugin -->\n" "<document>\n" " <snippets>\n" " <!-- Import the common snippets -->\n" " <include file=\"common_snippets.xml\"/>\n" " </snippets>\n" "\n" " <dialog label=\"test2\">\n" " <insert snippet=\"common_note\"/>\n" " <spinbox id=\"something_plugin_specific\" [...] />\n" " <insert snippet=\"common_options\"/>\n" " </dialog>\n" "</document>" msgstr "" "<!-- Questo è il file .xml dell'estensione -->\n" "<document>\n" " <snippets>\n" " <!-- Importa i frammenti comuni -->\n" " <include file=\"common_snippets.xml\"/>\n" " </snippets>\n" "\n" " <dialog label=\"test2\">\n" " <insert snippet=\"nota_comune\"/>\n" " <spinbox id=\"qualcosa_specifica_della_estensione" "\" [...] />\n" " <insert snippet=\"opzioni_comuni\"/>\n" " </dialog>\n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:756 #, no-c-format msgid "" "Similar to inclusion in JS, the reverse " "approach is often even more useful:" msgstr "" "Simile a inclusione in JS, l'approccio " "inverso è spesso ancora più utile:" #. Tag: programlisting #. +> trunk5 #: index.docbook:759 #, no-c-format msgid "" "<!-- This is a file called \"common_layout.xml\" -->\n" "<document>\n" " <column>\n" " <insert snippet=\"note\">\n" " [...]\n" " <insert snippet=\"plugin_parameters\">\n" " </column>\n" " [...]\n" "</document>" msgstr "" "<!-- Questo è un file chiamato \"common_layout.xml\" -->\n" "<document>\n" " <column>\n" " <insert snippet=\"note\">\n" " [...]\n" " <insert snippet=\"plugin_parameters\">\n" " </column>\n" " [...]\n" "</document>" #. Tag: programlisting #. +> trunk5 #: index.docbook:760 #, no-c-format msgid "" "<!-- This is the .xml file of the plugin -->\n" "<document>\n" " <snippets>\n" " <snippet id=\"note\">\n" " <text>The note used for this specific " "plugin</text>\n" " </snippet>\n" "\n" " <snippet id=\"plugin_parameters\">\n" " <frame label=\"Parameters specific to this plugin" "\">\n" " [...]\n" " </frame>\n" " </snippet>\n" " </snippets>\n" "\n" " <dialog label=\"test3\">\n" " <include file=\"common_layout.xml\"/>\n" " </dialog>\n" "</document>" msgstr "" "<!-- Questo è il file .xml dell'estensione -->\n" "<document>\n" " <snippets>\n" " <snippet id=\"nota\">\n" " <text>La nota utilizzata per questa estensione " "specifica</text>\n" " </snippet>\n" "\n" " <snippet id=\"parametri_estensione\">\n" " <frame label=\"Parametri specifici di questa " "estensione\">\n" " [...]\n" " </frame>\n" " </snippet>\n" " </snippets>\n" "\n" " <dialog label=\"test3\">\n" " <include file=\"struttura_comune.xml\"/>\n" " </dialog>\n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:761 #, no-c-format msgid "" "Finally, it is also possible to <insert> snippets " "into other snippets, provided that: a) there is only one level of nesting, " "and b) the <snippets> section is placed at the top " "of the file (before a nested snippet is inserted); this is because " "<insert> statements are resolved from top to bottom." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:767 #, no-c-format msgid "<include> and <snippets> vs. <embed>" msgstr "<include> e <snippets> vs. <embed>" #. Tag: para #. +> trunk5 #: index.docbook:768 #, no-c-format msgid "" "At first glance, <include> and <" "snippets> provides functionality rather similar to embedding: It allows to reuse some portions of " "code across plugins. So what is the difference between these approaches, and " "when should you use which?" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:771 #, no-c-format msgid "" "The key difference between these concepts is that embeddable plugins are a " "more tight bundle. They combine a complete &GUI;, code to generate &R; code " "from this, and a help page. In contrast, include and insert allow much more " "fine grained control, but at the price of less modularity." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:774 #, no-c-format msgid "" "That is, a plugin embedding another plugin will typically not need to know " "much about the internal details of the embedded plugin. A prime example is " "the plot_options plugin. Plugins wishing to embed this do not necessarily " "need to know about all the options provided, or how they are provided. This " "is a good thing, as otherwise a change in the plot_options plugin might make " "it necessary to adjust all plugins embedding this (a lot). In contrast, " "include and insert really exposes all the internal details, and plugins " "using this will -- for example -- need to know the exact ids and perhaps " "even the type of the elements used." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:777 #, no-c-format msgid "" "Hence the rule of thumb is this: include and insert are great if the " "relevant options are only needed for a clearly limited group of plugins. " "Embedded plugins are better, if the group of plugins it may be useful to is " "not clearly defined, and if the functionality can easily be modularized. " "Another rule of thumb: If you can put the common portions into a single " "chunk, then do so, and use embedding. If you need lots of " "small snippets to define the common portions -- well, use <" "snippets>. A final way to look at it: If all plugins provide " "highly similar functionality, includes and inserts are " "probably a good idea. If they merely share one or two common modules, embedding is likely better." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:784 #, no-c-format msgid "Concepts for use in specialized plugins" msgstr "Concetti per l'uso in estensioni specializzate" #. Tag: para #. +> trunk5 #: index.docbook:785 #, no-c-format msgid "" "This chapter contains information on some topics that are useful only to " "certain classes of plugins." msgstr "" "Questo capitolo contiene informazioni su alcuni argomenti utili solo a " "determinate classi di estensioni." #. Tag: title #. +> trunk5 #: index.docbook:790 #, no-c-format msgid "Plugins that produce a plot" msgstr "Estensioni che producono un grafico" #. Tag: para #. +> trunk5 #: index.docbook:791 #, no-c-format msgid "" "Creating a plot from a plugin is easy to do. However, there are a few subtle " "gotchas to avoid, and also some great generic functionality that you should " "be aware of. This section shows you the basic concepts, and concludes with a " "canonical example that you should follow whenever creating plot plugins." msgstr "" "Creare un grafico da un'estensione è facile da fare. Tuttavia, ci sono " "alcuni piccoli inconvenienti da evitare, e anche alcune grandi funzionalità " "generiche di cui si dovrebbe essere a conoscenza. Questa sezione mostra i " "concetti di base e termina con un esempio canonico che si dovrebbe seguire " "ogni volta che si crea un'estensione di grafici." #. Tag: title #. +> trunk5 #: index.docbook:795 #, no-c-format msgid "Drawing a plot to the output window" msgstr "Tracciare un grafico nella finestra del risultato" #. Tag: para #. +> trunk5 #: index.docbook:796 #, no-c-format msgid "" "In order to draw a plot to the output window, use rk.graph.on() directly before creating the plot, and rk.graph.off(), directly afterwards. This is similar to ⪚ calling " "postscript() and dev.off() in a " "regular &R; session." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:801 #, no-c-format msgid "" "Importantly, however, you must always call rk." "graph.off() after calling rk.graph.on(). " "Otherwise the output file will be left in a broken state. To ensure " "rk.graph.off() really gets called, you should wrap " "all &R; commands between the two calls in " "try() statement. Never heard of that? Do not worry, it " "is easy. All you need to do is follow the pattern shown in example, below." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:808 #, no-c-format msgid "Adding preview functionality" msgstr "Aggiungere una funzionalità di anteprima" #. Tag: para #. +> trunk5 #: index.docbook:809 #, no-c-format msgid "" "This section discusses adding preview functionality to plugins producing " "plots. There are separate sections on previews of (&HTML;) output, previews of (imported) data, and custom previews. However, it is recommended that you read this " "section first, as the approach is similar in each case." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:810 #, no-c-format msgid "" "A very useful feature for all plugins generating a plot/graph is to provide " "an automatically updating preview. To do so, you will need two things: " "Adding a <preview> check box to your &GUI; definition, and adjusting the generated code for the preview." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:813 #, no-c-format msgid "" "Adding a <preview> check box is simple. Just place " "the following somewhere in your &GUI;. It will take care of all the behind-" "the-scenes magic of creating a preview device, updating the preview whenever " "the setting have changed, &etc; Example:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:816 #, no-c-format msgid "" "Starting with version 0.6.5 of &rkward; <preview> " "preview elements are special-cased in plugin dialogs (not wizards): They " "will be placed in the button-column, irrespective of where exactly they are " "defined in the UI. It is still a good idea to define them at a sensible " "place in the layout, for backwards compatibility." msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:818 #, no-c-format msgid "" "<document>\n" " [...]\n" " <dialog [...]>\n" " [...]\n" " <preview id=\"preview\"/>\n" " [...]\n" " </dialog>\n" " [...]\n" " </document>" msgstr "" "<document>\n" " [...]\n" " <dialog [...]>\n" " [...]\n" " <preview id=\"preview\"/>\n" " [...]\n" " </dialog>\n" " [...]\n" " </document>" #. Tag: para #. +> trunk5 #: index.docbook:819 #, no-c-format msgid "And that is it for the &GUI; definition." msgstr "E questo è tutto per la definizione della &GUI;." #. Tag: para #. +> trunk5 #: index.docbook:822 #, no-c-format msgid "" "Adjusting the JS template is a little more work. You will have to create a " "new function called preview() in addition to the " "preprocess(), calculate(), &etc; " "functions. This function should generate the code needed to produce the " "plot, and only that. Esp. no printing of headers, rk.graphics." "on(), or similar calls. See the example, below for the typical pattern that " "you will use." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:827 #, no-c-format msgid "Generic plot options" msgstr "Opzioni generiche grafico" #. Tag: para #. +> trunk5 #: index.docbook:828 #, no-c-format msgid "" "You will have noticed that most plotting plugins in &rkward; provide a wide " "range of generic options ⪚ for customizing axis titles or figure margins. " "Adding these options to your plugin is easy. They are provided by an embeddable plugin called rkward::" "plot_options. Embed this in your plugin UI like this:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:831 #, no-c-format msgid "" "<document>\n" " [...]\n" " <logic [...]>\n" " <connect client=\"plotoptions.xvar\" governor=\"x." "available\"/>\n" " <set id=\"plotoptions.allow_type\" to=\"true\"/" ">\n" " <set id=\"plotoptions.allow_ylim\" to=\"true\"/" ">\n" " <set id=\"plotoptions.allow_xlim\" to=\"false\"/" ">\n" " <set id=\"plotoptions.allow_log\" to=\"false\"/" ">\n" " <set id=\"plotoptions.allow_grid\" to=\"true\"/" ">\n" " </logic>\n" " <dialog [...]>\n" " [...]\n" " <embed id=\"plotoptions\" component=\"rkward::" "plot_options\" as_button=\"true\" label=\"Plot Options\"/>\n" " [...]\n" " </dialog>\n" " [...]\n" " </document>" msgstr "" "<document>\n" " [...]\n" " <logic [...]>\n" " <connect client=\"plotoptions.xvar\" governor=\"x." "available\"/>\n" " <set id=\"plotoptions.allow_type\" to=\"true\"/" ">\n" " <set id=\"plotoptions.allow_ylim\" to=\"true\"/" ">\n" " <set id=\"plotoptions.allow_xlim\" to=\"false\"/" ">\n" " <set id=\"plotoptions.allow_log\" to=\"false\"/" ">\n" " <set id=\"plotoptions.allow_grid\" to=\"true\"/" ">\n" " </logic>\n" " <dialog [...]>\n" " [...]\n" " <embed id=\"plotoptions\" component=\"rkward::" "plot_options\" as_button=\"true\" label=\"Opzioni del grafico\"/>\n" " [...]\n" " </dialog>\n" " [...]\n" " </document>" #. Tag: para #. +> trunk5 #: index.docbook:832 #, no-c-format msgid "" "This will add a button to your UI to bring up a window with plot options. " "The logic section is just an example. It allows you some control over the " "plot options plugin. Read more in the plot_options plugin's help page " "(linked from the help page of any plugin providing the generic options)." msgstr "" "Ciò aggiungerà un pulsante all'interfaccia utente per visualizzare una " "finestra con le opzioni di stampa. La sezione logica è solo un esempio. " "Consente un certo controllo sull'estensione delle opzioni del grafico. " "Maggiori informazioni nella pagina della guida dell'estensione plot_options " "(collegata dalla pagina della guida di qualsiasi estensione che fornisce le " "opzioni generiche)." #. Tag: para #. +> trunk5 #: index.docbook:835 #, no-c-format msgid "" "Next you need to make sure that the code corresponding to your plot options " "is added to the generated code for your plot. To do so, fetch the properties " "code.preprocess, code.printout, and " "code.calculate from the embedded plot options plugin, and " "insert them into your code as shown in the example, below." msgstr "" "Successivamente è necessario assicurarsi che il codice corrispondente alle " "opzioni del grafico sia aggiunto al codice generato per il grafico. Per " "farlo, recuperare le proprietà code.preprocess, " "code.printout e code.calculate e " "inserirle nel proprio codice, come mostrato nel esempio, di seguito." #. Tag: title #. +> trunk5 #: index.docbook:841 #, no-c-format msgid "A canonical example" msgstr "Un esempio classico" #. Tag: para #. +> trunk5 #: index.docbook:842 #, no-c-format msgid "" "Here is an example .JS file that you should use as a template, whenever you " "create a plotting plugin:" msgstr "" "Ecco un esempio di file .JS che si dovrebbe utilizzare come modello, ogni " "volta che si crea un'estensione con creazione di grafici:" #. Tag: programlisting #. +> trunk5 #: index.docbook:845 #, no-c-format msgid "" "function preprocess () {\n" " // the \"somepackage\" is needed to create the plot\n" " echo (\"require (somepackage)\\n\");\n" " }\n" "\n" " function preview () {\n" " // we call all stages of the general code. Only the printout () function " "needs to be called slightly different for the plot preview\n" " preprocess ();\n" " // calculate (); // in this example, the plugin has no calculate () " "function.\n" " printout (true); // in this case, 'true' means: Create the plot, but not " "any headers or other output.\n" " }\n" " \n" " function printout (is_preview) {\n" " // If \"is_preview\" is set to false, it generates the full code, " "including headers.\n" " // If \"is_preview\" is set to true, only the essentials will be " "generated.\n" "\n" " if (!is_preview) {\n" " echo ('rk.header (' + i18n (\"An example plot\") + ')\\n\\n');\n" " echo ('rk.graph.on ()\\n');\n" " }\n" " // only the following section will be generated for is_preview==true\n" "\n" " // remember: everything between rk.graph.on() and rk.graph.off() should " "be wrapped inside a try() statement:\n" " echo ('try ({\\n');\n" " // insert any option-setting code that should be run before the actual " "plotting commands.\n" " // The code itself is provided by the embedded plot options plugin. " "printIndentedUnlessEmpty() takes care of pretty formatting.\n" " printIndentedUnlessEmpty ('\\t', getString (\"plotoptions.code.preprocess" "\"), '', '\\n');\n" "\n" " // create the actual plot. plotoptions.code.printout provides the part " "of the generic plot options\n" " // that have to be added to the plotting call, itself.\n" " echo ('plot (5, 5' + getString (\"plotoptions.code.printout\") + " "')\\n');\n" "\n" " // insert any option-setting code that should be run after the actual " "plot.\n" " printIndentedUnlessEmpty ('\\t', getString (\"plotoptions.code.calculate" "\"), '\\n');\n" " echo ('})'\\n); // the closure of the try() statement\n" "\n" " if (!is_preview) {\n" " echo ('rk.graph.off ()\\n');\n" " }\n" " }" msgstr "" "function preprocess () {\n" " // «unpacchetto» è necessario per creare il grafico\n" " echo (\"require (unpacchetto)\\n\");\n" " }\n" "\n" " function preview () {\n" " // invochiamo tutte le fasi del codice generale. Solo la funzione " "printout () richiede di essere invocata in modo leggermente diverso per " "l'anteprima del grafico\n" " preprocess ();\n" " // calculate (); // in questo esempio, l'estensione non ha la funzione " "calculate ().\n" " printout (true); // in questo caso, 'true' significa: crea il grafico, " "ma non alcuna intestazione o altro risultato.\n" " }\n" " \n" " function printout (is_preview) {\n" " // Se «is_preview» è impostata a falso, genera il codice completo, " "incluse le intestazioni.\n" " // Se «is_preview» è impostata a vero, sarà generata solo la parte " "essenziale.\n" "\n" " if (!is_preview) {\n" " echo ('rk.header (' + i18n (\"Un grafico di esempio\") + ')\\n\\n');\n" " echo ('rk.graph.on ()\\n');\n" " }\n" " // sarà generata solo la seguente sezione per is_preview==true\n" "\n" " // ricorda: qualsiasi cosa tra rk.graph.on() e rk.graph.off() dovrebbe " "essere inglobata in un'istruzione try():\n" " echo ('try ({\\n');\n" " // inserisci qualsiasi codice di definizione delle opzioni che dovrebbe " "essere eseguito prima dei comandi effettivi di tracciamento dei grafici.\n" " // Il codice stesso è fornito dall'estensione delle opzioni di " "tracciamento dei grafici. printIndentedUnlessEmpty() si occupa di rendere " "piacevole la formattazione.\n" " printIndentedUnlessEmpty ('\\t', getString (\"plotoptions.code.preprocess" "\"), '', '\\n');\n" "\n" " // crea il grafico. plotoptions.code.printout fornisce la parte delle " "opzioni generiche dei grafici\n" " // che devono essere aggiunte alla chiamata di tracciamento, stessa.\n" " echo ('plot (5, 5' + getString (\"plotoptions.code.printout\") + " "')\\n');\n" "\n" " // inserisci qualsiasi codice di definizione delle opzioni che dovrebbe " "essere eseguito dopo il grafico effettivo.\n" " printIndentedUnlessEmpty ('\\t', getString (\"plotoptions.code.calculate" "\"), '\\n');\n" " echo ('})'\\n); // la chiusura dell'istruzione try()\n" "\n" " if (!is_preview) {\n" " echo ('rk.graph.off ()\\n');\n" " }\n" " }" #. Tag: title #. +> trunk5 #: index.docbook:849 #, no-c-format msgid "Previews for data, output and other results" msgstr "Anteprime dei dati, uscita e altri risultati" #. Tag: title #. +> trunk5 #: index.docbook:851 #, no-c-format msgid "Previews of (HTML) output" msgstr "Anteprima del risultato (HTML)" #. Tag: para #. +> trunk5 #: index.docbook:852 #, no-c-format msgid "" "This section discusses adding preview functionality to plugins creating " "output / HTML printouts. It is recommended that you read the separate " "section on plot previews, before this " "section." msgstr "" "In questa sezione viene descritta l'aggiunta della funzionalità di anteprima " "alle estensioni che creano stampe del risultato / HTML. Si consiglia di " "leggere la sezione separata su anteprime dei " "grafici, prima di questa sezione." #. Tag: para #. +> trunk5 #: index.docbook:853 #, no-c-format msgid "" "Creating a preview of HTML output is almost the same procedure as creating a " "plot preview. In this case, simply make sure that the preview() generates the relevant rk.print()/rk.results() " "commands. It is generally a good idea to omit the header statements in the " "preview, however. Here is a stripped-down example:" msgstr "" "La creazione di un'anteprima del risultato HTML è quasi la stessa procedura " "della creazione di un'anteprima del grafico. In questo caso, assicurarsi " "semplicemente che preview() generi i relativi comandi " "rk.print()/rk.results(). In genere, tuttavia, è " "consigliabile omettere le istruzioni di intestazione nell'anteprima. Ecco un " "esempio ridotto:" #. Tag: programlisting #. +> trunk5 #: index.docbook:857 #, no-c-format msgid "" "<!-- In the plugin's XML file -->>\n" " <dialog label=\"Import CSV data\" >\n" " <browser id=\"file\" type=\"file\" label=\"File name\"/" ">\n" " <!-- [...] -->>\n" " <preview id=\"preview\" mode=\"output\"/>\n" " </dialog>>" msgstr "" "<!-- Nel file XML dell'estensione -->>\n" " <dialog label=\"Importa dati CSV\" >\n" " <browser id=\"file\" type=\"file\" label=\"Nome file\"/" ">\n" " <!-- [...] -->>\n" " <preview id=\"preview\" mode=\"output\"/>\n" " </dialog>>" #. Tag: para #. +> trunk5 #: index.docbook:858 #, no-c-format msgid "" "Note the specification of mode=\"output\" in the " "<preview> element." msgstr "" "Nota la specifica di mode=\"output\" in <" "preview>." #. Tag: programlisting #. +> trunk5 #: index.docbook:861 #, no-c-format msgid "" "// In the plugin's JS file\n" " function preview () {\n" " // generates the code used for preview\n" " printout (true);\n" " }\n" "\n" " function printout (is_preview) {\n" " // only generates a header if is_preview==false\n" " if (!is_preview) {\n" " new Header (\"This is a caption\").print ();\n" " }\n" " echo ('rk.print (result)');\n" " }" msgstr "" "// Nel file JS dell'estensione\n" " function preview () {\n" " // genera il codice utilizzato per l'anteprima\n" " printout (true);\n" " }\n" "\n" " function printout (is_preview) {\n" " // genera un'intestazione solo se is_preview==false\n" " if (!is_preview) {\n" " new Header (\"Questa è una didascalia\").print ();\n" " }\n" " echo ('rk.print (result)');\n" " }" #. Tag: title #. +> trunk5 #: index.docbook:864 #, no-c-format msgid "Previews of (imported) data" msgstr "Anteprima dei dati (importati)" #. Tag: para #. +> trunk5 #: index.docbook:865 #, no-c-format msgid "" "This section discusses adding preview functionality to plugins creating " "(importing) data. It is recommended that you read the separate section on " "plot previews, before this section." msgstr "" "Questa sezione discute l'aggiunta di funzionalità di anteprima alle " "estensioni che creano (importano) dati. Si consiglia di leggere la sezione " "separata sulle anteprime dei grafici, " "prima di questa sezione." #. Tag: para #. +> trunk5 #: index.docbook:866 #, no-c-format msgid "" "Creating a preview of imported data (any type of data that rk." "edit() can handle), is very similar to creating a plot preview. The following stripped down example " "should help illustrate how to create a data preview:" msgstr "" "La creazione di un'anteprima dei dati importati (qualsiasi tipo di dati che " "rk.edit() è in grado di gestire), è molto simile alla " "creazione di anteprima del grafico. " "Il seguente esempio ridotto dovrebbe aiutare a illustrare come creare " "un'anteprima dei dati:" #. Tag: programlisting #. +> trunk5 #: index.docbook:869 #, no-c-format msgid "" "<!-- In the plugin's XML file -->>\n" " <dialog label=\"Import CSV data\" >\n" " <browser id=\"file\" type=\"file\" label=\"File name\"/" ">\n" " <!-- [...] -->>\n" " <preview id=\"preview\" active=\"true\" mode=\"data\"/" ">\n" " </dialog>>" msgstr "" "<!-- Nel file XML dell'estensione -->>\n" " <dialog label=\"Importa dati CSV\" >\n" " <browser id=\"file\" type=\"file\" label=\"Nome file\"/" ">\n" " <!-- [...] -->>\n" " <preview id=\"preview\" active=\"true\" mode=\"data\"/" ">\n" " </dialog>>" #. Tag: para #. +> trunk5 #: index.docbook:870 #, no-c-format msgid "" "Note that the <preview> element specifies " "mode=\"data\" this time. active=\"true\" simply makes the preview active by default." msgstr "" "Questa volta l'elemento <preview> specifica " "mode=\"data\". active=\"true\" " "rende semplicemente attiva l'anteprima per impostazione predefinita." #. Tag: programlisting #. +> trunk5 #: index.docbook:874 #, no-c-format msgid "" "// In the plugin's JS file\n" " function preview () {\n" " // generates the code used for preview\n" " calculate (true);\n" " }\n" "\n" " function calculate (is_preview) {\n" " echo ('imported <- read.csv (file=\"' + getString (\"file" "\") /* [+ options] */);\n" " if (is_preview) {\n" " echo ('preview_data <- imported\\n');\n" " } else {\n" " echo ('.GlobalEnv$' + getString (\"name\") + ' >- " "imported\\n');\n" " }\n" " }\n" "\n" " function printout () {\n" " // [...]\n" " }" msgstr "" "// Nel file JS dell'estensione\n" " function preview () {\n" " // genera il codice utilizzato per l'anteprima\n" " calculate (true);\n" " }\n" "\n" " function calculate (is_preview) {\n" " echo ('importato <- read.csv (file=\"' + getString (\"file" "\") /* [+ options] */);\n" " if (is_preview) {\n" " echo ('preview_data <- imported\\n');\n" " } else {\n" " echo ('.GlobalEnv$' + getString (\"nome\") + ' >- " "importato\\n');\n" " }\n" " }\n" "\n" " function printout () {\n" " // [...]\n" " }" #. Tag: para #. +> trunk5 #: index.docbook:875 #, no-c-format msgid "" "Again, the preview() function generates almost the same " "&R; code as the calculate() function, so we create a " "helper function doCalcuate() to factor out the common " "parts. The most important thing to note is that you will have to assign the " "imported data to a object called preview_data (inside " "the current - local - environment). Everything else will happen " "automatically (roughly speaking, &rkward; will call rk." "edit(preview_data), wrapped inside a call to .rk.with." "window.hints())." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:879 #, no-c-format msgid "" "While previews are a great feature, they do consume resources. In the case " "of data previews, there may be cases, where previews can cause significant " "performance issues. This could be for importing huge datasets (which are " "just too large to be opened for editing in &rkward;'s editor window), but " "also \"normal\" datasets could be mis-imported, creating a huge number of " "rows or columns. It is very much recommended that you limit the " "preview_data to a dimension that provides " "a useful preview, without the danger of creating noticable performance " "issues (⪚ 50 rows by 50 columns should be more than enough in most cases)." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:886 #, no-c-format msgid "Custom previews" msgstr "Anteprime personalizzate" #. Tag: para #. +> trunk5 #: index.docbook:887 #, no-c-format msgid "" "The <preview> element can be used to create " "previews for any type of \"document\" window that can be attached to " "&rkward;'s workplace. In addition to plots and data windows, this includes " "HTML files, &R; scripts, and object summary windows. For the latter ones, " "you will have to use <preview mode=\"custom\">." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:890 #, no-c-format msgid "" "If you have read the sections describing plot preview and data previews, you " "should have a general idea on the procedure, but \"custom\" previews require " "slightly more manual work behind the scenes. The most important &R; function " "to look at is rk.assign.preview.data(), here. The " "following short listing shows what your generated (preview) &R; code could " "look like for a plugin creating a text file output:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:893 #, no-c-format msgid "" "## To be generated in the preview() code section of a plugin\n" " pdata <- rk.get.preview.data(\"SOMEID\")\n" " if (is.null (pdata)) {\n" " outfile <- rk.get.tempfile.name(prefix=\"preview\", " "extension=\".txt\")\n" " pdata <- list(filename=outfile, on.delete=function (id) " "{\n" " unlink(rk.get.preview.data(id)$filename)\n" " })\n" " rk.assign.preview.data(\"SOMEID\", pdata)\n" " }\n" " try ({\n" " cat (\"This is a test\", pdata$filename)\n" " rk.edit.files(file=pdata$filename)\n" " })" msgstr "" "## Da generare nella sezione di codice preview() di un'estensione\n" " pdata <- rk.get.preview.data(\"UN_ID\")\n" " if (is.null (pdata)) {\n" " outfile <- rk.get.tempfile.name(prefix=\"anteprima\", " "extension=\".txt\")\n" " pdata <- list(filename=outfile, on.delete=function (id) " "{\n" " unlink(rk.get.preview.data(id)$filename)\n" " })\n" " rk.assign.preview.data(\"UN_ID\", pdata)\n" " }\n" " try ({\n" " cat (\"Questo è un test\", pdata$filename)\n" " rk.edit.files(file=pdata$filename)\n" " })" #. Tag: para #. +> trunk5 #: index.docbook:894 #, no-c-format msgid "" "Here you should get the value SOMEID from the " "id property of the <preview>-" "element. I.e. using getString (\"preview.id\") in the " "plugin's .js file." msgstr "" "Qui si dovrebbe ottenere il valore UN_QUALCHE_ID " "dalla proprietà id dell'elemento <" "preview>. Cioè utilizzando getString(\"preview.id\") nel file .js dell'estensione." #. Tag: title #. +> trunk5 #: index.docbook:901 #, no-c-format msgid "Context-dependent plugins" msgstr "Estensioni dipendenti dal contesto" #. Tag: para #. +> trunk5 #: index.docbook:902 #, no-c-format msgid "" "So far we have assumed, all plugins are always meaningful, and all placed in " "the main menu. However, some plugins are meaningful only (or additionally) " "in a certain context. For instance a plugin to export the contents of an &R; " "X11 graphics device is obviously most useful, when placed in the menu of an " "X11 device, not in the main menubar. Also, such a plugin should know about " "the device number that it should operate on, without having to ask the user " "about this." msgstr "" "Finora abbiamo assunto, tutte le estensioni sono sempre significative e " "tutte inserite nel menu principale. Tuttavia, alcune estensioni sono " "significative solo (o in aggiunta) in un determinato contesto. Ad esempio " "un'estensione per esportare i contenuti di un dispositivo grafico X11 di &R; " "è ovviamente più utile, se inserita nel menu di un dispositivo X11, non " "nella barra dei menu principale. Inoltre, un'estensione di questo tipo " "dovrebbe conoscere il numero di dispositivo sul quale dovrebbe operare, " "senza che questo debba essere richiesto all'utente." #. Tag: para #. +> trunk5 #: index.docbook:905 #, no-c-format msgid "" "We call such plugins context-dependent. Correspondingly, in the &pluginmap; file, they are not (or not only) " "placed in the main <hierarchy> but rather into a " "<context> element. So far only two different " "contexts are supported (more will come later): x11 and file import. We will " "deal with those in turn. Even if you are only interested in the import " "context, please also read the section on the x11 context, as this is " "slightly more elaborate." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:910 #, no-c-format msgid "X11 device context" msgstr "Contesto del dispositivo X11" #. Tag: para #. +> trunk5 #: index.docbook:911 #, no-c-format msgid "" "To use a plugin in the context of an x11 device - that is place it in the " "menubar of the window you get when you call x11() in " "the console, first declare it as usual in the &pluginmap; file:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:914 #, no-c-format msgid "" "<document [...]>\n" " <components>\n" " [...]\n" " <component id=\"my_x11_plugin\" file=\"my_x11_plugin.xml" "\" label=\"An X11 context plugin\"/>\n" " [...]\n" " </components>" msgstr "" "<document [...]>\n" " <components>\n" " [...]\n" " <component id=\"my_x11_plugin\" file=\"my_x11_plugin.xml" "\" label=\"Un'estensione del contesto X11\"/>\n" " [...]\n" " </components>" #. Tag: para #. +> trunk5 #: index.docbook:915 #, no-c-format msgid "" "However, you do not need to define it in the hierarchy (you can, if it is " "also meaningful as a top-level plugin):" msgstr "" "Tuttavia, non è necessario definirla nella gerarchia (è possibile, se è " "anche significativa come estensione di livello superiore):" #. Tag: programlisting #. +> trunk5 #: index.docbook:918 #, no-c-format msgid "" "<hierarchy>\n" " [...]\n" " </hierarchy>" msgstr "" "<hierarchy>\n" " [...]\n" " </hierarchy>" #. Tag: para #. +> trunk5 #: index.docbook:919 #, no-c-format msgid "" "Instead, add a definition of the \"x11\" context, and add it to the menus " "there:" msgstr "" "Invece, aggiungere una definizione del contesto «x11» e aggiungerla ai menu:" #. Tag: programlisting #. +> trunk5 #: index.docbook:922 #, no-c-format msgid "" "<context id=\"x11\">\n" " [...]\n" " <menu id=\"edit\">\n" " [...]\n" " <entry id=\"my_x11_plugin\"/>\n" " </menu>\n" " </context>\n" "</document>" msgstr "" "<context id=\"x11\">\n" " [...]\n" " <menu id=\"edit\">\n" " [...]\n" " <entry id=\"mia_estensione_x11\"/>\n" " </menu>\n" " </context>\n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:923 #, no-c-format msgid "" "In the logic section of the plugin xml, you " "can now declare two <external> properties: " "devnum and context. " "context (if declared) will be set to " "\"x11\" when the plugin is invoked in this context. " "devnum will be set to the number of the graphics " "device to operate on. And that is all." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:929 #, no-c-format msgid "Import data context" msgstr "Importa contesto di dati" #. Tag: para #. +> trunk5 #: index.docbook:930 #, no-c-format msgid "" "Before reading this section, please make sure to read the section on the " "X11 device context, as that explains " "the basic concepts." msgstr "" "Prima di leggere questa sezione, assicurarsi di leggere la sezione sul contesto del dispositivo X11, poiché ciò " "spiega i concetti di base." #. Tag: para #. +> trunk5 #: index.docbook:933 #, no-c-format msgid "" "The \"import\" context is used to declare import " "file filter plugins. You simply place those in a context with " "id=\"import\" in the " "&pluginmap; file. However, there is one additional twist when declaring " "these plugins: In order to offer a unified file selection dialog for all " "supported file types, you need to declare one additional bit of information " "on your component:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:936 #, no-c-format msgid "" "<document [...]>\n" " <components>\n" " [...]\n" " <component id=\"my_xyz_import_plugin\" file=" "\"my_xyz_import_plugin.xml\" label=\"Import XYZ files\">\n" " <attribute id=\"format\" value=\"*.xyz *.zyx\" " "label=\"XYZ data files\"/>\n" " </component>\n" " [...]\n" " </components>\n" " <hierarchy>\n" " [...]\n" " </hierarchy>\n" " <context id=\"import\">\n" " [...]\n" " <menu id=\"import\">\n" " [...]\n" " <entry id=\"my_xyz_import_plugin\"/>\n" " </menu>\n" " </context>\n" " [...]\n" "</document>" msgstr "" "<document [...]>\n" " <components>\n" " [...]\n" " <component id=\"mia_estensione_xyz_importazione\" file=" "\"mia_estensione_xyz_importazione.xml\" label=\"Importa file XYZ\">\n" " <attribute id=\"format\" value=\"*.xyz *.zyx\" " "label=\"File di dati XYZ\"/>\n" " </component>\n" " [...]\n" " </components>\n" " <hierarchy>\n" " [...]\n" " </hierarchy>\n" " <context id=\"import\">\n" " [...]\n" " <menu id=\"import\">\n" " [...]\n" " <entry id=\"mia_estensione_xyz_importazione\"/" ">\n" " </menu>\n" " </context>\n" " [...]\n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:937 #, no-c-format msgid "" "The attribute line simply says, that the associate filename extensions for " "XYZ files are *.xyz or *.zyx, and that the filter should be labeled " "XYZ data files in the file selection dialog." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:940 #, no-c-format msgid "" "You can declare two <external> properties in your " "plugin. filename will be set to the selected file " "name, and context will be set to \"import" "\"." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:947 #, no-c-format msgid "Querying &R; for information" msgstr "Interrogazione delle informazioni di &R;" #. Tag: para #. +> trunk5 #: index.docbook:948 #, no-c-format msgid "" "In some cases, you may want to fetch further information from &R;, to be " "presented in your plugin's UI. For instance, you may want to offer a " "selection of the levels of a factor that the user has selected for analysis. " "Since version 0.6.2 of &rkward; it is possible to do so. Before we start, it " "is important that you are aware of some caveats:" msgstr "" "In alcuni casi, si potrebbe voler recuperare ulteriori informazioni da &R;, " "da presentare nell'interfaccia utente dell'estensione. Ad esempio, si " "potrebbe voler offrire una selezione dei livelli di un fattore che l'utente " "ha selezionato per l'analisi. Dalla versione 0.6.2 di &rkward; è possibile " "farlo. Prima di iniziare, è importante essere a conoscenza di alcuni " "avvertimenti:" #. Tag: para #. +> trunk5 #: index.docbook:950 #, no-c-format msgid "" "R Code run from inside the plugin's UI logic is evaluated in R's event loop, " "meaning they can be run while other computations are " "running. This is to make sure your plugin's UI will be usable, even while " "&R; is busy doing other things. However, this makes it really important, " "that your code does not have side effects. In particular:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:952 #, no-c-format msgid "" "Do not make any assignments in .GlobalEnv or any other " "non-local environment." msgstr "" "Non fare alcuna assegnazione .GlobalEnv o in qualsiasi " "altro ambiente non locale." #. Tag: para #. +> trunk5 #: index.docbook:953 #, no-c-format msgid "Do not print anything to the output file." msgstr "Non stampare nulla sul file di uscita." #. Tag: para #. +> trunk5 #: index.docbook:954 #, no-c-format msgid "Do not plot anything on-screen." msgstr "Non tracciare nulla sullo schermo." #. Tag: para #. +> trunk5 #: index.docbook:955 #, no-c-format msgid "" "In general, do not do anything that has side-effects. " "Your code may read in information, not \"do\" anything." msgstr "" "In generale, non fare qualcosa che abbia effetti" " collaterali. " "Il proprio codice può leggere informazioni, non " "«fare» qualsiasi cosa." #. Tag: para #. +> trunk5 #: index.docbook:957 #, no-c-format msgid "" "With this in mind, here is the general pattern. You will use this inside a " "scripted UI logic section:" msgstr "" "Con questo in mente, ecco lo schema generale. Lo si utilizzerà all'interno " "di una sezione logica dell'interfaccia " "utente programmabile:" #. Tag: programlisting #. +> trunk5 #: index.docbook:958 #, no-c-format msgid "" "<script><![CDATA[\n" " last_command_id = -1;\n" " gui.addChangeCommand (\"variable\", \"update " "()\");\n" " update = function () {\n" " gui.setValue (\"selector.enabled\", " "0);\n" " variable = gui.getValue (\"variable" "\");\n" " if (variable == \"\") return;\n" "\n" " last_command_id = doRCommand " "('levels (' + variable + ')', \"commandFinished\");\n" " }\n" "\n" " commandFinished = function (result, id) {\n" " if (id != last_command_id) " "return; // another result is about to arrive\n" " if (typeof (result) == \"undefined" "\") {\n" " gui.setListValue (\"selector." "available\", Array (\"ERROR\"));\n" " return;\n" " }\n" " gui.setValue (\"selector.enabled\", " "1);\n" " gui.setListValue (\"selector." "available\", result);\n" " }\n" " ]]></script>" msgstr "" "<script><![CDATA[\n" " last_command_id = -1;\n" " gui.addChangeCommand (\"variabile\", " "\"aggiorna ()\");\n" " aggiorna = function () {\n" " gui.setValue (\"selector.enabled\", " "0);\n" " variabile = gui.getValue (\"variabile" "\");\n" " if (variabile == \"\") return;\n" "\n" " last_command_id = doRCommand " "('levels (' + variabile + ')', \"comandoTerminato\");\n" " }\n" "\n" " comandoTerminato = function (risultato, id) " "{\n" " if (id != last_command_id) " "return; // un altro risultato sta per arrivare\n" " if (typeof (risultato) == \"undefined" "\") {\n" " gui.setListValue (\"selector." "available\", Array (\"ERRORE\"));\n" " return;\n" " }\n" " gui.setValue (\"selector.enabled\", " "1);\n" " gui.setListValue (\"selector." "available\", result);\n" " }\n" " ]]></script>" #. Tag: para #. +> trunk5 #: index.docbook:959 #, no-c-format msgid "" "Here, variable is a property holding an object name " "(⪚ inside a <varslot>). Whenever that changes, " "you will want to update the display of levels inside the <" "valueselector>, named selector. The key " "function here is doRCommand(), taking as first parameter " "the command string to run, and as second parameter the name of a function to " "call, when the command has finished. Note that the command is running " "asynchronously, and this makes things a bit more complex. For one thing you " "want to make sure, that your <valueselector> " "remains disabled, while it does not contain up-to-date information. Another " "thing is that you could potentially have queued more than one command, " "before you get the first results. This is why every command is given an \"id" "\", and we store that in last_command_id for later " "reference." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:964 #, no-c-format msgid "" "When the command is done, the specified callback is called " "(commandFinished, in this case) with two parameters: " "The result itself, and the id of the corresponding command. The result will " "be of a type resembling the representation in &R;, &ie; a numeric Array, if " "the result is numeric, &etc; It can even be an &R; list(), but in this case it will be represented as a JS Array() without names." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:967 #, no-c-format msgid "" "Note that even this example is somewhat simplified. In reality you should " "take additional precautions, ⪚ to avoid putting an extreme amount of " "levels into the selector. The good news is that probably you do not have to " "do all this yourself. The above example is taken from the rkward::" "level_select plugin, for instance, which you can simply embed in your own plugin. This even allows you " "to specify a different expression to run in place of levels()." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:973 #, no-c-format msgid "Referencing the current object or current file" msgstr "Riferimento all'oggetto attuale o al file attuale" #. Tag: para #. +> trunk5 #: index.docbook:974 #, no-c-format msgid "" "For many plugins it is desirable to work on the current " "object. For instance a sort plugin could pre-select the data." "frame that is currently being edited for sorting. The name of the current " "object is available to plugins as a pre-defined property called " "current_object. You can connect to this property in " "the usual way. If no object is current, the property equates to an empty " "string. Similarly, the &URL; of the current script file is accessible as a " "pre-defined property called current_filename. That " "property is empty if no script file is currently being edited, or the script " "file has not been saved, yet." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:978 #, no-c-format msgid "" "Currently the current_object can only be of class " "data.frame, but please do not rely on this, since this " "will be extended to other types of data in the future. If you are interested " "in data.frame objects, only, connect to the " "current_dataframe property, instead. Alternatively, " "you can enforce type requirements by using appropriate constraints on your " "<varslot>s, or by using &GUI; logic scripting." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:984 #, no-c-format msgid "Repeating (a set of) options" msgstr "Ripetere (un insieme di) opzioni" #. Tag: para #. +> trunk5 #: index.docbook:985 #, no-c-format msgid "" "Sometimes you want to repeat a set of options for an arbitrary number of " "items. E.g. suppose you want to implement a plugin for sorting a data.frame. " "You may want to allow for sorting by an arbitrary number of columns (in case " "of ties among the first column(s)). This could simply be realized by " "allowing the user to select multiple variables in a <varslot>" " with multi=\"true\". But if you want to " "extend this, ⪚ allowing the user to specify for each variable whether it " "should be converted to character / numeric, or whether sorting should be " "ascending or descending, you need more flexibility. Other examples would be " "plotting multiple lines in one plot (allowing to select object, line style, " "line color, &etc; for each line), or specifying a mapping for recoding from " "a set of old values to new values." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:988 #, no-c-format msgid "" "Enter the <optionset>. Let's look at a simple " "example, first:" msgstr "" "Immettere il <optionset>. Diamo un'occhiata a un " "semplice esempio, prima:" #. Tag: programlisting #. +> trunk5 #: index.docbook:991 #, no-c-format msgid "" "<dialog [...]>\n" " [...]\n" " <optionset id=\"set\" min_rows=\"1\">\n" " <content>\n" " <row>\n" " <input id=\"firstname\" label=\"Given " "name(s)\" size=\"small\">\n" " <input id=\"lastname\" label=\"Family name" "\" size=\"small\">\n" " <radio id=\"gender\" label=\"Gender" "\">\n" " <optioncolumn label=\"Male\" " "value=\"m\"/>\n" " <optioncolumn label=\"Female\" " "value=\"f\"/>\n" " </radio>\n" " </row>\n" " </content>\n" "\n" " <optioncolumn id=\"firstnames\" label=\"Given name(s)\" " "connect=\"firstname.text\">\n" " <optioncolumn id=\"lastnames\" label=\"Family name\" " "connect=\"lastname.text\">\n" " <optioncolumn id=\"gender\" connect=\"gender.string" "\">\n" " </optionset>\n" " [...]\n" "</dialog>" msgstr "" "<dialog [...]>\n" " [...]\n" " <optionset id=\"set\" min_rows=\"1\">\n" " <content>\n" " <row>\n" " <input id=\"firstname\" label=\"Nome " "proprio\" size=\"small\">\n" " <input id=\"lastname\" label=\"Cognome\" " "size=\"small\">\n" " <radio id=\"gender\" label=\"Genere" "\">\n" " <optioncolumn label=\"Maschio\" " "value=\"m\"/>\n" " <optioncolumn label=\"Femmina\" " "value=\"f\"/>\n" " </radio>\n" " </row>\n" " </content>\n" "\n" " <optioncolumn id=\"firstnames\" label=\"Nome proprio\" " "connect=\"firstname.text\">\n" " <optioncolumn id=\"lastnames\" label=\"Cognome\" connect=" "\"lastname.text\">\n" " <optioncolumn id=\"gender\" connect=\"gender.string" "\">\n" " </optionset>\n" " [...]\n" "</dialog>" #. Tag: para #. +> trunk5 #: index.docbook:992 #, no-c-format msgid "" "Here, we created a UI for specifying a number of persons (⪚ authors). The " "UI requires at least one entry (min_rows=\"1\"). " "Inside the <optionset>-element, we begin by " "specifying the <content>, &ie; those elements that " "belong to the option set. You will be familiar with most elements inside the " "<content>." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:996 #, no-c-format msgid "" "Next we specify the variables of interest that we will want to read from the " "option set in our JS file. As we will be dealing with an arbitrary number of " "items, we cannot just read getString (\"firstname\") in " "JS. Rather, for each value of interest, we specify an <" "optioncolumn>. For the first optioncolumn in the example, " "<connect=\"firstname.text\"> means that the content " "of the <input> element \"firstname\" is read for " "each item. <optioncolumn>s for which a " "label is given, will be shown in the display, in a " "column by that label. In JS, we can now fetch the first names for all " "authors using getList(\"set.firstname\"), " "getList(\"set.lastnames\") for the family names, and " "getList(\"set.gender\") for an array of \"m\"/\"f\" " "strings." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1004 #, no-c-format msgid "" "Note that there are no restrictions on what you can place inside an " "<optionset>. You can even use embedded components. Just as with any other element, " "all you have to do is to collect the output variables of interest in an " "<optioncolumn>-specification. In the case of " "embedded plugins, this is often a section of the \"code\" property. E.g.:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1008 #, no-c-format msgid "" "<dialog [...]>\n" " [...]\n" " <optionset id=\"set\" min_rows=\"1\">\n" " <content>\n" " [...]\n" " <embed id=\"color\" component=\"rkward::" "color_chooser\" label=\"Color\"/>\n" " </content>\n" "\n" " [...]\n" " <optioncolumn id=\"color_params\" connect=\"color.code." "printout\">\n" " </optionset>\n" " [...]\n" "</dialog>" msgstr "" "<dialog [...]>\n" " [...]\n" " <optionset id=\"set\" min_rows=\"1\">\n" " <content>\n" " [...]\n" " <embed id=\"color\" component=\"rkward::" "color_chooser\" label=\"Colore\"/>\n" " </content>\n" "\n" " [...]\n" " <optioncolumn id=\"color_params\" connect=\"color.code." "printout\">\n" " </optionset>\n" " [...]\n" "</dialog>" #. Tag: para #. +> trunk5 #: index.docbook:1009 #, no-c-format msgid "" "Of course you can also use UI logic inside an " "optionset. There are two options for doing this: You can do so by making " "connection (or scripting) in the main <logic> " "section of your plugin, as usual. However, you will access the UI elements " "in the contents region as (⪚) \"set.contents.firstname.XYZ\". Note the " "prefix \"set\" (the id you have assigned to the set " "and \"contents\"). Alternatively, you can add a separate <" "logic> section as a child element of your <" "optionset>. In this case, ids will be " "addressed relative to the contents region, ⪚ \"firstname.XYZ\". Only the " "<script>-element is not allowed in the logic " "section of an optionset. If you want to use scripting, you will have to " "utilize the plugin's main <logic> section." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1014 #, no-c-format msgid "" "When scripting logic in an optionset, all you can do is access the " "current content region. Thus, typically, it is only " "meaningful to connect elements inside the contents region to each other. " "Connecting a property outside the <optionset> to a " "property inside the content region, may be useful for initialization. " "However, modifying the contents region after initialization will " "not apply to items that the user has already defined. " "Only to the currently selected item in the set." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1022 #, no-c-format msgid "\"Driven\" optionsets" msgstr "Insiemi di opzioni «guidati»" #. Tag: para #. +> trunk5 #: index.docbook:1023 #, no-c-format msgid "" "So far we have considered an <optionset> that " "provides buttons for adding / removing items. However, in some cases, it is " "much more natural to select items outside the <optionset>, and only provide options for customizing some aspects of each item " "in an <optionset>. E.g. suppose you want to allow " "the user to plot several objects inside one plot. For each object, the user " "should be able to specify line color. You could solve " "this by placing a <varselector> and <" "varslot> inside the <content> area, " "allowing the user to select one item at a time. However, it will mean much " "less clicks for the user, if you use a <varslot multi=\"true" "\"> outside the <optionset>" ", instead. Then you will connect this selection of objects to a so-" "called \"driven\" optionset. Here is how:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1034 #, no-c-format msgid "" "<dialog [...]>\n" " <logic>\n" " <connect client=\"set.vars\" governor=\"vars.available\"/" ">\n" " <connect client=\"set.varnames\" governor=\"vars." "available.shortname\"/>\n" " </logic>\n" " [...]\n" " <varselector id=\"varsel\"/>\n" " <varslot id=\"vars\" label=\"Objects to plot\"/>\n" " <optionset id=\"set\" keycolumn=\"var\">\n" " <content>\n" " [...]\n" " <embed id=\"color\" component=\"rkward::" "color_chooser\" label=\"Line color\"/>\n" " </content>\n" "\n" " [...]\n" " <optioncolumn id=\"vars\" external=\"true\">\n" " <optioncolumn id=\"varnames\" external=\"true\" label=" "\"Variable\">\n" " <optioncolumn id=\"color_params\" connect=\"color.code." "printout\">\n" " </optionset>\n" " [...]\n" "</dialog>" msgstr "" "<dialog [...]>\n" " <logic>\n" " <connect client=\"set.vars\" governor=\"vars.available\"/" ">\n" " <connect client=\"set.varnames\" governor=\"vars." "available.shortname\"/>\n" " </logic>\n" " [...]\n" " <varselector id=\"varsel\"/>\n" " <varslot id=\"vars\" label=\"Oggetti da tracciare\"/>\n" " <optionset id=\"set\" keycolumn=\"var\">\n" " <content>\n" " [...]\n" " <embed id=\"color\" component=\"rkward::" "color_chooser\" label=\"Colore della linea\"/>\n" " </content>\n" "\n" " [...]\n" " <optioncolumn id=\"vars\" external=\"true\">\n" " <optioncolumn id=\"varnames\" external=\"true\" label=" "\"Variable\">\n" " <optioncolumn id=\"color_params\" connect=\"color.code." "printout\">\n" " </optionset>\n" " [...]\n" "</dialog>" #. Tag: para #. +> trunk5 #: index.docbook:1035 #, no-c-format msgid "" "We will start looking at the example at the bottom. You will note that two " "<optioncolumn> specifications have " "external=\"true\". This tells &rkward; that these are " "controlled from outside the <optionset>. Here, the " "sole purpose of the \"varnames\"-optioncolumn is to provide easy-to-read " "labels in the optionset display (it is connected to the \"shortname\" " "modifier of the property holding the selected objects). The purpose of the " "\"vars\"-optioncolumn is to serve as the \"key\" column, as specified by " "<optionset keycolumn=\"vars\"...>. This means that " "for each entry in this list, the set will offer one set of options, and " "options are logically tied to these entries. This column is connected to the " "property holding the selected objects in the <varslot>. That is for each object that is selected there, the <" "optionset> will allow to specify line color." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1045 #, no-c-format msgid "" "External column can also be connected to properties " "inside the <content> region. However, it is " "important to note that optioncolumns declared external=\"true\" should never be modified from inside the <" "optionset>, and optioncolumns declared external=" "\"false\" (the default) should never be modified from outside " "the <optionset>." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1055 #, no-c-format msgid "Alternatives: When not to use optionsets" msgstr "Alternative: quando non utilizzare gli insiemi di opzioni" #. Tag: para #. +> trunk5 #: index.docbook:1056 #, no-c-format msgid "" "Optionsets are a powerful tool, but they can sometimes do more harm than " "good, as they add considerable complexity, both from the perspective of a " "plugin developer, and from the perspective of a user. Thus, think twice, " "when using them. Here is some advice:" msgstr "" "Gli insiemi di opzioni sono uno strumento potente, ma a volte possono fare " "più creare più problemi che altro, poiché aggiungono una notevole " "complessità, sia dal punto di vista di uno sviluppatore di estensioni, sia " "dal punto di vista di un utente. Quindi, consigliamo di pensarci due volte, " "quando si utilizzano. Ecco qualche consiglio:" #. Tag: para #. +> trunk5 #: index.docbook:1062 #, no-c-format msgid "" "For some simple cases, the <matrix> element may " "provide a useful lightweight alternative." msgstr "" "Per alcuni casi semplici, l'elemento <matrix> può " "fornire un'utile alternativa leggera." #. Tag: para #. +> trunk5 #: index.docbook:1063 #, no-c-format msgid "" "Do not make your plugin do too much. We gave the example of using an " "optionset for a plugin to draw several lines within one plot. But in general " "it is not a good idea to create a plugin that will produce individual plots " "for each item in an optionset. Rather make the plugin produce one plot, and " "the user can call it multiple times." msgstr "" "Non far fare troppo alla propria estensione. Abbiamo fornito l'esempio " "dell'utilizzo di un optionset per un'estensione per tracciare diverse linee " "all'interno di un grafico. Ma in generale non è una buona idea creare " "un'estensione che produrrà grafici individuali per ogni elemento in un " "optionset. Piuttosto, fare in modo che l'estensione produca un grafico e " "l'utente possa invocarla più volte." #. Tag: para #. +> trunk5 #: index.docbook:1067 #, no-c-format msgid "" "If you do not expect more than two or three items in a set, consider " "repeating the options, manually, instead." msgstr "" "Se non si attendono più di due o tre elementi in un insieme, considerare " "invece di ripetere manualmente le opzioni." #. Tag: title #. +> trunk5 #: index.docbook:1076 #, no-c-format msgid "Handling dependencies and compatibility issues" msgstr "Gestione delle dipendenze e problemi di compatibilità" #. Tag: title #. +> trunk5 #: index.docbook:1077 #, no-c-format msgid "&rkward; version compatibility" msgstr "Compatibilità di versione di &rkward;" #. Tag: para #. +> trunk5 #: index.docbook:1078 #, no-c-format msgid "" "We do our best to make sure that plugins developed for an old version of " "&rkward; will remain functional in later versions of &rkward;. However, the " "reverse is not always true as new features are been added. Since not all " "users are running the latest version of &rkward;, this means your plugin may " "not work for everybody." msgstr "" "Facciamo del nostro meglio per assicurarci che le estensioni sviluppate per " "una vecchia versione di &rkward; rimangano funzionanti nelle versioni " "successive di &rkward;. Tuttavia, non è sempre vero il contrario poiché " "vengono aggiunte nuove funzionalità. Poiché non tutti gli utenti eseguono " "l'ultima versione di &rkward;, ciò significa che la propria estensione " "potrebbe non funzionare per tutti." #. Tag: para #. +> trunk5 #: index.docbook:1079 #, no-c-format msgid "" "When you are aware of such compatibility issues, you should make sure to " "document this fact in your &pluginmap; file, using the <" "dependencies> element. The <dependencies> can either be specified as a direct child of the &pluginmap;'s <" "document> element, or as a child element of individual <" "component> definitions. In the first case, the dependencies " "apply to all plugins in the map. In the latter case " "only to the individual <component>(s). You can also " "mix top \"global\" and \"specific\" dependencies. In this case the \"global" "\" dependencies are added to those of the individual component." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1080 #, no-c-format msgid "Let's look at a small example:" msgstr "Vediamo un piccolo esempio:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1081 #, no-c-format msgid "" "<document ...>\n" " <dependencies rkward_min_version=\"0.5.0c\" />\n" " <components ...>\n" " <component id=\"myplugin\" file=" "\"reduced_version_of_myplugin.xml\" ...>\n" " <dependencies rkward_max_version=\"0.6.0z\" /" ">\n" " </component>\n" " <component id=\"myplugin\" file=" "\"fancy_version_of_myplugin.xml\" ...>\n" " <dependencies rkward_min_version=\"0.6.1\" />\n" " </component>\n" " ...\n" "x </components ...>\n" "</document>" msgstr "" "<document ...>\n" " <dependencies rkward_min_version=\"0.5.0c\" />\n" " <components ...>\n" " <component id=\"myplugin\" file=" "\"versione_ridotta_della_mia_estensione.xml\" ...>\n" " <dependencies rkward_max_version=\"0.6.0z\" /" ">\n" " </component>\n" " <component id=\"mia_estensione\" file=" "\"versione_precisa_della_mia_estensione.xml\" ...>\n" " <dependencies rkward_min_version=\"0.6.1\" />\n" " </component>\n" " ...\n" "x </components ...>\n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:1082 #, no-c-format msgid "" "In this example, all plugins are known to require at least version 0.5.0c of " "&rkward;. One plugin, with id=\"myplugin\" is " "provided in two alternative variants. The first, stripped down, version will " "be used for &rkward; versions before 0.6.1. The latter utilizes features " "that are new in &rkward; 0.6.1, and will only be used from &rkward; 0.6.1 " "onwards." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1083 #, no-c-format msgid "" "Providing alternative variants like this is a very user friendly way to make " "use of new features, while still keeping support for earlier versions of " "&rkward;. Alternative versions should share the same id (warnings will be produced, otherwise), and may only be defined " "within the same &pluginmap; file." msgstr "" "Fornire varianti alternative come questa è un modo molto intuitivo per " "utilizzare nuove funzionalità, pur mantenendo il supporto per le versioni " "precedenti di &rkward;. Le versioni alternative dovrebbero condividere lo " "stesso id (in caso contrario saranno generati avvisi) " "e possono essere definiti solo all'interno dello stesso " "file di &pluginmap;." #. Tag: para #. +> trunk5 #: index.docbook:1084 #, no-c-format msgid "" "Plugin which are not compatible with the running version of &rkward;, and " "which do not come with an alternative version will be ignored with a warning." msgstr "" "Le estensioni che non sono compatibili con la versione in esecuzione di " "&rkward;, e che non vengono forniti con una versione alternativa, saranno " "ignorati con un avviso." #. Tag: para #. +> trunk5 #: index.docbook:1085 #, no-c-format msgid "" "Actually &rkward; 0.6.1 is the first version to interpret dependencies - and " "to report dependency errors - at all. Thus, contrary to what the example may " "suggest, specifying any earlier versions in the dependencies will not have " "any direct effect (but may still be a good idea for documentation purposes)." msgstr "" "In realtà &rkward; 0.6.1 è la prima versione che interpreta le dipendenze e " "che segnala errori di dipendenza. Pertanto, contrariamente a quanto può " "suggerire l'esempio, specificare eventuali versioni precedenti nelle " "dipendenze non avrà alcun effetto diretto (ma potrebbe comunque essere una " "buona idea ai fini della documentazione)." #. Tag: para #. +> trunk5 #: index.docbook:1086 #, no-c-format msgid "" "Sometimes it will even be possible to handle version " "incompatibility issues inside a single &pluginmap; " "file, using the <dependency_check> element, " "described in the following section." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1088 #, no-c-format msgid "&R; version compatibility" msgstr "Compatibilità versione di R" #. Tag: para #. +> trunk5 #: index.docbook:1089 #, no-c-format msgid "" "Similar to rkward_min_version and " "rkward_max_version, the <dependencies>" " element allows specification of the attributes " "R_min_version and R_max_version. However, there are the following differences:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1091 #, no-c-format msgid "" "Plugins which fail to meet the &R; version requirement are not currently skipped when reading a &pluginmap; file. The user can " "still call the plugin, and will not see any immediate warning (in future " "versions, a warning message will probably be shown)" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1092 #, no-c-format msgid "" "In consequence it is also not possible to define " "alternative versions of a plugin depending on the running version of &R;." msgstr "" "Di conseguenza, non è anche possibile definire versioni " "alternative di un'estensione a seconda della versione in esecuzione di &R;." #. Tag: para #. +> trunk5 #: index.docbook:1093 #, no-c-format msgid "" "However, it is often easy to achieve backwards compatibility as shown below. " "If you are aware of &R; compatibility issues, please consider using this " "method, instead of defining a dependency on a particular version of &R;." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1095 #, no-c-format msgid "" "In many cases, it is easily possible to provide reduced functionality, if a " "certain feature is not available in the running version of &R;. Consider the " "following short example of a plugin .xml file:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1096 #, no-c-format msgid "" "<dialog [...]>\n" " <logic>\n" " <dependency_check id=\"ris210\" R_min_version=\"2.10.0\"/" ">\n" " <connect client=\"compression.xz.enabled\" governor=" "\"ris210\"/>\n" " </logic>\n" " [...]\n" " <radio id=\"compression\" label=\"Compression method\">\n" " <option label=\"None\" value=\"\">\n" " <option label=\"gzip\" value=\"gzip\">\n" " <option id=\"xz\" label=\"xz\" value=\"xz\">\n" " </radio>\n" " [...]\n" "</dialog>" msgstr "" "<dialog [...]>\n" " <logic>\n" " <dependency_check id=\"ris210\" R_min_version=\"2.10.0\"/" ">\n" " <connect client=\"compression.xz.enabled\" governor=" "\"ris210\"/>\n" " </logic>\n" " [...]\n" " <radio id=\"compression\" label=\"Metodo di compressione\">\n" " <option label=\"Nessuno\" value=\"\">\n" " <option label=\"gzip\" value=\"gzip\">\n" " <option id=\"xz\" label=\"xz\" value=\"xz\">\n" " </radio>\n" " [...]\n" "</dialog>" #. Tag: para #. +> trunk5 #: index.docbook:1097 #, no-c-format msgid "" "In this example the compression option \"xz\" will simply be disabled when " "the &R; runtime version is older than 2.10.0 (which did not support xz " "compression). The <dependency_check> element " "supports the same attributes as the <dependencies> " "element in &pluginmap; files. It creates a boolean property, which is true, " "if the specified dependencies are met, false otherwise." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1099 #, no-c-format msgid "Dependencies on &R; packages" msgstr "Dipendenze dei pacchetti di &R;" #. Tag: para #. +> trunk5 #: index.docbook:1100 #, no-c-format msgid "" "Dependencies on specific &R; packages can be defined, but as of &rkward; " "0.6.1, these dependencies are neither checked, nor installed / loaded, " "automatically. They are shown in the plugin help files, however. Here is an " "example definition:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1101 #, no-c-format msgid "" "<dependencies>\n" " <package \n" " name=\"heisenberg\"\n" " min_version=\"0.11-2\"\n" " repository=\"http://rforge.r-project.org\"\n" " />\n" " </dependencies>" msgstr "" "<dependencies>\n" " <package \n" " name=\"heisenberg\"\n" " min_version=\"0.11-2\"\n" " repository=\"http://rforge.r-project.org\"\n" " />\n" " </dependencies>" #. Tag: para #. +> trunk5 #: index.docbook:1102 #, no-c-format msgid "" "Always make sure to add appropriate require() calls, if " "you plugin needs certain packages to be loaded." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1103 #, no-c-format msgid "" "If you distribute your &pluginmap; as an " "&R; package, and all plugins depend on a particular package, then you " "should define that dependency on the &R; package level. Defining " "dependencies to &R; packages on the level of the &rkward; &pluginmap; is " "most useful, if only some of your plugins need the dependency, the " "dependency is not available from CRAN, or your &pluginmap; is not " "distributed as an &R; package." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1105 #, no-c-format msgid "Dependencies on other &rkward; &pluginmap;s" msgstr "Dipendenze da altre &pluginmap; di &rkward;" #. Tag: para #. +> trunk5 #: index.docbook:1106 #, no-c-format msgid "" "If your plugins depend on plugins defined in another &pluginmap; (that is " "not part of your package) you can define this " "dependency like this:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1107 #, no-c-format msgid "" "<dependencies>\n" " <pluginmap \n" " name=\"heisenberg_plugins\"\n" " url=\"http://eternalwondermaths.example.org/hsb\"\n" " />\n" " </dependencies>" msgstr "" "<dependencies>\n" " <pluginmap \n" " name=\"heisenberg_plugins\"\n" " url=\"http://eternalwondermaths.example.org/hsb\"\n" " />\n" " </dependencies>" #. Tag: para #. +> trunk5 #: index.docbook:1108 #, no-c-format msgid "" "Currently will neither load, nor install, nor even warn about missing " "&pluginmap;s, but at least information on dependencies (and where to obtain " "them) will be shown on the plugin's help page. You do not have to (and you " "should not) declare dependencies on &pluginmap;s that are shipped with the " "official &rkward; distribution, or on &pluginmap;s that are inside your own " "package. Further, if a required &pluginmap; is distributed as an &R; package, declare a " "dependency of the package (as shown in the previous section), rather than on " "the map." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1109 #, no-c-format msgid "" "To make sure that required &pluginmap;s are actually loaded, use the " "<require>-tag (refer to the reference for details)." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1111 #, no-c-format msgid "An example" msgstr "Un esempio" #. Tag: para #. +> trunk5 #: index.docbook:1112 #, no-c-format msgid "" "To clarify how dependency definitions can be mixed, here is a combined " "example:" msgstr "" "Per chiarire come sia possibile mescolare le definizioni di dipendenza, ecco " "un esempio combinato:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1113 #, no-c-format msgid "" "<document ...>\n" " <dependencies rkward_min_version=\"0.5.0c\">\n" " <package \n" " name=\"heisenberg\"\n" " min_version=\"0.11-2\"\n" " repository=\"http://rforge.r-project.org\"\n" " />\n" " <package \n" " name=\"DreamsOfPi\"\n" " min_version=\"0.2\"\n" " />\n" " <pluginmap \n" " name=\"heisenberg_plugins\"\n" " url=\"http://eternalwondermaths.example.org/hsb\"\n" " />\n" " <dependencies>\n" "\n" " <require map=\"heisenberg::heisenberg_plugins\"/>\n" "\n" " <components ...>\n" " <component id=\"myplugin\" file=" "\"reduced_version_of_myplugin.xml\" ...>\n" " <dependencies rkward_max_version=\"0.6.0z\" /" ">\n" " </component>\n" " <component id=\"myplugin\" file=" "\"fancy_version_of_myplugin.xml\" ...>\n" " <dependencies rkward_min_version=\"0.6.1\" />\n" " </component>\n" " ...\n" "x </components ...>\n" "</document>" msgstr "" "<document ...>\n" " <dependencies rkward_min_version=\"0.5.0c\">\n" " <package \n" " name=\"heisenberg\"\n" " min_version=\"0.11-2\"\n" " repository=\"http://rforge.r-project.org\"\n" " />\n" " <package \n" " name=\"DreamsOfPi\"\n" " min_version=\"0.2\"\n" " />\n" " <pluginmap \n" " name=\"heisenberg_plugins\"\n" " url=\"http://eternalwondermaths.example.org/hsb\"\n" " />\n" " <dependencies>\n" "\n" " <require map=\"heisenberg::heisenberg_plugins\"/>\n" "\n" " <components ...>\n" " <component id=\"myplugin\" file=" "\"reduced_version_of_myplugin.xml\" ...>\n" " <dependencies rkward_max_version=\"0.6.0z\" /" ">\n" " </component>\n" " <component id=\"myplugin\" file=" "\"fancy_version_of_myplugin.xml\" ...>\n" " <dependencies rkward_min_version=\"0.6.1\" />\n" " </component>\n" " ...\n" "x </components ...>\n" "</document>" #. Tag: title #. +> trunk5 #: index.docbook:1118 #, no-c-format msgid "Plugin translations" msgstr "Traduzione delle estensioni" #. Tag: para #. +> trunk5 #: index.docbook:1119 #, no-c-format msgid "" "So far we have used a few concepts regarding translations or \"i18n\" (short " "for \"internationalization\", which has 18 characters between i and n) in " "passing. In this chapter we give a more in-depth account of what i18n " "functionally for &rkward; plugins. For the most part you will not need all of this in your plugins. However, it may be a good idea " "to read over this chapter in full, as understanding these concepts should " "help you creating plugins that are fully translatable, and that allow for a " "high quality of translations." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1125 #, no-c-format msgid "General considerations" msgstr "Considerazioni generali" #. Tag: para #. +> trunk5 #: index.docbook:1126 #, no-c-format msgid "" "One important point to understand about software translations, in contrast " "to translations of other text materials, is that translators will often have " "a rather hard time getting a complete picture of what " "they are translating. Software translations are necessarily based on rather " "short fragments of text: Every label you give to an <option> in a <radio>, every string that you mark " "for translation in an i18n()-function call, will form a " "separate \"translation unit\". In essence, each such fragment will be " "presented to the translator in isolation. Well, not complete isolation, as " "we do try to provide translator with as much meaningful context as can be " "extracted, automatically. But at some points translators will need " "additional context to make sense of a string, especially where strings are " "short." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1135 #, no-c-format msgid "i18n in &rkward;'s xml files" msgstr "i18n nei file xml di &rkward;" #. Tag: para #. +> trunk5 #: index.docbook:1136 #, no-c-format msgid "" "For &rkward;'s &XML; files, i18n will mostly just work. If you are writing " "your own .pluginmap (⪚ for an external plugin), you will have to specify a " "po_id next to the pluginmap's id. This defines the \"message catalog\" to use. In general this " "should be set identical to the id of your " ".pluginmap, but if you provide several ." "pluginmaps and want to control, how message catalogs are divided " "up, this allows you to do so. The po_id is " "inherited by any .pluginmap you include, unless that " "declares a different po_id, and by all plugins " "declared in it." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1143 #, no-c-format msgid "" "For plugins and help pages, you do not need to tell &rkward; which strings " "are to be translated, because that is generally evident from their usage. " "However, as explained above, you should keep an eye out for strings that may " "be ambiguous or need some explaining in order to be translated, correctly. " "For strings that could have different meanings, provide an " "i18n_context like this:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1148 #, no-c-format msgid "" "<checkbox id=\"scale\" label=\"Scale\" i18n_context=\"Show the scale\"/" ">\n" "<checkbox id=\"scale\" label=\"Scale\" i18n_context=\"Scale the plot\"/" ">" msgstr "" "<checkbox id=\"scale\" label=\"Scala\" i18n_context=\"Mostra la scala\"/" ">\n" "<checkbox id=\"scale\" label=\"Scala\" i18n_context=\"Ridimensiona il " "grafico\"/>" #. Tag: para #. +> trunk5 #: index.docbook:1149 #, no-c-format msgid "" "Providing i18n_context will cause the two strings " "to be translated separately. Otherwise they would share a single " "translation. In addition, the context is shown to the translator. The " "i18n_context-attribute is supported on all " "elements that can have translatable strings, somewhere, including elements " "that contain text inside them (⪚ <text>-" "elements)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1154 #, no-c-format msgid "" "In other cases the string to translate has a single non-ambiguous meaning, " "but may still need some explaining. In this case you can add a comment that " "will be shown to translators. Examples might include:" msgstr "" +"In altri casi la stringa da tradurre ha un singolo significato non ambiguo," +" ma può ancora " +"aver bisogno di spiegazioni. In questo caso puoi aggiungere un commento che" +" sarà " +"mostrato ai traduttori. Gli esempi potrebbero includere:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1158 #, no-c-format msgid "" "<!-- i18n: No, this is not a typo for screen plot! -->\n" "<component id=\"scree_plot\" label=\"Scree plot\"/>\n" "\n" "<!-- i18n: If you can, please make this string short. Having more than " "some 15 chars\n" "looks really ugly at this point, and the meaning should be mostly self-" "evident to the\n" "user (selection from a list of values shown next to this element) -->\n" "<valueslot id=\"selected\" label=\"Pick one\"/>" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1159 #, no-c-format msgid "" "Note that such comments must precede the element they apply to, and must " "start with either \"i18n:\" or \"TRANSLATORS:\"." msgstr "" "Notare che tali commenti devono precedere l'elemento a cui si applicano e " "devono iniziare con «i18n:» o «TRANSLATORS:»." #. Tag: para #. +> trunk5 #: index.docbook:1162 #, no-c-format msgid "" "Finally, in rare cases, you may want to exclude certain strings from " "translation. This may make sense, for example, if you offer a choice between " "several &R; function names in a <radio>-control. " "You do not want these to be translated, then (but depending on the context, " "you should consider giving a descriptive label, instead):" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1167 #, no-c-format msgid "" "<radio id=\"transformation\" label=\"R function to apply\">\n" " <option id=\"as.list\" noi18n_label=\"as.list()\"/>\n" " <option id=\"as.vector\" noi18n_label=\"as.vector()\"/>\n" " [...]\n" "</radio>" msgstr "" "<radio id=\"transformation\" label=\"Funzione R da applicare\">\n" " <option id=\"as.list\" noi18n_label=\"as.list()\"/>\n" " <option id=\"as.vector\" noi18n_label=\"as.vector()\"/>\n" " [...]\n" "</radio>" #. Tag: para #. +> trunk5 #: index.docbook:1168 #, no-c-format msgid "" "Note that you will omit the label-attribute, " "then, and specify noi18n_label, instead. Also, " "note that in contrast to i18n_context and " "comments, using noi18n_label will make your " "plugin incompatible with versions of &rkward; prior to 0.6.3." msgstr "" "Notare che si ometterà l'attributo etichetta, " "quindi, e si specificherà invece noi18n_label. " "Inoltre, notare che contrariamente a i18n_context " "e ai commenti, l'uso di noi18n_label renderà la " "propria estensione incompatibile con le versioni di &rkward; prima della " "0.6.3." #. Tag: title #. +> trunk5 #: index.docbook:1173 #, no-c-format msgid "i18n in &rkward;'s js files and sections" msgstr "i18n nei file js e nelle sezioni di &rkward;." #. Tag: para #. +> trunk5 #: index.docbook:1174 #, no-c-format msgid "" "In contrast to the .xml files, making " "the .js files of a plugin translatable " "requires more custom work. The key difference, here, is that there is no " "decent automatic way to tell, whether a string is meant to be displayed as a " "human readable string, or a piece of code. So you need to mark this up, " "yourself. We have already shown examples of this, all along. Here is a more " "complete description of the i18n-functions available in js code, and some " "hints for more complex cases:" msgstr "" "Contrariamente ai file .xml, rendere " "traducibili i file .js di " "un'estensione richiede più lavoro personalizzato. La differenza chiave, qui, " "è che non esiste un modo automatico decente per dire se una stringa deve " "essere visualizzata come una stringa facilmente leggibile o come un pezzo di " "codice. Quindi dovrete essere voi a contrassegnarlo. Abbiamo già mostrato " "esempi del genere, da sempre. Ecco una descrizione più completa delle " "funzioni i18n disponibili nel codice js e alcuni suggerimenti per casi più " "complessi:" #. Tag: command #. +> trunk5 #: index.docbook:1181 #, no-c-format msgid "i18n (msgid, [...])" msgstr "i18n (msgid, [...])" #. Tag: para #. +> trunk5 #: index.docbook:1182 #, no-c-format msgid "" "The most important function. Marks the string for translation. The string " "(whether translated or not) is returned quoted using double quotes ('\"'). " "An arbitrary number of placeholders can be used in the string like shown " "below. Using such placeholders instead of concatenating small substrings is " "much easier for translators:" msgstr "" "La funzione più importante. Contrassegna la stringa per la traduzione. La " "stringa (tradotta o meno) viene restituita tra virgolette ('\"'). Nella " "stringa è possibile utilizzare un numero arbitrario di segnaposto come " "mostrato di seguito. L'uso di tali segnaposto anziché concatenare piccole " "sotto-stringhe è molto più semplice per i traduttori:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1184 #, no-c-format msgid "i18n (\"Compare objects %1 and %2\", getString ('x'), getString ('y'));" msgstr "" "i18n (\"Confronta gli oggetti %1 e %2\", getString ('x'), getString ('y'));" #. Tag: command #. +> trunk5 #: index.docbook:1187 #, no-c-format msgid "i18nc (msgctxt, msgid, [...])" msgstr "i18nc (msgctxt, msgid, [...])" #. Tag: para #. +> trunk5 #: index.docbook:1188 #, no-c-format msgid "" "Same as i18n(), but additionally providing a message " "context:" msgstr "" "Come i18n(), ma fornisce in aggiunta un messaggio di " "contesto:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1189 #, no-c-format msgid "i18nc (\"proper name, not state of mind\", \"Mood test\");" msgstr "i18nc (\"nome proprio, non stato mentale\", \"test di Mood\");" #. Tag: command #. +> trunk5 #: index.docbook:1192 #, no-c-format msgid "i18np (msgid_singular, msgid_plural, n, [...])" msgstr "i18np (msgid_singular, msgid_plural, n, [...])" #. Tag: para #. +> trunk5 #: index.docbook:1193 #, no-c-format msgid "" "Same as i18n(), but for messages that may be different in " "singular or plural form (and some languages have differentiate yet more " "numerical forms). Note that just like with i18n(), you " "can use an arbitrary number of replacements, but the first ('%1') is " "required, and has to be an integer." msgstr "" "Come i18n(), ma per i messaggi che possono essere diversi " "in forma singolare o plurale (e alcune lingue hanno forme più numeriche " "differenti). Notare che proprio come con i18n(), è " "possibile utilizzare un numero arbitrario di sostituzioni, ma è necessario " "il primo ('%1') e deve essere un numero intero." #. Tag: programlisting #. +> trunk5 #: index.docbook:1195 #, no-c-format msgid "" "i18np (\"Comparing a single pair\", \"Comparing %1 distinct pairs\", " "n_pairs);" msgstr "" "i18np (\"Confronto di una singola coppia\", \"Confronto di %1 coppie distinte" "\", n_pairs);" #. Tag: command #. +> trunk5 #: index.docbook:1198 #, no-c-format msgid "i18ncp (msgctxt, msgid_singular, msgid_plural, n, [...])" msgstr "i18ncp (msgctxt, msgid_singular, msgid_plural, n, [...])" #. Tag: para #. +> trunk5 #: index.docbook:1199 #, no-c-format msgid "i18np() with added message context." msgstr "i18np() con messaggio di contesto aggiunto." #. Tag: command #. +> trunk5 #: index.docbook:1202 #, no-c-format msgid "comment (comment, [indentation])" msgstr "comment (commento, [indentazione])" #. Tag: para #. +> trunk5 #: index.docbook:1203 #, no-c-format msgid "" "Echos a code comment, marked for translation. In contrast to the other " "i18n() functions, this is not quoted, but a '#' is added to each line of the " "comment." msgstr "" "Visualizza un commento del codice, contrassegnato per la traduzione. " "Contrariamente alle altre funzioni i18n(), questo non è citato, ma un '#' " "viene aggiunto a ciascuna riga del commento." #. Tag: programlisting #. +> trunk5 #: index.docbook:1204 #, no-c-format msgid "" "comment (\"Transpose the matrix\");\n" " echo ('x <- t (x)\\n');" msgstr "" "comment (\"Trasponi la matrice\");\n" " echo ('x <- t (x)\\n');" #. Tag: para #. +> trunk5 #: index.docbook:1207 #, no-c-format msgid "" "To add comments to the translators (see above for a discussion of the differences between comment and context), add " "a comment starting with \"i18n:\" or \"translators:\" directly above the " "i18n()-call to comment. E.g.:" msgstr "" +"Per aggiungere commenti ai traduttori (vedere sopra " +"per una discussione sulle differenze tra commento e contesto), aggiungere un" +" commento " +"che inizia con «i18n:» o «translators:» direttamente sopra la chiamata " +"i18n() per commentare. Ad esempio:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1211 #, no-c-format msgid "" "// i18n: Spelling is correct: Scree plot.\n" " echo ('rk.header (' + i18n (\"Scree plot\") + ')\\n');" msgstr "" "// i18n: l'ortografia è corretta: Scree plot.\n" " echo ('rk.header (' + i18n (\"Scree plot\") + ')\\n');" #. Tag: title #. +> trunk5 #: index.docbook:1213 #, no-c-format msgid "i18n and quotes" msgstr "i18n e virgolette" #. Tag: para #. +> trunk5 #: index.docbook:1214 #, no-c-format msgid "" "For the most part, you will not have to worry about i18n() behavior with " "respect to quotes. As, typically, translatable strings are string literals, " "quoting them is just the right thing to do, and saves you some typing. Also, " "in functions like makeHeaderCode()/Header() that usually " "quote their arguments, i18n()'ed strings are protected from duplicate " "quoting. Essentially, this works, by sending the translated string first " "through quote() (to make it quoted), then through " "noquote() (to protect it from additional quoting). Should " "you require a translatable string that is not quoted, use " "i18n(noquote (\"My message\")). Should you require a " "translatable string to be quoted, a second time, send it through " "quote(), twice." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1221 #, no-c-format msgid "" "That said, it is generally not a good idea to make bits like function names " "or variable names translatable. For one thing, &R;, the programming " "language, is inherently in English, and there is no internationalization of " "the language itself. Code comments are a different beast, but you should use " "the comment()-function for those. Secondly, making " "syntactically relevant parts of the generated code translatable means that " "translations could actually break your plugin. E.g. if an unsuspecting " "translator translates a string meant as a variable name in two distinct " "words with a space in between." msgstr "" +"Detto questo, in genere non è una buona idea rendere traducibili oggetti come" +" nomi di funzioni o nomi di variabili. " +"Per prima cosa, il linguaggio di programmazione è intrinsecamente in inglese" +" e non c'è internazionalizzazione del " +"linguaggio stesso. I commenti in codice sono una cosa diversa, ma si dovrebbe" +" utilizzare la funzione " +"comment() per quelli. In secondo luogo, rendere" +" traducibili parti sintatticamente rilevanti " +"del codice generato significa che le traduzioni potrebbero effettivamente" +" creare problemi all'estensione. Ad esempio, " +"se un traduttore ignaro traduce una stringa intesa come nome variabile in due" +" parole distinte con uno spazio in mezzo." #. Tag: title #. +> trunk5 #: index.docbook:1229 #, no-c-format msgid "i18n and backwards compatibility" msgstr "i18n e compatibilità all'indietro" #. Tag: para #. +> trunk5 #: index.docbook:1230 #, no-c-format msgid "" "One unfortunate aspect of the lack of i18n()-support in " "&rkward; versions up to 0.6.2 is that adding i18n() calls " "will make the plugin require &rkward; version 0.6.3. If your plugin is " "developed outside &rkward;'s official release, this may be a problem. Here " "are some possible options on how to handle this:" msgstr "" +"Un aspetto sfortunato della mancanza del supporto i18n()" +" in &rkward; le versioni fino alla 0.6.2 indicano che l'aggiunta di chiamate" +" i18n() renderà l'estensione necessaria &rkward; versione" +" 0.6.3. Se la propria estensione è sviluppata al di fuori della versione" +" ufficiale di &rkward; questo potrebbe essere un problema. Ecco alcune" +" possibili opzioni su come gestirlo:" #. Tag: para #. +> trunk5 #: index.docbook:1235 #, no-c-format msgid "" "Provide the plugin in two versions for &rkward; >= 0.6.3 and &rkward; " "< 0.6.3, as described in the chapter on handling dependencies" msgstr "" "Fornire l'estensione in due versioni per &rkward; >= 0.6.3 e &rkward;" "< 0.6.3, come descritto nel capitolo gestione delle dipendenze" #. Tag: para #. +> trunk5 #: index.docbook:1237 #, no-c-format msgid "" "Simply do not translate the strings in the .js-file, yet. Obviously this is " "an easy, but rather inelegant solution." msgstr "" "Semplicemente non tradurre ancora le stringhe nel file .js. Ovviamente " "questa è una soluzione semplice, ma piuttosto inelegante." #. Tag: para #. +> trunk5 #: index.docbook:1238 #, no-c-format msgid "Include some support code in your .js-file(s) like shown below:" msgstr "" "Includi del codice di supporto nei tuoi file .js, come mostrato di seguito:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1240 #, no-c-format msgid "" "// js-function \"comment\" was not defined before 0.6.3\n" " if (typeof (comment) == 'undefined) {\n" " // define function i18n(), and any others " "you may need. Note that your implementation could actually be simpler than\n" " // shown, here, ⪚ if you do not make use " "of placeholders.\n" " i18n = function (msgid) {\n" " var ret = msgid;\n" " for (var i = 1; i < arguments." "length; i++) {\n" " ret = ret.replace(new " "RegExp(\"%\" + i, 'g'), arguments[i]);\n" " }\n" " if (msgid.noquote) {\n" " ret.noquote = msgid." "noquote;\n" " return (ret);\n" " }\n" " return (noquote (quote (ret)));\n" " }\n" " }" msgstr "" "// la funzione js \"comment\" non è stata definita prima della 0.6.3\n" " if (typeof (comment) == 'undefined) {\n" " // definisci la funzione i18n(), e qualsiasi " "altra ti possa servire. Nota che la tua implementazione potrebbe essere " "effettivamente più semplice\n" " // di quanto mostrato, qui, ⪚ se non " "utilizzi i segnaposto.\n" " i18n = function (msgid) {\n" " var ret = msgid;\n" " for (var i = 1; i < arguments." "length; i++) {\n" " ret = ret.replace(new " "RegExp(\"%\" + i, 'g'), arguments[i]);\n" " }\n" " if (msgid.noquote) {\n" " ret.noquote = msgid." "noquote;\n" " return (ret);\n" " }\n" " return (noquote (quote (ret)));\n" " }\n" " }" #. Tag: title #. +> trunk5 #: index.docbook:1243 #, no-c-format msgid "Translation maintainance" msgstr "Manutenzione delle traduzioni" #. Tag: para #. +> trunk5 #: index.docbook:1244 #, no-c-format msgid "" "Now that you have made your plugin translatable, how do you actually get it " "translated? In general you only need to worry about this, when developing an " " external plugin. For plugins in " "&rkward;'s main repository, all the magic is done for you. Here is the basic " "workflow. Note that you need the \"gettext\" tools, installed:" msgstr "" "Ora che l'estensione è stata resa traducibile, come è possibile tradurla" " effettivamente? In generale, " "è necessario preoccuparsi solo di questo quando si sviluppa un'estensione esterna. " "Per le estensioni nel deposito principale di &rkward;, tutta la magia è fatta" " per te. Ecco il flusso di lavoro di base. Notare che " "si è necessari che gli strumenti «gettext» siano installati:" #. Tag: para #. +> trunk5 #: index.docbook:1249 #, no-c-format msgid "Mark up all strings, providing context and comments as needed" msgstr "" "Contrassegna tutte le stringhe, fornendo contesto e commenti in base alle " "esigenze" #. Tag: para #. +> trunk5 #: index.docbook:1250 #, no-c-format msgid "" "Run python scripts/update_plugin_messages.py --extract-only /path/" "to/my.pluginmap. scripts/update_plugin_messages.py is not " "currently part of the source releases, but can be found in a source " "repository checkout." msgstr "" "Eseguire python scripts/update_plugin_messages.py --extract-only" " /percorso/a/mia.pluginmap. scripts/update_plugin_messages.py non" " fa attualmente parte delle versioni dei sorgenti, ma può essere trovato in" " un checkout del deposito dei sorgenti." #. Tag: para #. +> trunk5 #: index.docbook:1252 #, no-c-format msgid "" "Distribute the resulting rkward__POID." "pot file to your translators. For external plugins, it is " "recommended to place it in a subfolder \"po\" in inst/rkward." msgstr "" "Distribuire il file rkward__POID.pot<" "/command> risultante ai propri traduttori. Per le estensioni esterne, si" " consiglia di inserirlo in una sottocartella «po» in inst/rkward." #. Tag: para #. +> trunk5 #: index.docbook:1254 #, no-c-format msgid "" "Translator opens the file in a translation tool such as lokalize. Actually, even if you are not going to prepare any translation, " "yourself, you should try this step for yourself. Browse the extracted " "strings looking out for problems / ambiguities." msgstr "" "Il traduttore apre il file in uno strumento di traduzione come lokalize. " "In realtà, anche se non si ha intenzione di preparare alcuna traduzione, si" " dovrebbe provare questo " "passaggio per se stessi. Sfogliare le stringhe estratte alla ricerca di" " problemi / ambiguità." #. Tag: para #. +> trunk5 #: index.docbook:1256 #, no-c-format msgid "" "Translator saves the translation as rkward__POID.xx.po (where " "xx is the language code), and sends it back to " "you." msgstr "" +"Il traduttore salva la traduzione come rkward__POID<" +"/replaceable>.xx.po (dove xx è il codice della lingua) e te lo restituisce." #. Tag: para #. +> trunk5 #: index.docbook:1258 #, no-c-format msgid "" "Copy rkward__POID.xx.po to your sources, next to " "rkward__POID.pot. Run " "python scripts/update_plugin_messages.py /path/to/my.pluginmap (Note: without --extract-only, this " "time). This will merge the translation with any interim string changes, " "compile the translation, and install it into " "DIR_OF_PLUGINMAP/po/xx/LC_MESSAGES/rkward__POID.mo (where xx is the language code, again)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1263 #, no-c-format msgid "" "You should also include the non-compiled translation (&ie; " "rkward__POID.xx.po) in your distribution, in the \"po\" subdirectory." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1265 #, no-c-format msgid "" "For any update of your plugin, run python scripts/" "update_plugin_messages.py /path/to/my.pluginmap to update the .pot " "file, but also the existing .po-files, and the compiled message catalogs." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1269 #, no-c-format msgid "Writing plugin translations" msgstr "Tradurre le estensioni" #. Tag: para #. +> trunk5 #: index.docbook:1270 #, no-c-format msgid "" "We assume you know your trade as a translator, or are willing to read up on " "it, elsewhere. A few words specifically about translations of &rkward; " "plugins, though:" msgstr "" "Partiamo dal presupposto che si conosca il proprio lavoro di traduttore o " "che si sia disposti a documentarsi altrove. Tuttavia, vogliamo spendere " "alcune parole in particolare sulle traduzioni delle estensioni di &rkward;:" #. Tag: para #. +> trunk5 #: index.docbook:1274 #, no-c-format msgid "" "&rkward; plugins were not translatable until version 0.6.3, and were mostly " "not written with i18n in mind, before then. Thus you are going to encounter " "rather more ambiguous strings, and other i18n problems than in other mature " "projects. Please do not just silently work around these, but let us (or the " "plugin maintainers) know, so we can fix these issues." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1277 #, no-c-format msgid "" "Many &rkward; plugins refer to highly specialized terms, from data handling " "and statistics, but also from other fields of science. In many cases, a good " "translation will require at least basic knowledge of these fields. In some " "cases, there is no good translation for a technical " "term, and the best option may be to leave the term untranslated, or to " "include the English term in parentheses. Do not focus too much on the 100% " "mark of translated strings, focus on providing a good translation, even if " "that means skipping some strings (or even skipping some message catalogs as " "a whole). Other users may be able to fill in any gaps in technical terms." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1282 #, no-c-format msgid "" "At the time of this writing, &rkward;'s project hosting is about to change, " "and this also affect the translation workflow. Do read comments accompanying " "the .pot-files, on how translations should be handled. If in doubt, it is " "never wrong to send your work the rkward-devel mailing list, or to ask for " "up-to-date instructions, there." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1290 #, no-c-format msgid "Author, license and version information" msgstr "Informazioni su autore, licenza e versione" #. Tag: para #. +> trunk5 #: index.docbook:1291 #, no-c-format msgid "" "So you have written a set of plugins, and you are getting ready to share your work. To make sure users will " "know what your work is all about, under what terms they can use and " "distribute it, and whom they should contact about issues or ideas, you " "should add some information about your plugins. This " "can be done using the <about> element. It can be " "used in either the &pluginmap; or in individual plugin .xml files (in both cases as a direct child of the " "document tag). When specified in the &pluginmap; it will apply to all " "plugins. If <about> is specified in both places, " "the <about> information in the plugin .xml file will override that in the &pluginmap; " "file. You can also add an <about> element to .rkh-" "pages, which are not connected to a plugin, if there is a need for that." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1292 #, no-c-format msgid "" "Here is an example &pluginmap; file with only a few explanations, below. In " "cases of doubt, more information may be available from the reference." msgstr "" "Ecco un file &pluginmap; di esempio con solo alcune spiegazioni, di seguito. " "In caso di dubbio, ulteriori informazioni potrebbero essere disponibili " "dalla guida." #. Tag: programlisting #. +> trunk5 #: index.docbook:1293 #, no-c-format msgid "" "<document \n" " namespace=\"rkward\"\n" " id=\"SquaretheCircle_rkward\"\n" ">\n" " <about \n" " name=\"Square the Circle\"\n" " shortinfo=\"Squares the circle using Heisenberg compensation." "\"\n" " version=\"0.1-3\"\n" " releasedate=\"2011-09-19\"\n" " url=\"http://eternalwondermaths.example.org/23/stc.html\"\n" " license=\"GPL\"\n" " category=\"Geometry\"\n" " >\n" " <author \n" " given=\"E.A.\"\n" " family=\"Dölle\"\n" " email=\"doelle@eternalwondermaths.example.org\"\n" " role=\"aut\"\n" " />\n" " <author \n" " given=\"A.\"\n" " family=\"Assistant\"\n" " email=\"alterego@eternalwondermaths.example.org\"\n" " role=\"cre, ctb\"\n" " />\n" " </about>\n" " <dependencies>\n" " ...\n" " </dependencies>\n" " <components>\n" " ...\n" " </components>\n" " <hierarchy>\n" " ...\n" " </hierarchy>\n" "</document>" msgstr "" "<document \n" " namespace=\"rkward\"\n" " id=\"QuadraturadelCerchio_rkward\"\n" ">\n" " <about \n" " name=\"Quadratura del cerchio\"\n" " shortinfo=\"Trova la quadratura del cerchio utilizzando la " "compensazione di Heisenberg.\"\n" " version=\"0.1-3\"\n" " releasedate=\"2011-09-19\"\n" " url=\"http://eternalwondermaths.example.org/23/stc.html\"\n" " license=\"GPL\"\n" " category=\"Geometria\"\n" " >\n" " <author \n" " given=\"E.A.\"\n" " family=\"Dölle\"\n" " email=\"doelle@eternalwondermaths.example.org\"\n" " role=\"aut\"\n" " />\n" " <author \n" " given=\"A.\"\n" " family=\"Assistant\"\n" " email=\"alterego@eternalwondermaths.example.org\"\n" " role=\"cre, ctb\"\n" " />\n" " </about>\n" " <dependencies>\n" " ...\n" " </dependencies>\n" " <components>\n" " ...\n" " </components>\n" " <hierarchy>\n" " ...\n" " </hierarchy>\n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:1294 #, no-c-format msgid "" "Most of this should explain itself, so we’ll not discuss each and every tag " "element. But let’s look at some details that probably need some commentary " "for easier understanding." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1295 #, no-c-format msgid "" "The category element in <about> can be defined rather freely, but should be meaningful, as it’s " "thought to be used to order plugins into groups. All other attributes in " "this opening tag are mandatory and must be filled with reasonable content." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1296 #, no-c-format msgid "" "At least one <author> with a valid email address " "and the role aut (author) must also be given. " "In case your plugin causes problems or someone would like to share its " "gratitude with you, it should be easy to contact someone who’s involved. For " "further information on other valid roles, like ctb for code " "contributors or cre for package maintenance, please refer to " "the R documentation on person()." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1297 #, no-c-format msgid "" "Remember that you can use <include> and / or " "<insert> to repeat information across several " ".xml files (⪚ information on an " "author who was involved with several plugins). More information." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1298 #, no-c-format msgid "" "You do not have to write this &XML; code by hand. If you use the function " "rk.plugin.skeleton() from the rkwarddev package and provide all " "necessary information via the about option, it will " "automatically create a &pluginmap; file with a working <about> section " "for you." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1302 #, no-c-format msgid "Share your work with others" msgstr "Condividere il proprio lavoro con altri" #. Tag: title #. +> trunk5 #: index.docbook:1303 #, no-c-format msgid "External plugins" msgstr "Estensioni esterne" #. Tag: para #. +> trunk5 #: index.docbook:1304 #, no-c-format msgid "" "As of version 0.5.5, &rkward; provides a comfortable way to install " "additional third party plugins which do not belong to the core package " "itself. We call these external plugins. They come in form of " "an &R; package and can be managed directly via the usual package management " "features of &R; and/or &rkward;." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1307 #, no-c-format msgid "" "This section of the documentation describes how external plugins are to be " "packaged, so that &rkward; can use them. The plugin creation itself is of " "course identical to the previous sections. That is, you should probably " "first write a working plugin, and then check back here to learn how to " "distribute it." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1310 #, no-c-format msgid "" "Since external plugins are a relatively young feature, details of this might " "probably change in future releases. You’re welcome to contribute your ideas " "to improve the process." msgstr "" "Poiché le estensioni esterne sono una funzionalità relativamente giovane, " "questi dettagli potrebbero probabilmente cambiare nelle versioni future. " "Chiunque è benvenuto per contribuire con le proprie idee per migliorare il " "processo." #. Tag: para #. +> trunk5 #: index.docbook:1314 #, no-c-format msgid "" "These docs explain the details of external plugins so you can learn how they " "work. In addition to that, also have a look at the rkwarddev package, which was designed " "to automate a lot of the writing process." msgstr "" "Questi documenti spiegano i dettagli delle estensioni esterne in modo da " "poter imparare come funzionano. Inoltre, dare un'occhiata al pacchetto rkwarddev, " "progettato per automatizzare gran parte del processo di scrittura." #. Tag: title #. +> trunk5 #: index.docbook:1320 #, no-c-format msgid "Why external plugins?" msgstr "Perché le estensioni esterne?" #. Tag: para #. +> trunk5 #: index.docbook:1321 #, no-c-format msgid "" "The number of packages to extend the functionality of &R; is immense " "already, and climbing. On one hand, we want to encourage you to write " "plugins for even the most specialised tasks you need solved. On the other " "hand, the average user should not get lost in huge menu trees full of " "unknown statistical terms. Therefore it seemed reasonable to keep the plugin " "handling in &rkward; quite modular as well. The &rkward; team maintains its " "own public package repository at https://files.kde.org/rkward/R/, designated to host your external " "plugins." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1324 #, no-c-format msgid "" "As a rule of thumb, plugins that seem to serve a widely used purpose (⪚ t-" "Tests) should become part of the core package, while those who serve a " "rather limited group of people with special interests should be provided as " "an optional package. For you as a plugin author it’s best practice to just " "start with an external plugin." msgstr "" "Come regola generale, le estensioni che sembrano servire a un ampio utilizzo " "(⪚ Test t) dovrebbero diventare parte del pacchetto principale, mentre " "quelle che servono un gruppo piuttosto limitato di persone con interessi " "specifici dovrebbero essere fornite come pacchetto opzionale . Per gli " "autori di estensioni, è consigliabile iniziare con un'estensione esterna." #. Tag: title #. +> trunk5 #: index.docbook:1330 #, no-c-format msgid "Structure of a plugin package" msgstr "Struttura del pacchetto di un'estensione" #. Tag: para #. +> trunk5 #: index.docbook:1331 #, no-c-format msgid "" "For external plugins to install and work properly, they must follow some " "structural guidelines regarding their file hierarchy." msgstr "" "Affinché le estensioni esterne siano installate e funzionino correttamente, " "devono seguire alcune linee guida strutturali relative alla loro gerarchia " "dei file." #. Tag: title #. +> trunk5 #: index.docbook:1333 #, no-c-format msgid "File hierarchy" msgstr "Gerarchia dei file" #. Tag: para #. +> trunk5 #: index.docbook:1334 #, no-c-format msgid "" "Let's have a look at the prototypic file hierarchy of an elaborate plugin " "archive. You don’t have to include all of these directories and/or files for " "a plugin to work (read on to learn what’s absolutely necessary), consider " "this a best practice example:" msgstr "" "Diamo un'occhiata al prototipo di gerarchia dei file di un complesso " "archivio di estensione. Non è necessario includere tutte queste cartelle e/o " "file per far funzionare un'estensione (continuare a leggere per sapere cosa " "è assolutamente necessario), considerare questo un esempio di best " "practice:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1337 #, no-c-format msgid "" "plugin_name/\n" " inst/\n" " rkward/\n" " plugins/\n" " plugin_name.xml\n" " plugin_name.js\n" " plugin_name.rkh\n" " ...\n" " po/\n" " ll/\n" " LC_MESSAGES/\n" " " " rkward__plugin_name_rkward." "mo\n" " rkward__plugin_name_rkward.ll.po\n" " rkward__plugin_name_rkward.pot\n" " tests/\n" " testsuite_name/\n" " RKTestStandards." "sometest_name.rkcommands.R\n" " RKTestStandards." "sometest_name.rkout\n" " ...\n" " testsuite.R\n" " plugin_name.pluginmap\n" " ...\n" " ChangeLog\n" " README\n" " AUTHORS\n" " LICENSE\n" " DESCRIPTION" msgstr "" "nome_estensione/\n" " inst/\n" " rkward/\n" " plugins/\n" " nome_estensione.xml\n" " nome_estensione.js\n" " nome_estensione.rkh\n" " ...\n" " po/\n" " ll/\n" " LC_MESSAGES/\n" " " " rkward__nome_estensione_rkward." "mo\n" " rkward__nome_estensione_rkward.ll." "po\n" " rkward__nome_estensione_rkward.pot\n" " tests/\n" " testsuite_name/\n" " RKTestStandards.nome_test." "rkcommands.R\n" " RKTestStandards.nome_test." "rkout\n" " ...\n" " pacchettotest.R\n" " nome_estensione.pluginmap\n" " ...\n" " ChangeLog\n" " README\n" " AUTHORS\n" " LICENSE\n" " DESCRIPTION" #. Tag: para #. +> trunk5 #: index.docbook:1339 #, no-c-format msgid "" "In this example, all occasions of plugin_name, " "testsuite_name and sometest_name are to be " "replaced with their correct names, accordingly. Also, ll is a " "placeholder for a language abbreviation (⪚, de, en or es)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1344 #, no-c-format msgid "" "You do not have to create this file hierarchy by hand. If you use the " "function rk.plugin.skeleton() from the rkwarddev package, it will " "automatically create all necessary files and directories for you, except the " "po directory which is created and managed by the translation script." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1349 #, no-c-format msgid "Basic plugin components" msgstr "Componenti di base di un'estensione" #. Tag: para #. +> trunk5 #: index.docbook:1350 #, no-c-format msgid "" "It is mandatory to include at least three files: a &pluginmap;, a plugin .xml " "description and a plugin .js file. That " "is, even the \"plugins\" directory is optional. It might just help to give " "your files some order, especially if you include more that one plugin/dialog " "in the archive, which is of course no problem. You can have as many " "directories for the actual plugin files as you see fit, they just have to " "resemble the &pluginmap;, respectively. " "It is also possible to even include several &pluginmap; files, if it fits " "your needs, but you should include them all in plugin_name.pluginmap then." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1353 #, no-c-format msgid "" "Each &R; package must have a valid DESCRIPTION file, " "which is also crucial for &rkward; recognizing it as a plugin provider. Most " "of the information it carries is also needed in the plugin Meta-information and possibly dependencies, but in a different " "format (the &R; documentation explains the " "DESCRIPTION file in detail)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1356 #, no-c-format msgid "" "In addition to the general contents of a DESCRIPTION " "file, make sure to also include the line Enhances: rkward. " "This will cause &rkward; to automatically scan the package for plugins if it " "is installed. An example DESCRIPTION file looks like " "this:" msgstr "" "Oltre ai contenuti generali di un file DESCRIPTION, " "assicurarsi di includere anche la riga Enhances:rkward. Ciò " "avvierà una scansione automatica da parte di &rkward; del pacchetto alla " "ricerca di estensioni, se è installato. Un file DESCRIPTION di esempio è simile al seguente:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1359 #, no-c-format msgid "" "Package: SquaretheCircle\n" " Type: Package\n" " Title: Square the circle\n" " Version: 0.1-3\n" " Date: 2011-09-19\n" " Author: E.A. Dölle <doelle@eternalwondermaths.example.org>\n" " Maintainer: A. Assistant <alterego@eternalwondermaths.example." "org>\n" " Enhances: rkward\n" " Description: Squares the circle using Heisenberg compensation.\n" " License: GPL\n" " LazyLoad: yes\n" " URL: http://eternalwondermaths.example.org/23/stc.html\n" " Authors@R: c(person(given=\"E.A.\", family=\"Dölle\", role=\"aut\",\n" " email=\"doelle@eternalwondermaths.example.org\"),\n" " person(given=\"A.\", family=\"Assistant\", " "role=c(\"cre\",\n" " \"ctb\"), email=\"alterego@eternalwondermaths." "example.org\"))" msgstr "" "Package: QuadraturadelCerchio\n" " Type: Package\n" " Title: Squadra il cerchio\n" " Version: 0.1-3\n" " Date: 2011-09-19\n" " Author: E.A. Dölle <doelle@eternalwondermaths.example.org>\n" " Maintainer: A. Assistant <alterego@eternalwondermaths.example." "org>\n" " Enhances: rkward\n" " Description: Trova la quadratura del cerchio utilizzando la " "compensazione di Heisenberg.\n" " License: GPL\n" " LazyLoad: yes\n" " URL: http://eternalwondermaths.example.org/23/stc.html\n" " Authors@R: c(person(given=\"E.A.\", family=\"Dölle\", role=\"aut\",\n" " email=\"doelle@eternalwondermaths.example.org\"),\n" " person(given=\"A.\", family=\"Assistant\", " "role=c(\"cre\",\n" " \"ctb\"), email=\"alterego@eternalwondermaths." "example.org\"))" #. Tag: para #. +> trunk5 #: index.docbook:1361 #, no-c-format msgid "" "You do not have to write this file by hand. If you use the function " "rk.plugin.skeleton() from the rkwarddev package and provide all " "necessary information via the about option, it will " "automatically create a working DESCRIPTION file for you." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1367 #, no-c-format msgid "Additional information (optional)" msgstr "Informazioni aggiuntive (facoltativo)" #. Tag: para #. +> trunk5 #: index.docbook:1368 #, no-c-format msgid "" "ChangeLog, README, " "AUTHORS, LICENSE should be self-" "explaining and are entirely optional. Actually, they won’t be interpreted by " "&rkward;, so they are rather meant to carry additional information that " "might be relevant ⪚ for distributors. Most of their relevant content " "(author credits, licence terms &etc;) will be included in the actual plugin " "files anyway, though (see the section on meta-information). Note that all of these files could " "also be placed somewhere in the \"inst\" directory, if you want them not " "only to be present in the source archive but the installed package as well." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1373 #, no-c-format msgid "Automated plugin testing (optional)" msgstr "Test automatico dell'estensione (facoltativo)" #. Tag: para #. +> trunk5 #: index.docbook:1374 #, no-c-format msgid "" "Another optional directory is \"tests\", which is meant to provide files " "needed for automated plugin testing. These " "tests are helpful to quickly check if your plugins still work with new " "versions of &R; or &rkward;. If you want to include tests, you should really " "restrain yourself to the naming scheme and hierarchy shown here. That is, " "tests should reside in a directory called tests, which " "includes a file testsuite.R and a folder with tests " "standards named after the appropriate test suite. You can, however, provide " "more than one test suite; in that case, if you don’t want to append them all " "in the one testsuite.R file, you can split them in ⪚ " "one file for each test suite and create one testsuite.R " "with source() calls for each suite file. In either " "case, create separate subdirectories with test standards for each defined " "suite." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1378 #, no-c-format msgid "" "The benefits of upholding to this structure is that plugin tests can be run " "simply by calling rktests.makplugintests() from the " "rkwardtests package " "without additional arguments. Have a look at the online documentation on " "Automated Plugin Testing for " "further details." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1386 #, no-c-format msgid "Building the plugin package" msgstr "Creazione del pacchetto dell'estensione" #. Tag: para #. +> trunk5 #: index.docbook:1387 #, no-c-format msgid "" "As explained earlier, external &rkward; plugins are in effect &R; packages, " "and therefore the packaging process is identical. In contrast to \"real\" " "&R; packages, a pure plugin package does not carry any further &R; code " "(although you can of course add &rkward; plugins to usual &R; packages as " "well, using the same methods explained here). This should make it even " "easier to create a functioning package, as long as you have a valid " "DESCRIPTION file and adhere to the file hierarchy " "explained in previous " "sections." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1388 #, no-c-format msgid "" "The easiest way to actually build and test your plugin is to use the " "R command on the command line, for example:" msgstr "" "Il modo più semplice per compilare e provare la propria estensione è " "utilizzare il comando R nella riga di comando, ad " "esempio:" #. Tag: userinput #. +> trunk5 #: index.docbook:1389 #, no-c-format msgid "" "R " "SquaretheCircle" msgstr "" "R " "SquaretheCircle" #. Tag: userinput #. +> trunk5 #: index.docbook:1392 #, no-c-format msgid "" "R " "SquaretheCircle_0.1-3.tar.gz" msgstr "" "R " "SquaretheCircle_0.1-3.tar.gz" #. Tag: para #. +> trunk5 #: index.docbook:1395 #, no-c-format msgid "" "You do not have to build the package like this on the command line. If you " "use the function rk.build.package() from the rkwarddev package, " "it will build and/or check your plugin package for you." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1400 #, no-c-format msgid "" "Plugin development with the rkwarddev package" msgstr "" "Sviluppo di estensioni con il pacchetto rkwarddev" #. Tag: title #. +> trunk5 #: index.docbook:1401 #, no-c-format msgid "Overview" msgstr "Panoramica" #. Tag: para #. +> trunk5 #: index.docbook:1402 #, no-c-format msgid "" "Writing external plugins involves writing files in three languages (&XML;, " "&javascript; and R) and the creation of a standardized hierarchy of " "directories. To make this a lot easier for willing plugin developers, we are " "providing the rkwarddev package. It provides a " "number of simple &R; functions to create the &XML; code for all dialog " "elements like tabbooks, checkboxes, dropdownlists or filebrowsers, as well " "as functions to create &javascript; code and &rkward; help files to start " "with. The function rk.plugin.skeleton() creates the " "expected directory tree and all necessary files where they are supposed to " "be." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1403 #, no-c-format msgid "" "This package is not installed by default, but has to be installed manually " "from &rkward;'s own " "repository. You can either do that by using the &GUI; interface " "(SettingsConfigure packages), or from any running &R; session:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1404 #, no-c-format msgid "" "install.packages(\"rkwarddev\", repos=\"https://files.kde.org/rkward/R\")\n" " library(rkwarddev)" msgstr "" "install.packages(\"rkwarddev\", repos=\"https://files.kde.org/rkward/R\")\n" " library(rkwarddev)" #. Tag: para #. +> trunk5 #: index.docbook:1405 #, no-c-format msgid "" "rkwarddev depends on another small package called " "XiMpLe, which is a very simple &XML; parser and generator and " "also present in the same repository." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1406 #, no-c-format msgid "" "The full documentation in PDF format can also be found there. " "A more detailed introduction to working with the package can be found in the " "rkwarddev vignette." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1409 #, no-c-format msgid "Practical example" msgstr "Esempio pratico" #. Tag: para #. +> trunk5 #: index.docbook:1410 #, no-c-format msgid "" "To get you an idea how scripting a plugin looks like, " "compared to the direct approach you have seen in the previous chapters, we " "will create the full t-test plugin once again -- this time only with the &R; " "functions of the rkwarddev package." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1412 #, no-c-format msgid "" "The package will add a new &GUI; dialog to &rkward; under " "FileExportCreate &rkward; plugin script. Like the name suggests, you can create plugin skeletons for " "further editing with it. This dialog itself was in turn generated by an " "rkwarddev script which you can find in the " "demo directory of the installed package and package sources, " "as an additional example. You can also run it by calling " "demo(\"skeleton_dialog\")" msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1414 #, no-c-format msgid "&GUI; description" msgstr "Descrizione della &GUI;" #. Tag: para #. +> trunk5 #: index.docbook:1415 #, no-c-format msgid "" "You will immediately notice that the workflow is considerably different: " "Contrary to writing the XML code directly, you do not begin with the " "<document> definition, but directly with the plugin " "elements you would like to have in the dialog. You can assign each interface " "element -- be it check boxes, dropdown menus, variable slots or anything " "else -- to individual &R; objects, and then combine these objects to the " "actual &GUI;. The package has functions for each XML tag that can be used to define the plugin &GUI;, and most " "of them even have the same name, only with the prefix rk.XML.*. For example, defining a <varselector> " "and two <varslot> elements for the \"x" "\" and \"y\" variable of the t-test " "example can be done by:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1416 #, no-c-format msgid "" "variables <- rk.XML.varselector(id.name=\"vars\")\n" "var.x <- rk.XML.varslot(\"compare\", source=variables, types=\"number\", " "required=TRUE, id.name=\"x\")\n" "var.y <- rk.XML.varslot(\"against\", source=variables, types=\"number\", " "required=TRUE, id.name=\"y\")" msgstr "" "variables <- rk.XML.varselector(id.name=\"vars\")\n" "var.x <- rk.XML.varslot(\"compare\", source=variables, types=\"number\", " "required=TRUE, id.name=\"x\")\n" "var.y <- rk.XML.varslot(\"against\", source=variables, types=\"number\", " "required=TRUE, id.name=\"y\")" #. Tag: para #. +> trunk5 #: index.docbook:1417 #, no-c-format msgid "" "The most interesting detail is probably source=variables: A prominent feature of the " "package is that all functions can generate automatic IDs, so you do not have " "to bother with either thinking of id values or " "remembering them to refer to a specific plugin element. You can simply give " "the &R; objects as reference, as all functions who need an ID from some " "other element can also read it from these objects. rk.XML." "varselector() is a little special, as it usually has no specific " "content to make an ID from (it can, but only if you specify a label), so we " "have to set an ID name. But rk.XML.varslot() would not " "need the id.name arguments here, so this would " "suffice:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1418 #, no-c-format msgid "" "variables <- rk.XML.varselector(id.name=\"vars\")\n" "var.x <- rk.XML.varslot(\"compare\", source=variables, types=\"number\", " "required=TRUE)\n" "var.y <- rk.XML.varslot(\"against\", source=variables, types=\"number\", " "required=TRUE)" msgstr "" "variables <- rk.XML.varselector(id.name=\"vars\")\n" "var.x <- rk.XML.varslot(\"compare\", source=variables, types=\"number\", " "required=TRUE)\n" "var.y <- rk.XML.varslot(\"against\", source=variables, types=\"number\", " "required=TRUE)" #. Tag: para #. +> trunk5 #: index.docbook:1419 #, no-c-format msgid "" "In order to recreate the example code to the point, you would have to set " "all ID values manually. But since the package shall make our lives easier, " "from now on we will no longer care about that." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1421 #, no-c-format msgid "" "rkwarddev is capable of a lot of automation to " "help you build your plugins. However, it might be preferable to not use it " "to its full extend. If your goal is to produce code that is not only working " "but can also be easily read and compared to your generator script by a human " "being, you should consider to always set useful IDs with id.name. Naming your &R; objects identical to these IDs will also help in " "getting script code that is easy to understand." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1425 #, no-c-format msgid "" "If you want to see how the XML code of the defined element looks like if you " "exported it to a file, you can just call the object by its name. So, if you " "now called var.x in your &R; session, you should see " "something like this:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1426 #, no-c-format msgid "" "<varslot id=\"vrsl_compare\" label=\"compare\" source=\"vars\" types=" "\"number\" required=\"true\" />" msgstr "" "<varslot id=\"vrsl_compare\" label=\"compare\" source=\"vars\" types=" "\"number\" required=\"true\" />" #. Tag: para #. +> trunk5 #: index.docbook:1427 #, no-c-format msgid "" "Some tags are only useful in the context of others. Therefore, for instance, " "you will not find a function for the <option> tag. " "Instead, both radio buttons and dropdown lists are defined including their " "options as a named list, where the names represent the labels to be shown in " "the dialog, and their value is a named vector which can have two entries, " "val for the value of an option and the boolean " "chk to specify if this option is checked by default." msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1428 #, no-c-format msgid "" "test.hypothesis <- rk.XML.radio(\"using test hypothesis\",\n" " options=list(\n" " \"Two-sided\"=c(val=\"two.sided\"),\n" " \"First is greater\"=c(val=\"greater\"),\n" " \"Second is greater\"=c(val=\"less\")\n" " )\n" ")" msgstr "" "test.hypothesis <- rk.XML.radio(\"ipotesi del test in uso\",\n" " options=list(\n" " \"Due lati\"=c(val=\"due.lati\"),\n" " \"Il primo è più grande\"=c(val=\"maggiore\"),\n" " \"Il secondo è più grande\"=c(val=\"minore\")\n" " )\n" ")" #. Tag: para #. +> trunk5 #: index.docbook:1429 #, no-c-format msgid "The result looks like this:" msgstr "Il risultato è simile al seguente:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1430 #, no-c-format msgid "" "<radio id=\"rad_usngtsth\" label=\"using test hypothesis\">\n" " <option label=\"Two-sided\" value=\"two.sided\" />\n" " <option label=\"First is greater\" value=\"greater\" />\n" " <option label=\"Second is greater\" value=\"less\" />\n" "</radio>" msgstr "" "<radio id=\"rad_usngtsth\" label=\"ipotesi di test in uso\">\n" " <option label=\"Due lati\" value=\"due.lati\" />\n" " <option label=\"Il primo è più grande\" value=\"maggiore\" />\n" " <option label=\"Il secondo è più grande\" value=\"minore\" />\n" "</radio>" #. Tag: para #. +> trunk5 #: index.docbook:1431 #, no-c-format msgid "" "All that is missing from the elements of the Basic settings " "tab is the check box for paired samples, and the structuring of all of these " "elements in rows and columns:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1432 #, no-c-format msgid "" "check.paired <- rk.XML.cbox(\"Paired sample\", value=\"1\", un.value=" "\"0\")\n" "basic.settings <- rk.XML.row(variables, rk.XML.col(var.x, var.y, test." "hypothesis, check.paired))" msgstr "" "check.paired <- rk.XML.cbox(\"Campione accoppiato\", value=\"1\", un." "value=\"0\")\n" "basic.settings <- rk.XML.row(variables, rk.XML.col(var.x, var.y, test." "hypothesis, check.paired))" #. Tag: para #. +> trunk5 #: index.docbook:1433 #, no-c-format msgid "" "rk.XML.cbox() is a rare exception where the function " "name does not contain the full tag name, to save some typing for this often " "used element. This is what basic.settings now contains:" msgstr "" "rk.XML.cbox() è un'eccezione rara in cui il nome della " "funzione non contiene il nome completo del tag, per risparmiare battiture " "per questo elemento spesso utilizzato. Questo è ciò che basic." "settings ora contiene:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1434 #, no-c-format msgid "" "<row id=\"row_vTFSPP10TF\">\n" " <varselector id=\"vars\" />\n" " <column id=\"clm_vrsTFSPP10\">\n" " <varslot id=\"vrsl_compare\" label=\"compare\" source=" "\"vars\" types=\"number\" required=\"true\" />\n" " <varslot id=\"vrsl_against\" label=\"against\" " "i18n_context=\"compare against\" source=\"vars\" types=\"number\" required=" "\"true\" />\n" " <radio id=\"rad_usngtsth\" label=\"using test hypothesis" "\">\n" " <option label=\"Two-sided\" value=\"two.sided\" /" ">\n" " <option label=\"First is greater\" value=\"greater" "\" />\n" " <option label=\"Second is greater\" value=\"less" "\" />\n" " </radio>\n" " <checkbox id=\"chc_Pardsmpl\" label=\"Paired sample\" " "value=\"1\" value_unchecked=\"0\" />\n" " </column>\n" "</row>" msgstr "" "<row id=\"row_vTFSPP10TF\">\n" " <varselector id=\"vars\" />\n" " <column id=\"clm_vrsTFSPP10\">\n" " <varslot id=\"vrsl_compare\" label=\"compare\" source=" "\"vars\" types=\"number\" required=\"true\" />\n" " <varslot id=\"vrsl_against\" label=\"against\" " "i18n_context=\"compare against\" source=\"vars\" types=\"number\" required=" "\"true\" />\n" " <radio id=\"rad_usngtsth\" label=\"ipotesi di test in uso" "\">\n" " <option label=\"Due lati\" value=\"due.lati\" /" ">\n" " <option label=\"Il primo è più grande\" value=" "\"maggiore\" />\n" " <option label=\"Il secondo è più grande\" value=" "\"minore\" />\n" " </radio>\n" " <checkbox id=\"chc_Pardsmpl\" label=\"Campione accoppiato" "\" value=\"1\" value_unchecked=\"0\" />\n" " </column>\n" "</row>" #. Tag: para #. +> trunk5 #: index.docbook:1435 #, no-c-format msgid "" "In a similar manner, the next lines will create &R; objects for the elements " "of the Options tab, introducing functions for spinboxes, " "frames and stretch:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1436 #, no-c-format msgid "" "check.eqvar <- rk.XML.cbox(\"assume equal variances\", value=\"1\", un." "value=\"0\")\n" "conf.level <- rk.XML.spinbox(\"confidence level\", min=0, max=1, " "initial=0.95)\n" "check.conf <- rk.XML.cbox(\"print confidence interval\", val=\"1\", " "chk=TRUE)\n" "conf.frame <- rk.XML.frame(conf.level, check.conf, rk.XML.stretch(), " "label=\"Confidence Interval\")" msgstr "" "check.eqvar <- rk.XML.cbox(\"assumi varianze uguali equal variances\", " "value=\"1\", un.value=\"0\")\n" "conf.level <- rk.XML.spinbox(\"livello di confidenza\", min=0, max=1, " "initial=0.95)\n" "check.conf <- rk.XML.cbox(\"stampa intervallo di confidenza\", val=\"1\", " "chk=TRUE)\n" "conf.frame <- rk.XML.frame(conf.level, check.conf, rk.XML.stretch(), " "label=\"Intervallo di confidenza\")" #. Tag: para #. +> trunk5 #: index.docbook:1437 #, no-c-format msgid "" "Now all we need to do is to put the objects together in a tabbook, and place " "that in a dialog section:" msgstr "" "Ora tutto ciò che dobbiamo fare è riunire gli oggetti in un tabbook e " "posizionarli in una sezione di dialogo:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1438 #, no-c-format msgid "" "full.dialog <- rk.XML.dialog(\n" " label=\"Two Variable t-Test\",\n" " rk.XML.tabbook(tabs=list(\"Basic settings\"=basic.settings, \"Options" "\"=list(check.eqvar, conf.frame)))\n" ")" msgstr "" "full.dialog <- rk.XML.dialog(\n" " label=\"Test t a due variabili\",\n" " rk.XML.tabbook(tabs=list(\"Basic settings\"=basic.settings, \"Options" "\"=list(check.eqvar, conf.frame)))\n" ")" #. Tag: para #. +> trunk5 #: index.docbook:1439 #, no-c-format msgid "" "We can also create the wizard section with its two pages using the same " "objects, so their IDs will be extracted for the <copy> tags:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1440 #, no-c-format msgid "" "full.wizard <- rk.XML.wizard(\n" " label=\"Two Variable t-Test\",\n" " rk.XML.page(\n" " rk.XML.text(\"As a first step, select the two " "variables you want to compare against\n" " each other. And specify, which one you " "theorize to be greater. Select two-sided,\n" " if your theory does not tell you, which " "variable is greater.\"),\n" " rk.XML.copy(basic.settings)),\n" " rk.XML.page(\n" " rk.XML.text(\"Below are some advanced options. It is " "generally safe not to assume the\n" " variables have equal variances. An " "appropriate correction will be applied then.\n" " Choosing \\\"assume equal variances\\\" may " "increase test-strength, however.\"),\n" " rk.XML.copy(check.eqvar),\n" " rk.XML.text(\"Sometimes it is helpful to get an " "estimate of the confidence interval of\n" " the difference in means. Below you can " "specify whether one should be shown, and\n" " which confidence-level should be applied " "(95% corresponds to a 5% level of\n" " significance).\"),\n" " rk.XML.copy(conf.frame)))" msgstr "" "full.wizard <- rk.XML.wizard(\n" " label=\"Test t a due variabili\",\n" " rk.XML.page(\n" " rk.XML.text(\"Come primo passo, seleziona le due " "variabili che desideri confrontare.\n" " E specifica quale ipotizzi sia la più " "grande. Seleziona due lati,\n" " se la tua teoria non indica quale variabile " "sia più grande.\"),\n" " rk.XML.copy(basic.settings)),\n" " rk.XML.page(\n" " rk.XML.text(\"Di seguito, sono disponibili alcune " "opzioni avanzate. È generalmente sicuro non assumere che \n" " le variabili abbiano varianze uguali. Una " "correzione appropriata sarà quindi applicata.\n" " La scelta di \\\"assumi varianze uguali\\\" " "potrebbe aumentare la potenza del test, tuttavia.\"),\n" " rk.XML.copy(check.eqvar),\n" " rk.XML.text(\"A volte è utile ottenere una stima " "dell'intervallo di confidenza della\n" " differenza tra le medie. Sotto, puoi " "specificare se una dovrebbe essere mostrata, e\n" " quale livello di confidenza dovrebbe essere " "applicato (95% corrisponde a un livello di significatività\n" " del 5%).\"),\n" " rk.XML.copy(conf.frame)))" #. Tag: para #. +> trunk5 #: index.docbook:1441 #, no-c-format msgid "" "That is it for the &GUI;. The global document will be combined in the end by " "rk.plugin.skeleton()." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1444 #, no-c-format msgid "&javascript; code" msgstr "Codice &javascript;" #. Tag: para #. +> trunk5 #: index.docbook:1445 #, no-c-format msgid "" "Until now, using the rkwarddev package might not " "seem to have helped so much. This is going to change right now." msgstr "" "Fino ad ora, l'utilizzo del pacchetto rkwarddev " "potrebbe non aver essere stato di aiuto. Questo cambierà proprio ora." #. Tag: para #. +> trunk5 #: index.docbook:1446 #, no-c-format msgid "" "First of all, just like we did not have to care about IDs for elements when " "defining the &GUI; layout, we do not have to care about &javascript; " "variable names in the next step. If you want more control, you can write " "plain &javascript; code and have it pasted to the generated file. But it is " "probably much more efficient to do it the rkwarddev way." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1447 #, no-c-format msgid "" "Most notably you do not have to define any variable yourself, as " "rk.plugin.skeleton() can scan your &XML; code and " "automatically define all variables you will probably need -- for instance, " "you would not bother to include a check box if you do not use its value or " "state afterwards. So we can start writing the actual &R; code generating JS " "immediately." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1448 #, no-c-format msgid "" "The function rk.JS.scan() can also scan existing &XML; " "files for variables." msgstr "" "La funzione rk.JS.scan() può anche eseguire la " "scansione dei file &XML; alla ricerca delle variabili." #. Tag: para #. +> trunk5 #: index.docbook:1449 #, no-c-format msgid "" "The package has some functions for JS code constructs that are commonly used " "in &rkward; plugins, like the echo() function or " "if() {...} else {...} conditions. There are some " "differences between JS and &R;, ⪚, for paste() in " "&R; you use the comma to concatenate character strings, whereas for " "echo() in JS you use +, and lines must " "end with a semicolon. By using the &R; functions, you can almost forget " "about these differences and keep writing &R; code." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1450 #, no-c-format msgid "" "These functions can take different classes of input objects: Either plain " "text, &R; objects with &XML; code like above, or in turn results of some " "other JS functions of the package. In the end, you will always call " "rk.paste.JS(), which behaves similar to " "paste(), but depending on the input objects it will " "replace them with their &XML; ID, &javascript; variable name or even " "complete &javascript; code blocks." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1451 #, no-c-format msgid "" "For the t-test example, we need two JS objects: One to calculate the " "results, and one to print them in the printout() " "function:" msgstr "" "Per l'esempio del test t, abbiamo bisogno di due oggetti JS: uno per " "calcolare i risultati e uno per stamparli nella funzione " "printout():" #. Tag: programlisting #. +> trunk5 #: index.docbook:1452 #, no-c-format msgid "" "JS.calc <- rk.paste.JS(\n" " echo(\"res <- t.test (x=\", var.x, \", y=\", var.y, \", " "hypothesis=\\\"\", test.hypothesis, \"\\\"\"),\n" " js(\n" " if(check.paired){\n" " echo(\", paired=TRUE\")\n" " },\n" " if(!check.paired && check.eqvar){\n" " echo(\", var.equal=TRUE\")\n" " },\n" " if(conf.level != \"0.95\"){\n" " echo(\", conf.level=\", conf.level)\n" " },\n" " linebreaks=TRUE\n" " ),\n" " echo(\")\\n\"),\n" " level=2\n" ")\n" "\n" "JS.print <- rk.paste.JS(echo(\"rk.print (res)\\n\"), level=2)" msgstr "" "JS.calc <- rk.paste.JS(\n" " echo(\"res <- t.test (x=\", var.x, \", y=\", var.y, \", " "hypothesis=\\\"\", test.hypothesis, \"\\\"\"),\n" " js(\n" " if(check.paired){\n" " echo(\", paired=TRUE\")\n" " },\n" " if(!check.paired && check.eqvar){\n" " echo(\", var.equal=TRUE\")\n" " },\n" " if(conf.level != \"0.95\"){\n" " echo(\", conf.level=\", conf.level)\n" " },\n" " linebreaks=TRUE\n" " ),\n" " echo(\")\\n\"),\n" " level=2\n" ")\n" "\n" "JS.print <- rk.paste.JS(echo(\"rk.print (res)\\n\"), level=2)" #. Tag: para #. +> trunk5 #: index.docbook:1453 #, no-c-format msgid "" "As you can see, rkwarddev also provides an &R; " "implementation of the echo() function. It returns " "exactly one character string with a valid JS version of itself. You might " "also notice that all of the &R; objects here are the ones we created " "earlier. They will automatically be replaced with their variable names, so " "this should be quite intuitive. Whenever you need just this replacement, the " "function id() can be used, which also will return " "exactly one character string from all the objects it was given (you could " "say it behaves like paste() with a very specific object " "substitution)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1454 #, no-c-format msgid "" "The js() function is a wrapper that allows you to use " "&R;'s if(){...} else {...} conditions like you are used " "to. They will be translated directly into JS code. It also preserves some " "operators like <, >= or " "||, so you can logically compare your &R; objects without " "the need for quoting most of the time. Let's have a look at the resulting " "JS.calc object, which now contains a character string with " "this content:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1455 #, no-c-format msgid "" "echo(\"res <- t.test (x=\" + vrslCompare + \", y=\" + vrslAgainst + \", " "hypothesis=\\\"\" + radUsngtsth + \"\\\"\");\n" " if(chcPardsmpl) {\n" " echo(\", paired=TRUE\");\n" " } else {}\n" " if(!chcPardsmpl && chcAssmqlvr) {\n" " echo(\", var.equal=TRUE\");\n" " } else {}\n" " if(spnCnfdnclv != \"0.95\") {\n" " echo(\", conf.level=\" + spnCnfdnclv);\n" " } else {}\n" " echo(\")\\n\");" msgstr "" "echo(\"res <- t.test (x=\" + vrslCompare + \", y=\" + vrslAgainst + \", " "hypothesis=\\\"\" + radUsngtsth + \"\\\"\");\n" " if(chcPardsmpl) {\n" " echo(\", paired=TRUE\");\n" " } else {}\n" " if(!chcPardsmpl && chcAssmqlvr) {\n" " echo(\", var.equal=TRUE\");\n" " } else {}\n" " if(spnCnfdnclv != \"0.95\") {\n" " echo(\", conf.level=\" + spnCnfdnclv);\n" " } else {}\n" " echo(\")\\n\");" #. Tag: para #. +> trunk5 #: index.docbook:1457 #, no-c-format msgid "" "Alternatively for if() conditions nested in " "js(), you can use the ite() " "function, which behaves similar to &R;'s ifelse(). " "However, conditional statements constructed using ite() " "are usually harder to read and should be replaced by js() whenever possible." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1463 #, no-c-format msgid "Plugin map" msgstr "Mappa delle estensioni" #. Tag: para #. +> trunk5 #: index.docbook:1464 #, no-c-format msgid "" "This section is very short: We do not need to write a &pluginmap; at all, as " "it can be generated automatically by rk.plugin.skeleton(). The menu hierarchy can be specified via the pluginmap option:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1465 #, no-c-format msgid "" "[...]\n" " pluginmap=list(\n" " name=\"Two Variable t-Test\",\n" " hierarchy=list(\"analysis\", \"means\", \"t-Test\"))\n" " [...]" msgstr "" "[...]\n" " pluginmap=list(\n" " name=\"Test t a due variabili\",\n" " hierarchy=list(\"analysis\", \"means\", \"t-Test\"))\n" " [...]" #. Tag: title #. +> trunk5 #: index.docbook:1468 #, no-c-format msgid "Help page" msgstr "Pagina della guida" #. Tag: para #. +> trunk5 #: index.docbook:1469 #, no-c-format msgid "" "This section is very short as well: rk.plugin.skeleton() cannot write a whole help page from the information it has. But it " "can scan the &XML; document also for elements which probably deserve a help " "page entry, and automatically create a help page template for our plugin. " "All we have to do afterwards is to write some lines for each listed section." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1470 #, no-c-format msgid "" "The function rk.rkh.scan() can also scan existing &XML; " "files to create a help file skeleton." msgstr "" "La funzione rk.rkh.scan() può anche eseguire la " "scansione dei file &XML; esistenti per creare uno scheletro di file della " "guida." #. Tag: title #. +> trunk5 #: index.docbook:1473 #, no-c-format msgid "Generate the plugin files" msgstr "Genera i file delle estensioni" #. Tag: para #. +> trunk5 #: index.docbook:1474 #, no-c-format msgid "" "Now comes the final step, in which we will hand over all generated objects " "to rk.plugin.skeleton():" msgstr "" "Ora arriva il passaggio finale, in cui consegneremo tutti gli oggetti " "generati a rk.plugin.skeleton():" #. Tag: programlisting #. +> trunk5 #: index.docbook:1475 #, no-c-format msgid "" "plugin.dir <- rk.plugin.skeleton(\"t-Test\",\n" " xml=list(\n" " dialog=full.dialog,\n" " wizard=full.wizard),\n" " js=list(\n" " results.header=\"Two Variable t-Test\",\n" " calculate=JS.calc,\n" " printout=JS.print),\n" " pluginmap=list(\n" " name=\"Two Variable t-Test\",\n" " hierarchy=list(\"analysis\", \"means\", \"t-Test\")),\n" " load=TRUE,\n" " edit=TRUE,\n" " show=TRUE)" msgstr "" "plugin.dir <- rk.plugin.skeleton(\"t-Test\",\n" " xml=list(\n" " dialog=full.dialog,\n" " wizard=full.wizard),\n" " js=list(\n" " results.header=\"Test t a due variabili\",\n" " calculate=JS.calc,\n" " printout=JS.print),\n" " pluginmap=list(\n" " name=\"Test t a due variabili\",\n" " hierarchy=list(\"analysis\", \"means\", \"t-Test\")),\n" " load=TRUE,\n" " edit=TRUE,\n" " show=TRUE)" #. Tag: para #. +> trunk5 #: index.docbook:1476 #, no-c-format msgid "" "The files will be created in a temporal directory by default. The last three " "options are not necessary, but very handy: load=TRUE will automatically add the new " "plugin to &rkward;s configuration (since it is in a temp dir and hence will " "cease to exist when &rkward; is closed, it will automatically be removed " "again by &rkward; during its next start), edit=TRUE will open all created files for " "editing in &rkward; editor tabs, and show=TRUE will attempt to directly launch " "the plugin, so you can examine what it looks like without a click. You might " "consider adding overwrite=TRUE if you are about to run your script repeatedly (⪚ after " "changes to the code), as by default no files will be overwritten." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1477 #, no-c-format msgid "" "The result object plugin.dir contains the path to the " "directory in which the plugin was created. This can be useful in combination " "with the function rk.build.package(), to build an " "actual &R; package to share your plugin with others -- ⪚ by sending it to " "the &rkward; development team to be added to our plugin repository." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1479 #, no-c-format msgid "The full script" msgstr "Lo script completo" #. Tag: para #. +> trunk5 #: index.docbook:1480 #, no-c-format msgid "" "To recapitulate all of the above, here is the full script to create the " "working t-test example. Adding to the already explained code, it also loads " "the package if needed, and it uses the local() " "environment, so all the created objects will not end up in your current " "workspace (except for plugin.dir):" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1481 #, no-c-format msgid "" "require(rkwarddev)\n" "\n" "local({\n" " variables <- rk.XML.varselector(id.name=\"vars\")\n" " var.x <- rk.XML.varslot(\"compare\", source=variables, types=" "\"number\", required=TRUE)\n" " var.y <- rk.XML.varslot(\"against\", source=variables, types=" "\"number\", required=TRUE)\n" " test.hypothesis <- rk.XML.radio(\"using test hypothesis\",\n" " options=list(\n" " \"Two-sided\"=c(val=\"two.sided\"),\n" " \"First is greater\"=c(val=\"greater\"),\n" " \"Second is greater\"=c(val=\"less\")\n" " )\n" " )\n" " check.paired <- rk.XML.cbox(\"Paired sample\", value=\"1\", un." "value=\"0\")\n" " basic.settings <- rk.XML.row(variables, rk.XML.col(var.x, var.y, " "test.hypothesis, check.paired))\n" "\n" " check.eqvar <- rk.XML.cbox(\"assume equal variances\", value=" "\"1\", un.value=\"0\")\n" " conf.level <- rk.XML.spinbox(\"confidence level\", min=0, max=1, " "initial=0.95)\n" " check.conf <- rk.XML.cbox(\"print confidence interval\", val=" "\"1\", chk=TRUE)\n" " conf.frame <- rk.XML.frame(conf.level, check.conf, rk.XML." "stretch(), label=\"Confidence Interval\")\n" "\n" " full.dialog <- rk.XML.dialog(\n" " label=\"Two Variable t-Test\",\n" " rk.XML.tabbook(tabs=list(\"Basic settings\"=basic.settings, " "\"Options\"=list(check.eqvar, conf.frame)))\n" " )\n" "\n" " full.wizard <- rk.XML.wizard(\n" " label=\"Two Variable t-Test\",\n" " rk.XML.page(\n" " rk.XML.text(\"As a first step, select the " "two variables you want to compare against\n" " each other. And specify, which one " "you theorize to be greater. Select two-sided,\n" " if your theory does not tell you, " "which variable is greater.\"),\n" " rk.XML.copy(basic.settings)),\n" " rk.XML.page(\n" " rk.XML.text(\"Below are some advanced " "options. It is generally safe not to assume the\n" " variables have equal variances. An " "appropriate correction will be applied then.\n" " Choosing \\\"assume equal variances\\" "\" may increase test-strength, however.\"),\n" " rk.XML.copy(check.eqvar),\n" " rk.XML.text(\"Sometimes it is helpful to get " "an estimate of the confidence interval of\n" " the difference in means. Below you " "can specify whether one should be shown, and\n" " which confidence-level should be " "applied (95% corresponds to a 5% level of\n" " significance).\"),\n" " rk.XML.copy(conf.frame)))\n" "\n" " JS.calc <- rk.paste.JS(\n" " echo(\"res <- t.test (x=\", var.x, \", y=\", var.y, \", " "hypothesis=\\\"\", test.hypothesis, \"\\\"\"),\n" " js(\n" " if(check.paired){\n" " echo(\", paired=TRUE\")\n" " },\n" " if(!check.paired && check.eqvar){\n" " echo(\", var.equal=TRUE\")\n" " },\n" " if(conf.level != \"0.95\"){\n" " echo(\", conf.level=\", conf.level)\n" " },\n" " linebreaks=TRUE\n" " ),\n" " echo(\")\\n\"), level=2)\n" "\n" " JS.print <- rk.paste.JS(echo(\"rk.print (res)\\n\"), level=2)\n" "\n" " plugin.dir <<- rk.plugin.skeleton(\"t-Test\",\n" " xml=list(\n" " dialog=full.dialog,\n" " wizard=full.wizard),\n" " js=list(\n" " results.header=\"Two Variable t-Test\",\n" " calculate=JS.calc,\n" " printout=JS.print),\n" " pluginmap=list(\n" " name=\"Two Variable t-Test\",\n" " hierarchy=list(\"analysis\", \"means\", \"t-Test" "\")),\n" " load=TRUE,\n" " edit=TRUE,\n" " show=TRUE,\n" " overwrite=TRUE)\n" "})" msgstr "" "require(rkwarddev)\n" "\n" "local({\n" " variables <- rk.XML.varselector(id.name=\"vars\")\n" " var.x <- rk.XML.varslot(\"compare\", source=variables, types=" "\"number\", required=TRUE)\n" " var.y <- rk.XML.varslot(\"against\", source=variables, types=" "\"number\", required=TRUE)\n" " test.hypothesis <- rk.XML.radio(\"ipotesi del test in uso\",\n" " options=list(\n" " \"Due lati\"=c(val=\"due.lati\"),\n" " \"Il primo è più grande\"=c(val=\"maggiore\"),\n" " \"Il secondo è più grande\"=c(val=\"minore\")\n" " )\n" " )\n" " check.paired <- rk.XML.cbox(\"Campione accoppiato\", value=\"1\", " "un.value=\"0\")\n" " basic.settings <- rk.XML.row(variables, rk.XML.col(var.x, var.y, " "test.hypothesis, check.paired))\n" "\n" " check.eqvar <- rk.XML.cbox(\"assumi varianza uguale\", value=" "\"1\", un.value=\"0\")\n" " conf.level <- rk.XML.spinbox(\"livello di confidenza\", min=0, " "max=1, initial=0.95)\n" " check.conf <- rk.XML.cbox(\"stampa intervallo di confidenza\", " "val=\"1\", chk=TRUE)\n" " conf.frame <- rk.XML.frame(conf.level, check.conf, rk.XML." "stretch(), label=\"Intervallo di confidenza\")\n" "\n" " full.dialog <- rk.XML.dialog(\n" " label=\"Two Variable t-Test\",\n" " rk.XML.tabbook(tabs=list(\"Impostazioni di base\"=basic." "settings, \"Options\"=list(check.eqvar, conf.frame)))\n" " )\n" "\n" " full.wizard <- rk.XML.wizard(\n" " label=\"Test t a due variabili\",\n" " rk.XML.page(\n" " rk.XML.text(\"Come primo passo, seleziona le " "due variabili che desideri confrontare.\n" " E specifica, quale ipotizzi essere " "la più grande. Seleziona due lati,\n" " se la tua teoria non lo indica, " "quale variabile è più grande.\"),\n" " rk.XML.copy(basic.settings)),\n" " rk.XML.page(\n" " rk.XML.text(\"Di seguito sono disponibili " "alcune opzioni avanzate. È generalmente sicuro non assumere che le\n" " variabili abbiano varianze uguali. " "Una correzione appropriata sarà quindi applicata.\n" " Tuttavia, la scelta di \\\"assumi " "varianze uguali\\\" potrebbe incrementare la potenza del test.\"),\n" " rk.XML.copy(check.eqvar),\n" " rk.XML.text(\"A volte è utile ottenere una " "stima dell'intervallo di confidenza della\n" " differenza tra le medie. Sotto, puoi " "specificare se una dovrebbe essere mostrata, e\n" " quale livello di confidenza dovrebbe " "essere applicata (95% corrisponde a un livello di significatività\n" " del 5%).\"),\n" " rk.XML.copy(conf.frame)))\n" "\n" " JS.calc <- rk.paste.JS(\n" " echo(\"res <- t.test (x=\", var.x, \", y=\", var.y, \", " "hypothesis=\\\"\", test.hypothesis, \"\\\"\"),\n" " js(\n" " if(check.paired){\n" " echo(\", paired=TRUE\")\n" " },\n" " if(!check.paired && check.eqvar){\n" " echo(\", var.equal=TRUE\")\n" " },\n" " if(conf.level != \"0.95\"){\n" " echo(\", conf.level=\", conf.level)\n" " },\n" " linebreaks=TRUE\n" " ),\n" " echo(\")\\n\"), level=2)\n" "\n" " JS.print <- rk.paste.JS(echo(\"rk.print (res)\\n\"), level=2)\n" "\n" " plugin.dir <<- rk.plugin.skeleton(\"Test t\",\n" " xml=list(\n" " dialog=full.dialog,\n" " wizard=full.wizard),\n" " js=list(\n" " results.header=\"Test t a due variabili\",\n" " calculate=JS.calc,\n" " printout=JS.print),\n" " pluginmap=list(\n" " name=\"Test t a due variabili\",\n" " hierarchy=list(\"analysis\", \"means\", \"t-Test" "\")),\n" " load=TRUE,\n" " edit=TRUE,\n" " show=TRUE,\n" " overwrite=TRUE)\n" "})" #. Tag: title #. +> trunk5 #: index.docbook:1485 #, no-c-format msgid "Adding help pages" msgstr "Aggiunge una pagina della guida" #. Tag: para #. +> trunk5 #: index.docbook:1486 #, no-c-format msgid "" "If you want to write a help page for your plugin, the most straight forward " "way to do so is to add the particular instructions directly to the " "definitions of the &XML; elements they belong to:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1489 #, no-c-format msgid "" "variables <- rk.XML.varselector(\n" " id.name=\"vars\",\n" " help=\"Select the data object you would like to analyse.\",\n" " component=\"Data\"\n" ")" msgstr "" "variables <- rk.XML.varselector(\n" " id.name=\"vars\",\n" " help=\"Seleziona gli oggetti di dati che desideri analizzare.\",\n" " component=\"Data\"\n" ")" #. Tag: para #. +> trunk5 #: index.docbook:1490 #, no-c-format msgid "" "The text given to the help parameter can then be " "fetched by rk.rkh.scan() and written to the help page " "of this plugin component. For this to work technically, however, " "rk.rkh.scan() must know which &R; objects belong to one " "plugin component. This is why you must also provide the " "component parameter and make sure it is identical for " "all objects belonging together." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1493 #, no-c-format msgid "" "Since you will usually combine many objects into one dialog and might also " "like to be able to re-use objects like the <varslot> in multiple components of your plugins, it is possible to globally " "define a component with the rk.set.comp(). If set, it " "is assumed that all the following objects used in your script belong to that " "particular component, until rk.set.comp() is being " "called again with a different component name. You can then omit the " "component parameter:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1496 #, no-c-format msgid "" "rk.set.comp(\"Data\")\n" "variables <- rk.XML.varselector(\n" " id.name=\"vars\",\n" " help=\"Select the data object you would like to analyse.\"\n" ")" msgstr "" "rk.set.comp(\"Data\")\n" "variables <- rk.XML.varselector(\n" " id.name=\"vars\",\n" " help=\"Seleziona gli oggetti di dati che desideri analizzare.\"\n" ")" #. Tag: para #. +> trunk5 #: index.docbook:1497 #, no-c-format msgid "" "To add global sections like <summary> or " "<usage> to the help page, you use functions like " "rk.rkh.summary() or rk.rkh.usage() " "accordingly. Their results are then used to set the list elements like " "summary or usage in the " "rkh parameter of rk.plugin.component()/rk.plugin.skeleton()." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1501 #, no-c-format msgid "Translating plugins" msgstr "Traduzione delle estensioni" #. Tag: para #. +> trunk5 #: index.docbook:1502 #, no-c-format msgid "" "The rkwarddev package is capable of producing " "external plugins with full i18n support. For instance, all relevant " "functions generating XML objects offer an optional parameter to specify " "i18n_context or noi18n_label:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1505 #, no-c-format msgid "" "varComment <- rk.XML.varselector(id.name=\"vars\", i18n=list(comment=" "\"Main variable selector\"))\n" "varContext <- rk.XML.varselector(id.name=\"vars\", i18n=list(context=" "\"Main variable selector\"))\n" "cboxNoi18n <- rk.XML.cbox(label=\"Power\", id.name=\"power\", i18n=FALSE)" msgstr "" "varComment <- rk.XML.varselector(id.name=\"vars\", i18n=list(comment=" "\"Selettore variabile principale\"))\n" "varContext <- rk.XML.varselector(id.name=\"vars\", i18n=list(context=" "\"Selettore variabile principale\"))\n" "cboxNoi18n <- rk.XML.cbox(label=\"Potenza\", id.name=\"power\", " "i18n=FALSE)" #. Tag: para #. +> trunk5 #: index.docbook:1506 #, no-c-format msgid "The above examples produce output like this:" msgstr "Gli esempi sopra generano risultato in questo modo:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1507 #, no-c-format msgid "" "# varComment\n" "<!-- i18n: Main variable selector -->\n" " <varselector id=\"vars\" />\n" "\n" "# varContext\n" "<varselector id=\"vars\" i18n_context=\"Main variable selector\" />\n" "\n" "# cboxNoi18n\n" "<checkbox id=\"power\" noi18n_label=\"Power\" value=\"true\" />" msgstr "" "# varComment\n" "<!-- i18n: Selettore variabile principale -->\n" " <varselector id=\"vars\" />\n" "\n" "# varContext\n" "<varselector id=\"vars\" i18n_context=\"Selettore variabile principale\" /" ">\n" "\n" "# cboxNoi18n\n" "<checkbox id=\"power\" noi18n_label=\"Potenza\" value=\"true\" />" #. Tag: para #. +> trunk5 #: index.docbook:1508 #, no-c-format msgid "" "There is also support for translatable JS code. In fact, the package tries " "add i18n() calls by default in places where this is " "usually helpful. The rk.JS.header() function is a good " "example:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1511 #, no-c-format msgid "jsHeader <- rk.JS.header(\"Test results\")" msgstr "jsHeader <- rk.JS.header(\"Risultati del test\")" #. Tag: para #. +> trunk5 #: index.docbook:1512 #, no-c-format msgid "This produces the following JS code:" msgstr "Questo produce il seguente codice JS:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1513 #, no-c-format msgid "new Header(i18n(\"Test results\")).print();" msgstr "new Header(i18n(\"Test dei risultati\")).print();" #. Tag: para #. +> trunk5 #: index.docbook:1514 #, no-c-format msgid "" "But you can also manually mark strings in your JS code as translatable, by " "using the i18n() function just like you would if you " "wrote the JS file directly." msgstr "" "Ma è possibile anche contrassegnare manualmente le stringhe nel proprio" " codice JS come traducibili, " "utilizzando la funzione i18n() proprio come si farebbe" " scrivendo direttamente il file JS." #. Tag: title #. +> trunk5 #: index.docbook:1519 #, no-c-format msgid "Reference" msgstr "Riferimento" #. Tag: title #. +> trunk5 #: index.docbook:1521 #, no-c-format msgid "Types of properties/Modifiers" msgstr "Tipi di proprietà/Modificatori" #. Tag: para #. +> trunk5 #: index.docbook:1522 #, no-c-format msgid "" "At some places in this introduction we have talked about properties of &GUI; elements or otherwise. In fact there are several different " "types of properties. Usually you do not need to worry about this, as you can " "use common sense to connect any property to any other property. However, " "internally, there are different types of properties. What this matters for, " "is when fetching some special values in the JS-template. In getString (\"id" "\")/getBoolean (\"id\")/getList (\"id\") statements you can also specify " "some so called modifiers like this: getString (\"id." "modifier\"). This modifier will affect, in which way the value is " "printed. Read on for the list of properties, and the modifiers they each " "make available:" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1527 #, no-c-format msgid "String properties" msgstr "Proprietà delle stringhe" #. Tag: para #. +> trunk5 #: index.docbook:1528 #, no-c-format msgid "" "The most simple type of property, used to simply hold a piece of text. " "Modifiers:" msgstr "" "Il tipo più semplice di proprietà, utilizzato semplicemente per contenere un " "pezzo di testo. Modificatori:" #. Tag: term #. +> trunk5 #: index.docbook:1531 index.docbook:1545 index.docbook:1579 index.docbook:1593 #: index.docbook:1611 index.docbook:1625 #, no-c-format msgid "No modifier (\"\")" msgstr "Nessun modificatore (\"\")" #. Tag: para #. +> trunk5 #: index.docbook:1532 #, no-c-format msgid "The string as defined / set." msgstr "La stringa come definita / impostata" #. Tag: term #. +> trunk5 #: index.docbook:1535 #, no-c-format msgid "quoted" msgstr "quotata" #. Tag: para #. +> trunk5 #: index.docbook:1536 #, no-c-format msgid "The string in quoted form (suitable for passing to &R; as character)." msgstr "" "La stringa tra virgolette (adatta per il passaggio a &R; come carattere)." #. Tag: term #. +> trunk5 #: index.docbook:1541 #, no-c-format msgid "Boolean properties" msgstr "Proprietà dei booleani" #. Tag: para #. +> trunk5 #: index.docbook:1542 #, no-c-format msgid "" "Properties that can either be on or off, true or false. For instance the " "properties created by <convert>-tags, also the property accompanying a " "<checkbox> (see below). The following values will be returned " "according to the given modifier:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1546 #, no-c-format msgid "" "By default the property will return 1 if it is true, and 0 otherwise. The " "recommended way to fetch boolean values is using getBoolean(). Note that for getString(), the string \"0\" " "will be returned when the property is false. This string would evaluate to " "true, not to false in JS." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1549 #, no-c-format msgid "\"labeled\"" msgstr "\"labeled\"" #. Tag: para #. +> trunk5 #: index.docbook:1550 #, no-c-format msgid "" "Returns the string \"true\" when true, \"false\", when false, or whichever " "custom strings have been specified (typically in a <checkbox>)." msgstr "" "Restituisce la stringa «true» se vero, «false», se falso o qualora " "siano state specificate stringhe personalizzate (in genere in una" " <checkbox>)." #. Tag: term #. +> trunk5 #: index.docbook:1553 #, no-c-format msgid "\"true\"" msgstr "\"true\"" #. Tag: para #. +> trunk5 #: index.docbook:1554 #, no-c-format msgid "Return the string as if the property was true, even if it is false" msgstr "" "Restituisce la stringa come se la proprietà fosse vera, anche se è falsa" #. Tag: term #. +> trunk5 #: index.docbook:1557 #, no-c-format msgid "\"false\"" msgstr "\"false\"" #. Tag: para #. +> trunk5 #: index.docbook:1558 #, no-c-format msgid "Return the string as if the property was false, even if it is true" msgstr "" "Restituisce la stringa come se la proprietà fosse falsa, anche se è vera" #. Tag: term #. +> trunk5 #: index.docbook:1561 #, no-c-format msgid "\"not\"" msgstr "\"not\"" #. Tag: para #. +> trunk5 #: index.docbook:1562 #, no-c-format msgid "" "This actually returns another Boolean property, which is the reverse of the " "current (&ie; false if true, true if false)" msgstr "" "Questa in realtà restituisce un'altra proprietà booleana, che è il contrario " "dell'attuale (&ie; falso se vero, vero se falso)" #. Tag: term #. +> trunk5 #: index.docbook:1565 #, no-c-format msgid "\"numeric\"" msgstr "\"numeric\"" #. Tag: para #. +> trunk5 #: index.docbook:1566 #, no-c-format msgid "" "Obsolete, provided for backwards compatibility. Same as no modifier \"\". " "Return \"1\" if the property is true, or \"0\" if it is false." msgstr "" "Obsoleto, fornito per compatibilità con le versioni precedenti. Come nessun " "modificatore \"\". Restituisce «1» se la proprietà è vera o «0» se è falsa." #. Tag: term #. +> trunk5 #: index.docbook:1571 #, no-c-format msgid "Integer properties" msgstr "Proprietà degli interi" #. Tag: para #. +> trunk5 #: index.docbook:1572 #, no-c-format msgid "" "A property designed to hold an integer value (but of course it still returns " "a numeric character string to the JS-template). It does not accept any " "modifiers. Used in <spinbox>es (see below)" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1575 #, no-c-format msgid "Real number properties" msgstr "Proprietà dei numeri reali" #. Tag: para #. +> trunk5 #: index.docbook:1576 #, no-c-format msgid "" "A property designed to hold a real number value (but of course it still " "returns a numeric character string to the JS-template). Used in <" "spinbox>es (see below)" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1580 #, no-c-format msgid "" "For getValue() / getString(), this returns the same as " "\"formatted\". In future versions, it will be possible to obtain a numeric " "representation, instead." msgstr "" "Per getValue()/getString(), questo restituisce lo stesso" " di «formatted». " "Nelle versioni future, sarà invece possibile ottenere una rappresentazione" " numerica." #. Tag: term #. +> trunk5 #: index.docbook:1583 #, no-c-format msgid "\"formatted\"" msgstr "\"formatted\"" #. Tag: para #. +> trunk5 #: index.docbook:1584 #, no-c-format msgid "Returns the formatted number (as a string)." msgstr "Restituisce il numero formattato (come stringa)." #. Tag: term #. +> trunk5 #: index.docbook:1589 #, no-c-format msgid "RObject properties" msgstr "Proprietà RObject" #. Tag: para #. +> trunk5 #: index.docbook:1590 #, no-c-format msgid "" "A property designed a selection of one or more &R; objects. Used most " "prominently in varselectors and varslots. The following values will be " "returned according to the given modifier:" msgstr "" "Una proprietà ha progettato una selezione di uno o più oggetti di &R;. " "Utilizzato soprattutto in varselector e varslot. I seguenti valori saranno " "restituiti in base al modificatore specificato:" #. Tag: para #. +> trunk5 #: index.docbook:1594 #, no-c-format msgid "" "By default the property will return the full name of the selected object. If " "more than one object is selected, the object names will be separated by line " "breaks (\"\\n\")." msgstr "" "Per impostazione predefinita, la proprietà restituirà il nome completo " "dell'oggetto selezionato. Se viene selezionato più di un oggetto, i nomi " "degli oggetti saranno separati da interruzioni di riga («\\n»)." #. Tag: term #. +> trunk5 #: index.docbook:1597 #, no-c-format msgid "\"shortname\"" msgstr "\"shortname\"" #. Tag: para #. +> trunk5 #: index.docbook:1598 #, no-c-format msgid "" "Like above, but returns only short name(s) for the object(s). For instance " "an object inside a list would only be given the name it has inside the list, " "without the name of the list." msgstr "" "Come sopra, ma restituisce solo nomi brevi per gli oggetti. Ad esempio, a un " "oggetto all'interno di un elenco verrebbe assegnato solo il nome che ha " "all'interno dell'elenco, senza il nome dell'elenco." #. Tag: term #. +> trunk5 #: index.docbook:1601 #, no-c-format msgid "\"label\"" msgstr "\"label\"" #. Tag: para #. +> trunk5 #: index.docbook:1602 #, no-c-format msgid "" "Like above, but returns the &rkward; label(s) of the object(s) (if no label " "available, this is the same as shortname)" msgstr "" "Come sopra, ma restituisce &rkward; etichette degli oggetti (se nessuna " "etichetta disponibile, è uguale al nome breve)" #. Tag: term #. +> trunk5 #: index.docbook:1607 #, no-c-format msgid "String list properties" msgstr "Proprietà dell'elenco di stringhe" #. Tag: para #. +> trunk5 #: index.docbook:1608 #, no-c-format msgid "This property holds a list of strings." msgstr "Questa proprietà contiene un elenco di stringhe." #. Tag: para #. +> trunk5 #: index.docbook:1612 #, no-c-format msgid "" "For getValue()/getString(), this returns all strings " "separated by \"\\n\". Any \"\\n\" characters in each item are escaped as " "literal \"\\n\". However, the recommended usage is to fetch the value with " "getList(), instead, which will return an array of " "strings." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1615 #, no-c-format msgid "\"joined\"" msgstr "\"joined\"" #. Tag: para #. +> trunk5 #: index.docbook:1616 #, no-c-format msgid "" "Returns the list as a single string, with items joined by \"\\n\". In " "contrast to no modifier (\"\"), the individual strings are _not_ escaped." msgstr "" "Restituisce l'elenco come una singola stringa, con elementi uniti da «\\n». " "Contrariamente a nessun modificatore (\"\"), le singole stringhe sono " "_senza_ escape." #. Tag: term #. +> trunk5 #: index.docbook:1621 #, no-c-format msgid "Code properties" msgstr "Proprietà del codice" #. Tag: para #. +> trunk5 #: index.docbook:1622 #, no-c-format msgid "" "A property held by plugins that generated code. This is important for " "embedding plugins, in order to embed the code generated by the embedded " "plugin into the code generated by the embedding (top-level) plugin. The " "following values will be returned according to the given modifier:" msgstr "" "Una proprietà detenuta dalle estensioni che ha generato codice. Questa è " "importante per l'integrazione delle estensioni, al fine di integrare il " "codice generato dall'estensione integrata nel codice generato " "dall'estensione di integrazione (di livello superiore). I seguenti valori " "saranno restituiti in base al modificatore specificato:" #. Tag: para #. +> trunk5 #: index.docbook:1626 #, no-c-format msgid "" "Returns the full code, &ie; the sections \"preprocess\", \"calculate\", " "\"printout\", and (but not \"preview\") concatenated to one string." msgstr "" "Restituisce il codice completo, &ie; le sezioni «preprocess», «calcola», " "»printout» e (ma non «preview») concatenate a una stringa." #. Tag: term #. +> trunk5 #: index.docbook:1629 #, no-c-format msgid "\"preprocess\"" msgstr "\"preprocess\"" #. Tag: para #. +> trunk5 #: index.docbook:1630 #, no-c-format msgid "Returns only the preprocess section of the code" msgstr "Restituisce solo la sezione di pre-elaborazione del codice" #. Tag: term #. +> trunk5 #: index.docbook:1633 #, no-c-format msgid "\"calculate\"" msgstr "\"calculate\"" #. Tag: para #. +> trunk5 #: index.docbook:1634 #, no-c-format msgid "Returns only the calculate section of the code" msgstr "Restituisce solo la sezione di calcolo del codice" #. Tag: term #. +> trunk5 #: index.docbook:1637 #, no-c-format msgid "\"printout\"" msgstr "\"printout\"" #. Tag: para #. +> trunk5 #: index.docbook:1638 #, no-c-format msgid "Returns only the printout section of the code" msgstr "Restituisce solo la sezione di stampa del codice" #. Tag: term #. +> trunk5 #: index.docbook:1641 #, no-c-format msgid "\"preview\"" msgstr "\"preview\"" #. Tag: para #. +> trunk5 #: index.docbook:1642 #, no-c-format msgid "Returns the preview section of the code" msgstr "Restituisce la sezione di anteprima del codice" #. Tag: title #. +> trunk5 #: index.docbook:1650 #, no-c-format msgid "" "General purpose elements to be used in any &XML; file (.xml, .rkh, " "&pluginmap;)" msgstr "" "Elementi di uso generale da utilizzare in qualsiasi file &XML; (.xml, .rkh, &pluginmap;)" #. Tag: term #. +> trunk5 #: index.docbook:1653 #, no-c-format msgid "<snippets>" msgstr "<snippets>" #. Tag: para #. +> trunk5 #: index.docbook:1654 #, no-c-format msgid "" "Allowed as a direct child of the <document> node and only there. " "Should be placed near the top of the file. See section on using snippets. Only one <snippets> element may " "be present. Optional, no attributes." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1657 index.docbook:1671 #, no-c-format msgid "<snippet>" msgstr "<snippet>" #. Tag: para #. +> trunk5 #: index.docbook:1658 #, no-c-format msgid "" "Defines a single snippet. Allowed only as a direct child of the <snippets/" "> element. Attributes:" msgstr "" "Definisce un singolo frammento. Consentito solo come figlio diretto" " dell'elemento <snippet>. Attributi:" #. Tag: term #. +> trunk5 #: index.docbook:1661 #, no-c-format msgid "<id>" msgstr "<id>" #. Tag: para #. +> trunk5 #: index.docbook:1662 #, no-c-format msgid "An identifier string for the snippet. Required." msgstr "Una stringa identificativa per il frammento. Necessario." #. Tag: term #. +> trunk5 #: index.docbook:1667 #, no-c-format msgid "<insert>" msgstr "<insert>" #. Tag: para #. +> trunk5 #: index.docbook:1668 #, no-c-format msgid "Insert the contents of a <snippet>. Allowed anywhere. Attributes:" msgstr "" "Inserisci il contenuto di uno <snippet>. Consentito ovunque. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:1672 #, no-c-format msgid "The identifier string of the snippet to insert. Required." msgstr "La stringa identificativa del frammento da inserire. Necessario." #. Tag: term #. +> trunk5 #: index.docbook:1677 #, no-c-format msgid "<include>" msgstr "<include>" #. Tag: para #. +> trunk5 #: index.docbook:1678 #, no-c-format msgid "" "Include the contents of another &XML; file (everything inside the <" "document> element of that file). Allowed anywhere. Attributes:" msgstr "" "Includere i contenuti di un altro file &XML; (tutto all'interno del " "fileelemento <document> di quel file). Consentito ovunque. Attributi:" #. Tag: term #. +> trunk5 #: index.docbook:1681 #, no-c-format msgid "<file>" msgstr "<file>" #. Tag: para #. +> trunk5 #: index.docbook:1682 #, no-c-format msgid "" "The filename, relative to the directory, the current file is in. Required." msgstr "" "Il nome file, relativo alla cartella, si trova nel file attuale. " "Obbligatorio." #. Tag: title #. +> trunk5 #: index.docbook:1689 #, no-c-format msgid "Elements to be used in the &XML; description of the plugin" msgstr "Elementi da utilizzare nella descrizione &XML; dell'estensione" #. Tag: para #. +> trunk5 #: index.docbook:1690 #, no-c-format msgid "" "Properties held by the elements are listed in a separate section." msgstr "" "Le proprietà detenute dagli elementi sono elencate in una sezione separata." #. Tag: title #. +> trunk5 #: index.docbook:1692 #, no-c-format msgid "General elements" msgstr "Elementi generali" #. Tag: term #. +> trunk5 #: index.docbook:1695 index.docbook:2900 index.docbook:3171 #, no-c-format msgid "<document>" msgstr "<document>" #. Tag: para #. +> trunk5 #: index.docbook:1696 #, no-c-format msgid "" "Needs to be present in each description.xml-file as the root-node. No " "special function. No attributes" msgstr "" "Deve essere presente in ogni file description.xml come nodo radice. Nessuna " "funzione speciale. Nessun attributo" #. Tag: term #. +> trunk5 #: index.docbook:1699 index.docbook:2978 #, no-c-format msgid "<about>" msgstr "<about>" #. Tag: para #. +> trunk5 #: index.docbook:1700 #, no-c-format msgid "" "Information about this plugin (author, licence, &etc;). This element is " "allowed in both an individual plugin's .xml file, and in &pluginmap; files. Refer to the &pluginmap; file reference for reference " "details, the chapter on 'about' " "information for an introduction." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1703 #, no-c-format msgid "<code>" msgstr "<code>" #. Tag: para #. +> trunk5 #: index.docbook:1704 #, no-c-format msgid "" "Defines where to look for the JS template to the plugin. Use only once per " "file, as a direct child of the document-tag. Attributes:" msgstr "" "Definisce dove cercare il modello JS per l'estensione. Utilizzare solo una " "volta per file, come figlio diretto del tag document. Attributi:" #. Tag: parameter #. +> trunk5 #: index.docbook:1707 index.docbook:1717 index.docbook:2489 #, no-c-format msgid "file" msgstr "file" #. Tag: para #. +> trunk5 #: index.docbook:1708 #, no-c-format msgid "" "Filename of the JS template, relative to the directory the plugin-xml is in" msgstr "" "Nome file del modello JS, relativo alla cartella in cui si trova il codice " "xml dell'estensione" #. Tag: term #. +> trunk5 #: index.docbook:1713 #, no-c-format msgid "<help>" msgstr "<help>" #. Tag: para #. +> trunk5 #: index.docbook:1714 #, no-c-format msgid "" "Defines where to look for the help file for the plugin. Use only once per " "file, as a direct child of the document-tag. Attributes:" msgstr "" "Definisce dove cercare il file della guida per l'estensione. Utilizzare solo " "una volta per file, come figlio diretto del tag documento. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:1718 #, no-c-format msgid "" "Filename of the help file, relative to the directory the plugin-xml is in" msgstr "" "Nome del file della guida, relativo alla cartella in cui si trova il codice " "xml dell'estensione" #. Tag: term #. +> trunk5 #: index.docbook:1723 #, no-c-format msgid "<copy>" msgstr "<copy>" #. Tag: para #. +> trunk5 #: index.docbook:1724 #, no-c-format msgid "" "Can be used as a child (direct or indirect) of the main layout elements, " "&ie; <dialog> and <wizard>. This is used to copy an entire block " "a &XML; elements 1:1. Attributes:" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:1727 index.docbook:1985 index.docbook:2139 index.docbook:2330 #: index.docbook:2345 index.docbook:2362 index.docbook:2377 index.docbook:2413 #, no-c-format msgid "id" msgstr "id" #. Tag: para #. +> trunk5 #: index.docbook:1728 #, no-c-format msgid "" "The ID to look for. The <copy> tag will look for a previous &XML; " "element that has been given the same ID, and copy it including all " "descendant elements." msgstr "" "L'ID da cercare. Il tag <copy> cercherà un precedente elemento &XML; a" " cui è stato assegnato lo stesso ID e lo copierà includendo tutti gli" " elementi discendenti." #. Tag: parameter #. +> trunk5 #: index.docbook:1731 #, no-c-format msgid "copy_element_tag_name" msgstr "copy_element_tag_name" #. Tag: para #. +> trunk5 #: index.docbook:1732 #, no-c-format msgid "" "In some few cases, you will want an almost literal copy, but change the tag-" "name of the element to copy. The most important example of this is, when you " "want to copy an entire <tab> from a dialog interface to the <" "page> of a wizard interface. In this case, you would set " "copy_element_tag_name=\"page\" to do this conversion automatically." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1739 #, no-c-format msgid "Interface definitions" msgstr "Definizioni dell'interfaccia" #. Tag: term #. +> trunk5 #: index.docbook:1742 #, no-c-format msgid "<dialog>" msgstr "<dialog>" #. Tag: para #. +> trunk5 #: index.docbook:1743 #, no-c-format msgid "" "Defines a dialog-type interface. Place the &GUI; definition inside this tag. " "Use only once per file, as a direct child of the document-tag. At least one " "of \"dialog\" or \"wizard\" tags is required for a plugin. Attributes:" msgstr "" "Definisce un'interfaccia di tipo finestra. Inserire la definizione della" " &GUI; all'interno di questo tag. " "Utilizzare solo una volta per file, come figlio diretto del tag document. È" " richiesto almeno uno dei tag " "«dialog» o «wizard» per un'estensione. Attributi:" #. Tag: parameter #. +> trunk5 #: index.docbook:1746 index.docbook:1760 index.docbook:1796 index.docbook:1818 #: index.docbook:1845 index.docbook:1856 index.docbook:1919 index.docbook:1935 #: index.docbook:1946 index.docbook:1957 index.docbook:1973 index.docbook:1997 #: index.docbook:2027 index.docbook:2050 index.docbook:2143 index.docbook:2169 #: index.docbook:2200 index.docbook:2227 index.docbook:2285 index.docbook:2298 #: index.docbook:2349 #, no-c-format msgid "label" msgstr "label" #. Tag: para #. +> trunk5 #: index.docbook:1747 #, no-c-format msgid "Caption for the dialog" msgstr "Didascalia per la finestra" #. Tag: parameter #. +> trunk5 #: index.docbook:1750 index.docbook:1764 #, no-c-format msgid "recommended" msgstr "recommended" #. Tag: para #. +> trunk5 #: index.docbook:1751 #, no-c-format msgid "" "Should the dialog be used as the \"recommended\" interface (&ie; the " "interface that will be shown by default, unless the user has configured " "&rkward; to default to a specific interface)? This attribute does not " "currently have an effect, as it is implicitly \"true\", unless the wizard is " "recommended." msgstr "" "La finestra dovrebbe essere utilizzata come interfaccia «consigliata» (&ie;" " l'interfaccia " "che sarà mostrata in modo predefinito, a meno che l'utente non abbia" " configurato" "&rkward; per utilizzare, in modo predefinito, un'interfaccia specifica)?" " Questo attributo " "non ha attualmente alcun effetto, poiché è implicitamente «vero», a meno che" " la procedura " "guidata sia consigliata." #. Tag: term #. +> trunk5 #: index.docbook:1756 #, no-c-format msgid "<wizard>" msgstr "<wizard>" #. Tag: para #. +> trunk5 #: index.docbook:1757 #, no-c-format msgid "" "Defines a wizard-type interface. Place the &GUI; definition inside this tag. " "Use only once per file, as a direct child of the document-tag. At least one " "of \"dialog\" or \"wizard\" tags is required for a plugin. Accepts only <" "page> or <embed>-tags as direct children. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1761 #, no-c-format msgid "Caption for the wizard" msgstr "Didascalia per la procedura guidata" #. Tag: para #. +> trunk5 #: index.docbook:1765 #, no-c-format msgid "" "Should the wizard be used as the \"recommended\" interface (&ie; the " "interface that will be shown by default, unless the user has configured " "&rkward; to default to a specific interface)? Optional, defaults to \"false" "\"." msgstr "" "La procedura guidata deve essere utilizzata come interfaccia «consigliata»" " (&ie; l'interfaccia " "che sarà mostrata in modo predefinito, a meno che l'utente non abbia" " configurato &rkward; " "per utilizzare come impostazione predefinita un'interfaccia specifica)?" " Facoltativo, il valore " "predefinito è \"false\"." #. Tag: title #. +> trunk5 #: index.docbook:1772 #, no-c-format msgid "Layout elements" msgstr "Elementi della struttura" #. Tag: para #. +> trunk5 #: index.docbook:1773 #, no-c-format msgid "" "All elements in this section accept an attribute id=\"identifierstring\". " "This attribute is optional for all elements. It can be used, for example, to " "hide/disable the entire layout element and all the elements contained " "therein (see chapter &GUI; logic). The id-" "string may not contain \".\" (dot) or \";\" (semicolon), and should " "generally be limited to alphanumeric characters and the underscore (\"_\"). " "Only the additional attributes are listed." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1776 #, no-c-format msgid "<page>" msgstr "<page>" #. Tag: para #. +> trunk5 #: index.docbook:1777 #, no-c-format msgid "" "Defines a new page inside a wizard. Only allowed as a direct child of a <" "wizard> element." msgstr "" "Definisce una nuova pagina all'interno di una procedura guidata. Consentito" " solo come figlio diretto di un elemento <wizard>." #. Tag: term #. +> trunk5 #: index.docbook:1780 #, no-c-format msgid "<row>" msgstr "<row>" #. Tag: para #. +> trunk5 #: index.docbook:1781 #, no-c-format msgid "All direct children of a \"row\" tag will be placed left-to-right." msgstr "" "Tutti i figli diretti di un tag «row» saranno posizionati da sinistra a" " destra." #. Tag: term #. +> trunk5 #: index.docbook:1784 #, no-c-format msgid "<column>" msgstr "<column>" #. Tag: para #. +> trunk5 #: index.docbook:1785 #, no-c-format msgid "All direct children of a \"column\" tag will be placed top-to-bottom." msgstr "" "Tutti i figli diretti di un tag «column» saranno posizionati dall'alto verso" " il basso." #. Tag: term #. +> trunk5 #: index.docbook:1788 #, no-c-format msgid "<stretch>" msgstr "<stretch>" #. Tag: para #. +> trunk5 #: index.docbook:1789 #, no-c-format msgid "" "By default, elements in the &GUI; take up all the space that is available. " "For instance, if you have two columns side by side, the left one is packed " "with elements, but the right one only contains a lonely <" "radio>, the <radio> control will " "expand vertically, even though it does not really need the available space, " "and it will look ugly. In this case you really want to add a \"blank\" below " "the <radio>. For this, use the <stretch> " "element. It will simply use up some space. Do not overuse this element, " "usually it is a good idea for &GUI; elements to get all the available space, " "only sometimes will the layout become spaced out. The <stretch> " "element does not take any arguments, not even an \"id\". Also you can place " "no children inside the <stretch> element (in other words, you will " "only ever use it as \"<stretch/>\")" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1792 index.docbook:2016 index.docbook:2639 #, no-c-format msgid "<frame>" msgstr "<frame>" #. Tag: para #. +> trunk5 #: index.docbook:1793 #, no-c-format msgid "" "Draws a frame/box around its direct children. Can be used to visually group " "related options. Layout inside a frame is top-to-bottom, unless you place a " "<row> inside. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1797 #, fuzzy, no-c-format msgid "Caption for the frame (optional)" msgstr "Didascalia per la cornice (facoltativo)" #. Tag: parameter #. +> trunk5 #: index.docbook:1800 index.docbook:2212 #, no-c-format msgid "checkable" msgstr "checkable" #. Tag: para #. +> trunk5 #: index.docbook:1801 #, fuzzy, no-c-format msgid "" "Frames can be made checkable. In this case, all contained elements will be " "disabled when the frame is unchecked, and enabled, when it is checked. " "(optional, defaults to \"false\")" msgstr "" "I frame possono essere controllati. In questo caso, tutti gli elementi" " contenuti saranno disabilitati quando la cornice è deselezionata e" " abilitata, quando è selezionata. (facoltativo, il valore predefinito è" " \"false\")" #. Tag: parameter #. +> trunk5 #: index.docbook:1804 index.docbook:1981 index.docbook:2009 index.docbook:2216 #, no-c-format msgid "checked" msgstr "checked" #. Tag: para #. +> trunk5 #: index.docbook:1805 #, fuzzy, no-c-format msgid "" "For checkable frames only: Should the frame be checked by default? Defaults " "to \"true\". Not interpreted for non-checkable frames." msgstr "" "Solo per frame verificabili: il frame dovrebbe essere controllato in modo" " predefinito? Il valore predefinito è «true». Non interpretato" " per frame non controllabili." #. Tag: term #. +> trunk5 #: index.docbook:1810 #, no-c-format msgid "<tabbook>" msgstr "<tabbook>" #. Tag: para #. +> trunk5 #: index.docbook:1811 #, no-c-format msgid "" "Organizes elements in a tabbook. Accepts only <tab>-tags as direct " "children." msgstr "" "Organizza gli elementi in un tabbook. Accetta solo tag <tab> come figli" " diretti." #. Tag: term #. +> trunk5 #: index.docbook:1814 #, no-c-format msgid "<tab>" msgstr "<tab>" #. Tag: para #. +> trunk5 #: index.docbook:1815 #, no-c-format msgid "" "Defines a page in a tabbook. Place the &GUI; definition for the tab inside " "this tag. May be used only as a direct child of a <tabbook> tag. A <" "tabbook> should have at least two defined tabs. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1819 #, no-c-format msgid "Caption for the tab page (required)" msgstr "Didascalia per la scheda (richiesto)" #. Tag: term #. +> trunk5 #: index.docbook:1824 index.docbook:2523 #, no-c-format msgid "<text>" msgstr "<text>" #. Tag: para #. +> trunk5 #: index.docbook:1825 #, no-c-format msgid "" "Shows the text enclosed in this tag in the &GUI;. Some simple &HTML; style " "markup is supported (notably <b>, <i>, <p>, and <br/>). " "Please keep formatting to a minimum, however. Inserting a completely empty " "line adds a hard line break. Attributes:" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:1828 index.docbook:2177 index.docbook:2243 #, no-c-format msgid "type" msgstr "type" #. Tag: para #. +> trunk5 #: index.docbook:1829 #, no-c-format msgid "" "Type of the text. One of \"normal\", \"warning\" or \"error\". This " "influences the look of the text (optional, defaults to normal)" msgstr "" "Tipo di testo. Uno tra «normale», «avviso» o «errore». Questo" "influenza l'aspetto del testo (facoltativo, il valore predefinito è normale)" #. Tag: title #. +> trunk5 #: index.docbook:1836 #, no-c-format msgid "Active elements" msgstr "Elementi attivi" #. Tag: para #. +> trunk5 #: index.docbook:1837 #, no-c-format msgid "" "All elements in this section accept an attribute id=\"identifierstring\". " "This attribute is required for all elements. Only the additional attributes " "are listed. The id-string may not contain \".\" (dots)." msgstr "" "Tutti gli elementi in questa sezione accettano un attributo" " id=\"identifierstring\". Questo " "attributo è obbligatorio per tutti gli elementi. Sono elencati solo gli" " attributi aggiuntivi. " "La stringa id non può contenere «.» (punti)." #. Tag: term #. +> trunk5 #: index.docbook:1841 index.docbook:2534 #, no-c-format msgid "<varselector>" msgstr "<varselector>" #. Tag: para #. +> trunk5 #: index.docbook:1842 #, no-c-format msgid "" "Provides a list of available objects from which the user can select one or " "more. Requires one or more <varslot>s as a counterpart to be useful. " "Attributes:" msgstr "" "Fornisce un elenco di oggetti disponibili da cui l'utente può selezionarne" " uno o più. Richiede uno o più <varslot> come controparte per essere" " utili. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:1846 #, no-c-format msgid "" "Label for the varselector (optional, defaults to \"Select variable(s)\")" msgstr "" "Etichetta per il varselector (opzionale, il valore predefinito è «Seleziona " "variabili»)" #. Tag: term #. +> trunk5 #: index.docbook:1852 index.docbook:2549 #, no-c-format msgid "<varslot>" msgstr "<varslot>" #. Tag: para #. +> trunk5 #: index.docbook:1853 #, no-c-format msgid "" "Used in conjunction with a \"varselector\" to allow the user to select one " "or more variables. Attributes:" msgstr "" "Utilizzato insieme a un «varselector» per consentire all'utente di " "selezionare una o più variabili. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:1857 #, no-c-format msgid "Label for the varslot (recommended, defaults to \"Variable:\")" msgstr "" "Etichetta per il varslot (consigliato, il valore predefinito è «Variabile:»)" #. Tag: parameter #. +> trunk5 #: index.docbook:1860 #, no-c-format msgid "source" msgstr "source" #. Tag: para #. +> trunk5 #: index.docbook:1861 #, no-c-format msgid "" "The varselector to fetch the selection from (required, unless you connect " "manually or using source_property)" msgstr "" "Il varselector da cui prelevare la selezione (obbligatorio, a meno che non " "ci si connetta manualmente o utilizzando source_property)" #. Tag: parameter #. +> trunk5 #: index.docbook:1864 #, no-c-format msgid "source_property" msgstr "source_property" #. Tag: para #. +> trunk5 #: index.docbook:1865 #, no-c-format msgid "" "An arbitrary property to copy values from, when the select button is " "clicked. If specified, this overrides the \"source\"-attribute." msgstr "" "Una proprietà arbitraria da cui copiare i valori, quando si fa clic sul " "pulsante di selezione. Se specificato, questo sovrascrive l'attributo " "«source»." #. Tag: parameter #. +> trunk5 #: index.docbook:1868 index.docbook:2039 index.docbook:2189 index.docbook:2208 #, no-c-format msgid "required" msgstr "required" #. Tag: para #. +> trunk5 #: index.docbook:1869 #, no-c-format msgid "" "Whether - for submitting the code - it is required that this varslot holds a " "valid value. See required-property (optional, defaults to false)" msgstr "" "Se, per l'invio del codice, è necessario che questo varslot contenga un" " valore valido. Vedere required-property<" "/link> (facoltativo, il valore predefinito è falso)" #. Tag: parameter #. +> trunk5 #: index.docbook:1872 #, no-c-format msgid "multi" msgstr "multi" #. Tag: para #. +> trunk5 #: index.docbook:1873 #, no-c-format msgid "" "Whether the varslot holds only one (default, \"false\"), or several objects" msgstr "" "Se il varslot contiene solo uno (valore predefinito, «falso») o più oggetti" #. Tag: parameter #. +> trunk5 #: index.docbook:1876 #, no-c-format msgid "allow_duplicates" msgstr "allow_duplicates" #. Tag: para #. +> trunk5 #: index.docbook:1877 #, no-c-format msgid "" "Whether the varslot may accept only unique objects (default, \"false\"), or " "if the same object may be added several times." msgstr "" "Se il varslot può accettare solo oggetti univoci (valore predefinito," " «falso») o se lo stesso oggetto può essere aggiunto più volte." #. Tag: parameter #. +> trunk5 #: index.docbook:1880 #, no-c-format msgid "min_vars" msgstr "min_vars" #. Tag: para #. +> trunk5 #: index.docbook:1881 #, no-c-format msgid "" "Only meaningful if multi=\"true\": Minimum number of vars to be selected for " "the selection to be considered valid (optional, defaults to \"1\")" msgstr "" "Significativo solo se multi=\"true\": numero minimo di variabili da" " selezionare perché " "la selezione sia considerata valida (facoltativo, il valore predefinito è «1»)" #. Tag: parameter #. +> trunk5 #: index.docbook:1884 #, no-c-format msgid "min_vars_if_any" msgstr "min_vars_if_any" #. Tag: para #. +> trunk5 #: index.docbook:1885 #, no-c-format msgid "" "Only meaningful if multi=\"true\": Some varslots may be considered valid, " "if, for instance, the varslot is either empty, or holds at least two values. " "This specifies how many variables have to be selected if any at all (2 in " "the example). (optional, defaults to \"1\")" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:1888 #, no-c-format msgid "max_vars" msgstr "max_vars" #. Tag: para #. +> trunk5 #: index.docbook:1889 #, no-c-format msgid "" "Only meaningful if multi=\"true\": Maximum number of variables to select " "(optional, defaults to \"0\", which means no maximum)" msgstr "" "Significativo solo se multi=\"true\": numero massimo di variabili da" " selezionare (facoltativo, il valore predefinito è «0», il che significa che" " non esiste un massimo)" #. Tag: parameter #. +> trunk5 #: index.docbook:1892 #, no-c-format msgid "classes" msgstr "classes" #. Tag: para #. +> trunk5 #: index.docbook:1893 #, no-c-format msgid "" "If you specify one or more &R; classnames (separated by spaces (\" \")), " "here, the varslot will only accept objects belonging to those classes " "(optional, use with great care, the user should not be " "prevented from making valid choices, and &R; has a lot " "of different classes)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:1896 #, no-c-format msgid "types" msgstr "types" #. Tag: para #. +> trunk5 #: index.docbook:1897 #, no-c-format msgid "" "If you specify one or more variables types (separated by spaces (\" \")), " "here, the varslot will only accept objects of those types. Valid types are " "\"unknown\", \"number\", \"string\", \"factor\", \"invalid\". (Optional, " "use with great care, the user should not be prevented " "from making valid choices, and &rkward; does not always know the type of a " "variable)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:1900 #, no-c-format msgid "num_dimensions" msgstr "num_dimensions" #. Tag: para #. +> trunk5 #: index.docbook:1901 #, no-c-format msgid "" "The number of dimensions, an object needs to have. \"0\" (the default) " "means, any number of dimensions is acceptable. (optional, defaults to \"0\")" msgstr "" "Il numero di dimensioni che deve avere un oggetto. «0» (impostazione" " predefinita)" "significa che è accettabile qualsiasi numero di dimensioni. (facoltativo, il" " valore predefinito è «0»)" #. Tag: parameter #. +> trunk5 #: index.docbook:1904 #, no-c-format msgid "min_length" msgstr "min_length" #. Tag: para #. +> trunk5 #: index.docbook:1905 #, no-c-format msgid "" "The minimum length, an object needs to have in order to be acceptable. " "(optional, defaults to \"0\")" msgstr "" "La lunghezza minima che un oggetto deve avere per essere accettabile." " (facoltativo, il valore predefinito è «0»)" #. Tag: parameter #. +> trunk5 #: index.docbook:1908 #, no-c-format msgid "max_length" msgstr "max_length" #. Tag: para #. +> trunk5 #: index.docbook:1909 #, no-c-format msgid "" "The maximum length, an object needs to have in order to be acceptable. " "(optional, defaults to the largest integer number representable on the " "system)" msgstr "" "La lunghezza massima che un oggetto deve avere per essere accettabile." " (facoltativo, il valore predefinito è il numero intero più grande" " rappresentabile sul sistema)" #. Tag: term #. +> trunk5 #: index.docbook:1915 index.docbook:2568 #, no-c-format msgid "<valueselector>" msgstr "<valueselector>" #. Tag: para #. +> trunk5 #: index.docbook:1916 #, no-c-format msgid "" "Provides a list of available strings (not &R; objects) to be selected in one " "or more accompanying <valueslot>s. String options can be defined using " "<option>-tags as direct children (see below), or set using dynamic " "properties. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1920 #, no-c-format msgid "Label for the valueselector (optional, defaults to no label)" msgstr "" "Etichetta per il valueselector valori (facoltativo, per impostazione" " predefinita nessuna etichetta)" #. Tag: term #. +> trunk5 #: index.docbook:1926 index.docbook:2587 #, no-c-format msgid "<valueslot>" msgstr "<valueslot>" #. Tag: para #. +> trunk5 #: index.docbook:1927 #, no-c-format msgid "" "Used in conjunction with a <valueselector> to allow the user to select " "one or more string items. This element is mostly identical to <" "varslot>, and shares the same attributes, except for those which refer to " "properties of the acceptable items (&ie; classes, types, num_dimensions, " "min_length, max_length)." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1931 index.docbook:2592 #, no-c-format msgid "<radio>" msgstr "<radio>" #. Tag: para #. +> trunk5 #: index.docbook:1932 #, no-c-format msgid "" "Defines a group of radio-exclusive buttons (only one can be selected at a " "time). Requires at least two <option>-tags as direct children. No " "other tags are allowed as children. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1936 #, no-c-format msgid "Label for the radio control (recommended, defaults to \"Select one:\")" msgstr "" "Etichetta per il controllo radio (consigliato, il valore predefinito è " "«Seleziona uno:»)" #. Tag: term #. +> trunk5 #: index.docbook:1942 index.docbook:2607 #, no-c-format msgid "<dropdown>" msgstr "<dropdown>" #. Tag: para #. +> trunk5 #: index.docbook:1943 #, no-c-format msgid "" "Defines a group of options of which one and only one can be selected at the " "same time, using a dropdown list. This is functionally equivalent to a <" "radio>, but looks different. Requires at least two <option>-tags as " "direct children. No other tags are allowed as children. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1947 #, no-c-format msgid "Label for the dropdown list (recommended, defaults to \"Select one:\")" msgstr "" "Etichetta per l'elenco a tendina (consigliato, il valore predefinito è " "«Seleziona uno:»)" #. Tag: term #. +> trunk5 #: index.docbook:1953 index.docbook:2612 #, no-c-format msgid "<select>" msgstr "<select>" #. Tag: para #. +> trunk5 #: index.docbook:1954 #, no-c-format msgid "" "Provides a list of available strings from which the user can select an " "arbitrary number. String options can be defined using <option>-tags as " "direct children (see below), or set using dynamic properties. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1958 #, no-c-format msgid "Label for the <select> (optional, defaults to no label)" msgstr "" "Etichetta per la <select> (facoltativo, per impostazione predefinita" " nessuna etichetta)" #. Tag: parameter #. +> trunk5 #: index.docbook:1961 #, no-c-format msgid "single" msgstr "single" #. Tag: para #. +> trunk5 #: index.docbook:1962 #, no-c-format msgid "" "If set to true, only a single value will be selectable, instead of multiple " "values at once (boolean, defaults to false)" msgstr "" "Se impostato a vero, sarà selezionabile solo un singolo valore, anziché" " valori multipli " "contemporaneamente (booleano, il valore predefinito è false)" #. Tag: term #. +> trunk5 #: index.docbook:1968 index.docbook:2617 #, no-c-format msgid "<option>" msgstr "<option>" #. Tag: para #. +> trunk5 #: index.docbook:1969 #, no-c-format msgid "" "Can only be used as a direct child of a <radio>, <dropdown>, <" "valueselector> or <select> element. Represents one selectable " "option in a radio control or dropdown list. As <option> elements are " "always part of one of the selection elements, they do not normally have an " "\"id\" of their own, but see below. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1974 #, no-c-format msgid "Label for the option (required)" msgstr "Etichetta per l'opzione (richiesto)" #. Tag: parameter #. +> trunk5 #: index.docbook:1977 index.docbook:2001 #, no-c-format msgid "value" msgstr "value" #. Tag: para #. +> trunk5 #: index.docbook:1978 #, no-c-format msgid "" "The string value the parent element will return if this option is checked/" "selected (required)" msgstr "" "Il valore della stringa restituito dall'elemento genitore se questa opzione " "è marcata/selezionata (richiesto)" #. Tag: para #. +> trunk5 #: index.docbook:1982 #, no-c-format msgid "" "Whether the option should be checked/selected by default \"true\" or \"false" "\". In a <radio> or <dropdown>, only one option may be set to " "checked=\"true\", and if " "no option is set to checked, the first option in the parent element will be " "checked/selected automatically. In a <select>, any number of options " "may be set to checked. (optional, default to \"false\")" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1986 #, no-c-format msgid "" "Specifying the \"id\" parameter for the <option> elements is optional " "(and in fact it is recommended, not to set an \"id\", unless you really need " "one). However, specifying an \"id\" will allow you to enable/disable <" "option>s, dynamically, by connecting to the boolean property " "id_of_radio.id_of_optionX.enabled. Currently this " "works for options inside <radio> or <dropdown> elements, only; " "<valueselector> and <select> options do not currently support " "ids." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1993 index.docbook:2628 #, no-c-format msgid "<checkbox>" msgstr "<checkbox>" #. Tag: para #. +> trunk5 #: index.docbook:1994 #, no-c-format msgid "" "Defines a check box, &ie; a single option that can either be set to on or " "off. Attributes:" msgstr "" "Definisce una casella di controllo, &ie; una singola opzione che può essere " "attivata o disattivata. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:1998 #, no-c-format msgid "Label for the check box (required)" msgstr "Etichetta per la casella di controllo (obbligatorio)" #. Tag: para #. +> trunk5 #: index.docbook:2002 #, no-c-format msgid "The value the check box will return if checked (required)" msgstr "" "Il valore restituito dalla casella di controllo se selezionato (obbligatorio)" #. Tag: parameter #. +> trunk5 #: index.docbook:2005 #, no-c-format msgid "value_unchecked" msgstr "value_unchecked" #. Tag: para #. +> trunk5 #: index.docbook:2006 #, no-c-format msgid "" "The value that will be returned if the check box is not checked (optional, " "defaults to \"\", &ie; an empty string)" msgstr "" "Il valore che sarà restituito se la casella di controllo non è selezionata" " (facoltativo, il valore predefinito è \"\", &ie; una stringa vuota)" #. Tag: para #. +> trunk5 #: index.docbook:2010 #, no-c-format msgid "" "Whether the option should be checked by default \"true\" or \"false" "\" (optional, default to \"false\")" msgstr "" "Se l'opzione dovrebbe essere selezionata in modo predefinito «true» o «false»" " (opzionale, impostazione predefinita per «false»)" #. Tag: para #. +> trunk5 #: index.docbook:2017 #, fuzzy, no-c-format msgid "" "The frame element is generally used as a pure layout element, and is listed " "in the section on layout elements. " "However, it can also be made checkable, thus acting like a simple check box " "at the same time." msgstr "" "L'elemento frame viene generalmente utilizzato come puro elemento di layout" " ed è elencato nella sezione elementi di" " layout . Tuttavia, può anche essere reso controllabile, agendo così" " come una semplice casella di controllo allo stesso tempo." #. Tag: term #. +> trunk5 #: index.docbook:2023 index.docbook:2650 #, no-c-format msgid "<input>" msgstr "<input>" #. Tag: para #. +> trunk5 #: index.docbook:2024 #, no-c-format msgid "Defines a free text input field. Attributes:" msgstr "Definisce un campo di inserimento di testo libero. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:2028 #, no-c-format msgid "Label for the input field (required)" msgstr "Etichetta per il campo di input (obbligatorio)" #. Tag: parameter #. +> trunk5 #: index.docbook:2031 index.docbook:2173 index.docbook:2204 index.docbook:2239 #, no-c-format msgid "initial" msgstr "initial" #. Tag: para #. +> trunk5 #: index.docbook:2032 #, no-c-format msgid "" "Initial text of the text field (optional, defaults to \"\", &ie; an empty " "string)" msgstr "" "Testo iniziale del campo di testo (facoltativo, il valore predefinito è \"\"," " &ie; una stringa vuota)" #. Tag: parameter #. +> trunk5 #: index.docbook:2035 #, no-c-format msgid "size" msgstr "size" #. Tag: para #. +> trunk5 #: index.docbook:2036 #, no-c-format msgid "" "One of \"small\", \"medium\", or \"large\". \"large\" defines a multi-line " "input field, \"small\", and \"medium\" are single line fields (optional, " "defaults to \"medium\")" msgstr "" "Uno tra «piccolo», «medio» o «grande». «grande» definisce una campo di " "inserimento a righe multiple, «piccolo» e «medio» sono campi a riga singola " "(facoltativo,il valore predefinito è «medio»)" #. Tag: para #. +> trunk5 #: index.docbook:2040 #, no-c-format msgid "" "Whether - for submitting the code - it is required that this input is not " "empty. See required-property " "(optional, defaults to false)" msgstr "" "Se, per l'invio del codice, è necessario che questo input non sia vuoto." " Vedere " "required-property (facoltativo, il" " valore predefinito è falso)" #. Tag: term #. +> trunk5 #: index.docbook:2046 index.docbook:2661 #, no-c-format msgid "<matrix>" msgstr "<matrix>" #. Tag: para #. +> trunk5 #: index.docbook:2047 #, no-c-format msgid "A table for entering matrix data (or vectors) in the &GUI;." msgstr "" "Una tabella per l'immissione di dati di matrici (o vettori) nella &GUI;." #. Tag: para #. +> trunk5 #: index.docbook:2047 #, no-c-format msgid "" "This input element is not optimized for entering/" "editing large amounts of data. While there is no strict limit on the size of " "a <matrix>, in general it should not exceed around ten rows / columns. " "If you expect larger data, allow users to select it as an &R; object (which " "may be a good idea as an alternative option, in almost every instance where you use a matrix element)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2047 #, no-c-format msgid "Attributes:" msgstr "Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:2051 #, no-c-format msgid "Label for the table (required)" msgstr "Etichetta per la tabella (obbligatorio)" #. Tag: parameter #. +> trunk5 #: index.docbook:2054 index.docbook:2302 index.docbook:2385 #, no-c-format msgid "mode" msgstr "mode" #. Tag: para #. +> trunk5 #: index.docbook:2055 #, no-c-format msgid "" "One of \"integer\", \"real\", or \"string\". The type of data that will be " "accepted in the table (required)" msgstr "" "Uno tra «intero», «reale» o «stringa». Il tipo di dati che sarà " "accettato nella tabella (richiesto)" #. Tag: parameter #. +> trunk5 #: index.docbook:2058 index.docbook:2231 index.docbook:2393 #, no-c-format msgid "min" msgstr "min" #. Tag: para #. +> trunk5 #: index.docbook:2059 #, no-c-format msgid "" "Minimum acceptable value (for matrices of type \"integer\" or \"real\") " "(optional, defaults to the smallest representable value)" msgstr "" "Valore minimo accettabile (per matrici di tipo «intero» o «reale»)" "(facoltativo, il valore predefinito è il più piccolo valore rappresentabile)" #. Tag: parameter #. +> trunk5 #: index.docbook:2062 index.docbook:2235 index.docbook:2397 #, no-c-format msgid "max" msgstr "max" #. Tag: para #. +> trunk5 #: index.docbook:2063 #, no-c-format msgid "" "Maximum acceptable value (for matrices of type \"integer\" or \"real\") " "(optional, defaults to the largest representable value)" msgstr "" "Valore massimo accettabile (per matrici di tipo «intero» o «reale»)" "(facoltativo, il valore predefinito è il più grande valore rappresentabile)" #. Tag: parameter #. +> trunk5 #: index.docbook:2066 #, no-c-format msgid "allow_missings" msgstr "allow_missings" #. Tag: para #. +> trunk5 #: index.docbook:2067 #, no-c-format msgid "" "Whether missing (empty) values are allowed in the matrix. This is implied " "for matrices or mode \"string\" (optional, defaults to false)." msgstr "" "Se nella matrice sono consentiti valori mancanti (vuoti). Ciò è implicito per" " le matrici o la modalità «stringa» (facoltativo, il valore predefinito è" " falso)." #. Tag: parameter #. +> trunk5 #: index.docbook:2070 #, no-c-format msgid "allow_user_resize_columns" msgstr "allow_user_resize_columns" #. Tag: para #. +> trunk5 #: index.docbook:2071 #, no-c-format msgid "" "When set to true, the user can add columns by typing on the rightmost " "(inactive) cells (optional, defaults to true)." msgstr "" "Se impostato a vero, l'utente può aggiungere colonne digitando sulle celle" " più a destra (inattive) (facoltativo, il valore predefinito è true)." #. Tag: parameter #. +> trunk5 #: index.docbook:2074 #, no-c-format msgid "allow_user_resize_rows" msgstr "allow_user_resize_rows" #. Tag: para #. +> trunk5 #: index.docbook:2075 #, no-c-format msgid "" "When set to true, the user can add rows by typing on the bottommost " "(inactive) cells (optional, defaults to true)." msgstr "" "Se impostato a vero, l'utente può aggiungere righe digitando sulle celle più" " in basso (inattive) (facoltativo, il valore predefinito è true)." #. Tag: parameter #. +> trunk5 #: index.docbook:2078 #, no-c-format msgid "rows" msgstr "rows" #. Tag: para #. +> trunk5 #: index.docbook:2079 #, no-c-format msgid "" "Number of rows in the matrix. Has no effect for allow_user_resize_rows=\"true" "\". This can also be controlled by setting the \"rows\" property." " (optional, defaults to 2)." msgstr "" "Numero di righe nella matrice. Non ha alcun effetto per" " allow_user_resize_rows=\"true\". Questo può anche essere" " controllato impostando la proprietà «rows». (facoltativo, il" " valore predefinito è 2)." #. Tag: parameter #. +> trunk5 #: index.docbook:2082 #, no-c-format msgid "columns" msgstr "columns" #. Tag: para #. +> trunk5 #: index.docbook:2083 #, no-c-format msgid "" "Number of columns in the matrix. Has no effect for allow_user_resize_columns=" "\"true\". This can also be controlled by setting the \"columns\" " "property. (optional, defaults to 2)." msgstr "" "Numero di colonne nella matrice. Non ha alcun effetto per" " allow_user_resize_columns=\"true\". Questo può anche essere" " controllato impostando la proprietà «columns». (facoltativo," " il valore predefinito è 2)." #. Tag: parameter #. +> trunk5 #: index.docbook:2086 index.docbook:2117 #, no-c-format msgid "min_rows" msgstr "min_rows" #. Tag: para #. +> trunk5 #: index.docbook:2087 #, no-c-format msgid "" "Minimum number of rows in the matrix. The matrix will refuse shrink below " "this size. (optional, defaults to 0; see also: allow_missings.)." msgstr "" "Numero minimo di righe nella matrice. La matrice rifiuterà la riduzione al di" " sotto di questa dimensione. (facoltativo, il valore predefinito è 0; vedere" " anche: allow_missings)." #. Tag: parameter #. +> trunk5 #: index.docbook:2090 #, no-c-format msgid "min_columns" msgstr "min_columns" #. Tag: para #. +> trunk5 #: index.docbook:2091 #, no-c-format msgid "" "Minimum number of columns in the matrix. The matrix will refuse shrink below " "this size. (optional, defaults to 0; see also: allow_missings.)." msgstr "" "Numero minimo di colonne nella matrice. La matrice rifiuterà la riduzione al" " di sotto di questa dimensione. (facoltativo, il valore predefinito è 0;" " vedere anche: allow_missings)." #. Tag: parameter #. +> trunk5 #: index.docbook:2094 #, no-c-format msgid "fixed_height" msgstr "fixed_height" #. Tag: para #. +> trunk5 #: index.docbook:2095 #, no-c-format msgid "" "Force the &GUI; element to stay at its initial height. Do not use in " "combination with matrices, where the number of rows may change in any way. " "Useful, esp. when creating a vector input element (columns=\"1\"). With this " "option set to true, no horizontal scroll bar will be shown, even in the " "matrix exceeds the available width (as this would affect the height). " "(optional, defaults to false)." msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2098 #, no-c-format msgid "fixed_width" msgstr "fixed_width" #. Tag: para #. +> trunk5 #: index.docbook:2099 #, fuzzy, no-c-format msgid "" "Slightly misnamed: Assume the column count will not change. The last (or " "typically only) column will be stretched to take up the available width. Do " "not use in combination with matrices, where the number of columns may change " "in any way. Useful, esp. when creating a vector input element (rows=\"1\"). " "(optional, defaults to false)." msgstr "" "Leggermente errato: si supponga che il conteggio delle colonne non cambierà. " "L'ultima (o in genere solo) colonna verrà allungata per occupare la larghezza " "disponibile. Non utilizzare in combinazione con matrici, in cui il numero di " "colonne può cambiare in alcun modo. Utile, esp. durante la creazione di un " "elemento di input vettoriale (righe=\"1\"). (facoltativo, il valore" " predefinito è false)." #. Tag: parameter #. +> trunk5 #: index.docbook:2102 #, no-c-format msgid "horiz_headers" msgstr "horiz_headers" #. Tag: para #. +> trunk5 #: index.docbook:2103 #, no-c-format msgid "" "Strings to use for the horizontal header, separated by \";\". The header " "will be hidden, if set to \"\". (optional, defaults to column number)." msgstr "" "Stringhe da utilizzare per l'intestazione orizzontale, separate da «;»." " L'intestazione sarà nascosta, se impostata su \"\". (facoltativo, il valore" " predefinito è il numero di colonna)." #. Tag: parameter #. +> trunk5 #: index.docbook:2106 #, no-c-format msgid "vert_headers" msgstr "vert_headers" #. Tag: para #. +> trunk5 #: index.docbook:2107 #, no-c-format msgid "" "Strings to use for the vertical header, separated by \";\". The header will " "be hidden, if set to \"\". (optional, defaults to row number)." msgstr "" "Stringhe da utilizzare per l'intestazione verticale, separate da «;»." " L'intestazione sarà nascosta, se impostata su \"\". (facoltativo, il numero" " predefinito è il numero di riga)." #. Tag: term #. +> trunk5 #: index.docbook:2113 index.docbook:2692 #, no-c-format msgid "<optionset>" msgstr "<optionset>" #. Tag: para #. +> trunk5 #: index.docbook:2114 #, no-c-format msgid "" "A UI for repeating a set of options for an arbitrary number of items (introduction to optionsets). Attributes:" msgstr "" "Un'interfaccia utente per la ripetizione di un insieme di opzioni per un " "numero arbitrario di elementi (introduzione agli " "insiemi di opzioni). Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:2118 #, no-c-format msgid "" "If specified, the set will be marked invalid, unless it has at least this " "number of rows (optional, integer)." msgstr "" "Se specificato, l'insieme sarà contrassegnato come non valido, a meno che non" " abbia almeno questo numero di righe (facoltativo, intero)." #. Tag: parameter #. +> trunk5 #: index.docbook:2121 #, no-c-format msgid "min_rows_if_any" msgstr "min_rows_if_any" #. Tag: para #. +> trunk5 #: index.docbook:2122 #, no-c-format msgid "" "Like min_rows, but will only be tested, if there is at least one row " "(optional, integer)." msgstr "" "Come min_rows, ma sarà testato solo se è presente almeno una riga" " (facoltativo, intero)." #. Tag: parameter #. +> trunk5 #: index.docbook:2125 #, no-c-format msgid "max_rows" msgstr "max_rows" #. Tag: para #. +> trunk5 #: index.docbook:2126 #, no-c-format msgid "" "If specified, the set will be marked invalid, unless it has at most this " "number of rows (optional, integer)." msgstr "" "Se specificato, l'insieme sarà contrassegnato come non valido, a meno che non" " contenga al massimo questo numero di righe (facoltativo, intero)." #. Tag: parameter #. +> trunk5 #: index.docbook:2129 #, no-c-format msgid "keycolumn" msgstr "keycolumn" #. Tag: para #. +> trunk5 #: index.docbook:2130 #, no-c-format msgid "" "Id of the column to act as keycolumn. An optionset with a (valid) keycolumn " "will act as a \"driven\" optionset. An optionset with no keycolumn will " "allow manual insertion / removal of items. The keycolumn must be marked as " "external. (optional, defaults to no keycolumn)." msgstr "" "ID della colonna per fungere da colonna dei tasti. Un insieme di opzioni con " "una colonna chiave (valida) fungerà da insieme di opzioni «guidato». Un " "insieme di opzioni senza colonna chiave consentirà l'inserimento / la " "rimozione manuale degli articoli. La colonna chiave deve essere " "contrassegnata come esterna. (facoltativo, il valore predefinito è nessuna " "colonna dei tasti)." #. Tag: para #. +> trunk5 #: index.docbook:2133 #, no-c-format msgid "Child-elements:" msgstr "Elementi figli:" #. Tag: term #. +> trunk5 #: index.docbook:2136 #, no-c-format msgid "<optioncolumn>" msgstr "<optioncolumn>" #. Tag: para #. +> trunk5 #: index.docbook:2137 #, no-c-format msgid "" "Declares one optioncolumn of the set. For each value that you want to fetch " "from the optionset, you must declare a separate <optioncolumn>. " "Attributes:" msgstr "" "Dichiara un'optioncolumn dell'insieme. Per ogni valore che si desidera" " recuperare " "dall'insieme di opzioni, è necessario dichiarare una <optioncloumn>" " separata. " "Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:2140 #, no-c-format msgid "The id of the optioncolumn (required, string)." msgstr "L'ID dell'optioncolumn (obbligatorio, stringa)." #. Tag: parameter #. +> trunk5 #: index.docbook:2141 #, no-c-format msgid "external" msgstr "external" #. Tag: para #. +> trunk5 #: index.docbook:2142 #, no-c-format msgid "" "Set to true, if the optioncolumn is controlled from outside the optionset " "(optional, boolean, defaults to false)." msgstr "" "Impostato su vero, se l'opzione colonna è controllata dall'esterno " "dell'insieme di opzioni (facoltativo, booleano, il valore predefinito è " "false)." #. Tag: para #. +> trunk5 #: index.docbook:2144 #, no-c-format msgid "" "If given, the optioncolumn will be displayed in a column by that label " "(optional, string, defaults to not displayed)." msgstr "" "Se indicato, l'optioncolumn sarà visualizzata in una colonna in base a" " quell'etichetta (facoltativo, stringa, per impostazione predefinita non è" " visualizzata)." #. Tag: parameter #. +> trunk5 #: index.docbook:2145 #, no-c-format msgid "connect" msgstr "connect" #. Tag: para #. +> trunk5 #: index.docbook:2146 #, no-c-format msgid "" "The property to connect this optioncolumn to, given as id inside the <" "content>-area. For external <optioncolumn>s, the corresponding " "value will be set to the externally set value. For regular (non-external) " "<optioncolumn>s, the corresponding row of the <optioncolumn>-" "property, will be set when the property changes inside the content-area. " "(optional, string, defaults to not connected)." msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2148 index.docbook:2334 #, no-c-format msgid "default" msgstr "default" #. Tag: para #. +> trunk5 #: index.docbook:2149 #, no-c-format msgid "" "Only for external columns: The value to assume for this column, if no value " "is known for an entry. Rarely useful. (Optional, defaults to empty string)" msgstr "" "Solo per colonne esterne: il valore da assumere per questa colonna, se non è" " noto alcun valore per una voce. Raramente utile (Facoltativo, per" " impostazione predefinita è una stringa vuota)" #. Tag: term #. +> trunk5 #: index.docbook:2153 #, no-c-format msgid "<content>" msgstr "<content>" #. Tag: para #. +> trunk5 #: index.docbook:2154 #, no-c-format msgid "" "Declare the content / UI of the set. No attributes. All usual active, " "passive, and layout elements are allowed as childname elements. In addition, " "in earlier versions of &rkward; (up to 0.6.3), the special child-element " "<optiondisplay> was allowed. This is obsolete in " "&rkward; 0.6.4, and should simply be removed from existing plugins." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2157 index.docbook:2321 #, no-c-format msgid "<logic>" msgstr "<logic>" #. Tag: para #. +> trunk5 #: index.docbook:2158 #, no-c-format msgid "" "Optional specification of UI logic to apply inside the " "contents region the optionset. See the " "reference on <logic>" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2165 index.docbook:2711 #, no-c-format msgid "<browser>" msgstr "<browser>" #. Tag: para #. +> trunk5 #: index.docbook:2166 #, no-c-format msgid "" "An element designed to select a single filename (or directory name). Note " "that this field will take any string, even though it is meant to be used for " "files, only:" msgstr "" "Un elemento progettato per selezionare un singolo nome file (o nome di" " cartella). " "Notare che questo campo accetterà qualsiasi stringa, anche se è pensato per" " essere " "utilizzato solo per i file:" #. Tag: para #. +> trunk5 #: index.docbook:2170 #, no-c-format msgid "Label for the browser (optional, defaults to \"Enter filename\")" msgstr "" "Etichetta per il browser (opzionale, il valore predefinito è «Inserisci nome" " file»)" #. Tag: para #. +> trunk5 #: index.docbook:2174 #, no-c-format msgid "" "Initial text of the browser (optional, defaults to \"\", &ie; an empty " "string)" msgstr "" "Testo iniziale del browser (facoltativo, il valore predefinito è \"\", &ie;" " una stringa vuota)" #. Tag: para #. +> trunk5 #: index.docbook:2178 #, no-c-format msgid "" "One of \"file\", \"dir\", or \"savefile\". To select an existing file, " "existing directory, or non-existing file, respectively (optional, defaults " "to \"file\")" msgstr "" "Uno tra «file», «dir» o «savefile». Per selezionare un file esistente, una" " cartella esistente " "o un file non esistente, rispettivamente (facoltativo, il valore predefinito" " è «file»)" #. Tag: parameter #. +> trunk5 #: index.docbook:2181 #, no-c-format msgid "allow_urls" msgstr "allow_urls" #. Tag: para #. +> trunk5 #: index.docbook:2182 #, no-c-format msgid "" "Whether (non-local) &URL;s can be selected (optional, defaults to \"false\")" msgstr "" "Se è possibile selezionare &URL; (non locali) (facoltativo, il valore" " predefinito è «false»)" #. Tag: parameter #. +> trunk5 #: index.docbook:2185 #, no-c-format msgid "filter" msgstr "filter" #. Tag: para #. +> trunk5 #: index.docbook:2186 #, no-c-format msgid "" "File type filter, ⪚ (\"*.txt *.csv\" for .txt and .csv files). A separate " "entry for \"All files\" is added, automatically (optional, defaults to \"\", " "&ie; All files)" msgstr "" "Filtro del tipo di file, ⪚ (\"* .txt * .csv\" per i file .txt e .csv)." " Viene aggiunta " "automaticamente una voce separata per «Tutti i file» (facoltativo, valore" " predefinito \"\", " "&ie; tutti i file)" #. Tag: para #. +> trunk5 #: index.docbook:2190 #, no-c-format msgid "" "Whether - for submitting the code - it is required that the field is not " "empty. Note that this does not necessarily mean that the selected filename " "is valid. See required-property " "(optional, defaults to true)" msgstr "" "Se, per l'invio del codice, è necessario che il campo non sia vuoto. Notare" " che ciò non significa " "necessariamente che il nome file selezionato sia valido. Vedere required-property " "(facoltativo, il valore predefinito è true)" #. Tag: term #. +> trunk5 #: index.docbook:2196 index.docbook:2722 #, no-c-format msgid "<saveobject>" msgstr "<saveobject>" #. Tag: para #. +> trunk5 #: index.docbook:2197 #, no-c-format msgid "" "An element designed to select the name of an &R; object to save to (&ie; " "generally not already existing, in contrast to a varslot):" msgstr "" "Un elemento progettato per selezionare il nome con cui salvare un oggetto di" " &R; (&ie; generalmente non già esistente, a differenza di un varslot):" #. Tag: para #. +> trunk5 #: index.docbook:2201 #, no-c-format msgid "Label for the input (optional, defaults to \"Save to:\")" msgstr "" "Etichetta per l'ingresso (facoltativo, il valore predefinito è «Salva in:»)" #. Tag: para #. +> trunk5 #: index.docbook:2205 #, no-c-format msgid "Initial text of the input (optional, defaults to \"my.data\")" msgstr "" "Testo iniziale dell'ingresso (facoltativo, il valore predefinito è «my.data»)" #. Tag: para #. +> trunk5 #: index.docbook:2209 #, no-c-format msgid "" "Whether - for submitting the code - it is required that the field holds a " "permissible object name. See required-" "property (optional, defaults to true)" msgstr "" "Se, per l'invio del codice, è necessario che il campo contenga un nome" " oggetto consentito. " "Vedere required-property" " (facoltativo, il valore predefinito è true)" #. Tag: para #. +> trunk5 #: index.docbook:2213 #, no-c-format msgid "" "In many use cases, saving to an &R; object is optional. In these cases, a " "check box can be integrated into the saveobject-element using this " "attribute. When set to true, the saveobject will be activated / deactivated " "by the check box. See the active-" "property of saveobject (optional, defaults to false)" msgstr "" "In molti casi d'uso, salvare in un oggetto di &R; è facoltativo. In questi" " casi, una casella " "di controllo può essere integrata nell'elemento saveobject usando questo" " attributo. Se " "impostato a vero, l'oggetto di salvataggio sarà attivato/disattivato dalla" " casella di controllo. " "Vedere active-property di" " saveobject (facoltativo, il " "valore predefinito è falso)" #. Tag: para #. +> trunk5 #: index.docbook:2217 #, no-c-format msgid "" "For checkable saveobject-elements, only: Whether the control is checked/" "enabled by default (optional, defaults to false)" msgstr "" "Solo per gli elementi saveobject controllabili: se il controllo è" " marcato/abilitato per impostazione predefinita (facoltativo, il valore" " predefinito è false)" #. Tag: term #. +> trunk5 #: index.docbook:2223 index.docbook:2745 #, no-c-format msgid "<spinbox>" msgstr "<spinbox>" #. Tag: para #. +> trunk5 #: index.docbook:2224 #, no-c-format msgid "" "A spinbox in which the user can select a numeric value, using either direct " "keyboard input or small up/down arrows. Attributes:" msgstr "" "Una casella di selezione in cui l'utente può selezionare un valore numerico," " usando l'inserimento " "diretto da tastiera o le piccole frecce in su/giù. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:2228 #, no-c-format msgid "Label for the spinbox (recommend, default to \"Enter value:\")" msgstr "" "Etichetta per la casella di selezione (consigliato, impostazione predefinita" " per «Inserisci valore:»)" #. Tag: para #. +> trunk5 #: index.docbook:2232 #, no-c-format msgid "" "The lowest value the user is allowed to enter in the spinbox (optional, " "defaults to the lowest value technically representable in the spinbox)" msgstr "" "Il valore più basso che l'utente può inserire nella casella di selezione" " (facoltativo, " "il valore predefinito è il più basso tecnicamente rappresentabile nella" " casella di selezione)" #. Tag: para #. +> trunk5 #: index.docbook:2236 #, no-c-format msgid "" "The largest value the user is allowed to enter in the spinbox (optional, " "defaults to the highest value technically representable in the spinbox)" msgstr "" "Il valore più grande che l'utente può inserire nella casella di selezione" " (facoltativo, " "il valore predefinito è il più alto tecnicamente rappresentabile nella" " casella di selezione)" #. Tag: para #. +> trunk5 #: index.docbook:2240 #, no-c-format msgid "The initial value shown in the spinbox (optional, defaults to \"0\")" msgstr "" "Il valore iniziale mostrato nella casella di selezione (facoltativo, il" " valore predefinito è «0»)" #. Tag: para #. +> trunk5 #: index.docbook:2244 #, no-c-format msgid "" "One of \"real\" or \"integer\". Whether the spinbox will accept real numbers " "or only integers (optional, defaults to \"real\")" msgstr "" "Uno di «reale» o «intero». Se lo casella di selezione accetterà numeri reali " "o solo numeri interi (facoltativo, il valore predefinito è «reale»)" #. Tag: parameter #. +> trunk5 #: index.docbook:2247 #, no-c-format msgid "default_precision" msgstr "default_precision" #. Tag: para #. +> trunk5 #: index.docbook:2248 #, no-c-format msgid "" "Only meaningful if the spinbox is of type=\"real\". Specifies the default " "number of decimal places shown in the spinbox (only this many trailing zeros " "will be shown). When the user presses the up/down arrows, this decimal place " "will be changed. The user may still be able to enter values with a higher " "precision, however (see below) (optional, defaults to \"2\")" msgstr "" "Significativo solo se la casella di selezione è di tipo=\"real\". Specifica" " il numero predefinito " "di posizioni decimali visualizzate nella casella di selezione (saranno" " visualizzati solo questi " "zeri finali). Quando l'utente preme le frecce in su/giù, questo punto" " decimale sarà modificato. " "L'utente può comunque essere in grado di inserire valori con una precisione" " maggiore " "(vedere sotto) (facoltativo, il valore predefinito è «2»)" #. Tag: parameter #. +> trunk5 #: index.docbook:2251 #, no-c-format msgid "max_precision" msgstr "max_precision" #. Tag: para #. +> trunk5 #: index.docbook:2252 #, no-c-format msgid "" "The maximum number of digits that can be meaningfully represented (optional, " "defaults to \"8\")" msgstr "" "Il numero massimo di cifre che possono essere rappresentate in modo " "significativo (opzionale, il valore predefinito è «8»)" #. Tag: term #. +> trunk5 #: index.docbook:2258 index.docbook:2760 #, no-c-format msgid "<formula>" msgstr "<formula>" #. Tag: para #. +> trunk5 #: index.docbook:2259 #, no-c-format msgid "" "This advanced element allows the user to select a formula/set of " "interactions from selected variables. For instance for a GLM, this element " "can be used to allow the user to specify the interaction-terms in the model. " "Attributes:" msgstr "" "Questo elemento avanzato consente all'utente di selezionare una formula/" "insieme di interazioni dalle variabili selezionate. Ad esempio per un GLM, " "questo elemento può essere utilizzato per consentire all'utente di " "specificare i termini di interazione nel modello. Attributi:" #. Tag: parameter #. +> trunk5 #: index.docbook:2262 #, no-c-format msgid "fixed_factors" msgstr "fixed_factors" #. Tag: para #. +> trunk5 #: index.docbook:2263 #, no-c-format msgid "The ID of the varslot holding the selected fixed factors (required)" msgstr "L'ID del varslot contenente i fattori fissi selezionati (richiesto)" #. Tag: parameter #. +> trunk5 #: index.docbook:2266 #, no-c-format msgid "dependent" msgstr "dependent" #. Tag: para #. +> trunk5 #: index.docbook:2267 #, no-c-format msgid "" "The ID of the varslot holding the selected dependent variable (required)" msgstr "" "L'ID del varslot che contiene la variabile dipendente selezionata (richiesto)" #. Tag: term #. +> trunk5 #: index.docbook:2273 index.docbook:2787 #, no-c-format msgid "<embed>" msgstr "<embed>" #. Tag: para #. +> trunk5 #: index.docbook:2274 #, no-c-format msgid "" "Embed a different plugin into this one (see chapter on embedding). Attributes:" msgstr "" "Integrare un'estensione diversa in questa (consultare il capitolo sull'integrazione). Attributi:" #. Tag: parameter #. +> trunk5 #: index.docbook:2277 #, no-c-format msgid "component" msgstr "component" #. Tag: para #. +> trunk5 #: index.docbook:2278 #, no-c-format msgid "" "The registered name of the component to embed (see chapter on registering components) (required)" msgstr "" "Il nome registrato del componente da integrare (vedere il capitolo sulla registrazione dei componenti) " "(obbligatorio)" #. Tag: parameter #. +> trunk5 #: index.docbook:2281 #, no-c-format msgid "as_button" msgstr "as_button" #. Tag: para #. +> trunk5 #: index.docbook:2282 #, no-c-format msgid "" "If set to \"true\", only a pushbutton will be placed in the embedding &GUI;, " "the embedded &GUI; will only be shown (in a separate window) when the " "pushbutton is pressed (optional, default is \"false\")" msgstr "" "Se impostata a «true», solo un pulsante sarà inserito nella &GUI; di " "integrazione, la &GUI; integrata sarà mostrata (in una finestra separata) " "solo quando si preme il pulsante (opzionale, il valore predefinito è «false»)" #. Tag: para #. +> trunk5 #: index.docbook:2286 #, no-c-format msgid "" "Only meaningful if as_button=\"true\": The label of the button (recommend, " "default is \"Options\")" msgstr "" "Significativo solo se as_button=\"true\": l'etichetta del pulsante (si " "consiglia, l'impostazione predefinita è «Opzioni»)" #. Tag: term #. +> trunk5 #: index.docbook:2292 index.docbook:2798 #, no-c-format msgid "<preview>" msgstr "<preview>" #. Tag: para #. +> trunk5 #: index.docbook:2293 #, no-c-format msgid "" "Checkbox to toggle preview functionality. Note that starting with version " "0.6.5 of &rkward; <preview> preview elements are " "special- cased in plugin dialogs (not wizards): They will be placed in the " "button-column, irrespective of where exactly they are defined in the UI. It " "is still a good idea to define them at a sensible place in the layout, for " "backwards compatibility. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2299 #, no-c-format msgid "Label of the box (optional, default is \"Preview\")" msgstr "" "Etichetta della casella (opzionale, il valore predefinito è «Anteprima»)" #. Tag: para #. +> trunk5 #: index.docbook:2303 #, no-c-format msgid "" "Type of preview. Supported types are \"plot\" (see chapter on graph previews), \"output\" (see chapter on (&HTML;) output previews), " "\"data\" (see data previews), and " "\"custom\" (see custom previews). " "(optional, default is \"plot\")" msgstr "" "Tipo di anteprima. I tipi supportati sono «grafico» (vedere capitolo sulle anteprime dei grafici), " "«risultato» (vedere capitolo sulle (&HTML;) " "anteprime del risultato), «dati» (vedere anteprime dei dati) e «personalizzata» (vedere anteprime personalizzate). (facoltativo, il valore " "predefinito è «grafico»)" #. Tag: parameter #. +> trunk5 #: index.docbook:2306 #, no-c-format msgid "placement" msgstr "placement" #. Tag: para #. +> trunk5 #: index.docbook:2307 #, no-c-format msgid "" "Placement of the preview: \"attached\" (to the main workplace), \"detached" "\" (standalone window), \"docked\" (attached to the plugin dialog) and " "\"default\" (currently this is the same as \"docked\", but might become user-" "configurable at some point). In general, it is recommended to leave this as " "the default setting for best UI-consistency (optional, default is \"default" "\")" msgstr "" "Posizionamento dell'anteprima: «agganciata» (all'area di lavoro principale), " "«sganciata» (finestra autonoma), «ancorata» (agganciata alla finestra " "dell'estensione) e «predefinita» (attualmente è uguale a «ancorata», ma " "potrebbe diventare configurabile dall'utente a un certo punto). In generale, " "si consiglia di lasciarla come impostazione predefinita per una migliore " "coerenza dell'interfaccia utente (facoltativo, il valore predefinito è " "«predefinita»)" #. Tag: parameter #. +> trunk5 #: index.docbook:2310 #, no-c-format msgid "active" msgstr "active" #. Tag: para #. +> trunk5 #: index.docbook:2311 #, no-c-format msgid "" "Whether the preview is active by default. In general, only docked previews " "should be made active by default, and even for these, there is a reason why " "the default is in-active previews (optional, default is \"false\")" msgstr "" "Se l'anteprima è attiva in modo predefinito. In generale, solo le anteprime " "ancorate devono essere rese attive per impostazione predefinita e, anche per " "queste, c'è un motivo per cui l'impostazione predefinita è l'anteprima " "inattiva (opzionale, l'impostazione predefinita è «falso»)" #. Tag: title #. +> trunk5 #: index.docbook:2318 #, no-c-format msgid "Logic section" msgstr "Sezione logica" #. Tag: para #. +> trunk5 #: index.docbook:2322 #, no-c-format msgid "" "The containing element for the logic section. All elements below are allowed " "only inside the <logic> element. The <logic> element is allowed " "only as a direct child of the <document> element (at most once per " "document), or of <optionset> elements (at most once per optionset). " "The document's logic section applies to both <dialog> and <" "wizard> GUIs in the same way." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2326 #, no-c-format msgid "<external>" msgstr "<external>" #. Tag: para #. +> trunk5 #: index.docbook:2327 #, no-c-format msgid "" "Creates a new (string) property that is supposed to be connected to an " "outside property if the plugin gets embedded. See section on \"incomplete\" plugins. " "Attributes:" msgstr "" "Crea una nuova proprietà (stringa) che dovrebbe essere connessa a una " "proprietà esterna se il l'estensione viene integrata. Vedere la sezione " "sulle estensioni «incomplete». " "Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:2331 index.docbook:2346 index.docbook:2378 index.docbook:2414 #, no-c-format msgid "The ID of the new property (required)" msgstr "L'ID della nuova proprietà (richiesto)" #. Tag: para #. +> trunk5 #: index.docbook:2335 #, no-c-format msgid "" "The default string value of the new property, &ie; the value used, if the " "property is not connected to an outside property (optional, defaults to an " "empty string)" msgstr "" "Il valore di stringa predefinito della nuova proprietà, &ie; il valore " "utilizzato, se la proprietà non è connessa a una proprietà esterna " "(facoltativo, per impostazione predefinita è una stringa vuota)" #. Tag: term #. +> trunk5 #: index.docbook:2341 #, no-c-format msgid "<i18n>" msgstr "<i18n>" #. Tag: para #. +> trunk5 #: index.docbook:2342 #, no-c-format msgid "" "Creates a new (string) property that is supposed to be provide an i18n'ed " "label. Attributes:" msgstr "" "Crea una nuova proprietà (stringa) che dovrebbe fornire un'etichetta i18n. " "Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:2350 #, no-c-format msgid "The label. This will be translated. (required)" msgstr "L'etichetta. Questa sarà tradotta. (necessario)" #. Tag: term #. +> trunk5 #: index.docbook:2356 #, no-c-format msgid "<set>" msgstr "<set>" #. Tag: para #. +> trunk5 #: index.docbook:2357 #, no-c-format msgid "" "Set a property to a fixed value (of course, if you additionally connect the " "property to some other property, the value does not remain fixed). For " "instance, if you embed a plugin, but want to hide some of its elements, you " "might set the visibility property of those elements to false. Useful esp. " "for embedded/embedding plugins. Note: If there are several <set> " "elements for a single id, the latest one to be " "defined takes precedence. This will sometimes be useful to rely on when " "using <include>d parts. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2363 #, no-c-format msgid "The ID of the property to set (required)" msgstr "'ID della proprietà da impostare (obbligatorio)" #. Tag: parameter #. +> trunk5 #: index.docbook:2366 #, no-c-format msgid "to" msgstr "to" #. Tag: para #. +> trunk5 #: index.docbook:2367 #, no-c-format msgid "" "The string value to set the property to (required). Note: For boolean " "properties such as visibility, enabledness, you will typically set the to " "attribute to either to=\"true\" or to=\"false\"." msgstr "" "Il valore di stringa su cui impostare la proprietà (obbligatorio). Nota: per " "proprietà booleane come visibilità, abilitazione, in genere si imposta " "l'attributo to a to=\"true\" o a to=\"false\"." #. Tag: term #. +> trunk5 #: index.docbook:2373 index.docbook:2809 #, no-c-format msgid "<convert>" msgstr "<convert>" #. Tag: para #. +> trunk5 #: index.docbook:2374 #, no-c-format msgid "" "Create a new boolean properties that depends on the state of one or more " "different properties. Attributes:" msgstr "" "Crea una nuova proprietà booleana che dipende dallo stato di una o più " "proprietà diverse. Attributi:" #. Tag: parameter #. +> trunk5 #: index.docbook:2381 #, no-c-format msgid "sources" msgstr "sources" #. Tag: para #. +> trunk5 #: index.docbook:2382 #, no-c-format msgid "" "The ids of the properties this property will depend on. One or more " "properties may be specified, separated by \";\" (required)" msgstr "" "Gli ID delle proprietà da cui dipenderà questa proprietà. Una o più " "proprietà possono essere specificate, separate da «;» (necessario)" #. Tag: para #. +> trunk5 #: index.docbook:2386 #, no-c-format msgid "" "The mode of conversion/operation. One of \"equals\", \"notequals\", \"range" "\", \"and\", \"or\". If in mode equals, the property will only be true, if " "the value of all of its sources equals the attribute standard (see below). " "If in at mode notequals, the property will only be true, if the value of all " "of its sources are different from the attribute standard (see below). If in " "mode range, the sources have to be numeric (integer or real). The property " "will only be true, if all sources are in the range specified by the " "attributes min and max (see below). If in mode and, the sources have to be " "boolean properties. The property will only be true, if all the sources are " "true simultaneously. If in mode or, the sources have to be boolean " "properties. The property will only be true, if at least one of the sources " "is true. (required)" msgstr "" "La modalità di conversione/operazione. Uno di «uguale», «non uguale», " "«intervallo», «e», «o». Se in modalità uguale, la proprietà sarà vera solo " "se il valore di tutte le sue fonti è uguale all'attributo standard (vedere " "sotto). Se in modalità non uguale, la proprietà sarà vera solo se il valore " "di tutte le sue fonti è diverso dallo standard dell'attributo (vedere " "sotto). Se in modalità intervallo, le fonti devono essere numeriche (intere " "o reali). La proprietà sarà vera solo se tutte le origini sono " "nell'intervallo specificato dagli attributi min e max (vedere sotto). Se in " "modalità e, le fonti devono essere proprietà booleane. La proprietà sarà " "vera solo se tutte le fonti sono vere contemporaneamente. Se in modalità o, " "le fonti devono essere proprietà booleane. La proprietà sarà vera solo se " "almeno una delle fonti è vera. (necessario)" #. Tag: parameter #. +> trunk5 #: index.docbook:2389 index.docbook:2445 #, no-c-format msgid "standard" msgstr "standard" #. Tag: para #. +> trunk5 #: index.docbook:2390 #, no-c-format msgid "" "Only meaningful in modes equals or notequals: the string value to compare " "against (required if in one of these modes)" msgstr "" "Significativo solo in modalità uguale o nota: il valore stringa da " "confrontare (richiesto se in una di queste modalità)" #. Tag: para #. +> trunk5 #: index.docbook:2394 #, no-c-format msgid "" "Only meaningful in mode range: the minimum value to compare against " "(optional, defaults to the lowest floating point number representable on the " "machine)" msgstr "" "Significativo solo nell'intervallo di modalità: il valore minimo da " "confrontare (opzionale, il valore predefinito è il numero in virgola mobile " "più basso rappresentabile sulla macchina)" #. Tag: para #. +> trunk5 #: index.docbook:2398 #, no-c-format msgid "" "Only meaningful in mode range: the maximum value to compare against " "(optional, defaults to the largest floating point number representable on " "the machine)" msgstr "" "Significativo solo nell'intervallo di modalità: il valore massimo con cui " "confrontare (opzionale, il valore predefinito è il più grande numero in " "virgola mobile rappresentabile sulla macchina)" #. Tag: parameter #. +> trunk5 #: index.docbook:2401 #, no-c-format msgid "require_true" msgstr "require_true" #. Tag: para #. +> trunk5 #: index.docbook:2402 #, no-c-format msgid "" "If set to \"true\", the property will become required, and will only be " "considered valid, if its state is true/on. Hence, if the property is false, " "it will block the Submit button (optional, defaults " "to \"false\")." msgstr "" "Se impostato a \"true\", la proprietà diventerà obbligatoria e sarà " "considerata valida solo se il suo stato è true/on. Quindi, se la proprietà è " "falsa, bloccherà il pulsante Invia (facoltativo, il " "valore predefinito è \"false\")." #. Tag: para #. +> trunk5 #: index.docbook:2403 #, no-c-format msgid "" "If you use this, make sure the user can easily detect what is wrong, such as " "by showing an explanatory <text>." msgstr "" "Se lo si utilizza, assicurarsi che l'utente possa facilmente rilevare ciò " "che è sbagliato, ad esempio mostrando un testo esplicativo." #. Tag: term #. +> trunk5 #: index.docbook:2409 index.docbook:2814 #, no-c-format msgid "<switch>" msgstr "<switch>" #. Tag: para #. +> trunk5 #: index.docbook:2410 #, no-c-format msgid "" "Create a new property that will relay to different target properties (or " "fixed strings) based on the value of a condition property. This allows to " "create logic similar to if() or switch() constructs. Attributes:" msgstr "" "Creare una nuova proprietà che sarà inoltrata a proprietà di destinazione " "diverse (o stringhe fisse) in base al valore di una proprietà di condizione. " "Ciò consente di creare logiche simili ai costrutti if() " "o switch(). Attributi:" #. Tag: parameter #. +> trunk5 #: index.docbook:2417 #, no-c-format msgid "condition" msgstr "condition" #. Tag: para #. +> trunk5 #: index.docbook:2418 #, no-c-format msgid "The id of the condition property (required)" msgstr "L'ID della proprietà «condition» (richiesto)" #. Tag: para #. +> trunk5 #: index.docbook:2421 index.docbook:2934 index.docbook:3014 #, no-c-format msgid "Child elements:" msgstr "Elementi figli:" #. Tag: term #. +> trunk5 #: index.docbook:2424 #, no-c-format msgid "<true>" msgstr "<true>" #. Tag: para #. +> trunk5 #: index.docbook:2425 #, no-c-format msgid "" "If the condition property is boolean, you can specify the two child elements " "<true> and <false> (and only these). (Required, if <false> " "is also given)" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2428 #, no-c-format msgid "<false>" msgstr "<false>" #. Tag: para #. +> trunk5 #: index.docbook:2429 #, no-c-format msgid "" "If the condition property is boolean, you can specify the two child elements " "<true> and <false> (and only these). (Required, if <true> " "is also given)" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2432 #, no-c-format msgid "<case>" msgstr "<case>" #. Tag: para #. +> trunk5 #: index.docbook:2433 #, no-c-format msgid "" "If the condition property is not boolean, you can supply an arbitrary number " "of <case>-elements, one for each value of the condition property that " "you want to match (at least one such element is required, if the condition " "property is not boolean)" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2437 #, no-c-format msgid "<default>" msgstr "<default>" #. Tag: para #. +> trunk5 #: index.docbook:2438 #, no-c-format msgid "" "If the condition property is not boolean, the optional <default>-" "element, allows to specify the behavior, if no <case> element is " "matches the value of the condition property (optional, allowed only once, in " "combination with one or more <case> elements)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2442 #, no-c-format msgid "" "Child elements <true>, <false>, <case>, and <" "default> take the following attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2446 #, no-c-format msgid "" "Only for <case>-elements: The value to match the condition property " "against (required, string)." msgstr "" "Solo per gli elementi <case>: il valore con cui confrontare la " "proprietà della condizione (richiesto, stringa)." #. Tag: parameter #. +> trunk5 #: index.docbook:2449 #, no-c-format msgid "fixed_value" msgstr "fixed_value" #. Tag: para #. +> trunk5 #: index.docbook:2450 #, no-c-format msgid "" "A fixed string that should be supplied as the value of the <switch> " "property, if the current condition matches (required, if dynamic_value is " "not supplied)." msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2453 #, no-c-format msgid "dynamic_value" msgstr "dynamic_value" #. Tag: para #. +> trunk5 #: index.docbook:2454 #, no-c-format msgid "" "The id of the target property that should be supplied " "as the value of the <switch> property, if the current condition " "matches (required, if fixed_value is not supplied)." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2461 #, no-c-format msgid "<connect>" msgstr "<connect>" #. Tag: para #. +> trunk5 #: index.docbook:2462 #, no-c-format msgid "" "Connects two properties. The client property will be changed whenever the " "governor property changes (but not the other way around). Attributes:" msgstr "" "Collega due proprietà. La proprietà del client sarà modificata ogni volta " "che cambia la proprietà governor (ma non viceversa). Attributi:" #. Tag: parameter #. +> trunk5 #: index.docbook:2465 #, no-c-format msgid "client" msgstr "client" #. Tag: para #. +> trunk5 #: index.docbook:2466 #, no-c-format msgid "" "The ID of the client property, &ie; the property that will be adjusted " "(required)" msgstr "" "L'ID della proprietà del client, &ie; la proprietà che sarà modificata " "(necessario)" #. Tag: parameter #. +> trunk5 #: index.docbook:2469 #, no-c-format msgid "governor" msgstr "governor" #. Tag: para #. +> trunk5 #: index.docbook:2470 #, no-c-format msgid "" "The ID of the governor property, &ie; the property that will adjusts the " "client property. This may include a modifier (required)" msgstr "" "L'ID della proprietà governor, &ie; la proprietà che regolerà la proprietà " "del cliente. Questo può includere un modificatore (richiesto)" #. Tag: parameter #. +> trunk5 #: index.docbook:2473 #, no-c-format msgid "reconcile" msgstr "reconcile" #. Tag: para #. +> trunk5 #: index.docbook:2474 #, no-c-format msgid "" "If \"true\", the client property will make adjust the governor property on " "connection in such a way that the governor property will only accept values " "that are also acceptable by the client (⪚ suppose the governor is a " "numeric property with min value \"0\", and the client is a numeric property " "with min value \"100\". The min of both properties will be adjusted to 100, " "if reconcile=\"true\"). Generally works only for properties of the same " "basic type (optional, default to \"false\")" msgstr "" "Se \"true\", la proprietà client farà regolare la proprietà del governor " "sulla connessione in modo tale che la proprietà del governor accetti solo " "valori accettabili anche dal client (⪚ supponiamo che il governor sia una " "proprietà numerica con valore minimo «0» e il client sia una proprietà " "numerica con valore minimo «100». Il minimo di entrambe le proprietà sarà " "regolato su 100, se reconcile=\"true\"). Funziona generalmente solo per " "proprietà dello stesso tipo di base (facoltativo, predefinito su \"false\")" #. Tag: term #. +> trunk5 #: index.docbook:2480 #, no-c-format msgid "<dependency_check>" msgstr "<dependency_check>" #. Tag: para #. +> trunk5 #: index.docbook:2481 #, no-c-format msgid "" "Creates a boolean property that is true, if the specified dependencies are " "met, false otherwise. The &XML; syntax of the element is the same as that of " "the <dependencies> element, described in the &pluginmap; reference. As of &rkward; " "0.6.1, only the &rkward; and &R; version specifications are taken into " "account, not dependencies on packages or pluginmaps." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2485 #, no-c-format msgid "<script>" msgstr "<script>" #. Tag: para #. +> trunk5 #: index.docbook:2486 #, no-c-format msgid "" "Define script code to control UI logic. See the section on scripted GUJI logic for details. The script code to " "run can be given either using the \"file\" attribute, " "or as a (commented) text of the element. The <script> element is not allowed in the <logic> " "section of an optionset. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2490 #, no-c-format msgid "File name of the script file. (required)" msgstr "Nome del file di script. (necessario)" #. Tag: title #. +> trunk5 #: index.docbook:2500 #, no-c-format msgid "Properties of plugin elements" msgstr "Proprietà degli elementi dell'estensione" #. Tag: para #. +> trunk5 #: index.docbook:2501 #, no-c-format msgid "" "All layout elements, and all active elements hold the following " "properties, accessible via \"id_of_element.name_of_property\":" msgstr "" "Tutti gli elementi di struttura e " "tutti gli elementi attivi contengono " "le seguenti proprietà, accessibili tramite «id_elemento.nome_proprietà»:" #. Tag: term #. +> trunk5 #: index.docbook:2505 #, no-c-format msgid "visible" msgstr "visible" #. Tag: para #. +> trunk5 #: index.docbook:2506 #, no-c-format msgid "Whether the &GUI; element is visible or not (boolean)" msgstr "Decidere se l'elemento della &GUI; è visibile o meno (booleano)" #. Tag: term #. +> trunk5 #: index.docbook:2509 index.docbook:2621 #, no-c-format msgid "enabled" msgstr "enabled" #. Tag: para #. +> trunk5 #: index.docbook:2510 #, no-c-format msgid "Whether the &GUI; element is enabled or not (boolean)" msgstr "Decidere se l'elemento della &GUI; è abilitato o meno (booleano)" #. Tag: term #. +> trunk5 #: index.docbook:2513 #, no-c-format msgid "required" msgstr "required" #. Tag: para #. +> trunk5 #: index.docbook:2514 #, no-c-format msgid "" "Whether the &GUI; element is required (to hold a valid setting) or not. Note " "that any element which is disabled or hidden is also implicitly non-required " "(boolean)." msgstr "" "Decidere se l'elemento della &GUI; è richiesto (per contenere " "un'impostazione valida) o meno. Notare che qualsiasi elemento che è " "disabilitato o nascosto è anche implicitamente non richiesto (booleano)." #. Tag: para #. +> trunk5 #: index.docbook:2517 #, no-c-format msgid "" "In addition to this, some elements have additional properties you can " "connect to. Most active elements also have a \"default\" property whose " "value will be returned on calls to getBoolean/getString/getList " "(\"...\"), if no specific property was named, as described below." msgstr "" "Inoltre, alcuni elementi hanno proprietà aggiuntive a cui è possibile " "connettersi. La maggior parte degli elementi attivi ha anche una proprietà " "«predefinita» il cui valore sarà restituito sulle chiamate a " "getBoolean/getString/getList(\"...\"), se non è stata " "nominata alcuna proprietà specifica, come descritto di seguito." #. Tag: para #. +> trunk5 #: index.docbook:2524 #, no-c-format msgid "Default property is text" msgstr "La proprietà predefinita è text" #. Tag: term #. +> trunk5 #: index.docbook:2527 index.docbook:2654 #, no-c-format msgid "text" msgstr "text" #. Tag: para #. +> trunk5 #: index.docbook:2528 #, no-c-format msgid "The text displayed (text)" msgstr "Il testo visualizzato (testo)" #. Tag: para #. +> trunk5 #: index.docbook:2535 index.docbook:2788 #, no-c-format msgid "No default property" msgstr "Nessuna proprietà predefinita" #. Tag: term #. +> trunk5 #: index.docbook:2538 index.docbook:2557 index.docbook:2572 #, no-c-format msgid "selected" msgstr "selected" #. Tag: para #. +> trunk5 #: index.docbook:2539 #, no-c-format msgid "" "The objects currently selected. You probably do not want to use this. Used " "internally (RObject)" msgstr "" "Gli oggetti attualmente selezionati. Probabilmente non si dovranno " "utilizzare. Utilizzati internamente (RObject)" #. Tag: term #. +> trunk5 #: index.docbook:2542 #, no-c-format msgid "root" msgstr "root" #. Tag: para #. +> trunk5 #: index.docbook:2543 #, no-c-format msgid "The root/parent object of the objects offered for selection (RObject)" msgstr "" "L'oggetto radice/genitore degli oggetti offerti per la selezione (RObject)" #. Tag: para #. +> trunk5 #: index.docbook:2550 #, no-c-format msgid "Default property is \"available\"" msgstr "La proprietà predefinita è «available»" #. Tag: term #. +> trunk5 #: index.docbook:2553 index.docbook:2576 #, no-c-format msgid "available" msgstr "available" #. Tag: para #. +> trunk5 #: index.docbook:2554 #, no-c-format msgid "All objects held in the varslot (RObject)" msgstr "Tutti gli oggetti contenuti nel varslot (RObject)" #. Tag: para #. +> trunk5 #: index.docbook:2558 #, no-c-format msgid "" "Of the objects held in the varslot, those that are currently selected. You " "probably do not want to use this. Used internally (RObject)" msgstr "" "Degli oggetti contenuti nel varslot, quelli attualmente selezionati. " "Probabilmente non si dovranno utilizzare. Utilizzati internamente (RObject)" #. Tag: term #. +> trunk5 #: index.docbook:2561 #, no-c-format msgid "source" msgstr "source" #. Tag: para #. +> trunk5 #: index.docbook:2562 #, no-c-format msgid "" "A copy of the objects selected in the corresponding varselector. You " "probably do not want to use this. Used internally (RObject)" msgstr "" "Una copia degli oggetti selezionati nel corrispondente selettore. " "Probabilmente non si dovranno utilizzare. Utilizzati internamente (RObject)" #. Tag: para #. +> trunk5 #: index.docbook:2569 #, no-c-format msgid "Default property is \"selected\"" msgstr "La proprietà predefinita è «selected»" #. Tag: para #. +> trunk5 #: index.docbook:2573 #, no-c-format msgid "" "The strings currently selected. Modifier \"labeled\" to retrieve the " "corresponding labels. In a <valueselector> you probably do not want to " "use this, directly (only in a <select>). (read/write StringList)" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2577 #, no-c-format msgid "The list of string values to select from. (read/write StringList)" msgstr "" "L'elenco di valori di stringa da cui selezionare. (lettura/scrittura " "StringList)" #. Tag: term #. +> trunk5 #: index.docbook:2580 index.docbook:2772 index.docbook:3081 #, no-c-format msgid "labels" msgstr "labels" #. Tag: para #. +> trunk5 #: index.docbook:2581 #, no-c-format msgid "Labels to display for the string values. (read/write StringList)" msgstr "" "Etichette da visualizzare per i valori di stringa. (lettura/scrittura " "StringList)" #. Tag: para #. +> trunk5 #: index.docbook:2588 #, no-c-format msgid "" "Same as <varslot>, but the properties are lists of strings, instead of " "RObjects." msgstr "" "Come <varslot>, ma le proprietà sono elenchi di stringhe, anziché " "RObjects." #. Tag: para #. +> trunk5 #: index.docbook:2593 #, no-c-format msgid "Default property is \"string\"" msgstr "La proprietà predefinita è «string»" #. Tag: term #. +> trunk5 #: index.docbook:2596 #, no-c-format msgid "string" msgstr "string" #. Tag: para #. +> trunk5 #: index.docbook:2597 #, no-c-format msgid "The value of the currently selected option (string)" msgstr "Il valore dell'opzione attualmente selezionata (stringa)" #. Tag: term #. +> trunk5 #: index.docbook:2600 #, no-c-format msgid "number" msgstr "number" #. Tag: para #. +> trunk5 #: index.docbook:2601 #, no-c-format msgid "" "The number of the currently selected option (options are numbered top-to-" "bottom, starting at 0) (integer)" msgstr "" "Il numero dell'opzione attualmente selezionata (le opzioni sono numerate " "dall'alto verso il basso, a partire da 0) (intero)" #. Tag: para #. +> trunk5 #: index.docbook:2608 #, no-c-format msgid "Same as <radio>" msgstr "Uguale a <radio>" #. Tag: para #. +> trunk5 #: index.docbook:2613 #, no-c-format msgid "Same as <valueselector>" msgstr "Uguale a <valueselector>" #. Tag: para #. +> trunk5 #: index.docbook:2618 #, no-c-format msgid "" "No default property. \"enabled\" is the *only* property, and it is not " "currently available for options inside a <select> or <" "valueselector>. <option> does not have the \"visible\" or \"required" "\" properties." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2622 #, no-c-format msgid "" "Whether this single option should be enabled or disabled. In most cases you " "will enable/disable the entire <radio< or <dropdown<, instead. " "But this can be used to dynamically set the enabledness of a single option " "inside a <radio< or <dropdown< (bool)" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2629 #, no-c-format msgid "" "Default property is \"state.labeled\", which means that the values specified " "by the value, and value_unchecked-attributes are returned, not the displayed " "label of the check box." msgstr "" "La proprietà predefinita è «state.labeled», il che significa che sono " "restituiti i valori specificati dagli attributi value " "e value_unchecked,non " "l'etichetta visualizzata della casella di selezione." #. Tag: term #. +> trunk5 #: index.docbook:2632 index.docbook:2802 #, no-c-format msgid "state" msgstr "state" #. Tag: para #. +> trunk5 #: index.docbook:2633 #, no-c-format msgid "" "State of the check box (on or off). Note that useful modifiers of this " "property (as of all boolean properties) are \"not\" and \"labeled\" (see " "types of properties). However, often " "it is most useful to connect to the property with no modifier, &ie; " "\"checkbox_id.state\", which will return the state of " "the check box in a format suitable for use in an if statement (0 or 1). " "(boolean)" msgstr "" "Stato della casella di controllo (attivata o disattivata). Nota che utili " "modificatori di questa proprietà (come di tutte le proprietà booleane) sono " "«not» e «labeled» (vedere tipi di proprietà). Tuttavia, spesso è molto utile connettersi alla proprietà senza " "modificatore, &ie; «checkbox_id.state», che restituirà " "lo stato della casella di controllo in un formato adatto all'uso in " "un'istruzione if (0 o 1). (booleano)" #. Tag: para #. +> trunk5 #: index.docbook:2640 #, no-c-format msgid "" "Default property is \"checked\", if - and only if - the frame is checkable. " "For non-checkable frames, there is no default property." msgstr "" "La proprietà predefinita è «checked», se - e solo se - la cornice è " "controllabile. Per le cornici non verificabili, non esiste una proprietà " "predefinita." #. Tag: term #. +> trunk5 #: index.docbook:2643 #, no-c-format msgid "checked" msgstr "checked" #. Tag: para #. +> trunk5 #: index.docbook:2644 #, no-c-format msgid "" "Available for checkable frames, only: state of the check box (on or off). " "Note that useful modifiers of this property (as of all boolean properties) " "are \"not\" and \"numeric\" (see types of " "properties). (boolean)" msgstr "" "Disponibile solo per cornici selezionabili: stato della casella di controllo " "(attiva o disattiva). Notare che utili modificatori di questa proprietà " "(come di tutte le proprietà booleane) sono «not» e «numeric» (vedere tipi di proprietà). (booleano)" #. Tag: para #. +> trunk5 #: index.docbook:2651 #, no-c-format msgid "Default property is \"text\"" msgstr "La proprietà predefinita è «text»" #. Tag: para #. +> trunk5 #: index.docbook:2655 #, no-c-format msgid "Current text in the input field (string)" msgstr "Testo attuale nel campo di inserimento (stringa)" #. Tag: para #. +> trunk5 #: index.docbook:2662 #, no-c-format msgid "Default property is \"cbind\"." msgstr "La proprietà predefinita è «cbind»." #. Tag: term #. +> trunk5 #: index.docbook:2665 #, no-c-format msgid "rows" msgstr "rows" #. Tag: para #. +> trunk5 #: index.docbook:2666 #, no-c-format msgid "" "Number of rows in the matrix (integer). If the matrix allows the user to " "add / remove rows, this property should be treated as read-only. Otherwise, " "changing it, will change the size of the matrix." msgstr "" "Numero di righe nella matrice (numero intero). Se la matrice consente " "all'utente di aggiungere / rimuovere righe, questa proprietà deve essere " "considerata di sola lettura. Altrimenti, cambiandolo, cambierà la dimensione " "della matrice." #. Tag: term #. +> trunk5 #: index.docbook:2669 #, no-c-format msgid "columns" msgstr "columns" #. Tag: para #. +> trunk5 #: index.docbook:2670 #, no-c-format msgid "" "Number of columns in the matrix (integer). If the matrix allows the user to " "add / remove columns, this property should be treated as read-only. " "Otherwise, changing it, will change the size of the matrix." msgstr "" "Numero di colonne nella matrice (numero intero). Se la matrice consente " "all'utente di aggiungere / rimuovere colonne, questa proprietà deve essere " "considerata di sola lettura. Altrimenti, cambiandolo, cambierà la dimensione " "della matrice." #. Tag: term #. +> trunk5 #: index.docbook:2673 #, no-c-format msgid "tsv" msgstr "tsv" #. Tag: para #. +> trunk5 #: index.docbook:2674 #, no-c-format msgid "" "Data in the matrix in tsv format (string; read-write). Note that compared to " "the usual tsv layout, columns, not rows, are separated " "by newline characters, and cells within a column are separated by tabulator " "characters." msgstr "" "Dati nella matrice in formato tsv (stringa; lettura-scrittura). Si noti che " "rispetto alla solita struttura tsv, colonne, non righe, " "sono separate da caratteri da caratteri di interruzione di riga e le celle " "all'interno di una colonna sono separate da caratteri di tabulazione." #. Tag: term #. +> trunk5 #: index.docbook:2677 #, no-c-format msgid "0,1,2..." msgstr "0,1,2..." #. Tag: para #. +> trunk5 #: index.docbook:2678 #, no-c-format msgid "" "The data from a single column (0 for leftmost column). getValue()/getString() returns this as a single string, " "separated by \"\\n\". However, the recommended way to get this is using " "getList(), which returns this column as an array of " "strings." msgstr "" "I dati da una singola colonna (0 per la colonna più a sinistra). " "getValue() / getString() " "restituisce questo come una singola stringa, separata da «\\n». Tuttavia, il " "modo consigliato per ottenerlo è utilizzare getList(), " "che restituisce questa colonna come un vettore di stringhe." #. Tag: term #. +> trunk5 #: index.docbook:2681 #, no-c-format msgid "row.0,row.1,row.2..." msgstr "riga.0,riga.1,riga.2..." #. Tag: para #. +> trunk5 #: index.docbook:2682 #, no-c-format msgid "" "The data from a single row (0 for topmost row). getValue()/getString() returns this as a single string, " "separated by \"\\n\". However, the recommended way to get this is using " "getList(), which returns this row as an array of " "strings." msgstr "" "I dati da una singola riga (0 per la riga più in alto). " "getValue() / getString() " "restituisce questo come una singola stringa, separata da «\\n». Tuttavia, il " "modo consigliato per ottenerlo è utilizzare getList(), " "che restituisce questa riga come un vettore di stringhe." #. Tag: term #. +> trunk5 #: index.docbook:2685 #, no-c-format msgid "cbind" msgstr "cbind" #. Tag: para #. +> trunk5 #: index.docbook:2686 #, no-c-format msgid "" "Data in a format suitable for pasting to &R;, wrapped in a cbind statement " "(string; read-only)." msgstr "" "Dati in un formato adatto per incollare in &R;, racchiusi in un'istruzione " "cbind (stringa; sola lettura)." #. Tag: para #. +> trunk5 #: index.docbook:2693 #, no-c-format msgid "No default property." msgstr "Nessuna proprietà predefinita." #. Tag: term #. +> trunk5 #: index.docbook:2696 #, no-c-format msgid "row_count" msgstr "row_count" #. Tag: para #. +> trunk5 #: index.docbook:2697 #, no-c-format msgid "Number of items in the optionset (integer). Read-only." msgstr "Numero di elementi nell'insieme di opzioni (intero). Sola lettura." #. Tag: term #. +> trunk5 #: index.docbook:2700 #, no-c-format msgid "current_row" msgstr "current_row" #. Tag: para #. +> trunk5 #: index.docbook:2701 #, no-c-format msgid "" "Currently active item in the optionset (integer). -1 for no active item. " "Read-write." msgstr "" "Elemento attualmente attivo nell'insieme di opzioni (intero). -1 per nessun " "elemento attivo. Lettura-scrittura." #. Tag: emphasis #. +> trunk5 #: index.docbook:2704 #, no-c-format msgid "optioncolumn_ids" msgstr "optioncolumn_ids" #. Tag: para #. +> trunk5 #: index.docbook:2705 #, no-c-format msgid "" "For each <optioncolumn> you define, a string list property will be " "created with the specified id." msgstr "" "Per ogni <optioncolumn> specificata, sarà creata una proprietà " "dell'elenco di stringhe con l'id specificato." #. Tag: para #. +> trunk5 #: index.docbook:2712 index.docbook:2723 #, no-c-format msgid "Default property is \"selection\"" msgstr "La proprietà predefinita è «selection»" #. Tag: term #. +> trunk5 #: index.docbook:2715 index.docbook:2726 #, no-c-format msgid "selection" msgstr "selection" #. Tag: para #. +> trunk5 #: index.docbook:2716 #, no-c-format msgid "Current text (selected file name) in the browser (string)" msgstr "Testo attuale (nome file selezionato) nel browser (stringa)" #. Tag: para #. +> trunk5 #: index.docbook:2727 #, no-c-format msgid "" "Full name of the selected object (string; read-only - to set this " "programmatically, use \"parent\", and \"objectname\")" msgstr "" "Nome completo dell'oggetto selezionato (stringa; sola lettura - per " "impostarlo a livello di codice, utilizzare «parent» e «objectname»)" #. Tag: term #. +> trunk5 #: index.docbook:2730 #, no-c-format msgid "parent" msgstr "parent" #. Tag: para #. +> trunk5 #: index.docbook:2731 #, no-c-format msgid "" "The parent object of the selected object. This is always an existing &R; " "object of a type that can contain other objects (⪚ a list or data.frame). " "When set to an empty string or an invalid object, \".GlobalEnv\" is assumed " "(RObject)" msgstr "" "L'oggetto principale dell'oggetto selezionato. Questo è sempre un oggetto di " "&R; oggetto di un tipo che può contenere altri oggetti (ad es. un elenco o " "una cornice di dati). Se impostato su una stringa vuota o un oggetto non " "valido, viene assunto «.GlobalEnv» (RObject)" #. Tag: term #. +> trunk5 #: index.docbook:2734 #, no-c-format msgid "objectname" msgstr "objectname" #. Tag: para #. +> trunk5 #: index.docbook:2735 #, no-c-format msgid "" "The base-name of the selected object, &ie; the string entered by the user " "(changed to a valid &R; name, if necessary) (string)" msgstr "" "Il nome base dell'oggetto selezionato, &ie; la stringa inserita dall'utente " "(modificata in un nome &R; valido, se necessario) (stringa)" #. Tag: term #. +> trunk5 #: index.docbook:2738 #, no-c-format msgid "active" msgstr "active" #. Tag: para #. +> trunk5 #: index.docbook:2739 #, no-c-format msgid "" "For checkable saveobjects, only: Whether the control is checked/enabled. " "Always true for non-checkable saveobjects (bool)" msgstr "" "Solo per getti di salvataggio verificabili: se il controllo è selezionato/" "abilitato. Sempre vero per saveobject non marcabili (booleano)" #. Tag: para #. +> trunk5 #: index.docbook:2746 #, no-c-format msgid "" "Default property is either \"int\" or \"real.formatted\" depending on the " "spinbox's mode" msgstr "" "La proprietà predefinita è «int» o «real.formatted» a seconda della modalità " "della casella di selezione" #. Tag: term #. +> trunk5 #: index.docbook:2749 #, no-c-format msgid "int" msgstr "int" #. Tag: para #. +> trunk5 #: index.docbook:2750 #, no-c-format msgid "" "Integer value held by the spinbox, or nearest integer, if in real mode " "(integer)" msgstr "" "Valore intero mantenuto dalla casella di selezione o intero più vicino, se " "in modalità reale (intero)" #. Tag: term #. +> trunk5 #: index.docbook:2753 #, no-c-format msgid "real" msgstr "real" #. Tag: para #. +> trunk5 #: index.docbook:2754 #, no-c-format msgid "Real value held by the spinbox (and integer, if in integer) (real)" msgstr "" "Valore reale mantenuto dalla casella di selezione (e intero, se in numero " "intero) (reale)" #. Tag: para #. +> trunk5 #: index.docbook:2761 #, no-c-format msgid "Default property is \"model\"" msgstr "La proprietà predefinita è «model»" #. Tag: term #. +> trunk5 #: index.docbook:2764 #, no-c-format msgid "model" msgstr "model" #. Tag: para #. +> trunk5 #: index.docbook:2765 #, no-c-format msgid "The current model string (string)" msgstr "La stringa del modello attuale (stringa)" #. Tag: term #. +> trunk5 #: index.docbook:2768 #, no-c-format msgid "table" msgstr "table" #. Tag: para #. +> trunk5 #: index.docbook:2769 #, no-c-format msgid "" "The data.frame holding the required variables. If variables from only one " "data.frame are used, the name of that data.frame is returned. Otherwise a " "new data.frame is constructed as required (string)" msgstr "" "La cornice di dati che contiene le variabili richieste. Se vengono " "utilizzate variabili di una sola cornice, viene restituito il nome di quella " "cornice. Altrimenti viene creata una nuovo cornice di dati come richiesto " "(stringa)" #. Tag: para #. +> trunk5 #: index.docbook:2773 #, no-c-format msgid "" "If variables from multiple data.frames are involved, their names may get " "mangled (for instance, if both data.frames contain a variable named \"x\"). " "This returns a list with the mangled names as indices and the descriptive " "label as value (string)" msgstr "" "Se sono coinvolte variabili da più cornici di dati, i loro nomi potrebbero " "essere alterati (ad esempio, se entrambe le cornici contengono una variabile " "denominata «x»). Ciò restituisce un elenco con i nomi alterati come indici e " "l'etichetta descrittiva come valore (stringa)" #. Tag: term #. +> trunk5 #: index.docbook:2776 #, no-c-format msgid "fixed_factors" msgstr "fixed_factors" #. Tag: para #. +> trunk5 #: index.docbook:2777 #, no-c-format msgid "" "The fixed factors. You probably do not want to use this. Used internally " "(RObject)" msgstr "" "I fattori costanti. Probabilmente non si dovranno utilizzare. Utilizzati " "internamente (RObject)" #. Tag: term #. +> trunk5 #: index.docbook:2780 #, no-c-format msgid "dependent" msgstr "dependent" #. Tag: para #. +> trunk5 #: index.docbook:2781 #, no-c-format msgid "" "The dependent variable(s). You probably do not want to use this. Used " "internally (RObject)" msgstr "" "Le variabili dipendenti. Probabilmente non si dovranno utilizzare. " "Utilizzate internamente (RObject)" #. Tag: term #. +> trunk5 #: index.docbook:2791 #, no-c-format msgid "code" msgstr "code" #. Tag: para #. +> trunk5 #: index.docbook:2792 #, no-c-format msgid "The code generated by the embedded plugin (code)" msgstr "Il codice generato dall'estensione integrata (codice)" #. Tag: para #. +> trunk5 #: index.docbook:2799 #, no-c-format msgid "Default property is \"state\"" msgstr "La proprietà predefinita è «state»" #. Tag: para #. +> trunk5 #: index.docbook:2803 #, no-c-format msgid "" "Whether the preview box is checked (not necessarily whether the preview has " "already been shown) (boolean)" msgstr "" "Se la casella di anteprima è selezionata (non necessariamente se l'anteprima " "è già stata mostrata) (booleano)" #. Tag: para #. +> trunk5 #: index.docbook:2810 #, no-c-format msgid "" "This element (used in the <logic> section) is special, in that is " "technically *is* a property, instead of just holding one or more properties. " "It is of boolean kind. Note that useful modifiers of this property (as of " "all boolean properties) are \"not\" and \"numeric\" (see types of properties)" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2815 #, no-c-format msgid "" "This element (used in the <logic> section) is special, in that is " "technically *is* a (string) property, instead of just holding one or more " "properties. It allows to switch between several target properties depending " "on the value of a condition property, or to re-map values of the condition " "property. Any modifiers that you supply are passed on to the target " "properties, thus, ⪚ if all target properties are RObject properties, you " "can use the \"shortname\" modifier on the switch, too. However, if the " "target properties are of different types, using modifiers may lead to " "errors. For fixed_values, any modifier is " "dropped, silently. Note that target properties, when accessed through a " "switch, are always read-only." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:2823 #, no-c-format msgid "Embeddable plugins shipped with the official &rkward; release" msgstr "Estensioni integrabili fornite dalla versione ufficiale di &rkward;" #. Tag: para #. +> trunk5 #: index.docbook:2824 #, no-c-format msgid "" "A number of embeddable plugins is shipped with &rkward;, and can be used in " "your own plugins. Detailed documentation is currently available only in " "these plugins source or help files. However, here is a list to give you a " "quick overview of what is available:" msgstr "" "Un certo numero di estensioni integrabili è fornito con &rkward;, e può " "essere utilizzato nelle proprie estensioni. La documentazione dettagliata è " "attualmente disponibile solo nella fonte di queste estensioni o nei file " "della guida. Tuttavia, ecco un elenco per darvi una rapida panoramica di ciò " "che è disponibile:" #. Tag: title #. +> trunk5 #: index.docbook:2826 #, no-c-format msgid "Standard embeddable plugins" msgstr "Estensioni standard integrabili" #. Tag: entry #. +> trunk5 #: index.docbook:2830 #, no-c-format msgid "ID" msgstr "ID" #. Tag: entry #. +> trunk5 #: index.docbook:2831 #, no-c-format msgid "Pluginmap" msgstr "Mappa delle estensioni" #. Tag: entry #. +> trunk5 #: index.docbook:2832 #, no-c-format msgid "Description" msgstr "Descrizione" #. Tag: entry #. +> trunk5 #: index.docbook:2833 #, no-c-format msgid "Example usage" msgstr "Esempio d'uso" #. Tag: entry #. +> trunk5 #: index.docbook:2838 #, no-c-format msgid "rkward::plot_options" msgstr "rkward::plot_options" #. Tag: entry #. +> trunk5 #: index.docbook:2839 index.docbook:2845 index.docbook:2852 index.docbook:2858 #: index.docbook:2864 index.docbook:2870 index.docbook:2876 index.docbook:2882 #: index.docbook:2888 #, no-c-format msgid "embedded.pluginmap" msgstr "embedded.pluginmap" #. Tag: entry #. +> trunk5 #: index.docbook:2840 #, no-c-format msgid "" "Provides a wide range of options for plots. Most plotting plugins utilize " "this." msgstr "" "Fornisce una vasta gamma di opzioni per i grafici. La maggior parte delle " "estensioni di tracciamento dei grafici la utilizza." #. Tag: entry #. +> trunk5 #: index.docbook:2841 #, no-c-format msgid "Plots->Barplot, most other plotting plugins" msgstr "" "Grafici->Grafici a barre, la maggior parte delle altre estensioni di " "tracciamento dei grafici" #. Tag: entry #. +> trunk5 #: index.docbook:2844 #, no-c-format msgid "rkward::color_chooser" msgstr "rkward::color_chooser" #. Tag: entry #. +> trunk5 #: index.docbook:2846 #, no-c-format msgid "" "Very simple plugin for specifying a color. Current implementation provides a " "list of color names. Future implementations may provide more elaborate color " "picking." msgstr "" "Estensione molto semplice per specificare un colore. L'attuale " "implementazione fornisce un elenco di nomi di colori. Le future " "implementazioni potrebbero fornire una scelta del colore più elaborata." #. Tag: entry #. +> trunk5 #: index.docbook:2848 index.docbook:2860 #, no-c-format msgid "Plots->Histogram" msgstr "Grafici->Istogramma" #. Tag: entry #. +> trunk5 #: index.docbook:2851 #, no-c-format msgid "rkward::plot_stepfun_options" msgstr "rkward::plot_stepfun_options" #. Tag: entry #. +> trunk5 #: index.docbook:2853 #, no-c-format msgid "Step function plot options" msgstr "Opzioni del grafico della funzione a gradino" #. Tag: entry #. +> trunk5 #: index.docbook:2854 #, no-c-format msgid "Plots->ECDF plot" msgstr "Grafici->Grafico ECDF" #. Tag: entry #. +> trunk5 #: index.docbook:2857 #, no-c-format msgid "rkward::histogram_options" msgstr "rkward::histogram_options" #. Tag: entry #. +> trunk5 #: index.docbook:2859 #, no-c-format msgid "Histogram (plot) options" msgstr "Opzioni istogramma (grafico)" #. Tag: entry #. +> trunk5 #: index.docbook:2863 #, no-c-format msgid "rkward::barplot_embed" msgstr "rkward::barplot_embed" #. Tag: entry #. +> trunk5 #: index.docbook:2865 #, no-c-format msgid "Barplot options" msgstr "Opzioni del grafico a barre" #. Tag: entry #. +> trunk5 #: index.docbook:2866 index.docbook:2872 index.docbook:2878 #, no-c-format msgid "Plots->Barplot" msgstr "Grafici->Grafico a barre" #. Tag: entry #. +> trunk5 #: index.docbook:2869 #, no-c-format msgid "rkward::one_var_tabulation" msgstr "rkward::one_var_tabulation" #. Tag: entry #. +> trunk5 #: index.docbook:2871 #, no-c-format msgid "Provides tabulation on a single variable." msgstr "Fornisce una tabulazione su una singola variabile." #. Tag: entry #. +> trunk5 #: index.docbook:2875 #, no-c-format msgid "rkward::limit_vector_length" msgstr "rkward::limit_vector_length" #. Tag: entry #. +> trunk5 #: index.docbook:2877 #, no-c-format msgid "Limit the length of a vector (to the n largest or smallest elements)." msgstr "" "Limita la lunghezza di un vettore (agli n elementi più grandi o più piccoli)." #. Tag: entry #. +> trunk5 #: index.docbook:2881 #, no-c-format msgid "rkward::level_select" msgstr "rkward::level_select" #. Tag: entry #. +> trunk5 #: index.docbook:2883 #, no-c-format msgid "" "Provides a <valueselector> filled with the levels (or unique values) " "of a vector." msgstr "" "Fornisce un <varselector> riempito con i livelli (o valori univoci) di " "un vettore." #. Tag: entry #. +> trunk5 #: index.docbook:2884 index.docbook:2890 #, no-c-format msgid "Data->Recode Categorical data" msgstr "Dati->Ricodifica i dati categorici" #. Tag: entry #. +> trunk5 #: index.docbook:2887 #, no-c-format msgid "rkward::multi_input" msgstr "rkward::multi_input" #. Tag: entry #. +> trunk5 #: index.docbook:2889 #, no-c-format msgid "" "Combines spinbox, input and radio controls to provide input for character, " "numeric, logical data." msgstr "" "Combina caselle di selezione, controlli di inserimento e radio per fornire " "ingressi per caratteri, numeri e dati logici." #. Tag: title #. +> trunk5 #: index.docbook:2897 #, no-c-format msgid "Elements for use in &pluginmap; files" msgstr "Elementi da utilizzare nei file di &pluginmap;" #. Tag: para #. +> trunk5 #: index.docbook:2901 #, no-c-format msgid "" "Needs to be present in each &pluginmap; file as the root-node (exactly " "once). Attributes:" msgstr "" "Deve essere presente in ogni file di &pluginmap; come nodo radice " "(esattamente una volta). Attributi:" #. Tag: term #. +> trunk5 #: index.docbook:2904 #, no-c-format msgid "base_prefix" msgstr "base_prefix" #. Tag: para #. +> trunk5 #: index.docbook:2905 #, no-c-format msgid "" "Filenames specified in the &pluginmap; file are assumed to be relative to " "the directory of the &pluginmap; file + the prefix you specify here. Useful, " "esp., if all your components are located below a single subdirectory." msgstr "" "Nomi file specificati nella &pluginmap; si presume che il file sia relativo " "alla cartella dei file di &pluginmap; + il prefisso specificato qui. Utile, " "in particolare, se tutti i componenti si trovano sotto una singola " "sottocartella." #. Tag: term #. +> trunk5 #: index.docbook:2908 #, no-c-format msgid "namespace" msgstr "namespace" #. Tag: para #. +> trunk5 #: index.docbook:2909 #, no-c-format msgid "" "A namespace for the component ids. When looking up components for embedding, " "the components will be retrievable via a string \"namespace::component_id\". " "Set to \"rkward\" for now." msgstr "" "Uno spazio dei nomi per gli ID dei componenti. Quando si cercano componenti " "per l'integrazione, i componenti saranno recuperabili tramite una stringa " "«namespace::id_componente». Impostare su «rkward» per ora." #. Tag: term #. +> trunk5 #: index.docbook:2912 index.docbook:3055 index.docbook:3073 index.docbook:3095 #: index.docbook:3127 index.docbook:3145 index.docbook:3191 index.docbook:3213 #: index.docbook:3227 index.docbook:3259 #, no-c-format msgid "id" msgstr "id" #. Tag: para #. +> trunk5 #: index.docbook:2913 #, no-c-format msgid "" "An optional identifier string for this &pluginmap;. Specifying this allows " "third authors to refer to and load your &pluginmap; from theirs (see chapter on handling dependencies)." msgstr "" "Una stringa identificativa facoltativa per questa &pluginmap;. Specificando " "questa opzione, i terzi autori possono fare riferimento e caricare la vostra " "&pluginmap; dalle loro (vedere il capitolo sulla gestione delle dipendenze" #. Tag: term #. +> trunk5 #: index.docbook:2916 #, no-c-format msgid "priority" msgstr "priority" #. Tag: para #. +> trunk5 #: index.docbook:2917 #, no-c-format msgid "" "One of \"hidden\", \"low\", \"medium\", or \"high" "\". &pluginmap;s with priority \"medium\" or \"high\" are " "activated, automatically, when &rkward; first finds them. Use " "priority=\"hidden\" for &pluginmap;s that are not " "meant to be activated, directory (only meant for inclusion). In the current " "implementation this does not actually hide the &pluginmap;, however. " "(Optional, defaults to \"medium\")." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2922 #, no-c-format msgid "<dependencies>" msgstr "<dependencies>" #. Tag: para #. +> trunk5 #: index.docbook:2923 #, no-c-format msgid "" "This element, specifying dependencies, is allowed as a direct child of the " "<document> element (once), and as a child of <component> " "elements (once for each <component> element). Specifies the " "dependencies that must be met in order to use the plugin(s). See the chapter on dependencies for an " "overview. Attributes:" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2926 #, no-c-format msgid "rkward_min_version, rkward_max_version" msgstr "rkward_min_version, rkward_max_version" #. Tag: para #. +> trunk5 #: index.docbook:2927 #, no-c-format msgid "" "Minimum and maximum allowed version of &rkward;. Version specifications may " "include non-numeric suffixes, like \"0.5.7z-devel1\". If a specified " "dependency is not met, the plugin(s) it applies to will be " "ignored. More " "information. Optional; if not specified, no minimum / maximum version " "of &rkward; will be required." msgstr "" "Versione minima e massima consentita di &rkward;. Le specifiche della " "versione possono includere suffissi non numerici, come «0.5.7z-devel1». Se " "una dipendenza specificata non viene soddisfatta, le estensioni che si " "applicano a saranno ignorate. Ulteriori informazioni. " "Facoltativo; se non specificato, nessuna versione minima / massima di " "&rkward; sarà richiesta." #. Tag: term #. +> trunk5 #: index.docbook:2930 #, no-c-format msgid "R_min_version, R_max_version" msgstr "R_min_version, R_max_version" #. Tag: para #. +> trunk5 #: index.docbook:2931 #, no-c-format msgid "" "Minimum and maximum allowed version of &R;. Version specifications may " "not include non-numeric suffixes, like \"0.5.7z-" "devel1\". The &R; version dependency will be shown on the plugins' help " "pages, but does not have any direct effect, as of &rkward; 0.6.1. More information. Optional; " "if not specified, no minimum / maximum version of &R; will be required." msgstr "" "Versione minima e massima consentita di &R;. Le specifiche di versione " "possono non includere suffissi non numerici, come " "«0.5.7z-devel1». La dipendenza della versione di &R; sarà mostrata nelle " "pagine della guida delle estensioni, ma non ha alcun effetto diretto, a " "partire da &rkward; 0.6.1. Ulteriori informazioni. Opzionale; se non specificato, nessuna " "versione minima / massima di &R; sarà richiesta." #. Tag: term #. +> trunk5 #: index.docbook:2937 #, no-c-format msgid "<package>" msgstr "<package>" #. Tag: para #. +> trunk5 #: index.docbook:2938 #, no-c-format msgid "Adds a dependency on a specific &R; package. Attributes:" msgstr "Aggiunge una dipendenza da uno specifico pacchetto di &R;. Attributi:" #. Tag: term #. +> trunk5 #: index.docbook:2941 index.docbook:2960 index.docbook:2982 #, no-c-format msgid "name" msgstr "name" #. Tag: para #. +> trunk5 #: index.docbook:2942 #, no-c-format msgid "Package name (required)." msgstr "Nome del pacchetto (richiesto)." #. Tag: term #. +> trunk5 #: index.docbook:2945 index.docbook:2964 #, no-c-format msgid "min_version, max_version" msgstr "min_version, max_version" #. Tag: para #. +> trunk5 #: index.docbook:2946 index.docbook:2965 #, no-c-format msgid "Minimum / maximum allowed version (optional)." msgstr "Versione minima / massima consentita (facoltativo)." #. Tag: term #. +> trunk5 #: index.docbook:2949 #, no-c-format msgid "repository" msgstr "repository" #. Tag: para #. +> trunk5 #: index.docbook:2950 #, no-c-format msgid "" "Repository where the package can be found. Optional, but highly recommended, " "if the package is not available on CRAN." msgstr "" "Deposito in cui è possibile trovare il pacchetto. Facoltativo, ma altamente " "consigliato, se il pacchetto non è disponibile su CRAN." #. Tag: term #. +> trunk5 #: index.docbook:2956 #, no-c-format msgid "<pluginmap>" msgstr "<pluginmap>" #. Tag: para #. +> trunk5 #: index.docbook:2957 #, no-c-format msgid "Adds a dependency on a specific &rkward; &pluginmap;. Attributes:" msgstr "" "Aggiunge una dipendenza da una specifica &pluginmap; di &rkward;. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:2961 #, no-c-format msgid "Id string of the required &pluginmap; (required)." msgstr "Stringa ID della &pluginmap; richiesta (necessario)." #. Tag: term #. +> trunk5 #: index.docbook:2968 index.docbook:2998 index.docbook:3033 #, no-c-format msgid "url" msgstr "url" #. Tag: para #. +> trunk5 #: index.docbook:2969 #, no-c-format msgid "&URL; where the &pluginmap; can be found. Required." msgstr "&URL; dove può essere trovata la &pluginmap;. Necessario." #. Tag: para #. +> trunk5 #: index.docbook:2979 #, no-c-format msgid "" "May be present exactly once as a direct child of the <document> " "element. Contains meta information on the &pluginmap; (or plugin). See the " "chapter on 'about' information for an overview. Attributes:" msgstr "" "Può essere presente esattamente una volta come figlio diretto dell'elemento " "<document>. Contiene meta informazioni sulla &pluginmap; (o " "estensione). Vedere il capitolo " "su «informazioni» per una panoramica. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:2983 #, no-c-format msgid "" "User visible name. Optional. Does not have to be the same as the \"id\"." msgstr "Nome visibile dell'utente. Facoltativo. Non deve essere uguale a «id»." #. Tag: term #. +> trunk5 #: index.docbook:2986 #, no-c-format msgid "version" msgstr "version" #. Tag: para #. +> trunk5 #: index.docbook:2987 #, no-c-format msgid "" "Version number. Optional. The format is not restricted, but to be on the " "safe side, please follow common versioning schemes such as \"x.y.z\"." msgstr "" "Numero della versione. Facoltativo. Il formato non è limitato, ma per essere " "al sicuro, segui gli schemi di versione comuni come «x.y.z»." #. Tag: term #. +> trunk5 #: index.docbook:2990 #, no-c-format msgid "releasedate" msgstr "releasedate" #. Tag: para #. +> trunk5 #: index.docbook:2991 #, no-c-format msgid "Release date specification. Optional in format \"YYYY-MM-DD\"." msgstr "" "Specifica della data di rilascio. Facoltativo nel formato «AAAA-MM-GG»." #. Tag: term #. +> trunk5 #: index.docbook:2994 #, no-c-format msgid "shortinfo" msgstr "shortinfo" #. Tag: para #. +> trunk5 #: index.docbook:2995 #, no-c-format msgid "" "A short description of the plugin / &pluginmap;. " "Optional." msgstr "" "Una descrizione breve dell'estensione / &pluginmap;. " "Facoltativo." #. Tag: para #. +> trunk5 #: index.docbook:2999 #, no-c-format msgid "&URL; where more information can be found. Optional, but recommended." msgstr "" "&URL; dove è possibile trovare ulteriori informazioni. Facoltativo, ma " "consigliato." #. Tag: term #. +> trunk5 #: index.docbook:3002 #, no-c-format msgid "copyright" msgstr "copyright" #. Tag: para #. +> trunk5 #: index.docbook:3003 #, no-c-format msgid "" "Copyright specification, ⪚ \"2012-2013 by John Doe\". Optional, but " "recommended." msgstr "" "Specifiche del copyright, ⪚ \"2012-2013 di Mario Rossi\". Facoltativo, ma " "consigliato." #. Tag: term #. +> trunk5 #: index.docbook:3006 #, no-c-format msgid "licence" msgstr "licence" #. Tag: para #. +> trunk5 #: index.docbook:3007 #, no-c-format msgid "" "License specification, ⪚ \"GPL\" or \"BSD\". Please make sure to " "accompany your files with a complete copy of the relevant licence. Optional, " "but recommended." msgstr "" "Specifiche della licenza, ⪚ «GPL» o «BSD». Assicurarsi di accompagnare i " "propri file con una copia completa della relativa licenza. Facoltativo, ma " "consigliato." #. Tag: term #. +> trunk5 #: index.docbook:3010 #, no-c-format msgid "category" msgstr "category" #. Tag: para #. +> trunk5 #: index.docbook:3011 #, no-c-format msgid "" "Category of plugin(s), ⪚ \"Item response theory\". As of &rkward; 0.6.1, " "no categories are predefined. Optional." msgstr "" "Categoria di estensione, ⪚ «Teoria della risposta dell'item». A partire " "da &rkward; 0.6.1, nessuna categoria è predefinita. Facoltativo." #. Tag: term #. +> trunk5 #: index.docbook:3017 #, no-c-format msgid "<author>" msgstr "<author>" #. Tag: para #. +> trunk5 #: index.docbook:3018 #, no-c-format msgid "Adds information on an author. Attributes:" msgstr "Aggiunge informazioni su un autore. Attributi:" #. Tag: term #. +> trunk5 #: index.docbook:3021 #, no-c-format msgid "name, given, family" msgstr "nome, nome proprio, cognome" #. Tag: para #. +> trunk5 #: index.docbook:3022 #, no-c-format msgid "" "Either specify the full name for name, or specify " "both given and family, " "separately." msgstr "" "Specificare il nome completo per nome o specificare " "sia nome proprio che cognome, " "separatamente." #. Tag: term #. +> trunk5 #: index.docbook:3025 #, no-c-format msgid "role" msgstr "ruolo" #. Tag: para #. +> trunk5 #: index.docbook:3026 #, no-c-format msgid "Author role description (optional)." msgstr "Descrizione del ruolo dell'autore (facoltativo)." #. Tag: term #. +> trunk5 #: index.docbook:3029 #, no-c-format msgid "email" msgstr "posta elettronica" #. Tag: para #. +> trunk5 #: index.docbook:3030 #, no-c-format msgid "" "E-mail address, where author can be contacted. Required. May be set to the " "rkward-devel mailing list, if you are subscribed, and your plugin is meant " "to be included in the official &rkward; release." msgstr "" "Indirizzo di posta elettronica, dove è possibile contattare l'autore. " "Necessario. Può essere impostato alla lista di distribuzione rkward-devel, " "se si è iscritti, e la propria estensione è pensata per essere inclusa nella " "versione ufficiale di &rkward;." #. Tag: para #. +> trunk5 #: index.docbook:3034 #, no-c-format msgid "&URL; with more information on the author, ⪚ homepage (optional)." msgstr "" "&URL; con ulteriori informazioni sull'autore, ⪚ pagina principale " "(facoltativo)." #. Tag: term #. +> trunk5 #: index.docbook:3043 #, no-c-format msgid "<components>" msgstr "<components>" #. Tag: para #. +> trunk5 #: index.docbook:3044 #, no-c-format msgid "" "Needs to be present exactly once as a direct child of the <document> " "element. Contains the individual <component>-elements described below. " "No attributes." msgstr "" "Deve essere presente esattamente una volta come figlio diretto dell'elemento " "<document>. Contiene i singoli elementi <component> descritti di " "seguito. Nessun attributo." #. Tag: term #. +> trunk5 #: index.docbook:3047 #, no-c-format msgid "<component>" msgstr "<component>" #. Tag: para #. +> trunk5 #: index.docbook:3048 #, no-c-format msgid "" "One or more <component> elements should be given as direct children of " "the <components> element (and only there). Registers a component/" "plugin with rkward. Attributes:" msgstr "" "Uno o più elementi <component> dovrebbero essere dati come figli " "diretti dell'elemento <component> (e solo lì). Registra un componente/" "estensione con rkward. Attributi:" #. Tag: term #. +> trunk5 #: index.docbook:3051 #, no-c-format msgid "type" msgstr "type" #. Tag: para #. +> trunk5 #: index.docbook:3052 #, no-c-format msgid "" "For future extension: The type of component/plugin. Always set to \"standard" "\" for now (the only type currently supported)." msgstr "" "Per future estensioni: il tipo di componente/estensione. Sempre impostato su " "«standard» per ora (l'unico tipo attualmente supportato)." #. Tag: para #. +> trunk5 #: index.docbook:3056 #, no-c-format msgid "" "The ID by which this component can be retrieved (for placing it in the menu " "(see below), or for embedding). See <document>-namespace above." msgstr "" "L'ID con cui è possibile recuperare questo componente (per posizionarlo nel " "menu (vedere di seguito) o per integrarlo). Vedere lo spazio dei nomi <" "document> sopra." #. Tag: term #. +> trunk5 #: index.docbook:3059 index.docbook:3155 #, no-c-format msgid "file" msgstr "file" #. Tag: para #. +> trunk5 #: index.docbook:3060 #, no-c-format msgid "" "Required at least for components of type=\"standard\": The filename of the " "&XML; file describing the &GUI;." msgstr "" "Richiesto almeno per i componenti di tipo=\"standard\": il nome del file " "&XML; che descrive la &GUI;." #. Tag: term #. +> trunk5 #: index.docbook:3063 index.docbook:3099 #, no-c-format msgid "label" msgstr "label" #. Tag: para #. +> trunk5 #: index.docbook:3064 #, no-c-format msgid "The label for this component, when placed in the menu hierarchy." msgstr "" "L'etichetta per questo componente, quando inserito nella gerarchia dei menu." #. Tag: term #. +> trunk5 #: index.docbook:3069 #, no-c-format msgid "<attribute>" msgstr "<attribute>" #. Tag: para #. +> trunk5 #: index.docbook:3070 #, no-c-format msgid "" "Defines an attribute of a component. Only meaningful for import plugins so far. Only allowed as a direct " "child of <component>. Attributes:" msgstr "" "Definisce un attributo di un componente. Finora solo significativo per le " "estensioni di importazione. " "Consentito solo come figlio diretto di <component>. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:3074 #, no-c-format msgid "Id of the attribute" msgstr "ID dell'attributo" #. Tag: term #. +> trunk5 #: index.docbook:3077 #, no-c-format msgid "value" msgstr "value" #. Tag: para #. +> trunk5 #: index.docbook:3078 #, no-c-format msgid "Value of the attribute" msgstr "Valore dell'attributo" #. Tag: para #. +> trunk5 #: index.docbook:3082 #, no-c-format msgid "Label associated with the attribute" msgstr "Etichetta associata all'attributo" #. Tag: term #. +> trunk5 #: index.docbook:3087 #, no-c-format msgid "<hierarchy>" msgstr "<hierarchy>" #. Tag: para #. +> trunk5 #: index.docbook:3088 #, no-c-format msgid "" "Needs to be present exactly once as a direct child of the <document> " "element. Describes where the components declared above should be placed in " "the menu hierarchy. Accepts only <menu> elements as direct children. " "No attributes." msgstr "" "Deve essere presente esattamente una volta come figlio diretto dell'elemento " "<document>. Descrive dove i componenti dichiarati sopra devono essere " "collocati nella gerarchia dei menu. Accetta solo elementi <menu> come " "figli diretti. Nessun attributo." #. Tag: term #. +> trunk5 #: index.docbook:3091 #, no-c-format msgid "<menu>" msgstr "<menu>" #. Tag: para #. +> trunk5 #: index.docbook:3092 #, no-c-format msgid "" "One or more <menu> elements should be given as direct children of the " "<hierarchy> element. Declares a new (sub-)menu. If a menu by the given " "ID (see below) already exists, the two menus are merged. The <menu> " "element is allowed either as a direct child of the <hierarchy> element " "(top level menu), or as the direct child on any other <menu> element " "(sub-menu). Conversely, the <menu> element accepts other <menu> " "elements or <entry> elements as children. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:3096 #, no-c-format msgid "" "An identifier string of the menu. Useful, when menu definitions are read " "from several &pluginmap; files, to make sure plugins can be placed in the " "same menu(s). Some menu-ids such as \"file\" refer to predefined menus (in " "this case the \"File\" menu). Be sure to check with existing &pluginmap; " "files to use consistent ids." msgstr "" "Una stringa identificativa del menu. Utile, quando vengono lette le " "definizioni dei menu da diversi file di &pluginmap;, per assicurarsi che le " "estensioni possano essere inserite negli stessi menu. Alcuni ID di menu come " "«file» si riferiscono a menu predefiniti (in questo caso il menu «File»). " "Assicurarsi di controllare con i file di &pluginmap; esistenti per " "utilizzare ID coerenti." #. Tag: para #. +> trunk5 #: index.docbook:3100 #, no-c-format msgid "A label for the menu." msgstr "Un'etichetta per il menu." #. Tag: term #. +> trunk5 #: index.docbook:3103 index.docbook:3117 index.docbook:3135 #, no-c-format msgid "group" msgstr "group" #. Tag: para #. +> trunk5 #: index.docbook:3104 index.docbook:3118 #, no-c-format msgid "" "Allows to control ordering of menu entries. See menu item ordering. Optional." msgstr "" "Consente di controllare l'ordinamento delle voci di menu. Vedere ordinamento delle voci di menu. " "Facoltativo." #. Tag: term #. +> trunk5 #: index.docbook:3109 #, no-c-format msgid "<entry>" msgstr " <entry>" #. Tag: para #. +> trunk5 #: index.docbook:3110 #, no-c-format msgid "" "A menu entry, &ie; a menu option to invoke a plugin. May be used only as a " "direct child of a <menu> element, accepts no child elements. " "Attributes:" msgstr "" "Una voce di menu, &ie; un'opzione di menu per invocare un'estensione. Può " "essere utilizzata solo come figlia diretta di un elemento di menu, non " "accetta elementi figlio. Attributi:" #. Tag: term #. +> trunk5 #: index.docbook:3113 #, no-c-format msgid "component" msgstr "component" #. Tag: para #. +> trunk5 #: index.docbook:3114 #, no-c-format msgid "" "The ID of the component that should be invoked, when this menu entry is " "activated." msgstr "" "L'ID del componente che deve essere richiamato quando viene attivata questa " "voce di menu." #. Tag: term #. +> trunk5 #: index.docbook:3123 #, no-c-format msgid "<group>" msgstr "<group>" #. Tag: para #. +> trunk5 #: index.docbook:3124 #, no-c-format msgid "" "Declares a group of items in the menu. See menu item ordering. Attributes:" msgstr "" "Dichiara un gruppo di voci nel menu. Vedere ordinamento delle voci di menu. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:3128 #, no-c-format msgid "The name of this group." msgstr "Il nome di questo gruppo." #. Tag: term #. +> trunk5 #: index.docbook:3131 #, no-c-format msgid "separated" msgstr "separated" #. Tag: para #. +> trunk5 #: index.docbook:3132 #, no-c-format msgid "" "Optional. If set to \"true\" the item in this group will be visually " "separated from surrounding items." msgstr "" "Facoltativo. Se impostata su «vero», l'elemento in questo gruppo sarà " "separato visivamente dagli elementi circostanti." #. Tag: para #. +> trunk5 #: index.docbook:3136 #, no-c-format msgid "The name of the group to append this group to (optional)." msgstr "Il nome del gruppo a cui aggiungere questo gruppo (facoltativo)." #. Tag: term #. +> trunk5 #: index.docbook:3141 #, no-c-format msgid "<context>" msgstr "<context>" #. Tag: para #. +> trunk5 #: index.docbook:3142 #, no-c-format msgid "" "Declares the entries in a context. Only allowed as a direct child of the <document> tag. Accepts " "only <menu> tags as direct children. Attributes:" msgstr "" "Dichiara le voci in un contesto. Consentito solo come figlio diretto del tag <document>. Accetta " "solo tag <menu> come figli diretti. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:3146 #, no-c-format msgid "" "The ID of the context. Only two contexts are implemented so far: \"x11\" and " "\"import\"." msgstr "" "L'ID del contesto. Finora sono stati implementati solo due contesti: «x11» e " "«import»." #. Tag: term #. +> trunk5 #: index.docbook:3151 #, no-c-format msgid "<require>" msgstr "<require>" #. Tag: para #. +> trunk5 #: index.docbook:3152 #, no-c-format msgid "" "Include another &pluginmap; file. This &pluginmap; file is only loaded once, " "even if it is <require>d from several other files. The most important " "use case is to include a pluginmap file, which declares some components, " "which are embedded by components declared in this &pluginmap;. <" "require>-elements are only allowed as direct children of the <" "document>-node. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:3156 #, no-c-format msgid "" "The filename of the &pluginmap; to include. This is seen relative to the " "directory of the current &pluginmap; file + the base_prefix (see above, <" "document>-element). If you do not know the relative path to the " "&pluginmap; to be included, use the map attribute to " "refer to it by id, instead." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:3159 #, no-c-format msgid "map" msgstr "map" #. Tag: para #. +> trunk5 #: index.docbook:3160 #, no-c-format msgid "" "To include a &pluginmap; file from a different package (or an &rkward; " "&pluginmap; from your external &pluginmap;), you can refer to it by its " "namespacename::id, as specified in the required " "&pluginmap;s <document> element. Inclusion will fail, if no " "&pluginmap; by that id is known (⪚ not installed on the user's system). " "You should use this method for including &pluginmap;s outside your package, " "only. For maps inside your package, specifying a relative path " "(file attribute) is faster, and more reliable." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:3168 #, no-c-format msgid "Elements for use in .rkh (help) files" msgstr "Elementi da utilizzare nei file .rkh (guida)" #. Tag: para #. +> trunk5 #: index.docbook:3172 #, no-c-format msgid "" "Needs to be present in each .xml file " "as the root-node (exactly once). No attributes." msgstr "" "Deve essere presente in ogni file .xml " "come nodo radice (esattamente una volta). Nessun attributo." #. Tag: term #. +> trunk5 #: index.docbook:3175 #, no-c-format msgid "<title>" msgstr "<title>" #. Tag: para #. +> trunk5 #: index.docbook:3176 #, no-c-format msgid "" "Title of the help page. This is not interpreted for " "help pages for a plugin (this takes the title from the plugin itself), only " "for stand-alone pages. No attributes. The text contained within the <" "title> tag will become the caption of the help page. May only be defined " "once, as a direct child of the <document> node." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:3179 #, no-c-format msgid "<summary>" msgstr "<summary>" #. Tag: para #. +> trunk5 #: index.docbook:3180 #, no-c-format msgid "" "A short summary of the help page (or what this plugin is used for). This " "will always be shown at the top of the help page. No attributes. The text " "contained within the <summary> tag will be displayed. Recommended but " "not required. May only be defined once, as a direct child of the <" "document> node." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:3183 #, no-c-format msgid "<usage>" msgstr "<usage>" #. Tag: para #. +> trunk5 #: index.docbook:3184 #, no-c-format msgid "" "A slightly more elaborate summary of the usage. This will always be shown " "directly after the <summary>. No attributes. The text contained within " "the <usage> tag will be displayed. Recommended for plugin help pages, " "but not required. May only be defined once, as a direct child of the <" "document> node." msgstr "" "Un riepilogo leggermente più elaborato dell'utilizzo. Questo sarà sempre " "mostrato direttamente dopo <summary>. Nessun attributo. Sarà " "visualizzato il testo contenuto nel tag <usage>. Consigliato per le " "pagine della guida dell'estensione, ma non richiesto. Può essere definito " "una sola volta, come figlio diretto del nodo <document>." #. Tag: term #. +> trunk5 #: index.docbook:3187 #, no-c-format msgid "<section>" msgstr "<section>" #. Tag: para #. +> trunk5 #: index.docbook:3188 #, no-c-format msgid "" "A general purposes section. May be used any number of times as a direct " "child of the <document> node. These sections are displayed in the " "order of their definition, but all after the <" "usage> section and before the <settings> " "section. The text contained within the <section> tag will be displayed." msgstr "" "Una sezione per scopi generali. Può essere utilizzata un numero qualsiasi di " "volte come figlio diretto del nodo <document>. Queste sezioni sono " "visualizzate nell'ordine della loro definizione, ma tutte dopo la sezione <usage> e prima della " "sezione <settings>. Sarà visualizzato il testo contenuto nel tag <" "section>." #. Tag: para #. +> trunk5 #: index.docbook:3192 #, no-c-format msgid "" "An identifier needed to jump to this section from the navigation bar (or a " "link). Needs to be unique within the file. Required, no default." msgstr "" "Un identificatore necessario per saltare a questa sezione dalla barra di " "navigazione (o un collegamento). Deve essere univoco all'interno del file. " "Richiesto, nessun valore predefinito." #. Tag: term #. +> trunk5 #: index.docbook:3195 index.docbook:3217 index.docbook:3231 #, no-c-format msgid "title" msgstr "title" #. Tag: para #. +> trunk5 #: index.docbook:3196 #, no-c-format msgid "The title (caption) of this section. Required, no default." msgstr "" "Il titolo (didascalia) di questa sezione. Richiesto, nessun valore " "predefinito." #. Tag: term #. +> trunk5 #: index.docbook:3199 #, no-c-format msgid "short_title" msgstr "short_title" #. Tag: para #. +> trunk5 #: index.docbook:3200 #, no-c-format msgid "" "A short title suitable to be displayed in the navigation bar. Optional, " "defaults to the full title." msgstr "" "Un titolo breve adatto per essere visualizzato nella barra di navigazione. " "Facoltativo, per impostazione predefinita il titolo completo." #. Tag: term #. +> trunk5 #: index.docbook:3205 #, no-c-format msgid "<settings>" msgstr "<settings>" #. Tag: para #. +> trunk5 #: index.docbook:3206 #, no-c-format msgid "" "Defines the section containing reference on the various &GUI; settings. Only " "meaningful and only used for plugin related help pages. Use as a direct " "child of the <document>. May contain only <setting> and <" "caption> elements as direct children. No attributes." msgstr "" "Definisce la sezione contenente riferimenti sulle diverse impostazioni della " "&GUI;. Significativo solo e utilizzato solo per le pagine della guida " "relative alle estensioni. Utilizzare come figlio diretto di <" "document>. Può contenere solo elementi <setting> e <caption> " "come figli diretti. Nessun attributo." #. Tag: term #. +> trunk5 #: index.docbook:3209 #, no-c-format msgid "<setting>" msgstr "<setting>" #. Tag: para #. +> trunk5 #: index.docbook:3210 #, no-c-format msgid "" "Explains a single setting in the &GUI;. Only allowed as a direct child of " "the <settings> element. The text contained within the element is " "displayed." msgstr "" "Spiega una singola impostazione nella &GUI;. Consentito solo come figlio " "diretto dell'elemento <settings>. Viene visualizzato il testo " "contenuto nell'elemento." #. Tag: para #. +> trunk5 #: index.docbook:3214 #, no-c-format msgid "" "The ID of the setting in the plugin .xml. Required, no default." msgstr "" "L'ID dell'impostazione nell'estensione .xml. Richiesto, nessun valore predefinito." #. Tag: para #. +> trunk5 #: index.docbook:3218 #, no-c-format msgid "" "An optional title for the setting. If omitted (omission is recommended in " "most cases), the title will be taken from the plugin .xml." msgstr "" "Un titolo facoltativo per l'impostazione. Se omesso (si consiglia " "l'omissione nella maggior parte dei casi), il titolo sarà preso " "dall'estensione .xml." #. Tag: term #. +> trunk5 #: index.docbook:3223 #, no-c-format msgid "<caption>" msgstr "<caption>" #. Tag: para #. +> trunk5 #: index.docbook:3224 #, no-c-format msgid "" "A caption to visually group several settings. May only be used as a direct " "child of the <settings> element." msgstr "" "Una didascalia per raggruppare visivamente diverse impostazioni. Può essere " "utilizzata solo come figlio diretto dell'elemento <settings>." #. Tag: para #. +> trunk5 #: index.docbook:3228 #, no-c-format msgid "" "The ID of the corresponding element (typically a <frame>, <page> " "or <tab>) in the plugin .xml." msgstr "" "L'ID dell'elemento corrispondente (in genere <frame>, <page> o " "<tab>) nell'estensione .xml." #. Tag: para #. +> trunk5 #: index.docbook:3232 #, no-c-format msgid "" "An optional title for the caption. If omitted (omission is recommended in " "most cases), the title will be taken from the plugin .xml." msgstr "" "Un titolo facoltativo per la didascalia. Se omesso (si consiglia l'omissione " "nella maggior parte dei casi), il titolo sarà preso dall'estensione .xml." #. Tag: term #. +> trunk5 #: index.docbook:3237 #, no-c-format msgid "<related>" msgstr "<related>" #. Tag: para #. +> trunk5 #: index.docbook:3238 #, no-c-format msgid "" "Defines a section containing links to further related information. Will " "always be displayed after the <settings> section. No attributes. The " "text contained within the <related> tag will be displayed. Typically " "this will contain an &HTML;-style list. Recommended for plugin help pages, " "but not required. May only be defined once, as a direct child of the <" "document> node." msgstr "" "Definisce una sezione contenente collegamenti a ulteriori informazioni " "correlate. Sarà sempre visualizzata dopo la sezione <settings>. Nessun " "attributo. Sarà visualizzato il testo contenuto nel tag <related>. In " "genere questo conterrà un elenco in stile &HTML;. Consigliato per le pagine " "della guida dell'estensione, ma non richiesto. Può essere definito una sola " "volta, come figlio diretto del nodo <document>." #. Tag: term #. +> trunk5 #: index.docbook:3241 #, no-c-format msgid "<technical>" msgstr "<technical>" #. Tag: para #. +> trunk5 #: index.docbook:3242 #, no-c-format msgid "" "Defines a section containing technical information of no relevance to end " "users (such as internal structure of the plugin). Will always be displayed " "last in a help page. No attributes. The text contained within the <" "related> tag will be displayed. Not required, and not recommended for " "most plugin help pages. May only be defined once, as a direct child of the " "<document> node." msgstr "" "Definisce una sezione contenente informazioni tecniche non pertinenti per " "gli utenti finali (come la struttura interna dell'estensione). Sarà sempre " "visualizzata per ultima in una pagina della guida. Nessun attributo. Sarà " "visualizzato il testo contenuto nel tag <related>. Non richiesto e non " "consigliato per la maggior parte delle pagine della guida delle estensioni. " "Può essere definito una sola volta, come figlio diretto del nodo <" "document>." #. Tag: term #. +> trunk5 #: index.docbook:3245 #, no-c-format msgid "<link>" msgstr "<link>" #. Tag: para #. +> trunk5 #: index.docbook:3246 #, no-c-format msgid "A link. Can be used in any of the sections described above." msgstr "" "Un collegamento. Può essere utilizzato in una qualsiasi delle sezioni sopra " "descritte." #. Tag: term #. +> trunk5 #: index.docbook:3249 #, no-c-format msgid "href" msgstr "href" #. Tag: para #. +> trunk5 #: index.docbook:3250 #, no-c-format msgid "" "The target &URL;. Note that several &rkward; specific &URL;s are available. " "See section on writing help pages for " "details." msgstr "" "La destinazione e l'&URL;. Notare che diversi &URL; specifici di &rkward; " "sono disponibili. Vedere la sezione per " "scrivere le pagine della guida per i dettagli." #. Tag: term #. +> trunk5 #: index.docbook:3255 #, no-c-format msgid "<label>" msgstr "<label>" #. Tag: para #. +> trunk5 #: index.docbook:3256 #, no-c-format msgid "" "Inserts the value of a UI label. Can be used in any of the sections " "described above." msgstr "" "Inserisce il valore di un'etichetta dell'interfaccia utente. Può essere " "utilizzato in una qualsiasi delle sezioni sopra descritte." #. Tag: para #. +> trunk5 #: index.docbook:3260 #, no-c-format msgid "" "The id of the element in the plugin, of which to copy the " "label-attribute." msgstr "" "L'ID dell'elemento nell'estensione, di cui copiare l'etichetta " "label." #. Tag: term #. +> trunk5 #: index.docbook:3265 #, no-c-format msgid "<various &HTML; tags>" msgstr "<diversi tag &HTML;>" #. Tag: para #. +> trunk5 #: index.docbook:3266 #, no-c-format msgid "" "Most basic &HTML; tags are allowed within the sections. Please keep manual " "formatting to a minimum, however." msgstr "" "Altri tag &HTML; di base sono ammessi all'interno delle sezioni. Mantieni " "comunque la formattazione manuale al minimo." #. Tag: title #. +> trunk5 #: index.docbook:3271 #, no-c-format msgid "Functions available for &GUI; logic scripting" msgstr "Funzioni disponibili per la programmazione della logica della &GUI;" #. Tag: term #. +> trunk5 #: index.docbook:3273 #, no-c-format msgid "Class \"Component\"" msgstr "Classe «Component»" #. Tag: para #. +> trunk5 #: index.docbook:3274 #, no-c-format msgid "" "Class which represents a single component or component-property. The most " "important instance of this class is the variable \"gui\" which is predefined " "as the root property of the current component. The following methods are " "available for instances of class \"Component\":" msgstr "" "Classe che rappresenta un singolo componente o proprietà del componente. " "L'istanza più importante di questa classe è la variabile «gui», che è " "predefinita come proprietà radice del componente attuale. I seguenti metodi " "sono disponibili per le istanze della classe «Component»:" #. Tag: term #. +> trunk5 #: index.docbook:3276 #, no-c-format msgid "absoluteId(base_id)" msgstr "absoluteId(id_base)" #. Tag: para #. +> trunk5 #: index.docbook:3276 #, no-c-format msgid "" "Returns the absolute ID of base_id, or - if base_id is " "omitted - the identifier of the component." msgstr "" "Restituisce l'ID assoluto di id_base o, se id_base " "viene omesso, l'identificatore del componente." #. Tag: term #. +> trunk5 #: index.docbook:3277 #, no-c-format msgid "getValue(id)" msgstr "getValue(id)" #. Tag: para #. +> trunk5 #: index.docbook:3277 #, no-c-format msgid "" "Discouraged. Use getString(), getBoolean(), or getList(), instead. Returns the value of the given child property. Returns " "the value of this property, if ID is omitted." msgstr "" "Sconsigliato. Utilizzare invece getString(), getBoolean() o " "getList(). Restituisce il valore della proprietà figlia " "specificata. Restituisce il valore di questa proprietà, se l'ID viene omesso." #. Tag: term #. +> trunk5 #: index.docbook:3278 #, no-c-format msgid "getString(id)" msgstr "getString(id)" #. Tag: para #. +> trunk5 #: index.docbook:3278 #, no-c-format msgid "" "Returns the value of the given child property as a string. Returns the value " "of this property, if ID is omitted." msgstr "" "Restituisce il valore della proprietà figlia specificata come stringa. " "Restituisce il valore di questa proprietà, se l'ID viene omesso." #. Tag: term #. +> trunk5 #: index.docbook:3279 #, no-c-format msgid "getBoolean(id)" msgstr "getBoolean(id)" #. Tag: para #. +> trunk5 #: index.docbook:3279 #, no-c-format msgid "" "Returns the value of the given child property as a boolean (if possible). " "Returns the value of this property, if ID is omitted." msgstr "" "Restituisce il valore della proprietà figlia specificata come booleano (se " "possibile). Restituisce il valore di questa proprietà, se l'ID viene omesso." #. Tag: term #. +> trunk5 #: index.docbook:3280 #, no-c-format msgid "getList(id)" msgstr "getList(id)" #. Tag: para #. +> trunk5 #: index.docbook:3280 #, no-c-format msgid "" "Returns the value of the given child property as an array of strings (if " "possible). Returns the value of this property, if ID is omitted." msgstr "" "Restituisce il valore della proprietà figlia specificata come vettore di " "stringhe (se possibile). Restituisce il valore di questa proprietà, se l'ID " "viene omesso." #. Tag: term #. +> trunk5 #: index.docbook:3281 #, no-c-format msgid "setValue(id, value)" msgstr "setValue(id, valore)" #. Tag: para #. +> trunk5 #: index.docbook:3281 #, no-c-format msgid "" "Set the value of the given child property to value." msgstr "" "Impostare il valore della proprietà figlio specificata su valore." #. Tag: term #. +> trunk5 #: index.docbook:3282 #, no-c-format msgid "getChild(id)" msgstr "getChild(id)" #. Tag: para #. +> trunk5 #: index.docbook:3282 #, no-c-format msgid "" "Return an instance of the child-property with the given id." msgstr "" "Restituisce un'istanza della proprietà figlio con l'id " "indicato." #. Tag: term #. +> trunk5 #: index.docbook:3283 #, no-c-format msgid "addChangeCommand(id, command)" msgstr "addChangeCommand(id, comando)" #. Tag: para #. +> trunk5 #: index.docbook:3283 #, no-c-format msgid "" "Execute command whenever the child property given by " "id changes." msgstr "" "Eseguire il comando ogni volta che cambia la proprietà " "figlia data da id." #. Tag: term #. +> trunk5 #: index.docbook:3286 #, no-c-format msgid "Class \"RObject\"" msgstr "Classe «RObject»" #. Tag: para #. +> trunk5 #: index.docbook:3287 #, no-c-format msgid "" "Class which represents a single &R; object. An instance of this class can be " "obtained by using makeRObject(objectname). The following " "methods are available for instances of class \"RObject\":" msgstr "" "Classe che rappresenta un singolo oggetto di &R;. Un'istanza di questa " "classe può essere ottenuta usando makeRObject(nome_oggetto). I seguenti metodi sono disponibili per le istanze della classe " "«RObject»:" #. Tag: para #. +> trunk5 #: index.docbook:3287 #, no-c-format msgid "" "If any commands are still pending in the backend, the information provided " "by these methods can be out-of-date by the time that the plugin code is run. " "Do not rely on it for critical operations (risking loss " "of data)." msgstr "" "Se nel backend sono ancora presenti comandi, le informazioni fornite da " "questi metodi possono essere obsolete al momento dell'esecuzione del codice " "dell'estensione. Non farvi affidamento per operazioni " "critiche (rischio di perdita di dati)." #. Tag: term #. +> trunk5 #: index.docbook:3289 #, no-c-format msgid "getName()" msgstr "getName()" #. Tag: para #. +> trunk5 #: index.docbook:3289 #, no-c-format msgid "Returns the absolute name of the object." msgstr "Restituisce il nome assoluto dell'oggetto." #. Tag: term #. +> trunk5 #: index.docbook:3290 #, no-c-format msgid "exists()" msgstr "exists()" #. Tag: para #. +> trunk5 #: index.docbook:3290 #, no-c-format msgid "" "Returns whether the object exists. You should generally check this before " "using any of the methods listed below." msgstr "" "Restituisce se l'oggetto esiste. In genere, è necessario verificarlo prima " "di utilizzare uno dei metodi elencati di seguito." #. Tag: term #. +> trunk5 #: index.docbook:3291 #, no-c-format msgid "dimensions()" msgstr "dimensions()" #. Tag: para #. +> trunk5 #: index.docbook:3291 #, no-c-format msgid "" "Returns an array of dimensions (similar to dim() in R)." msgstr "" "Restituisce un vettore di dimensioni (simile a dim() in " "R)." #. Tag: term #. +> trunk5 #: index.docbook:3292 #, no-c-format msgid "classes()" msgstr "classes()" #. Tag: para #. +> trunk5 #: index.docbook:3292 #, no-c-format msgid "" "Returns an array of classes (similar to class() in R)." msgstr "" "Restituisce un vettore di classi (simile a class() in R)." #. Tag: term #. +> trunk5 #: index.docbook:3293 #, no-c-format msgid "isClass(class)" msgstr "isClass(class)" #. Tag: para #. +> trunk5 #: index.docbook:3293 #, no-c-format msgid "Returns true, if the object is of class class." msgstr "" "Restituisce vero, se l'oggetto appartiene alla classe class." #. Tag: term #. +> trunk5 #: index.docbook:3294 #, no-c-format msgid "isDataFrame()" msgstr "isDataFrame()" #. Tag: para #. +> trunk5 #: index.docbook:3294 #, no-c-format msgid "Returns true, if the object is a data.frame." msgstr "Restituisce vero, se l'oggetto è una cornice di dati." #. Tag: term #. +> trunk5 #: index.docbook:3295 #, no-c-format msgid "isMatrix()" msgstr "isMatrix()" #. Tag: para #. +> trunk5 #: index.docbook:3295 #, no-c-format msgid "Returns true, if the object is a matrix." msgstr "Restituisce vero, se l'oggetto è una matrice." #. Tag: term #. +> trunk5 #: index.docbook:3296 #, no-c-format msgid "isList()" msgstr "isList()" #. Tag: para #. +> trunk5 #: index.docbook:3296 #, no-c-format msgid "Returns true, if the object is a list." msgstr "Restituisce vero, se l'oggetto è un elenco." #. Tag: term #. +> trunk5 #: index.docbook:3297 #, no-c-format msgid "isFunction()" msgstr "isFunction()" #. Tag: para #. +> trunk5 #: index.docbook:3297 #, no-c-format msgid "Returns true, if the object is a function." msgstr "Restituisce vero, se l'oggetto è una funzione." #. Tag: term #. +> trunk5 #: index.docbook:3298 #, no-c-format msgid "isEnvironment()" msgstr "isEnvironment()" #. Tag: para #. +> trunk5 #: index.docbook:3298 #, no-c-format msgid "Returns true, if the object is an environment." msgstr "Restituisce vero, se l'oggetto è un ambiente." #. Tag: term #. +> trunk5 #: index.docbook:3299 #, no-c-format msgid "isDataNumeric()" msgstr "isDataNumeric()" #. Tag: para #. +> trunk5 #: index.docbook:3299 #, no-c-format msgid "Returns true, if the object is a vector of numeric data." msgstr "Restituisce vero se l'oggetto è un vettore di dati numerici." #. Tag: term #. +> trunk5 #: index.docbook:3300 #, no-c-format msgid "isDataFactor()" msgstr "isDataFactor()" #. Tag: para #. +> trunk5 #: index.docbook:3300 #, no-c-format msgid "Returns true, if the object is a vector of factor data." msgstr "Restituisce vero, se l'oggetto è un vettore di dati fattoriali." #. Tag: term #. +> trunk5 #: index.docbook:3301 #, no-c-format msgid "isDataCharacter()" msgstr "isDataCharacter()" #. Tag: para #. +> trunk5 #: index.docbook:3301 #, no-c-format msgid "Returns true, if the object is a vector of character data." msgstr "Restituisce vero, se l'oggetto è un vettore di dati caratteriali." #. Tag: term #. +> trunk5 #: index.docbook:3302 #, no-c-format msgid "isDataLogical()" msgstr "isDataLogical()" #. Tag: para #. +> trunk5 #: index.docbook:3302 #, no-c-format msgid "Returns true, if the object is a vector of logical data." msgstr "Restituisce vero, se l'oggetto è un vettore di dati logici." #. Tag: term #. +> trunk5 #: index.docbook:3303 #, no-c-format msgid "parent()" msgstr "parent()" #. Tag: para #. +> trunk5 #: index.docbook:3303 #, no-c-format msgid "" "Returns an instance of \"RObject\" representing the parent of this object." msgstr "" "Restituisce un'istanza di «RObject» che rappresenta il genitore di questo " "oggetto." #. Tag: term #. +> trunk5 #: index.docbook:3304 #, no-c-format msgid "child(childname)" msgstr "child(childname)" #. Tag: para #. +> trunk5 #: index.docbook:3304 #, no-c-format msgid "" "Returns an instance of \"RObject\" representing the child " "childname of this object." msgstr "" "Restituisce un'istanza di «RObject» che rappresenta il figlio " "nome_figlio di questo oggetto." #. Tag: term #. +> trunk5 #: index.docbook:3307 #, no-c-format msgid "Class \"RObjectArray\"" msgstr "Classe «RObjectArray»" #. Tag: para #. +> trunk5 #: index.docbook:3308 #, no-c-format msgid "" "An array of RObject instances. An instance of this class can be obtained by " "using makeRObjectArray(objectnames). It is particularly " "useful when dealing with varslots which allow to select multiple objects." msgstr "" "Un vettore di istanze di RObject. Un'istanza di questa classe può essere " "ottenuta utilizzando makeRObjectArray(nomi_oggetti). È " "particolarmente utile quando si tratta di «varslot» che consentono di " "selezionare più oggetti." #. Tag: term #. +> trunk5 #: index.docbook:3310 #, no-c-format msgid "include()-function" msgstr "Funzione include()" #. Tag: para #. +> trunk5 #: index.docbook:3311 #, no-c-format msgid "" "include(filename) can be used to include a separate JS " "file." msgstr "" "include(filename) può essere utilizzato per includere un " "file JS separato." #. Tag: term #. +> trunk5 #: index.docbook:3313 #, no-c-format msgid "doRCommand()-function" msgstr "Funzione doRCommand()" #. Tag: para #. +> trunk5 #: index.docbook:3314 #, no-c-format msgid "" "doRCommand(command, callback) can be used to query &R; " "for information. Please read the section on querying &R; from inside a plugin for " "details, and caveats." msgstr "" "doRCommand(comando, callback) può essere usato per " "interrogare &R; per informazioni. Leggere la sezione interrogare &R; dall'interno di un'estensione " "per dettagli e avvertenze." #. Tag: title #. +> trunk5 #: index.docbook:3322 #, no-c-format msgid "Troubleshooting during plugin development" msgstr "Risoluzione dei problemi durante lo sviluppo delle estensioni" #. Tag: para #. +> trunk5 #: index.docbook:3323 #, no-c-format msgid "" "So you have read all the documentation, did everything right, and still " "cannot get it to work? Do not worry, we will work it out. First thing to do " "is: Activate &rkward; Debug Messages - window " "(available from the Windows - menu, or right click on one " "of the tool bars), and then start your plugin, again. As a general rule of " "thumb, you should not see any output in the messages window when your plugin " "gets invoked, or at any other time. If there is one, it is likely related to " "your plugin. See if it helps you." msgstr "" "Si è letta tutta la documentazione, fatto tutto correttamente e non si " "riesce ancora a farlo funzionare? Non c'è da preoccuparsi, lo risolveremo. " "La prima cosa da fare è: attivare la finestra Messaggi di debug di " "&rkward; finestra (disponibile dal menu Finestre, o fare clic con il tasto destro del mouse su una delle barre degli " "strumenti), quindi avviare nuovamente l'estensione. Come regola generale, " "non si dovrebbe vedere alcun risultato nella finestra dei messaggi quando " "viene invocata la propria estensione o in qualsiasi altro momento. Se ce n'è " "uno, è probabilmente correlato alla propria estensione. Vedere se è di aiuto." #. Tag: para #. +> trunk5 #: index.docbook:3326 #, no-c-format msgid "" "If everything seems fine on the console, try to increase the debug-level " "(from the command line, using rkward --debug-level 3, or " "by setting debug level to 3 in Settings " "Configure &rkward; Debug). Not all messages shown at higher debug levels " "necessarily indicate a problem, but chance are, your problem shows up " "somewhere between the messages." msgstr "" "Se sulla console tutto sembra a posto, provare ad aumentare il livello di " "debug (dalla riga di comando, utilizzando rkward --debug-level 3, o impostando il livello di debug a 3 in " "Impostazioni Configura &rkward;Debug). Non tutti i " "messaggi mostrati ai livelli di debug più alti indicano necessariamente un " "problema, ma è probabile che il problema si presenti in qualche punto tra i " "messaggi." #. Tag: para #. +> trunk5 #: index.docbook:3329 #, no-c-format msgid "" "If you still cannot find out what is wrong, do not despair. We know this is " "complicated stuff, and - after all - possibly you have also come across a " "bug in &rkward;, and &rkward; needs to be fixed. Just write to the " "development mailing list, and tell us about the problem. We will be happy to " "help you." msgstr "" "Se ancora non si riesce a scoprire cosa c'è che non va, non disperare. " "Sappiamo che si tratta di cose complicate e, dopotutto, probabilmente si è " "incontrato un bug in &rkward;, e &rkward; deve essere corretto. Basta " "scrivere alla lista di distribuzione di sviluppo e parlarci del problema. " "Saremo felici di aiutarvi." #. Tag: para #. +> trunk5 #: index.docbook:3332 #, no-c-format msgid "" "Finally, even if you found out how to do it on your own, but found the " "documentation to be not-so-helpful or even wrong in some respects, please " "tell us on the mailing list as well, so we can fix/improve the documentation." msgstr "" "Infine, anche se avete scoperto come farlo da soli, ma avete riscontrato che " "la documentazione non è così utile o addirittura sbagliata per alcuni " "aspetti, vi preghiamo di comunicarcelo anche sulla lista di distribuzione, " "in modo che possiamo correggere/migliorare la documentazione." #. Tag: title #. +> trunk5 #: index.docbook:3338 #, no-c-format msgid "License" msgstr "Licenza" #. Tag: trans_comment #. +> trunk5 #: index.docbook:3339 #, no-c-format msgid "CREDIT_FOR_TRANSLATORS" msgstr "" "Traduzione italiana di Vincenzo Reale smart2128@baslug.org" #, no-c-format #~ msgid "0.6.400" #~ msgstr "0.6.400"