Index: trunk/l10n-support/it/summit/docmessages/playground-edu/rkwardplugins.po =================================================================== --- trunk/l10n-support/it/summit/docmessages/playground-edu/rkwardplugins.po (revision 1568099) +++ trunk/l10n-support/it/summit/docmessages/playground-edu/rkwardplugins.po (revision 1568100) @@ -1,15147 +1,15205 @@ # # Vincenzo Reale , 2020. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2019-05-15 09:39+0200\n" -"PO-Revision-Date: 2020-05-02 15:59+0200\n" +"PO-Revision-Date: 2020-05-02 17:22+0200\n" "Last-Translator: Vincenzo Reale \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: it\n" "X-Generator: Lokalize 20.04.0\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 "" "Vincenzo" "Reale
smart2128@baslug.org<" "/email>" "
Traduzione italiana
" #. Tag: holder #. +> trunk5 #: index.docbook:56 #, no-c-format msgid "Thomas Friedrichsmeier" msgstr "Thomas Friedrichsmeier" #. Tag: date #. +> trunk5 #: index.docbook:63 #, no-c-format msgid "2015-11-05" msgstr "11/5/2015" #. Tag: releaseinfo #. +> trunk5 #: index.docbook:64 #, no-c-format msgid "0.6.400" msgstr "0.6.400" #. Tag: para #. +> trunk5 #: index.docbook:67 #, 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:73 #, no-c-format msgid "KDE" msgstr "KDE" #. Tag: keyword #. +> trunk5 #: index.docbook:74 #, no-c-format msgid "R" msgstr "R" #. Tag: keyword #. +> trunk5 #: index.docbook:75 #, no-c-format msgid "rkward" msgstr "rkward" #. Tag: keyword #. +> trunk5 #: index.docbook:76 #, no-c-format msgid "plugins" msgstr "estensioni" #. Tag: title #. +> trunk5 #: index.docbook:82 #, no-c-format msgid "Introduction" msgstr "Introduzione" #. Tag: para #. +> trunk5 #: index.docbook:85 #, 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:89 #, 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:95 #, 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:98 #, 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;.<" "/emphasis> " "Questo documento riguarda l'estensione di &rkward;. È rivolto a utenti" " esperti o persone che " "desiderano contribuire a migliorare &rkward;." #. Tag: para #. +> trunk5 #: index.docbook:101 #, 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:105 #, 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:106 #, 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:107 #, 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:108 #, 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:110 #, no-c-format msgid "Those will be dealt with in turn." msgstr "Queste saranno trattate a turno." #. Tag: para #. +> trunk5 #: index.docbook:113 #, 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:116 #, no-c-format msgid "&GUI; logic" msgstr "Logica della &GUI;" #. Tag: link #. +> trunk5 #: index.docbook:117 #, no-c-format msgid "Embedding Plugins into Plugins" msgstr "" "Integrazione di estensioni in estensioni" #. Tag: link #. +> trunk5 #: index.docbook:118 #, 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:121 #, 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:127 #, 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:128 #, 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:131 #, no-c-format msgid "" "One way to answer this is: deselect all &pluginmap; files under <" "guimenu>SettingsConfigure &rkward;<" "guimenuitem>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 <" "menuchoice" ">ImpostazioniConfigura &rkward;<" "/guimenuitem>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:134 #, 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:137 #, 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:143 #, no-c-format msgid "Creating menu entries" msgstr "Creazione delle voci di menu" #. Tag: para #. +> trunk5 #: index.docbook:144 #, 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; - Impostazioni<" "guimenuitem>Configura &rkward;Estensioni<" "/guimenuitem>):" #. Tag: para #. +> trunk5 #: index.docbook:148 index.docbook:266 #, no-c-format msgid "" "After reading this chapter, have a look at the <" "application>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:152 #, no-c-format msgid "<!DOCTYPE rkpluginmap>" msgstr "<!DOCTYPE rkpluginmap>" #. Tag: para #. +> trunk5 #: index.docbook:153 #, 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 <" "replaceable>\"rkpluginmap\"." #. Tag: programlisting #. +> trunk5 #: index.docbook:156 #, 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:157 #, 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 <" "replaceable>\"\"." 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:159 -#, fuzzy, no-c-format +#, no-c-format msgid "" "As you will see below, all plugins get a unique identifier, id<" "/parameter>. 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\"<" "/replaceable>." msgstr "" -"Come vedrai di seguito, tutti i plugin ottengono un identificatore univoco, <" -"parameter> id . Lo spazio dei nomi è un" -" modo per organizzare quegli ID e rendere meno probabile la creazione" +"Come si vedrà di seguito, tutte le estensioni ottengono un identificatore" +" univoco, <" +"parameter>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 questo & pluginmap ;. In generale, se si" -" intende distribuire i plug-in in" -" un & R; pacchetto , è una buona idea usare il nome del pacchetto come" -" parametro namespace . Plugin spediti con il &" -" rkward; la distribuzione ha namespace = \"rkward\" <" -"/replaceable>." +" 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:162 #, 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:165 #, no-c-format msgid "<components>" msgstr "<components>" #. Tag: para #. +> trunk5 #: index.docbook:166 #, 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:169 #, 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:170 -#, fuzzy, no-c-format +#, 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<" "/parameter> 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 tipo : lascialo su <" -"replaceable> \"standard\" per ora. Altri tipi non sono ancora" -" implementati. L ' id a cui abbiamo già accennato. A" +"Innanzitutto l'attributo type: lasciarlo su <" +"replaceable>\"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). Scegline uno facilmente riconoscibile. Evita spazi e" -" caratteri speciali. Finora non sono stati banditi, ma potrebbero avere" -" significati speciali. Con l'attributo file , si" -" specifica dove si trova la descrizione " -" dell'attuale plug-in . Questo è relativo alla directory di &" -" pluginmap; il file è in e base_prefix sopra." -" Infine, dai un'etichetta al componente. Questa etichetta verrà mostrata" -" ovunque il plugin sia inserito nel menu (o in futuro, forse anche in altri" +" 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:173 #, 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:176 #, fuzzy, 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=\"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>" #. Tag: para #. +> trunk5 #: index.docbook:177 #, 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:180 #, no-c-format msgid "" "<hierarchy>\n" " <menu id=\"analysis\" label=\"Analysis\">" msgstr "" "<hierarchy>\n" " <menu id=\"analisi\" label=\"Analisi\">" #. Tag: para #. +> trunk5 #: index.docbook:181 #, 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 <" "menuchoice>Analysis menu (not necessarily" " directly there, but in a submenu). The Analysis<" "/guimenu> 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 <" "command><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<" "/menuchoice> (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 <" "parameter>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:185 #, no-c-format msgid "<menu id=\"means\" label=\"Means\">" msgstr "<menu id=\"medie\" label=\"Medie\">" #. Tag: para #. +> trunk5 #: index.docbook:186 #, no-c-format msgid "" "Basically the same thing here: Now we define a submenu to the <" "guimenu>Analysis menu. It is to be called Means." msgstr "" "Fondamentalmente la stessa cosa qui: ora definiamo un sottomenu nel menu <" "menuchoice>Analisi. Deve essere chiamato <" "menuchoice>Medie." #. Tag: programlisting #. +> trunk5 #: index.docbook:189 #, no-c-format msgid "<menu id=\"ttests\" label=\"t-Tests\">" msgstr "<menu id=\"test_t\" label=\"Test t\">" #. Tag: para #. +> trunk5 #: index.docbook:190 #, 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 <" "menuchoice>Medie." #. Tag: programlisting #. +> trunk5 #: index.docbook:193 #, no-c-format msgid "<entry component=\"t_test_two_vars\" />" msgstr "<entry component=\"test_t_due_variabili />" #. Tag: para #. +> trunk5 #: index.docbook:194 #, 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:197 #, 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:198 #, no-c-format msgid "" "In case you have lost track: This is another submenu to the <" "guimenu>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 <" "guimenu>Analisi. Vedere la schermata seguente." " Salteremo parte di ciò che non è visibile, contrassegnato da [...]." #. Tag: programlisting #. +> trunk5 #: index.docbook:201 #, 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:202 #, 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:205 #, 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:206 #, no-c-format msgid "" "Of course you can also place your plugins in menus other than <" "guimenu>Analysis." msgstr "" "Ovviamente è possibile inserire anche le proprie estensioni in menu diversi" " da Analisi." #. Tag: programlisting #. +> trunk5 #: index.docbook:209 #, 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:210 #, no-c-format msgid "" "Even in standard-menus such as File<" "/menuchoice>. 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:213 #, no-c-format msgid "" "</hierarchy> \n" "</document>" msgstr "" "</hierarchy> \n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:214 #, 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:218 #, 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:224 #, 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:228 #, 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:231 #, no-c-format msgid "Controlling the order of menu entries" msgstr "Controllo dell'ordine delle voci di menu" #. Tag: para #. +> trunk5 #: index.docbook:232 #, 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<" "/emphasis> casi si potrebbe volere un maggiore controllo. " "In tal caso, è possibile raggruppare gli elementi come segue:" #. Tag: para #. +> trunk5 #: index.docbook:235 #, 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:236 #, no-c-format msgid "<group id=\"somegroup\"/>" msgstr "<group id=\"un_gruppo\"/>" #. Tag: para #. +> trunk5 #: index.docbook:238 #, 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:239 #, no-c-format msgid "<group id=\"somegroup\" separated=\"true\"/>" msgstr "<group id=\"un_gruppo\" separated=\"true\"/>" #. Tag: para #. +> trunk5 #: index.docbook:241 #, 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:242 #, no-c-format msgid "<entry component=\"...\" group=\"somegroup\"/>" msgstr "<entry component=\"...\" group=\"un_gruppo\"/>" #. Tag: para #. +> trunk5 #: index.docbook:244 #, 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:245 #, 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:247 #, 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:249 #, 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:251 #, 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:253 #, 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:260 #, no-c-format msgid "Defining the &GUI;" msgstr "Definizione della &GUI;" #. Tag: title #. +> trunk5 #: index.docbook:261 #, no-c-format msgid "Defining a dialog" msgstr "Definire una finestra" #. Tag: para #. +> trunk5 #: index.docbook:262 #, 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:270 #, 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:273 #, no-c-format msgid "<!DOCTYPE rkplugin>" msgstr "<!DOCTYPE rkplugin>" #. Tag: para #. +> trunk5 #: index.docbook:274 #, no-c-format msgid "" "The doctype is not really interpreted, yet. Set it to rkplugin<" "/replaceable>, anyway." msgstr "" "Il doctype non è ancora realmente interpretato. Impostarlo comunque a <" "replaceable>rkplugin." #. Tag: programlisting #. +> trunk5 #: index.docbook:277 #, 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:278 #, 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:281 #, no-c-format msgid "<help file=\"t_test_two_vars.rkh\"/>" msgstr "<help file=\"test_t_due_variabili.rkh\"/>" #. Tag: para #. +> trunk5 #: index.docbook:282 #, 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:285 #, no-c-format msgid "<dialog label=\"Two Variable t-Test\">" msgstr "<dialog label=\"Test t a due variabili\">" #. Tag: para #. +> trunk5 #: index.docbook:286 #, 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:289 #, no-c-format msgid "" "<tabbook>\n" " <tab label=\"Basic settings\">" msgstr "" "<tabbook>\n" " <tab label=\"Impostazioni di base\">" #. Tag: para #. +> trunk5 #: index.docbook:290 #, 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 <" "command><tab> element allows you to specify a caption for" " that page of the tabbook." msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:293 #, no-c-format msgid "<row id=\"main_settings_row\">" msgstr "<row id=\"riga_configurazione_principale\">" #. Tag: para #. +> trunk5 #: index.docbook:294 -#, fuzzy, no-c-format +#, 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<" "/parameter> 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 il layout di & GUI; elementi. Qui dici che vorresti posizionare" -" alcuni elementi fianco a fianco (da sinistra a destra). L'attributo <" -"parameter> id non è strettamente necessario, ma lo useremo in" -" seguito, quando aggiungiamo un'interfaccia guidata al nostro plugin. Il" -" primo elemento da posizionare nella riga è:" +" 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:297 #, no-c-format msgid "<varselector id=\"vars\"/>" msgstr "<varselector id=\"variabili\"/>" #. Tag: para #. +> trunk5 #: index.docbook:298 #, 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:302 #, no-c-format msgid "You may NOT use a dot (.) in the id string." msgstr "" "NON si dovrebbe utilizzare un punto (.) Nella stringa id<" "/parameter>." #. Tag: programlisting #. +> trunk5 #: index.docbook:306 #, no-c-format msgid "<column>" msgstr "<column>" #. Tag: para #. +> trunk5 #: index.docbook:307 #, 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:310 #, 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:311 #, no-c-format msgid "" "These elements are the counterpart to the <varselector><" "/command>. 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><" "/command>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 <" "parameter>required. This means that the Submit<" "/guibutton> button will not be enabled until the <varslot><" "/command> 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:314 #, 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<" "/parameter>: 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:318 #, fuzzy, 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=\"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>" #. Tag: para #. +> trunk5 #: index.docbook:319 #, no-c-format msgid "" "Here, you define a group of <radio> exclusive" " buttons. The group has a label and an id<" "/parameter>. 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:322 #, no-c-format msgid "" "</column>\n" " </row>\n" " </tab>" msgstr "" "</column>\n" " </row>\n" " </tab>" #. Tag: para #. +> trunk5 #: index.docbook:323 #, no-c-format msgid "" "Each tag has to be closed. We have put all the elements we wanted (the two <" "command><varslots> and the <radio>)" " in the <column>. We put all elements we wanted (the" " <varselector> and the <column><" "/command> 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:327 #, no-c-format msgid "t-Test plugin" msgstr "Estensione test t" #. Tag: phrase #. +> trunk5 #: index.docbook:333 #, no-c-format msgid "t-Test plugin" msgstr "Estensione test t" #. Tag: para #. +> trunk5 #: index.docbook:337 #, 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, <" "guibutton" ">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:340 #, 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:341 #, 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><" "/command>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:344 #, 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:345 #, fuzzy, 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<" "/parameter>, 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, disegniamo un <frame>" " (box). Quel frame può avere una label (didascalia)." " Poiché il frame è solo un elemento di layout passivo, non ha bisogno di un <" "parameter> id , ne definiamo ancora uno qui, come faremo" " riferimento in seguito, quando definiremo un'interfaccia aggiuntiva della" " procedura " #. Tag: programlisting #. +> trunk5 #: index.docbook:348 #, 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:349 #, no-c-format msgid "" "Inside the <frame> we place another <checkbox> (using checked=<" "replaceable>\"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 <" "replaceable>\"0.95\". Setting the type" " to \"real\" signals that real numbers are" " accepted as opposed to type=\"integer\"<" "/replaceable> which would accept integers only." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:352 #, 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 "" #. Tag: programlisting #. +> trunk5 #: index.docbook:355 #, no-c-format msgid "" "</tab>\n" " </tabbook>\n" " </dialog>" msgstr "" "</tab>\n" " </tabbook>\n" " </dialog>" #. Tag: para #. +> trunk5 #: index.docbook:356 #, 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 "" #. Tag: programlisting #. +> trunk5 #: index.docbook:359 #, no-c-format msgid "</document>" msgstr "</document>" #. Tag: para #. +> trunk5 #: index.docbook:360 #, 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 "" #. Tag: title #. +> trunk5 #: index.docbook:366 #, no-c-format msgid "Adding a wizard interface" msgstr "Aggiunge un'interfaccia di procedura guidata" #. Tag: para #. +> trunk5 #: index.docbook:367 #, no-c-format msgid "" "Actually we do not have to define an additional <wizard><" "/command> 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 "" #. Tag: programlisting #. +> trunk5 #: index.docbook:370 #, fuzzy, 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=\"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>" #. Tag: para #. +> trunk5 #: index.docbook:371 #, no-c-format msgid "" "Some of this is pretty self explanatory: We add a <wizard><" "/command> 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 <" "command><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><" "/command>: The copy tag looks for another tag with the same id<" "/parameter> 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:374 #, no-c-format msgid "Now to the second page:" msgstr "Ora alla seconda pagina:" #. Tag: programlisting #. +> trunk5 #: index.docbook:377 #, fuzzy, 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=\"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>" #. Tag: para #. +> trunk5 #: index.docbook:378 #, 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:381 -#, fuzzy, no-c-format +#, 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 puoi rendere l'interfaccia della procedura guidata molto diversa" -" dalla semplice finestra di dialogo e non usare affatto il tag <copy>. Assicurati, tuttavia, di assegnare agli elementi" -" corrispondenti lo stesso id in entrambe le" -" interfacce. Questo non viene utilizzato solo per trasferire le impostazioni" +"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 <" +"parameter>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 corrente di &rkward;), ma semplifica anche la scrittura del" -" modello di codice (vedi sotto) ." +" 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:387 #, no-c-format msgid "Some considerations on &GUI; design" msgstr "Alcune considerazioni sulla struttura della &GUI;" #. Tag: para #. +> trunk5 #: index.docbook:388 #, 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:393 #, no-c-format msgid "<radio> vs. <checkbox> vs. <dropdown>" msgstr "<radio> vs. <checkbox> vs. <dropdown>" #. Tag: para #. +> trunk5 #: index.docbook:394 #, 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:397 #, 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 <" "quote>adjust results and do not adjust results, or" " between remove missing values and keep missing values<" "/quote>. 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><" "/command>, when there are only two options. An example of that might be: <" "quote>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:400 #, 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:408 #, 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:409 #, no-c-format msgid "Using &javascript; in &rkward; plugins" msgstr "Utilizzare &javascript; nelle estensioni di &rkward;" #. Tag: para #. +> trunk5 #: index.docbook:410 #, 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:414 #, no-c-format msgid "" "After reading this chapter, have a look at the <" "application>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:419 #, 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:423 #, 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:426 #, no-c-format msgid "preprocess()" msgstr "preprocess()" #. Tag: programlisting #. +> trunk5 #: index.docbook:427 #, no-c-format msgid "" "function preprocess () {\n" "}" msgstr "" "function preprocess () {\n" "}" #. Tag: para #. +> trunk5 #: index.docbook:428 #, 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 "" #. Tag: title #. +> trunk5 #: index.docbook:432 #, no-c-format msgid "calculate()" msgstr "calculate()" #. Tag: programlisting #. +> trunk5 #: index.docbook:433 #, 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:434 #, 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:437 #, no-c-format msgid "res <- t.test (" msgstr "res <- t.test (" #. Tag: para #. +> trunk5 #: index.docbook:438 #, 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 <" "replaceable>\"y\" - the second <checkbox><" "/command>. For the hypothesis (the <radio> group)," " and the equal variances <checkbox>, the procedure" " is very similar." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:441 #, 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()<" "/function>." msgstr "" "Tenere presente che invece di concatenare i frammenti di uscita con +<" "/quote>, è possibile anche utilizzare diverse istruzioni echo()<" "/function>. " "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 <" "function>echo()." #. Tag: para #. +> trunk5 #: index.docbook:445 #, 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 <" "function>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:446 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:449 #, 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:453 #, no-c-format msgid "printout()" msgstr "printout()" #. Tag: programlisting #. +> trunk5 #: index.docbook:454 #, 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:455 #, 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:460 #, 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:461 #, no-c-format msgid "" "rk.print() utilizes the R2HTML package to provide &HTML;" " formatted output. Another helpful function is rk.results()<" "/function>, 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:464 #, 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 <" "function>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 <" "function>rk.header(), rk.print(), rk.results(), and -- if needed -- rk.print.literal()<" "/function>. If those do not seem to satisfy your formatting needs, contact us" " on the mailing list for help." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:467 #, 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:474 #, no-c-format msgid "Conventions, policies, and background" msgstr "Convenzioni, criteri e sfondo" #. Tag: para #. +> trunk5 #: index.docbook:475 #, 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:480 #, no-c-format msgid "Understanding the local() environment" msgstr "Comprendere l'ambiente local()" #. Tag: para #. +> trunk5 #: index.docbook:481 #, 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:484 #, 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<" "/function>. In general, do not use the <<-" " operator. It will not necessarily assign in .GlobalEnv." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:487 #, 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:493 #, no-c-format msgid "Code formatting" msgstr "Formattazione del codice" #. Tag: para #. +> trunk5 #: index.docbook:494 #, 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:497 #, 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:500 #, 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:503 #, 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 <" "command>comment() " "per l'inserimento di commenti traducibili nel codice generato." #. Tag: para #. +> trunk5 #: index.docbook:507 #, 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:510 #, fuzzy, 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 "" "# 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" "}" #. Tag: title #. +> trunk5 #: index.docbook:514 #, no-c-format msgid "Dealing with complex options" msgstr "Gestire le operazioni complesse" #. Tag: para #. +> trunk5 #: index.docbook:515 #, 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:518 #, 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:523 #, no-c-format msgid "Tips and tricks" msgstr "Suggerimenti e trucchi" #. Tag: para #. +> trunk5 #: index.docbook:524 #, 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:527 #, 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:530 #, 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:531 #, 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:534 #, 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:539 #, no-c-format msgid "Writing a help page" msgstr "Scrivere una pagina della guida" #. Tag: para #. +> trunk5 #: index.docbook:540 #, 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:544 #, no-c-format msgid "" "After reading this chapter, have a look at the <" "application>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 "" #. Tag: para #. +> trunk5 #: index.docbook:548 #, 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:551 #, 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:552 #, 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 "" #. Tag: programlisting #. +> trunk5 #: index.docbook:555 #, fuzzy, 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\"/>&" "lt;/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 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\"/>&" "lt;/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>" #. Tag: title #. +> trunk5 #: index.docbook:560 #, no-c-format msgid "Logic interactions between &GUI; elements" msgstr "Interazioni logiche tra gli elementi della &GUI;" #. Tag: title #. +> trunk5 #: index.docbook:561 #, no-c-format msgid "&GUI; logic" msgstr "Logica della &GUI;" #. Tag: para #. +> trunk5 #: index.docbook:562 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:565 #, 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:568 #, 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:569 #, 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:572 #, 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:573 #, no-c-format msgid "" "The first line inside the logic section is a <convert><" "/command> 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:576 #, 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 <" "replaceable>\"mode.string\" and \"somethingelse\"<" "/replaceable> are equal to the string \"variable\"). Note that in this case we do not just write \"mode\"<" "/replaceable> (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:579 #, no-c-format msgid "" "Second, we set the mode of conversion to mode=<" "replaceable>\"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=<" "replaceable>\"variable\", we check whether the property <" "replaceable>\"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:582 #, 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:585 #, 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\"<" "/replaceable>, 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:590 #, 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:594 #, no-c-format msgid "" "Besides <convert> and <connect><" "/command>, 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:598 #, no-c-format msgid "Scripted &GUI; logic" msgstr "Logica della &GUI; programmata" #. Tag: para #. +> trunk5 #: index.docbook:599 #, 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:602 #, 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:603 #, 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 <" "replaceable>\"y\" and \"constant\"," " in just the same way as we did using <connect>" " statements, before." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:606 #, 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<" "/link> for available functions." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:609 #, 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:616 #, no-c-format msgid "Embedding Plugins into Plugins" msgstr "Integrazione di estensioni in estensioni" #. Tag: title #. +> trunk5 #: index.docbook:617 #, no-c-format msgid "Use cases for embedding" msgstr "Casi di utilizzo per l'integrazione" #. Tag: para #. +> trunk5 #: index.docbook:618 #, 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:621 #, 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:626 #, no-c-format msgid "Embedding inside a dialog" msgstr "Integrazione in una finestra" #. Tag: para #. +> trunk5 #: index.docbook:627 #, 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:630 #, 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:631 #, 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<" "/guibutton> button, &etc;) is embedded right into your plugin (try it!)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:634 #, 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 <" "quote>::, and the name of the component plot_options)." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:639 #, no-c-format msgid "Code generation when embedding" msgstr "Generazione di codice durante l'integrazione" #. Tag: para #. +> trunk5 #: index.docbook:640 #, 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:643 #, 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:644 #, 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 <" "replaceable>\"plotoptions.code.printout\" can be deparsed to: <" "quote>The printout section of the generated code of the element with the <" "parameter>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:649 #, no-c-format msgid "Embedding inside a wizard" msgstr "Integrazione in una procedura guidata" #. Tag: para #. +> trunk5 #: index.docbook:650 #, 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:653 #, 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:654 #, no-c-format msgid "" "If the embedded plugin provides a wizard interface, its pages will be" " inserted right between \"page12\" and <" "replaceable>\"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:659 #, no-c-format msgid "Less embedded embedding: Further Options button" msgstr "Integrazione meno integrata: pulsante Altre opzioni" #. Tag: para #. +> trunk5 #: index.docbook:660 #, 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:663 #, 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:666 #, 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:667 #, no-c-format msgid "" "In this case, a single push button will be added to your plugin, labeled <" "guibutton>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<" "/link>." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:672 #, 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:679 #, no-c-format msgid "Embedding/defining incomplete plugins" msgstr "Integrazione/definizione di estensioni incomplete" #. Tag: para #. +> trunk5 #: index.docbook:680 #, 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:683 #, 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:686 #, 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:689 #, 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:690 #, 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:693 #, 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:696 #, 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:697 #, no-c-format msgid "" "This is nothing new in principle, we have covered <connect><" "/command> statements in the chapter of &GUI; logic<" "/link>. 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:704 #, no-c-format msgid "Dealing with many similar plugins" msgstr "Gestire molte estensioni singole" #. Tag: title #. +> trunk5 #: index.docbook:705 #, no-c-format msgid "Overview on different approaches" msgstr "Panoramica su diversi approcci" #. Tag: para #. +> trunk5 #: index.docbook:706 #, 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:709 #, 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:712 #, 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:715 #, 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:720 #, no-c-format msgid "Using the JS include statement" msgstr "Utilizzare l'istruzione include di JS" #. Tag: para #. +> trunk5 #: index.docbook:721 #, 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:724 #, 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:725 #, no-c-format msgid "" "// this is one of your regular plugin .js<" "/literal> 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:726 #, no-c-format msgid "" "Note that sometimes it is even more useful to reverse this, and define the <" "quote>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:729 #, fuzzy, 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 "" "// 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" "}" #. Tag: programlisting #. +> trunk5 #: index.docbook:730 #, no-c-format msgid "" "// this is one of your regular plugin .js<" "/literal> 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<" "/literal> 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:731 #, 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:734 #, 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:740 #, no-c-format msgid "Including .xml files" msgstr "Includere i file .xml" #. Tag: para #. +> trunk5 #: index.docbook:741 #, 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:744 #, 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:745 #, no-c-format msgid "" "The attribute file is the filename relative to the" " directory the current file is located in." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:751 #, no-c-format msgid "Using <snippets>" msgstr "Utilizzare <snippets>" #. Tag: para #. +> trunk5 #: index.docbook:752 #, 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:755 #, 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:756 #, 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:759 #, 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 <" "command><include> the file there as well, and <insert> the relevant snippet:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:762 #, fuzzy, 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 "" "<!-- 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>" #. Tag: programlisting #. +> trunk5 #: index.docbook:763 #, fuzzy, 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=\"common_note\"/>\n" " <spinbox id=\"something_plugin_specific\" [...] />\n" " <insert snippet=\"common_options\"/>\n" " </dialog>\n" "</document>" #. Tag: para #. +> trunk5 #: index.docbook:764 #, 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:767 #, 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:768 #, fuzzy, 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 "" "<!-- 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>" #. Tag: para #. +> trunk5 #: index.docbook:769 #, 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:775 #, no-c-format msgid "<include> and <snippets> vs. <embed>" msgstr "<include> e <snippets> vs. <embed>" #. Tag: para #. +> trunk5 #: index.docbook:776 #, 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:779 #, 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:782 #, 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:785 #, 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 <" "quote>modules, embedding is likely better." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:792 #, no-c-format msgid "Concepts for use in specialized plugins" msgstr "Concetti per l'uso in estensioni specializzate" #. Tag: para #. +> trunk5 #: index.docbook:793 #, 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:798 #, no-c-format msgid "Plugins that produce a plot" msgstr "Estensioni che producono un grafico" #. Tag: para #. +> trunk5 #: index.docbook:799 #, 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:803 #, no-c-format msgid "Drawing a plot to the output window" msgstr "Tracciare un grafico nella finestra del risultato" #. Tag: para #. +> trunk5 #: index.docbook:804 #, no-c-format msgid "" "In order to draw a plot to the output window, use rk.graph.on()<" "/function> directly before creating the plot, and rk.graph.off()<" "/function>, directly afterwards. This is similar to ⪚ calling postscript() and dev.off() in a regular &R;" " session." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:809 #, 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 <" "function>rk.graph.off() really gets called, you should wrap <" "emphasis>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:816 #, no-c-format msgid "Adding preview functionality" msgstr "Aggiungere una funzionalità di anteprima" #. Tag: para #. +> trunk5 #: index.docbook:817 #, 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:818 #, 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:821 #, 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:824 #, 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:826 #, 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:827 #, 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:830 #, 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 <" "function>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:835 #, no-c-format msgid "Generic plot options" msgstr "Opzioni generiche grafico" #. Tag: para #. +> trunk5 #: index.docbook:836 #, 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:839 #, 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:840 #, 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:843 #, 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 <" "command>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:849 #, no-c-format msgid "A canonical example" msgstr "Un esempio classico" #. Tag: para #. +> trunk5 #: index.docbook:850 #, 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:853 #, fuzzy, 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" " // 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" " }" #. Tag: title #. +> trunk5 #: index.docbook:857 #, no-c-format msgid "Previews for data, output and other results" msgstr "Anteprime dei dati, uscita e altri risultati" #. Tag: title #. +> trunk5 #: index.docbook:859 #, no-c-format msgid "Previews of (HTML) output" msgstr "Anteprima del risultato (HTML)" #. Tag: para #. +> trunk5 #: index.docbook:860 #, 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:861 #, 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()<" "/command> 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 <" "command>rk.print()/rk.results(). In genere, tuttavia, è" " consigliabile omettere le istruzioni di intestazione nell'anteprima. Ecco un" " esempio ridotto:" #. Tag: programlisting #. +> trunk5 #: index.docbook:865 #, 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:866 #, no-c-format msgid "" "Note the specification of mode=\"output\" in the <" "command><preview> element." msgstr "" "Nota la specifica di mode=\"output\" in <preview>." #. Tag: programlisting #. +> trunk5 #: index.docbook:869 #, 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:872 #, no-c-format msgid "Previews of (imported) data" msgstr "Anteprima dei dati (importati)" #. Tag: para #. +> trunk5 #: index.docbook:873 #, 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 <" "link linkend=\"preview_plots\">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:874 #, 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 <" "command>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:877 #, 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:878 #, 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 <" "parameter>mode=\"data\". active=\"true\"" " rende semplicemente attiva l'anteprima per impostazione predefinita." #. Tag: programlisting #. +> trunk5 #: index.docbook:882 #, fuzzy, 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 "" "// 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" " }" #. Tag: para #. +> trunk5 #: index.docbook:883 #, 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:887 #, 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 <" "parameter>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:894 #, no-c-format msgid "Custom previews" msgstr "Anteprime personalizzate" #. Tag: para #. +> trunk5 #: index.docbook:895 #, 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 <" "link linkend=\"preview_data\">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:898 #, 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:901 #, fuzzy, 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 "" "## 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" " })" #. Tag: para #. +> trunk5 #: index.docbook:902 #, no-c-format msgid "" "Here you should get the value SOMEID from the <" "parameter>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><" "/command>. Cioè utilizzando getString(\"preview.id\") nel" " file .js dell'estensione." #. Tag: title #. +> trunk5 #: index.docbook:909 #, no-c-format msgid "Context-dependent plugins" msgstr "Estensioni dipendenti dal contesto" #. Tag: para #. +> trunk5 #: index.docbook:910 #, 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:913 #, 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 <" "command><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:918 #, no-c-format msgid "X11 device context" msgstr "Contesto del dispositivo X11" #. Tag: para #. +> trunk5 #: index.docbook:919 #, 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:922 #, 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:923 #, 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:926 #, no-c-format msgid "" "<hierarchy>\n" " [...]\n" " </hierarchy>" msgstr "" "<hierarchy>\n" " [...]\n" " </hierarchy>" #. Tag: para #. +> trunk5 #: index.docbook:927 #, 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:930 #, 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:931 #, no-c-format msgid "" "In the logic section of the plugin xml, you" " can now declare two <external> properties: <" "parameter>devnum and context. context (if declared) will be set to \"x11\"<" "/replaceable> when the plugin is invoked in this context. devnum<" "/parameter> will be set to the number of the graphics device to operate on." " And that is all." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:937 #, no-c-format msgid "Import data context" msgstr "Importa contesto di dati" #. Tag: para #. +> trunk5 #: index.docbook:938 #, no-c-format msgid "" "Before reading this section, please make sure to read the section on the <" "link linkend=\"context_x11\">X11 device context, as that explains the" " basic concepts." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:941 #, 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:944 #, fuzzy, 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=\"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>" #. Tag: para #. +> trunk5 #: index.docbook:945 #, 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 <" "quote>XYZ data files in the file selection dialog." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:948 #, 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:955 #, no-c-format msgid "Querying &R; for information" msgstr "Interrogazione delle informazioni di &R;" #. Tag: para #. +> trunk5 #: index.docbook:956 #, 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:958 #, 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:960 #, 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:961 #, 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:962 #, no-c-format msgid "Do not plot anything on-screen." msgstr "Non tracciare nulla sullo schermo." #. Tag: para #. +> trunk5 #: index.docbook:963 #, no-c-format msgid "" "In general, do not do anything that has side-effects." " Your code may read in information, not \"do<" "/emphasis>\" anything." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:965 #, no-c-format msgid "" "With this in mind, here is the general pattern. You will use this inside a <" "link linkend=\"logic_scripted\">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:966 #, fuzzy, 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 (\"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>" #. Tag: para #. +> trunk5 #: index.docbook:967 #, 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><" "/command> 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:972 #, 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:975 #, 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 <" "link linkend=\"embedding\">embed in your own plugin. This even allows" " you to specify a different expression to run in place of levels()<" "/command>." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:981 #, 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:982 #, 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 <" "parameter>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:986 #, no-c-format msgid "" "Currently the current_object can only be of class <" "function>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:992 #, no-c-format msgid "Repeating (a set of) options" msgstr "Ripetere (un insieme di) opzioni" #. Tag: para #. +> trunk5 #: index.docbook:993 #, 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:996 #, no-c-format msgid "" "Enter the <optionset>. Let's look at a simple" " example, first:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:999 #, 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:1000 #, 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:1004 #, 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, <" "command><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 <" "function>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:1012 #, 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:1016 #, 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:1017 #, 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:1022 #, 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<" "/emphasis> apply to items that the user has already defined. Only to the" " currently selected item in the set." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1030 #, no-c-format msgid "\"Driven\" optionsets" msgstr "Optionset «guidati»" #. Tag: para #. +> trunk5 #: index.docbook:1031 #, 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><" "/command>, 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:1042 #, fuzzy, 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=\"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>" #. Tag: para #. +> trunk5 #: index.docbook:1043 #, no-c-format msgid "" "We will start looking at the example at the bottom. You will note that two <" "command><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 <" "command><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><" "/command>. That is for each object that is selected there, the <optionset> will allow to specify line color." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1053 #, 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\"<" "/parameter> 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:1063 #, no-c-format msgid "Alternatives: When not to use optionsets" msgstr "Alternative: quando non utilizzare optionset" #. Tag: para #. +> trunk5 #: index.docbook:1064 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1070 #, no-c-format msgid "" "For some simple cases, the <matrix> element may" " provide a useful lightweight alternative." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1071 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1075 #, 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 "" #. Tag: title #. +> trunk5 #: index.docbook:1084 #, no-c-format msgid "Handling dependencies and compatibility issues" msgstr "Gestione delle dipendenze e problemi di compatibilità" #. Tag: title #. +> trunk5 #: index.docbook:1085 #, no-c-format msgid "&rkward; version compatibility" msgstr "Compatibilità di versione di &rkward;" #. Tag: para #. +> trunk5 #: index.docbook:1086 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1087 #, 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><" "/command> 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:1088 #, no-c-format msgid "Let's look at a small example:" msgstr "Vediamo un piccolo esempio:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1089 #, fuzzy, 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=\"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: para #. +> trunk5 #: index.docbook:1090 #, 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:1091 #, 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<" "/parameter> (warnings will be produced, otherwise), and may only be defined <" "emphasis>within the same &pluginmap; file." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1092 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1093 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1094 #, 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:1096 #, no-c-format msgid "&R; version compatibility" msgstr "Compatibilità versione di R" #. Tag: para #. +> trunk5 #: index.docbook:1097 #, no-c-format msgid "" "Similar to rkward_min_version and rkward_max_version, the <dependencies>" " element allows specification of the attributes R_min_version<" "/parameter> and R_max_version. However, there are the" " following differences:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1099 #, no-c-format msgid "" "Plugins which fail to meet the &R; version requirement are not<" "/emphasis> 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:1100 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1101 #, 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:1103 #, 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<" "/literal> file:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1104 #, fuzzy, 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=\"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>" #. Tag: para #. +> trunk5 #: index.docbook:1105 #, 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:1107 #, no-c-format msgid "Dependencies on &R; packages" msgstr "Dipendenze dei pacchetti di &R;" #. Tag: para #. +> trunk5 #: index.docbook:1108 #, 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:1109 #, 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:1110 #, 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:1111 #, 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:1113 #, no-c-format msgid "Dependencies on other &rkward; &pluginmap;s" msgstr "Dipendenze da altre &pluginmap; di &rkward;" #. Tag: para #. +> trunk5 #: index.docbook:1114 #, no-c-format msgid "" "If your plugins depend on plugins defined in another &pluginmap; (that is <" "emphasis>not part of your package) you can define this dependency" " like this:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1115 -#, fuzzy, no-c-format +#, 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:1116 #, 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:1117 #, 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:1119 #, no-c-format msgid "An example" msgstr "Un esempio" #. Tag: para #. +> trunk5 #: index.docbook:1120 #, 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:1121 #, fuzzy, 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:1126 #, no-c-format msgid "Plugin translations" msgstr "Traduzione delle estensioni" #. Tag: para #. +> trunk5 #: index.docbook:1127 #, 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<" "/emphasis> 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:1133 #, no-c-format msgid "General considerations" msgstr "Considerazioni generali" #. Tag: para #. +> trunk5 #: index.docbook:1134 #, 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><" "/command> 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:1143 #, no-c-format msgid "i18n in &rkward;'s xml files" msgstr "i18n nei file xml di &rkward;" #. Tag: para #. +> trunk5 #: index.docbook:1144 #, 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 <" "replaceable>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:1151 #, 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:1156 #, 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:1157 #, 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 <" "replaceable>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:1162 #, 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 "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1166 #, fuzzy, 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 "" "<!-- i18n: No, non è un refuso per 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\"/>" #. Tag: para #. +> trunk5 #: index.docbook:1167 #, 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:1170 #, 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:1175 #, 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:1176 #, 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 "" #. Tag: title #. +> trunk5 #: index.docbook:1181 #, 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:1182 #, 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 "" #. Tag: command #. +> trunk5 #: index.docbook:1189 #, no-c-format msgid "i18n (msgid, [...])" msgstr "i18n (msgid, [...])" #. Tag: para #. +> trunk5 #: index.docbook:1190 #, 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 "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1192 #, 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:1195 #, no-c-format msgid "i18nc (msgctxt, msgid, [...])" msgstr "i18nc (msgctxt, msgid, [...])" #. Tag: para #. +> trunk5 #: index.docbook:1196 #, 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:1197 #, 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:1200 #, no-c-format msgid "i18np (msgid_singular, msgid_plural, n, [...])" msgstr "i18np (msgid_singular, msgid_plural, n, [...])" #. Tag: para #. +> trunk5 #: index.docbook:1201 #, 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 "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1203 #, 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:1206 #, no-c-format msgid "i18ncp (msgctxt, msgid_singular, msgid_plural, n, [...])" msgstr "i18ncp (msgctxt, msgid_singular, msgid_plural, n, [...])" #. Tag: para #. +> trunk5 #: index.docbook:1207 #, no-c-format msgid "i18np() with added message context." msgstr "i18np() con messaggio di contesto aggiunto." #. Tag: command #. +> trunk5 #: index.docbook:1210 #, no-c-format msgid "comment (comment, [indentation])" msgstr "comment (commento, [indentazione])" #. Tag: para #. +> trunk5 #: index.docbook:1211 #, 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 "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1212 #, 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:1215 #, no-c-format msgid "" "To add comments to the translators (see above<" "/link> for a discussion of the differences between comment and context), add" " a comment starting with \"i18n:\" or \"translators:\" directly above the <" "command>i18n()-call to comment. E.g.:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1219 #, 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:1221 #, no-c-format msgid "i18n and quotes" msgstr "i18n e virgolette" #. Tag: para #. +> trunk5 #: index.docbook:1222 #, 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 <" "command>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()<" "/command>, twice." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1229 #, 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 "" #. Tag: title #. +> trunk5 #: index.docbook:1237 #, no-c-format msgid "i18n and backwards compatibility" msgstr "i18n e compatibilità all'indietro" #. Tag: para #. +> trunk5 #: index.docbook:1238 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1243 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1245 #, 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:1246 #, 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:1248 #, fuzzy, 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 "" "// 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" " }" #. Tag: title #. +> trunk5 #: index.docbook:1251 #, no-c-format msgid "Translation maintainance" msgstr "Manutenzione delle traduzioni" #. Tag: para #. +> trunk5 #: index.docbook:1252 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1257 #, 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:1258 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1260 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1262 #, no-c-format msgid "" "Translator opens the file in a translation tool such as lokalize<" "/command>. 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1264 #, no-c-format msgid "" "Translator saves the translation as rkward__POID<" "/replaceable>.xx.po (where xx is the language code), and sends it back to you." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1266 #, no-c-format msgid "" "Copy rkward__POID.xx<" "/replaceable>.po to your sources, next to rkward__<" "replaceable>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<" "/replaceable>/po/xx/LC_MESSAGES/rkward__<" "replaceable>POID.mo (where xx<" "/replaceable> is the language code, again)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1271 #, no-c-format msgid "" "You should also include the non-compiled translation (&ie; rkward__<" "replaceable>POID.xx.po) in" " your distribution, in the \"po\" subdirectory." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1273 #, 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:1277 #, no-c-format msgid "Writing plugin translations" msgstr "Tradurre le estensioni" #. Tag: para #. +> trunk5 #: index.docbook:1278 #, 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:1282 #, 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:1285 #, 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:1290 #, 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:1298 #, no-c-format msgid "Author, license and version information" msgstr "Informazioni su autore, licenza e versione" #. Tag: para #. +> trunk5 #: index.docbook:1299 #, 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:1300 #, 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:1301 #, fuzzy, 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=\"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>" #. Tag: para #. +> trunk5 #: index.docbook:1302 #, 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:1303 #, no-c-format msgid "" "The category element in <about><" "/command> 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:1304 #, 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:1305 #, no-c-format msgid "" "Remember that you can use <include> and / or <" "command><insert> to repeat information across several <" "literal role=\"extension\">.xml files (⪚ information on an" " author who was involved with several plugins). More information." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1306 #, no-c-format msgid "" "You do not have to write this &XML; code by hand. If you use the function <" "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:1310 #, no-c-format msgid "Share your work with others" msgstr "Condividere il proprio lavoro con altri" #. Tag: title #. +> trunk5 #: index.docbook:1311 #, no-c-format msgid "External plugins" msgstr "Estensioni esterne" #. Tag: para #. +> trunk5 #: index.docbook:1312 #, 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:1315 #, 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:1318 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1322 #, 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 "" #. Tag: title #. +> trunk5 #: index.docbook:1328 #, no-c-format msgid "Why external plugins?" msgstr "Perché le estensioni esterne?" #. Tag: para #. +> trunk5 #: index.docbook:1329 #, 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/<" "/ulink>, designated to host your external plugins." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1332 #, 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 "" #. Tag: title #. +> trunk5 #: index.docbook:1338 #, no-c-format msgid "Structure of a plugin package" msgstr "Struttura del pacchetto di un'estensione" #. Tag: para #. +> trunk5 #: index.docbook:1339 #, 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:1341 #, no-c-format msgid "File hierarchy" msgstr "Gerarchia dei file" #. Tag: para #. +> trunk5 #: index.docbook:1342 #, 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 "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1345 #, 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:1347 #, 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<" "/quote> or es)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1352 #, 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:1357 #, no-c-format msgid "Basic plugin components" msgstr "Componenti di base di un'estensione" #. Tag: para #. +> trunk5 #: index.docbook:1358 #, 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:1361 #, 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 <" "link linkend=\"chapter_dependencies\">dependencies, but in a different" " format (the &R; documentation explains the DESCRIPTION file in detail)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1364 #, 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 "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1367 #, fuzzy, 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&g" "t;\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: 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&g" "t;\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\"))" #. Tag: para #. +> trunk5 #: index.docbook:1369 #, no-c-format msgid "" "You do not have to write this file by hand. If you use the function rk.plugin.skeleton() from the <" "application>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:1375 #, no-c-format msgid "Additional information (optional)" msgstr "Informazioni aggiuntive (facoltativo)" #. Tag: para #. +> trunk5 #: index.docbook:1376 #, 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:1381 #, no-c-format msgid "Automated plugin testing (optional)" msgstr "Test automatico dell'estensione (facoltativo)" #. Tag: para #. +> trunk5 #: index.docbook:1382 #, 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:1386 #, 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 <" "ulink url=\"rkward://rhelp/rkwardtests\">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:1394 #, no-c-format msgid "Building the plugin package" msgstr "Creazione del pacchetto dell'estensione" #. Tag: para #. +> trunk5 #: index.docbook:1395 #, 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 <" "filename>DESCRIPTION file and adhere to the file hierarchy" " explained in previous" " sections." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1396 #, no-c-format msgid "" "The easiest way to actually build and test your plugin is to use the <" "application>R command on the command line, for example:" msgstr "" #. Tag: userinput #. +> trunk5 #: index.docbook:1397 #, no-c-format msgid "" "R SquaretheCircle" msgstr "" "R SquaretheCircle" #. Tag: userinput #. +> trunk5 #: index.docbook:1400 #, no-c-format msgid "" "R SquaretheCircle_0.1-3.tar.gz" msgstr "" "R SquaretheCircle_0.1-3.tar.gz" #. Tag: para #. +> trunk5 #: index.docbook:1403 #, 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:1408 #, no-c-format msgid "" "Plugin development with the rkwarddev package" msgstr "" "Sviluppo di estensioni con il pacchetto rkwarddev" #. Tag: title #. +> trunk5 #: index.docbook:1409 #, no-c-format msgid "Overview" msgstr "Panoramica" #. Tag: para #. +> trunk5 #: index.docbook:1410 #, 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:1411 #, 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 (<" "menuchoice>SettingsConfigure packages<" "/guimenuitem>), or from any running &R; session:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1412 #, 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:1413 #, 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:1414 #, 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:1417 #, no-c-format msgid "Practical example" msgstr "Esempio pratico" #. Tag: para #. +> trunk5 #: index.docbook:1418 #, 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:1420 #, no-c-format msgid "" "The package will add a new &GUI; dialog to &rkward; under <" "guimenu>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:1422 #, no-c-format msgid "&GUI; description" msgstr "Descrizione della &GUI;" #. Tag: para #. +> trunk5 #: index.docbook:1423 #, 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 <" "command><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\"<" "/replaceable> variable of the t-test example can be done by:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1424 #, 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:1425 #, no-c-format msgid "" "The most interesting detail is probably source=<" "replaceable>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 <" "parameter>id.name arguments here, so this would suffice:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1426 #, 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:1427 #, 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:1429 #, 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<" "/parameter>. 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:1433 #, 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:1434 #, 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:1435 #, 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, <" "parameter>val for the value of an option and the boolean <" "parameter>chk to specify if this option is checked by default." msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1436 #, fuzzy, 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(\"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" ")" #. Tag: para #. +> trunk5 #: index.docbook:1437 #, no-c-format msgid "The result looks like this:" msgstr "Il risultato è simile al seguente:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1438 #, fuzzy, 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=\"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>" #. Tag: para #. +> trunk5 #: index.docbook:1439 #, 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:1440 #, 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:1441 #, 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:1442 #, fuzzy, 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=\"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>" #. Tag: para #. +> trunk5 #: index.docbook:1443 #, 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:1444 #, fuzzy, 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(\"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\")" #. Tag: para #. +> trunk5 #: index.docbook:1445 #, 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:1446 #, 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:1447 #, 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><" "/command> tags:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1448 #, fuzzy, 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=\"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)))" #. Tag: para #. +> trunk5 #: index.docbook:1449 #, 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:1452 #, no-c-format msgid "&javascript; code" msgstr "Codice &javascript;" #. Tag: para #. +> trunk5 #: index.docbook:1453 #, 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:1454 #, 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<" "/application> way." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1455 #, 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:1456 #, 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:1457 #, 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 <" "function>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 <" "function>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:1458 #, 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 <" "function>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:1459 #, 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:1460 #, 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:1461 #, 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:1462 #, 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:1463 #, 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:1465 #, 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:1471 #, no-c-format msgid "Plugin map" msgstr "Mappa delle estensioni" #. Tag: para #. +> trunk5 #: index.docbook:1472 #, 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()<" "/function>. The menu hierarchy can be specified via the pluginmap<" "/parameter> option:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1473 #, 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:1476 #, no-c-format msgid "Help page" msgstr "Pagina della guida" #. Tag: para #. +> trunk5 #: index.docbook:1477 #, 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:1478 #, 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:1481 #, no-c-format msgid "Generate the plugin files" msgstr "Genera i file delle estensioni" #. Tag: para #. +> trunk5 #: index.docbook:1482 #, 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:1483 #, 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:1484 #, 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=<" "replaceable>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=<" "/parameter>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:1485 #, 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:1487 #, no-c-format msgid "The full script" msgstr "Lo script completo" #. Tag: para #. +> trunk5 #: index.docbook:1488 #, 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:1489 #, fuzzy, 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(\"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" "})" #. Tag: title #. +> trunk5 #: index.docbook:1493 #, no-c-format msgid "Adding help pages" msgstr "Aggiunge una pagina della guida" #. Tag: para #. +> trunk5 #: index.docbook:1494 #, 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:1497 #, 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:1498 #, 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> parameter and make sure it is identical for all objects belonging" " together." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1501 #, 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> parameter:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1504 #, 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:1505 #, 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 <" "parameter>summary or usage in the <" "parameter>rkh parameter of rk.plugin.component()<" "/function>/rk.plugin.skeleton()." msgstr "" #. Tag: title #. +> trunk5 #: index.docbook:1509 #, no-c-format msgid "Translating plugins" msgstr "Traduzione delle estensioni" #. Tag: para #. +> trunk5 #: index.docbook:1510 #, 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 <" "replaceable>i18n_context or noi18n_label<" "/replaceable>:" msgstr "" #. Tag: programlisting #. +> trunk5 #: index.docbook:1513 #, 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:1514 #, 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:1515 #, 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:1516 #, 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:1519 #, no-c-format msgid "jsHeader <- rk.JS.header(\"Test results\")" msgstr "jsHeader <- rk.JS.header(\"Risultati del test\")" #. Tag: para #. +> trunk5 #: index.docbook:1520 #, no-c-format msgid "This produces the following JS code:" msgstr "Questo produce il seguente codice JS:" #. Tag: programlisting #. +> trunk5 #: index.docbook:1521 #, no-c-format msgid "new Header(i18n(\"Test results\")).print();" msgstr "new Header(i18n(\"Test dei risultati\")).print();" #. Tag: para #. +> trunk5 #: index.docbook:1522 #, 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 "" #. Tag: title #. +> trunk5 #: index.docbook:1527 #, no-c-format msgid "Reference" msgstr "Riferimento" #. Tag: title #. +> trunk5 #: index.docbook:1529 #, no-c-format msgid "Types of properties/Modifiers" msgstr "Tipi di proprietà/Modificatori" #. Tag: para #. +> trunk5 #: index.docbook:1530 #, no-c-format msgid "" "At some places in this introduction we have talked about properties<" "/quote> 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:1535 #, no-c-format msgid "String properties" msgstr "Proprietà delle stringhe" #. Tag: para #. +> trunk5 #: index.docbook:1536 #, 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:1539 index.docbook:1553 index.docbook:1587 index.docbook:1601 #: index.docbook:1619 index.docbook:1633 #, no-c-format msgid "No modifier (\"\")" msgstr "Nessun modificatore (\"\")" #. Tag: para #. +> trunk5 #: index.docbook:1540 #, no-c-format msgid "The string as defined / set." msgstr "La stringa come definita / impostata" #. Tag: term #. +> trunk5 #: index.docbook:1543 #, no-c-format msgid "quoted" msgstr "quotata" #. Tag: para #. +> trunk5 #: index.docbook:1544 #, 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:1549 #, no-c-format msgid "Boolean properties" msgstr "Proprietà dei booleani" #. Tag: para #. +> trunk5 #: index.docbook:1550 #, 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:1554 #, 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()<" "/function>. 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:1557 #, no-c-format msgid "\"labeled\"" msgstr "\"labeled\"" #. Tag: para #. +> trunk5 #: index.docbook:1558 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:1561 #, no-c-format msgid "\"true\"" msgstr "\"true\"" #. Tag: para #. +> trunk5 #: index.docbook:1562 #, 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:1565 #, no-c-format msgid "\"false\"" msgstr "\"false\"" #. Tag: para #. +> trunk5 #: index.docbook:1566 #, 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:1569 #, no-c-format msgid "\"not\"" msgstr "\"not\"" #. Tag: para #. +> trunk5 #: index.docbook:1570 #, 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:1573 #, no-c-format msgid "\"numeric\"" msgstr "\"numeric\"" #. Tag: para #. +> trunk5 #: index.docbook:1574 #, 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:1579 #, no-c-format msgid "Integer properties" msgstr "Proprietà degli interi" #. Tag: para #. +> trunk5 #: index.docbook:1580 #, 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:1583 #, no-c-format msgid "Real number properties" msgstr "Proprietà dei numeri reali" #. Tag: para #. +> trunk5 #: index.docbook:1584 #, 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:1588 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:1591 #, no-c-format msgid "\"formatted\"" msgstr "\"formatted\"" #. Tag: para #. +> trunk5 #: index.docbook:1592 #, no-c-format msgid "Returns the formatted number (as a string)." msgstr "Restituisce il numero formattato (come stringa)." #. Tag: term #. +> trunk5 #: index.docbook:1597 #, no-c-format msgid "RObject properties" msgstr "Proprietà RObject" #. Tag: para #. +> trunk5 #: index.docbook:1598 #, 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:1602 #, 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:1605 #, no-c-format msgid "\"shortname\"" msgstr "\"shortname\"" #. Tag: para #. +> trunk5 #: index.docbook:1606 #, 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:1609 #, no-c-format msgid "\"label\"" msgstr "\"label\"" #. Tag: para #. +> trunk5 #: index.docbook:1610 #, 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:1615 #, no-c-format msgid "String list properties" msgstr "Proprietà dell'elenco di stringhe" #. Tag: para #. +> trunk5 #: index.docbook:1616 #, no-c-format msgid "This property holds a list of strings." msgstr "Questa proprietà contiene un elenco di stringhe." #. Tag: para #. +> trunk5 #: index.docbook:1620 #, 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 <" "function>getList(), instead, which will return an array of strings." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1623 #, no-c-format msgid "\"joined\"" msgstr "\"joined\"" #. Tag: para #. +> trunk5 #: index.docbook:1624 #, 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:1629 #, no-c-format msgid "Code properties" msgstr "Proprietà del codice" #. Tag: para #. +> trunk5 #: index.docbook:1630 #, 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:1634 #, 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:1637 #, no-c-format msgid "\"preprocess\"" msgstr "\"preprocess\"" #. Tag: para #. +> trunk5 #: index.docbook:1638 #, 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:1641 #, no-c-format msgid "\"calculate\"" msgstr "\"calculate\"" #. Tag: para #. +> trunk5 #: index.docbook:1642 #, 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:1645 #, no-c-format msgid "\"printout\"" msgstr "\"printout\"" #. Tag: para #. +> trunk5 #: index.docbook:1646 #, 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:1649 #, no-c-format msgid "\"preview\"" msgstr "\"preview\"" #. Tag: para #. +> trunk5 #: index.docbook:1650 #, no-c-format msgid "Returns the preview section of the code" msgstr "Restituisce la sezione di anteprima del codice" #. Tag: title #. +> trunk5 #: index.docbook:1658 #, 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:1661 #, no-c-format msgid "<snippets>" msgstr "<snippets>" #. Tag: para #. +> trunk5 #: index.docbook:1662 #, 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:1665 index.docbook:1679 #, no-c-format msgid "<snippet>" msgstr "<snippet>" #. Tag: para #. +> trunk5 #: index.docbook:1666 #, no-c-format msgid "" "Defines a single snippet. Allowed only as a direct child of the" " <snippets/> element. Attributes:" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1669 #, no-c-format msgid "<id>" msgstr "<id>" #. Tag: para #. +> trunk5 #: index.docbook:1670 #, no-c-format msgid "An identifier string for the snippet. Required." msgstr "Una stringa identificativa per il frammento. Necessario." #. Tag: term #. +> trunk5 #: index.docbook:1675 #, no-c-format msgid "<insert>" msgstr "<insert>" #. Tag: para #. +> trunk5 #: index.docbook:1676 #, 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:1680 #, 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:1685 #, no-c-format msgid "<include>" msgstr "<include>" #. Tag: para #. +> trunk5 #: index.docbook:1686 #, 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 file" "elemento <document> di quel file). Consentito ovunque. Attributi:" #. Tag: term #. +> trunk5 #: index.docbook:1689 #, no-c-format msgid "<file>" msgstr "<file>" #. Tag: para #. +> trunk5 #: index.docbook:1690 #, 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:1697 #, 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:1698 #, 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:1700 #, no-c-format msgid "General elements" msgstr "Elementi generali" #. Tag: term #. +> trunk5 #: index.docbook:1703 index.docbook:2908 index.docbook:3179 #, no-c-format msgid "<document>" msgstr "<document>" #. Tag: para #. +> trunk5 #: index.docbook:1704 #, 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:1707 index.docbook:2986 #, no-c-format msgid "<about>" msgstr "<about>" #. Tag: para #. +> trunk5 #: index.docbook:1708 #, no-c-format msgid "" "Information about this plugin (author, licence, &etc;). This element is" " allowed in both an individual plugin's .xml<" "/literal> 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:1711 #, no-c-format msgid "<code>" msgstr "<code>" #. Tag: para #. +> trunk5 #: index.docbook:1712 #, 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:1715 index.docbook:1725 index.docbook:2497 #, no-c-format msgid "file" msgstr "file" #. Tag: para #. +> trunk5 #: index.docbook:1716 #, 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:1721 #, no-c-format msgid "<help>" msgstr "<help>" #. Tag: para #. +> trunk5 #: index.docbook:1722 #, 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:1726 #, 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:1731 #, no-c-format msgid "<copy>" msgstr "<copy>" #. Tag: para #. +> trunk5 #: index.docbook:1732 #, 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:1735 index.docbook:1993 index.docbook:2147 index.docbook:2338 #: index.docbook:2353 index.docbook:2370 index.docbook:2385 index.docbook:2421 #, no-c-format msgid "id" msgstr "id" #. Tag: para #. +> trunk5 #: index.docbook:1736 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:1739 #, no-c-format msgid "copy_element_tag_name" msgstr "copy_element_tag_name" #. Tag: para #. +> trunk5 #: index.docbook:1740 #, 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:1747 #, no-c-format msgid "Interface definitions" msgstr "Definizioni dell'interfaccia" #. Tag: term #. +> trunk5 #: index.docbook:1750 #, no-c-format msgid "<dialog>" msgstr "<dialog>" #. Tag: para #. +> trunk5 #: index.docbook:1751 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:1754 index.docbook:1768 index.docbook:1804 index.docbook:1826 #: index.docbook:1853 index.docbook:1864 index.docbook:1927 index.docbook:1943 #: index.docbook:1954 index.docbook:1965 index.docbook:1981 index.docbook:2005 #: index.docbook:2035 index.docbook:2058 index.docbook:2151 index.docbook:2177 #: index.docbook:2208 index.docbook:2235 index.docbook:2293 index.docbook:2306 #: index.docbook:2357 #, no-c-format msgid "label" msgstr "label" #. Tag: para #. +> trunk5 #: index.docbook:1755 #, no-c-format msgid "Caption for the dialog" msgstr "Didascalia per la finestra" #. Tag: parameter #. +> trunk5 #: index.docbook:1758 index.docbook:1772 #, no-c-format msgid "recommended" msgstr "recommended" #. Tag: para #. +> trunk5 #: index.docbook:1759 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:1764 #, no-c-format msgid "<wizard>" msgstr "<wizard>" #. Tag: para #. +> trunk5 #: index.docbook:1765 #, 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:1769 #, no-c-format msgid "Caption for the wizard" msgstr "Didascalia per la procedura guidata" #. Tag: para #. +> trunk5 #: index.docbook:1773 #, 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 "" #. Tag: title #. +> trunk5 #: index.docbook:1780 #, no-c-format msgid "Layout elements" msgstr "Elementi della struttura" #. Tag: para #. +> trunk5 #: index.docbook:1781 #, 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:1784 #, no-c-format msgid "<page>" msgstr "<page>" #. Tag: para #. +> trunk5 #: index.docbook:1785 #, no-c-format msgid "" "Defines a new page inside a wizard. Only allowed as a direct child of a" " <wizard> element." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1788 #, no-c-format msgid "<row>" msgstr "<row>" #. Tag: para #. +> trunk5 #: index.docbook:1789 #, no-c-format msgid "All direct children of a \"row\" tag will be placed left-to-right." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1792 #, no-c-format msgid "<column>" msgstr "<column>" #. Tag: para #. +> trunk5 #: index.docbook:1793 #, no-c-format msgid "All direct children of a \"column\" tag will be placed top-to-bottom." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1796 #, no-c-format msgid "<stretch>" msgstr "<stretch>" #. Tag: para #. +> trunk5 #: index.docbook:1797 #, 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:1800 index.docbook:2024 index.docbook:2647 #, no-c-format msgid "<frame>" msgstr "<frame>" #. Tag: para #. +> trunk5 #: index.docbook:1801 #, 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:1805 #, no-c-format msgid "Caption for the frame (optional)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:1808 index.docbook:2220 #, no-c-format msgid "checkable" msgstr "checkable" #. Tag: para #. +> trunk5 #: index.docbook:1809 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:1812 index.docbook:1989 index.docbook:2017 index.docbook:2224 #, no-c-format msgid "checked" msgstr "checked" #. Tag: para #. +> trunk5 #: index.docbook:1813 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:1818 #, no-c-format msgid "<tabbook>" msgstr "<tabbook>" #. Tag: para #. +> trunk5 #: index.docbook:1819 #, no-c-format msgid "" "Organizes elements in a tabbook. Accepts only <tab>-tags as direct" " children." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1822 #, no-c-format msgid "<tab>" msgstr "<tab>" #. Tag: para #. +> trunk5 #: index.docbook:1823 #, 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:1827 #, no-c-format msgid "Caption for the tab page (required)" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1832 index.docbook:2531 #, no-c-format msgid "<text>" msgstr "<text>" #. Tag: para #. +> trunk5 #: index.docbook:1833 #, no-c-format msgid "" "Shows the text enclosed in this tag in the &GUI;. Some simple &HTML; style" " markup is supported (notably <b>, <i><" "/markup>, <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:1836 index.docbook:2185 index.docbook:2251 #, no-c-format msgid "type" msgstr "type" #. Tag: para #. +> trunk5 #: index.docbook:1837 #, 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 "" #. Tag: title #. +> trunk5 #: index.docbook:1844 #, no-c-format msgid "Active elements" msgstr "Elementi attivi" #. Tag: para #. +> trunk5 #: index.docbook:1845 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:1849 index.docbook:2542 #, no-c-format msgid "<varselector>" msgstr "<varselector>" #. Tag: para #. +> trunk5 #: index.docbook:1850 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:1854 #, no-c-format msgid "" "Label for the varselector (optional, defaults to \"Select variable(s)\")" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1860 index.docbook:2557 #, no-c-format msgid "<varslot>" msgstr "<varslot>" #. Tag: para #. +> trunk5 #: index.docbook:1861 #, no-c-format msgid "" "Used in conjunction with a \"varselector\" to allow the user to select one or" " more variables. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1865 #, no-c-format msgid "Label for the varslot (recommended, defaults to \"Variable:\")" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:1868 #, no-c-format msgid "source" msgstr "source" #. Tag: para #. +> trunk5 #: index.docbook:1869 #, no-c-format msgid "" "The varselector to fetch the selection from (required, unless you connect" " manually or using source_property)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:1872 #, no-c-format msgid "source_property" msgstr "source_property" #. Tag: para #. +> trunk5 #: index.docbook:1873 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:1876 index.docbook:2047 index.docbook:2197 index.docbook:2216 #, no-c-format msgid "required" msgstr "required" #. Tag: para #. +> trunk5 #: index.docbook:1877 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:1880 #, no-c-format msgid "multi" msgstr "multi" #. Tag: para #. +> trunk5 #: index.docbook:1881 #, no-c-format msgid "" "Whether the varslot holds only one (default, \"false\"), or several objects" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:1884 #, no-c-format msgid "allow_duplicates" msgstr "allow_duplicates" #. Tag: para #. +> trunk5 #: index.docbook:1885 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:1888 #, no-c-format msgid "min_vars" msgstr "min_vars" #. Tag: para #. +> trunk5 #: index.docbook:1889 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:1892 #, no-c-format msgid "min_vars_if_any" msgstr "min_vars_if_any" #. Tag: para #. +> trunk5 #: index.docbook:1893 #, 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:1896 #, no-c-format msgid "max_vars" msgstr "max_vars" #. Tag: para #. +> trunk5 #: index.docbook:1897 #, no-c-format msgid "" "Only meaningful if multi=\"true\": Maximum number of variables to select" " (optional, defaults to \"0\", which means no maximum)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:1900 #, no-c-format msgid "classes" msgstr "classes" #. Tag: para #. +> trunk5 #: index.docbook:1901 #, 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:1904 #, no-c-format msgid "types" msgstr "types" #. Tag: para #. +> trunk5 #: index.docbook:1905 #, 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, <" "emphasis>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:1908 #, no-c-format msgid "num_dimensions" msgstr "num_dimensions" #. Tag: para #. +> trunk5 #: index.docbook:1909 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:1912 #, no-c-format msgid "min_length" msgstr "min_length" #. Tag: para #. +> trunk5 #: index.docbook:1913 #, no-c-format msgid "" "The minimum length, an object needs to have in order to be acceptable." " (optional, defaults to \"0\")" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:1916 #, no-c-format msgid "max_length" msgstr "max_length" #. Tag: para #. +> trunk5 #: index.docbook:1917 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:1923 index.docbook:2576 #, no-c-format msgid "<valueselector>" msgstr "<valueselector>" #. Tag: para #. +> trunk5 #: index.docbook:1924 #, 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 <" "link linkend=\"elementproperties\">properties. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:1928 #, no-c-format msgid "Label for the valueselector (optional, defaults to no label)" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:1934 index.docbook:2595 #, no-c-format msgid "<valueslot>" msgstr "<valueslot>" #. Tag: para #. +> trunk5 #: index.docbook:1935 #, 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:1939 index.docbook:2600 #, no-c-format msgid "<radio>" msgstr "<radio>" #. Tag: para #. +> trunk5 #: index.docbook:1940 #, 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:1944 #, 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:1950 index.docbook:2615 #, no-c-format msgid "<dropdown>" msgstr "<dropdown>" #. Tag: para #. +> trunk5 #: index.docbook:1951 #, 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:1955 #, 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:1961 index.docbook:2620 #, no-c-format msgid "<select>" msgstr "<select>" #. Tag: para #. +> trunk5 #: index.docbook:1962 #, 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:1966 #, no-c-format msgid "Label for the <select> (optional, defaults to no label)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:1969 #, no-c-format msgid "single" msgstr "single" #. Tag: para #. +> trunk5 #: index.docbook:1970 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:1976 index.docbook:2625 #, no-c-format msgid "<option>" msgstr "<option>" #. Tag: para #. +> trunk5 #: index.docbook:1977 #, 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:1982 #, no-c-format msgid "Label for the option (required)" msgstr "Etichetta per l'opzione (richiesto)" #. Tag: parameter #. +> trunk5 #: index.docbook:1985 index.docbook:2009 #, no-c-format msgid "value" msgstr "value" #. Tag: para #. +> trunk5 #: index.docbook:1986 #, 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:1990 #, 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:1994 #, 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 <" "replaceable>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:2001 index.docbook:2636 #, no-c-format msgid "<checkbox>" msgstr "<checkbox>" #. Tag: para #. +> trunk5 #: index.docbook:2002 #, 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:2006 #, no-c-format msgid "Label for the check box (required)" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2010 #, no-c-format msgid "The value the check box will return if checked (required)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2013 #, no-c-format msgid "value_unchecked" msgstr "value_unchecked" #. Tag: para #. +> trunk5 #: index.docbook:2014 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2018 #, no-c-format msgid "" "Whether the option should be checked by default \"true\" or \"false\"" " (optional, default to \"false\")" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2025 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:2031 index.docbook:2658 #, no-c-format msgid "<input>" msgstr "<input>" #. Tag: para #. +> trunk5 #: index.docbook:2032 #, 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:2036 #, no-c-format msgid "Label for the input field (required)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2039 index.docbook:2181 index.docbook:2212 index.docbook:2247 #, no-c-format msgid "initial" msgstr "initial" #. Tag: para #. +> trunk5 #: index.docbook:2040 #, no-c-format msgid "" "Initial text of the text field (optional, defaults to \"\", &ie; an empty" " string)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2043 #, no-c-format msgid "size" msgstr "size" #. Tag: para #. +> trunk5 #: index.docbook:2044 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2048 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:2054 index.docbook:2669 #, no-c-format msgid "<matrix>" msgstr "<matrix>" #. Tag: para #. +> trunk5 #: index.docbook:2055 #, no-c-format msgid "A table for entering matrix data (or vectors) in the &GUI;." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2055 #, 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<" "/emphasis> instance where you use a matrix element)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2055 #, no-c-format msgid "Attributes:" msgstr "Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:2059 #, no-c-format msgid "Label for the table (required)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2062 index.docbook:2310 index.docbook:2393 #, no-c-format msgid "mode" msgstr "mode" #. Tag: para #. +> trunk5 #: index.docbook:2063 #, no-c-format msgid "" "One of \"integer\", \"real\", or \"string\". The type of data that will be" " accepted in the table (required)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2066 index.docbook:2239 index.docbook:2401 #, no-c-format msgid "min" msgstr "min" #. Tag: para #. +> trunk5 #: index.docbook:2067 #, no-c-format msgid "" "Minimum acceptable value (for matrices of type \"integer\" or \"real\")" " (optional, defaults to the smallest representable value)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2070 index.docbook:2243 index.docbook:2405 #, no-c-format msgid "max" msgstr "max" #. Tag: para #. +> trunk5 #: index.docbook:2071 #, no-c-format msgid "" "Maximum acceptable value (for matrices of type \"integer\" or \"real\")" " (optional, defaults to the largest representable value)" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2074 #, no-c-format msgid "allow_missings" msgstr "allow_missings" #. Tag: para #. +> trunk5 #: index.docbook:2075 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:2078 #, no-c-format msgid "allow_user_resize_columns" msgstr "allow_user_resize_columns" #. Tag: para #. +> trunk5 #: index.docbook:2079 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:2082 #, no-c-format msgid "allow_user_resize_rows" msgstr "allow_user_resize_rows" #. Tag: para #. +> trunk5 #: index.docbook:2083 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:2086 #, no-c-format msgid "rows" msgstr "rows" #. Tag: para #. +> trunk5 #: index.docbook:2087 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:2090 #, no-c-format msgid "columns" msgstr "columns" #. Tag: para #. +> trunk5 #: index.docbook:2091 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:2094 index.docbook:2125 #, no-c-format msgid "min_rows" msgstr "min_rows" #. Tag: para #. +> trunk5 #: index.docbook:2095 #, 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<" "/parameter>.)." msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2098 #, no-c-format msgid "min_columns" msgstr "min_columns" #. Tag: para #. +> trunk5 #: index.docbook:2099 #, 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<" "/parameter>.)." msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2102 #, no-c-format msgid "fixed_height" msgstr "fixed_height" #. Tag: para #. +> trunk5 #: index.docbook:2103 #, 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:2106 #, no-c-format msgid "fixed_width" msgstr "fixed_width" #. Tag: para #. +> trunk5 #: index.docbook:2107 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:2110 #, no-c-format msgid "horiz_headers" msgstr "horiz_headers" #. Tag: para #. +> trunk5 #: index.docbook:2111 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:2114 #, no-c-format msgid "vert_headers" msgstr "vert_headers" #. Tag: para #. +> trunk5 #: index.docbook:2115 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:2121 index.docbook:2700 #, no-c-format msgid "<optionset>" msgstr "<optionset>" #. Tag: para #. +> trunk5 #: index.docbook:2122 #, no-c-format msgid "" "A UI for repeating a set of options for an arbitrary number of items (introduction to optionsets). Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2126 #, no-c-format msgid "" "If specified, the set will be marked invalid, unless it has at least this" " number of rows (optional, integer)." msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2129 #, no-c-format msgid "min_rows_if_any" msgstr "min_rows_if_any" #. Tag: para #. +> trunk5 #: index.docbook:2130 #, no-c-format msgid "" "Like min_rows, but will only be tested, if there is at least one row" " (optional, integer)." msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2133 #, no-c-format msgid "max_rows" msgstr "max_rows" #. Tag: para #. +> trunk5 #: index.docbook:2134 #, no-c-format msgid "" "If specified, the set will be marked invalid, unless it has at most this" " number of rows (optional, integer)." msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2137 #, no-c-format msgid "keycolumn" msgstr "keycolumn" #. Tag: para #. +> trunk5 #: index.docbook:2138 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2141 #, no-c-format msgid "Child-elements:" msgstr "Elementi figli:" #. Tag: term #. +> trunk5 #: index.docbook:2144 #, no-c-format msgid "<optioncolumn>" msgstr "<optioncolumn>" #. Tag: para #. +> trunk5 #: index.docbook:2145 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2148 #, no-c-format msgid "The id of the optioncolumn (required, string)." msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2149 #, no-c-format msgid "external" msgstr "external" #. Tag: para #. +> trunk5 #: index.docbook:2150 #, no-c-format msgid "" "Set to true, if the optioncolumn is controlled from outside the optionset" " (optional, boolean, defaults to false)." msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2152 #, no-c-format msgid "" "If given, the optioncolumn will be displayed in a column by that label" " (optional, string, defaults to not displayed)." msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2153 #, no-c-format msgid "connect" msgstr "connect" #. Tag: para #. +> trunk5 #: index.docbook:2154 #, 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:2156 index.docbook:2342 #, no-c-format msgid "default" msgstr "default" #. Tag: para #. +> trunk5 #: index.docbook:2157 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:2161 #, no-c-format msgid "<content>" msgstr "<content>" #. Tag: para #. +> trunk5 #: index.docbook:2162 #, 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 <" "command><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:2165 index.docbook:2329 #, no-c-format msgid "<logic>" msgstr "<logic>" #. Tag: para #. +> trunk5 #: index.docbook:2166 #, 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:2173 index.docbook:2719 #, no-c-format msgid "<browser>" msgstr "<browser>" #. Tag: para #. +> trunk5 #: index.docbook:2174 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2178 #, no-c-format msgid "Label for the browser (optional, defaults to \"Enter filename\")" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2182 #, no-c-format msgid "" "Initial text of the browser (optional, defaults to \"\", &ie; an empty string)" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2186 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:2189 #, no-c-format msgid "allow_urls" msgstr "allow_urls" #. Tag: para #. +> trunk5 #: index.docbook:2190 #, no-c-format msgid "" "Whether (non-local) &URL;s can be selected (optional, defaults to \"false\")" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2193 #, no-c-format msgid "filter" msgstr "filter" #. Tag: para #. +> trunk5 #: index.docbook:2194 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2198 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:2204 index.docbook:2730 #, no-c-format msgid "<saveobject>" msgstr "<saveobject>" #. Tag: para #. +> trunk5 #: index.docbook:2205 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2209 #, no-c-format msgid "Label for the input (optional, defaults to \"Save to:\")" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2213 #, no-c-format msgid "Initial text of the input (optional, defaults to \"my.data\")" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2217 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2221 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2225 #, no-c-format msgid "" "For checkable saveobject-elements, only: Whether the control is" " checked/enabled by default (optional, defaults to false)" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2231 index.docbook:2753 #, no-c-format msgid "<spinbox>" msgstr "<spinbox>" #. Tag: para #. +> trunk5 #: index.docbook:2232 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2236 #, no-c-format msgid "Label for the spinbox (recommend, default to \"Enter value:\")" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2240 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2244 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2248 #, no-c-format msgid "The initial value shown in the spinbox (optional, defaults to \"0\")" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2252 #, 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:2255 #, no-c-format msgid "default_precision" msgstr "default_precision" #. Tag: para #. +> trunk5 #: index.docbook:2256 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:2259 #, no-c-format msgid "max_precision" msgstr "max_precision" #. Tag: para #. +> trunk5 #: index.docbook:2260 #, 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:2266 index.docbook:2768 #, no-c-format msgid "<formula>" msgstr "<formula>" #. Tag: para #. +> trunk5 #: index.docbook:2267 #, 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:2270 #, no-c-format msgid "fixed_factors" msgstr "fixed_factors" #. Tag: para #. +> trunk5 #: index.docbook:2271 #, 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:2274 #, no-c-format msgid "dependent" msgstr "dependent" #. Tag: para #. +> trunk5 #: index.docbook:2275 #, 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:2281 index.docbook:2795 #, no-c-format msgid "<embed>" msgstr "<embed>" #. Tag: para #. +> trunk5 #: index.docbook:2282 #, 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:2285 #, no-c-format msgid "component" msgstr "component" #. Tag: para #. +> trunk5 #: index.docbook:2286 #, 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:2289 #, no-c-format msgid "as_button" msgstr "as_button" #. Tag: para #. +> trunk5 #: index.docbook:2290 #, 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:2294 #, 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:2300 index.docbook:2806 #, no-c-format msgid "<preview>" msgstr "<preview>" #. Tag: para #. +> trunk5 #: index.docbook:2301 #, 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:2307 #, 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:2311 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:2314 #, no-c-format msgid "placement" msgstr "placement" #. Tag: para #. +> trunk5 #: index.docbook:2315 #, 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 "" #. Tag: parameter #. +> trunk5 #: index.docbook:2318 #, no-c-format msgid "active" msgstr "active" #. Tag: para #. +> trunk5 #: index.docbook:2319 #, 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 "" #. Tag: title #. +> trunk5 #: index.docbook:2326 #, no-c-format msgid "Logic section" msgstr "Sezione logica" #. Tag: para #. +> trunk5 #: index.docbook:2330 #, 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:2334 #, no-c-format msgid "<external>" msgstr "<external>" #. Tag: para #. +> trunk5 #: index.docbook:2335 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2339 index.docbook:2354 index.docbook:2386 index.docbook:2422 #, no-c-format msgid "The ID of the new property (required)" msgstr "L'ID della nuova proprietà (richiesto)" #. Tag: para #. +> trunk5 #: index.docbook:2343 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:2349 #, no-c-format msgid "<i18n>" msgstr "<i18n>" #. Tag: para #. +> trunk5 #: index.docbook:2350 #, 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:2358 #, no-c-format msgid "The label. This will be translated. (required)" msgstr "L'etichetta. Questa sarà tradotta. (necessario)" #. Tag: term #. +> trunk5 #: index.docbook:2364 #, no-c-format msgid "<set>" msgstr "<set>" #. Tag: para #. +> trunk5 #: index.docbook:2365 #, 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:2371 #, no-c-format msgid "The ID of the property to set (required)" msgstr "'ID della proprietà da impostare (obbligatorio)" #. Tag: parameter #. +> trunk5 #: index.docbook:2374 #, no-c-format msgid "to" msgstr "to" #. Tag: para #. +> trunk5 #: index.docbook:2375 #, 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:2381 index.docbook:2817 #, no-c-format msgid "<convert>" msgstr "<convert>" #. Tag: para #. +> trunk5 #: index.docbook:2382 #, 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:2389 #, no-c-format msgid "sources" msgstr "sources" #. Tag: para #. +> trunk5 #: index.docbook:2390 #, 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:2394 #, 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:2397 index.docbook:2453 #, no-c-format msgid "standard" msgstr "standard" #. Tag: para #. +> trunk5 #: index.docbook:2398 #, 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:2402 #, 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:2406 #, 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:2409 #, no-c-format msgid "require_true" msgstr "require_true" #. Tag: para #. +> trunk5 #: index.docbook:2410 #, 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 "" #. Tag: para #. +> trunk5 #: index.docbook:2411 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:2417 index.docbook:2822 #, no-c-format msgid "<switch>" msgstr "<switch>" #. Tag: para #. +> trunk5 #: index.docbook:2418 #, 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()<" "/function> constructs. Attributes:" msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2425 #, no-c-format msgid "condition" msgstr "condition" #. Tag: para #. +> trunk5 #: index.docbook:2426 #, no-c-format msgid "The id of the condition property (required)" msgstr "L'ID della proprietà «condition» (richiesto)" #. Tag: para #. +> trunk5 #: index.docbook:2429 index.docbook:2942 index.docbook:3022 #, no-c-format msgid "Child elements:" msgstr "Elementi figli:" #. Tag: term #. +> trunk5 #: index.docbook:2432 #, no-c-format msgid "<true>" msgstr "<true>" #. Tag: para #. +> trunk5 #: index.docbook:2433 #, 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:2436 #, no-c-format msgid "<false>" msgstr "<false>" #. Tag: para #. +> trunk5 #: index.docbook:2437 #, 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:2440 #, no-c-format msgid "<case>" msgstr "<case>" #. Tag: para #. +> trunk5 #: index.docbook:2441 #, 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:2445 #, no-c-format msgid "<default>" msgstr "<default>" #. Tag: para #. +> trunk5 #: index.docbook:2446 #, 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:2450 #, no-c-format msgid "" "Child elements <true>, <false>, <case>, and <default>" " take the following attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2454 #, no-c-format msgid "" "Only for <case>-elements: The value to match the condition property" " against (required, string)." msgstr "" #. Tag: parameter #. +> trunk5 #: index.docbook:2457 #, no-c-format msgid "fixed_value" msgstr "fixed_value" #. Tag: para #. +> trunk5 #: index.docbook:2458 #, 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:2461 #, no-c-format msgid "dynamic_value" msgstr "dynamic_value" #. Tag: para #. +> trunk5 #: index.docbook:2462 #, 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:2469 #, no-c-format msgid "<connect>" msgstr "<connect>" #. Tag: para #. +> trunk5 #: index.docbook:2470 #, 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:2473 #, no-c-format msgid "client" msgstr "client" #. Tag: para #. +> trunk5 #: index.docbook:2474 #, 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:2477 #, no-c-format msgid "governor" msgstr "governor" #. Tag: para #. +> trunk5 #: index.docbook:2478 #, 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:2481 #, no-c-format msgid "reconcile" msgstr "reconcile" #. Tag: para #. +> trunk5 #: index.docbook:2482 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:2488 #, no-c-format msgid "<dependency_check>" msgstr "<dependency_check>" #. Tag: para #. +> trunk5 #: index.docbook:2489 #, 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:2493 #, no-c-format msgid "<script>" msgstr "<script>" #. Tag: para #. +> trunk5 #: index.docbook:2494 #, 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><" "/command> element is not allowed in the <logic>" " section of an optionset. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2498 #, no-c-format msgid "File name of the script file. (required)" msgstr "Nome del file di script. (necessario)" #. Tag: title #. +> trunk5 #: index.docbook:2508 #, no-c-format msgid "Properties of plugin elements" msgstr "Proprietà degli elementi dell'estensione" #. Tag: para #. +> trunk5 #: index.docbook:2509 #, no-c-format msgid "" "All layout elements, and all active elements hold the following" " properties, accessible via \"id_of_element.name_of_property\":" msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2513 #, no-c-format msgid "visible" msgstr "visible" #. Tag: para #. +> trunk5 #: index.docbook:2514 #, 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:2517 index.docbook:2629 #, no-c-format msgid "enabled" msgstr "enabled" #. Tag: para #. +> trunk5 #: index.docbook:2518 #, 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:2521 #, no-c-format msgid "required" msgstr "required" #. Tag: para #. +> trunk5 #: index.docbook:2522 #, 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:2525 #, 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 (\"...\")<" "/function>, 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:2532 #, no-c-format msgid "Default property is text" msgstr "La proprietà predefinita è text" #. Tag: term #. +> trunk5 #: index.docbook:2535 index.docbook:2662 #, no-c-format msgid "text" msgstr "text" #. Tag: para #. +> trunk5 #: index.docbook:2536 #, no-c-format msgid "The text displayed (text)" msgstr "Il testo visualizzato (testo)" #. Tag: para #. +> trunk5 #: index.docbook:2543 index.docbook:2796 #, no-c-format msgid "No default property" msgstr "Nessuna proprietà predefinita" #. Tag: term #. +> trunk5 #: index.docbook:2546 index.docbook:2565 index.docbook:2580 #, no-c-format msgid "selected" msgstr "selected" #. Tag: para #. +> trunk5 #: index.docbook:2547 #, 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:2550 #, no-c-format msgid "root" msgstr "root" #. Tag: para #. +> trunk5 #: index.docbook:2551 #, 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:2558 #, no-c-format msgid "Default property is \"available\"" msgstr "La proprietà predefinita è «available»" #. Tag: term #. +> trunk5 #: index.docbook:2561 index.docbook:2584 #, no-c-format msgid "available" msgstr "available" #. Tag: para #. +> trunk5 #: index.docbook:2562 #, no-c-format msgid "All objects held in the varslot (RObject)" msgstr "Tutti gli oggetti contenuti nel varslot (RObject)" #. Tag: para #. +> trunk5 #: index.docbook:2566 #, 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:2569 #, no-c-format msgid "source" msgstr "source" #. Tag: para #. +> trunk5 #: index.docbook:2570 #, 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:2577 #, no-c-format msgid "Default property is \"selected\"" msgstr "La proprietà predefinita è «selected»" #. Tag: para #. +> trunk5 #: index.docbook:2581 #, 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:2585 #, 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:2588 index.docbook:2780 index.docbook:3089 #, no-c-format msgid "labels" msgstr "labels" #. Tag: para #. +> trunk5 #: index.docbook:2589 #, 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:2596 #, 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:2601 #, no-c-format msgid "Default property is \"string\"" msgstr "La proprietà predefinita è «string»" #. Tag: term #. +> trunk5 #: index.docbook:2604 #, no-c-format msgid "string" msgstr "string" #. Tag: para #. +> trunk5 #: index.docbook:2605 #, 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:2608 #, no-c-format msgid "number" msgstr "number" #. Tag: para #. +> trunk5 #: index.docbook:2609 #, 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:2616 #, no-c-format msgid "Same as <radio>" msgstr "Uguale a <radio>" #. Tag: para #. +> trunk5 #: index.docbook:2621 #, no-c-format msgid "Same as <valueselector>" msgstr "Uguale a <valueselector>" #. Tag: para #. +> trunk5 #: index.docbook:2626 #, 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:2630 #, 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:2637 #, no-c-format msgid "" "Default property is \"state.labeled\", which means that the values specified" " by the value, and value_unchecked<" "/parameter>-attributes are returned, not the displayed" " label of the check box." msgstr "" #. Tag: term #. +> trunk5 #: index.docbook:2640 index.docbook:2810 #, no-c-format msgid "state" msgstr "state" #. Tag: para #. +> trunk5 #: index.docbook:2641 #, 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 <" "link linkend=\"propertytypes\">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 "" #. Tag: para #. +> trunk5 #: index.docbook:2648 #, 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:2651 #, no-c-format msgid "checked" msgstr "checked" #. Tag: para #. +> trunk5 #: index.docbook:2652 #, 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:2659 #, no-c-format msgid "Default property is \"text\"" msgstr "La proprietà predefinita è «text»" #. Tag: para #. +> trunk5 #: index.docbook:2663 #, no-c-format msgid "Current text in the input field (string)" msgstr "Testo attuale nel campo di inserimento (stringa)" #. Tag: para #. +> trunk5 #: index.docbook:2670 #, no-c-format msgid "Default property is \"cbind\"." msgstr "La proprietà predefinita è «cbind»." #. Tag: term #. +> trunk5 #: index.docbook:2673 #, no-c-format msgid "rows" msgstr "rows" #. Tag: para #. +> trunk5 #: index.docbook:2674 #, 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:2677 #, no-c-format msgid "columns" msgstr "columns" #. Tag: para #. +> trunk5 #: index.docbook:2678 #, 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:2681 #, no-c-format msgid "tsv" msgstr "tsv" #. Tag: para #. +> trunk5 #: index.docbook:2682 #, 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:2685 #, no-c-format msgid "0,1,2..." msgstr "0,1,2..." #. Tag: para #. +> trunk5 #: index.docbook:2686 #, no-c-format msgid "" "The data from a single column (0 for leftmost column). getValue()<" "/function>/getString() returns this as a single string," " separated by \"\\n\". However, the recommended way to get this is using <" "function>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:2689 #, no-c-format msgid "row.0,row.1,row.2..." msgstr "riga.0,riga.1,riga.2..." #. Tag: para #. +> trunk5 #: index.docbook:2690 #, no-c-format msgid "" "The data from a single row (0 for topmost row). getValue()<" "/function>/getString() returns this as a single string," " separated by \"\\n\". However, the recommended way to get this is using <" "function>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()<" "/function> / 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:2693 #, no-c-format msgid "cbind" msgstr "cbind" #. Tag: para #. +> trunk5 #: index.docbook:2694 #, 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:2701 #, no-c-format msgid "No default property." msgstr "Nessuna proprietà predefinita." #. Tag: term #. +> trunk5 #: index.docbook:2704 #, no-c-format msgid "row_count" msgstr "row_count" #. Tag: para #. +> trunk5 #: index.docbook:2705 #, no-c-format msgid "Number of items in the optionset (integer). Read-only." msgstr "Numero di elementi nell'optionset (intero). Sola lettura." #. Tag: term #. +> trunk5 #: index.docbook:2708 #, no-c-format msgid "current_row" msgstr "current_row" #. Tag: para #. +> trunk5 #: index.docbook:2709 #, no-c-format msgid "" "Currently active item in the optionset (integer). -1 for no active item." " Read-write." msgstr "" "Elemento attualmente attivo nell'optionset (intero). -1 per nessun" " elemento attivo. Lettura-scrittura." #. Tag: emphasis #. +> trunk5 #: index.docbook:2712 #, no-c-format msgid "optioncolumn_ids" msgstr "optioncolumn_ids" #. Tag: para #. +> trunk5 #: index.docbook:2713 #, 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:2720 index.docbook:2731 #, no-c-format msgid "Default property is \"selection\"" msgstr "La proprietà predefinita è «selection»" #. Tag: term #. +> trunk5 #: index.docbook:2723 index.docbook:2734 #, no-c-format msgid "selection" msgstr "selection" #. Tag: para #. +> trunk5 #: index.docbook:2724 #, 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:2735 #, 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:2738 #, no-c-format msgid "parent" msgstr "parent" #. Tag: para #. +> trunk5 #: index.docbook:2739 #, 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:2742 #, no-c-format msgid "objectname" msgstr "objectname" #. Tag: para #. +> trunk5 #: index.docbook:2743 #, 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:2746 #, no-c-format msgid "active" msgstr "active" #. Tag: para #. +> trunk5 #: index.docbook:2747 #, 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:2754 #, 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:2757 #, no-c-format msgid "int" msgstr "int" #. Tag: para #. +> trunk5 #: index.docbook:2758 #, 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:2761 #, no-c-format msgid "real" msgstr "real" #. Tag: para #. +> trunk5 #: index.docbook:2762 #, 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:2769 #, no-c-format msgid "Default property is \"model\"" msgstr "La proprietà predefinita è «model»" #. Tag: term #. +> trunk5 #: index.docbook:2772 #, no-c-format msgid "model" msgstr "model" #. Tag: para #. +> trunk5 #: index.docbook:2773 #, no-c-format msgid "The current model string (string)" msgstr "La stringa del modello attuale (stringa)" #. Tag: term #. +> trunk5 #: index.docbook:2776 #, no-c-format msgid "table" msgstr "table" #. Tag: para #. +> trunk5 #: index.docbook:2777 #, 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:2781 #, 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:2784 #, no-c-format msgid "fixed_factors" msgstr "fixed_factors" #. Tag: para #. +> trunk5 #: index.docbook:2785 #, 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:2788 #, no-c-format msgid "dependent" msgstr "dependent" #. Tag: para #. +> trunk5 #: index.docbook:2789 #, 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:2799 #, no-c-format msgid "code" msgstr "code" #. Tag: para #. +> trunk5 #: index.docbook:2800 #, 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:2807 #, no-c-format msgid "Default property is \"state\"" msgstr "La proprietà predefinita è «state»" #. Tag: para #. +> trunk5 #: index.docbook:2811 #, 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:2818 #, 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:2823 #, 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:2831 #, 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:2832 #, 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:2834 #, no-c-format msgid "Standard embeddable plugins" msgstr "Estensioni standard integrabili" #. Tag: entry #. +> trunk5 #: index.docbook:2838 #, no-c-format msgid "ID" msgstr "ID" #. Tag: entry #. +> trunk5 #: index.docbook:2839 #, no-c-format msgid "Pluginmap" msgstr "Mappa delle estensioni" #. Tag: entry #. +> trunk5 #: index.docbook:2840 #, no-c-format msgid "Description" msgstr "Descrizione" #. Tag: entry #. +> trunk5 #: index.docbook:2841 #, no-c-format msgid "Example usage" msgstr "Esempio d'uso" #. Tag: entry #. +> trunk5 #: index.docbook:2846 #, no-c-format msgid "rkward::plot_options" msgstr "rkward::plot_options" #. Tag: entry #. +> trunk5 #: index.docbook:2847 index.docbook:2853 index.docbook:2860 index.docbook:2866 #: index.docbook:2872 index.docbook:2878 index.docbook:2884 index.docbook:2890 #: index.docbook:2896 #, no-c-format msgid "embedded.pluginmap" msgstr "embedded.pluginmap" #. Tag: entry #. +> trunk5 #: index.docbook:2848 #, 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:2849 #, 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:2852 #, no-c-format msgid "rkward::color_chooser" msgstr "rkward::color_chooser" #. Tag: entry #. +> trunk5 #: index.docbook:2854 #, 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:2856 index.docbook:2868 #, no-c-format msgid "Plots->Histogram" msgstr "Grafici->Istogramma" #. Tag: entry #. +> trunk5 #: index.docbook:2859 #, no-c-format msgid "rkward::plot_stepfun_options" msgstr "rkward::plot_stepfun_options" #. Tag: entry #. +> trunk5 #: index.docbook:2861 #, no-c-format msgid "Step function plot options" msgstr "Opzioni del grafico della funzione a gradino" #. Tag: entry #. +> trunk5 #: index.docbook:2862 #, no-c-format msgid "Plots->ECDF plot" msgstr "Grafici->Grafico ECDF" #. Tag: entry #. +> trunk5 #: index.docbook:2865 #, no-c-format msgid "rkward::histogram_options" msgstr "rkward::histogram_options" #. Tag: entry #. +> trunk5 #: index.docbook:2867 #, no-c-format msgid "Histogram (plot) options" msgstr "Opzioni istogramma (grafico)" #. Tag: entry #. +> trunk5 #: index.docbook:2871 #, no-c-format msgid "rkward::barplot_embed" msgstr "rkward::barplot_embed" #. Tag: entry #. +> trunk5 #: index.docbook:2873 #, no-c-format msgid "Barplot options" msgstr "Opzioni del grafico a barre" #. Tag: entry #. +> trunk5 #: index.docbook:2874 index.docbook:2880 index.docbook:2886 #, no-c-format msgid "Plots->Barplot" msgstr "Grafici->Grafico a barre" #. Tag: entry #. +> trunk5 #: index.docbook:2877 #, no-c-format msgid "rkward::one_var_tabulation" msgstr "rkward::one_var_tabulation" #. Tag: entry #. +> trunk5 #: index.docbook:2879 #, no-c-format msgid "Provides tabulation on a single variable." msgstr "Fornisce una tabulazione su una singola variabile." #. Tag: entry #. +> trunk5 #: index.docbook:2883 #, no-c-format msgid "rkward::limit_vector_length" msgstr "rkward::limit_vector_length" #. Tag: entry #. +> trunk5 #: index.docbook:2885 #, 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:2889 #, no-c-format msgid "rkward::level_select" msgstr "rkward::level_select" #. Tag: entry #. +> trunk5 #: index.docbook:2891 #, 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:2892 index.docbook:2898 #, no-c-format msgid "Data->Recode Categorical data" msgstr "Dati->Ricodifica i dati categorici" #. Tag: entry #. +> trunk5 #: index.docbook:2895 #, no-c-format msgid "rkward::multi_input" msgstr "rkward::multi_input" #. Tag: entry #. +> trunk5 #: index.docbook:2897 #, 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:2905 #, no-c-format msgid "Elements for use in &pluginmap; files" msgstr "Elementi da utilizzare nei file di &pluginmap;" #. Tag: para #. +> trunk5 #: index.docbook:2909 #, 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:2912 #, no-c-format msgid "base_prefix" msgstr "base_prefix" #. Tag: para #. +> trunk5 #: index.docbook:2913 #, 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:2916 #, no-c-format msgid "namespace" msgstr "namespace" #. Tag: para #. +> trunk5 #: index.docbook:2917 #, 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:2920 index.docbook:3063 index.docbook:3081 index.docbook:3103 #: index.docbook:3135 index.docbook:3153 index.docbook:3199 index.docbook:3221 #: index.docbook:3235 index.docbook:3267 #, no-c-format msgid "id" msgstr "id" #. Tag: para #. +> trunk5 #: index.docbook:2921 #, 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:2924 #, no-c-format msgid "priority" msgstr "priority" #. Tag: para #. +> trunk5 #: index.docbook:2925 #, no-c-format msgid "" "One of \"hidden\", \"low\"<" "/replaceable>, \"medium\", or \"high\". &pluginmap;s with priority \"medium\" or \"high\"" " are activated, automatically, when &rkward; first finds them. Use <" "replaceable>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:2930 #, no-c-format msgid "<dependencies>" msgstr "<dependencies>" #. Tag: para #. +> trunk5 #: index.docbook:2931 #, 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:2934 #, no-c-format msgid "rkward_min_version, rkward_max_version" msgstr "rkward_min_version, rkward_max_version" #. Tag: para #. +> trunk5 #: index.docbook:2935 #, 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:2938 #, no-c-format msgid "R_min_version, R_max_version" msgstr "R_min_version, R_max_version" #. Tag: para #. +> trunk5 #: index.docbook:2939 #, no-c-format msgid "" "Minimum and maximum allowed version of &R;. Version specifications may <" "emphasis>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:2945 #, no-c-format msgid "<package>" msgstr "<package>" #. Tag: para #. +> trunk5 #: index.docbook:2946 #, 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:2949 index.docbook:2968 index.docbook:2990 #, no-c-format msgid "name" msgstr "name" #. Tag: para #. +> trunk5 #: index.docbook:2950 #, no-c-format msgid "Package name (required)." msgstr "Nome del pacchetto (richiesto)." #. Tag: term #. +> trunk5 #: index.docbook:2953 index.docbook:2972 #, no-c-format msgid "min_version, max_version" msgstr "min_version, max_version" #. Tag: para #. +> trunk5 #: index.docbook:2954 index.docbook:2973 #, no-c-format msgid "Minimum / maximum allowed version (optional)." msgstr "Versione minima / massima consentita (facoltativo)." #. Tag: term #. +> trunk5 #: index.docbook:2957 #, no-c-format msgid "repository" msgstr "repository" #. Tag: para #. +> trunk5 #: index.docbook:2958 #, 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:2964 #, no-c-format msgid "<pluginmap>" msgstr "<pluginmap>" #. Tag: para #. +> trunk5 #: index.docbook:2965 #, 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:2969 #, no-c-format msgid "Id string of the required &pluginmap; (required)." msgstr "Stringa ID della &pluginmap; richiesta (necessario)." #. Tag: term #. +> trunk5 #: index.docbook:2976 index.docbook:3006 index.docbook:3041 #, no-c-format msgid "url" msgstr "url" #. Tag: para #. +> trunk5 #: index.docbook:2977 #, 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:2987 #, 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 <" "link linkend=\"chapter_about_information\">chapter on 'about' information<" "/link> for an overview. Attributes:" msgstr "" #. Tag: para #. +> trunk5 #: index.docbook:2991 #, 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:2994 #, no-c-format msgid "version" msgstr "version" #. Tag: para #. +> trunk5 #: index.docbook:2995 #, 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:2998 #, no-c-format msgid "releasedate" msgstr "releasedate" #. Tag: para #. +> trunk5 #: index.docbook:2999 #, 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:3002 #, no-c-format msgid "shortinfo" msgstr "shortinfo" #. Tag: para #. +> trunk5 #: index.docbook:3003 #, 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:3007 #, 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:3010 #, no-c-format msgid "copyright" msgstr "copyright" #. Tag: para #. +> trunk5 #: index.docbook:3011 #, 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:3014 #, no-c-format msgid "licence" msgstr "licence" #. Tag: para #. +> trunk5 #: index.docbook:3015 #, 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:3018 #, no-c-format msgid "category" msgstr "category" #. Tag: para #. +> trunk5 #: index.docbook:3019 #, 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:3025 #, no-c-format msgid "<author>" msgstr "<author>" #. Tag: para #. +> trunk5 #: index.docbook:3026 #, no-c-format msgid "Adds information on an author. Attributes:" msgstr "Aggiunge informazioni su un autore. Attributi:" #. Tag: term #. +> trunk5 #: index.docbook:3029 #, no-c-format msgid "name, given, family" msgstr "nome, nome proprio, cognome" #. Tag: para #. +> trunk5 #: index.docbook:3030 #, 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:3033 #, no-c-format msgid "role" msgstr "ruolo" #. Tag: para #. +> trunk5 #: index.docbook:3034 #, no-c-format msgid "Author role description (optional)." msgstr "Descrizione del ruolo dell'autore (facoltativo)." #. Tag: term #. +> trunk5 #: index.docbook:3037 #, no-c-format msgid "email" msgstr "posta elettronica" #. Tag: para #. +> trunk5 #: index.docbook:3038 #, 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:3042 #, 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:3051 #, no-c-format msgid "<components>" msgstr "<components>" #. Tag: para #. +> trunk5 #: index.docbook:3052 #, 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:3055 #, no-c-format msgid "<component>" msgstr "<component>" #. Tag: para #. +> trunk5 #: index.docbook:3056 #, 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:3059 #, no-c-format msgid "type" msgstr "type" #. Tag: para #. +> trunk5 #: index.docbook:3060 #, 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:3064 #, 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:3067 index.docbook:3163 #, no-c-format msgid "file" msgstr "file" #. Tag: para #. +> trunk5 #: index.docbook:3068 #, 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:3071 index.docbook:3107 #, no-c-format msgid "label" msgstr "label" #. Tag: para #. +> trunk5 #: index.docbook:3072 #, 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:3077 #, no-c-format msgid "<attribute>" msgstr "<attribute>" #. Tag: para #. +> trunk5 #: index.docbook:3078 #, 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 <" "link linkend=\"context_import\">estensioni di importazione. Consentito" " solo come figlio diretto di <component>. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:3082 #, no-c-format msgid "Id of the attribute" msgstr "ID dell'attributo" #. Tag: term #. +> trunk5 #: index.docbook:3085 #, no-c-format msgid "value" msgstr "value" #. Tag: para #. +> trunk5 #: index.docbook:3086 #, no-c-format msgid "Value of the attribute" msgstr "Valore dell'attributo" #. Tag: para #. +> trunk5 #: index.docbook:3090 #, no-c-format msgid "Label associated with the attribute" msgstr "Etichetta associata all'attributo" #. Tag: term #. +> trunk5 #: index.docbook:3095 #, no-c-format msgid "<hierarchy>" msgstr "<hierarchy>" #. Tag: para #. +> trunk5 #: index.docbook:3096 #, 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:3099 #, no-c-format msgid "<menu>" msgstr "<menu>" #. Tag: para #. +> trunk5 #: index.docbook:3100 #, 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:3104 #, 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:3108 #, no-c-format msgid "A label for the menu." msgstr "Un'etichetta per il menu." #. Tag: term #. +> trunk5 #: index.docbook:3111 index.docbook:3125 index.docbook:3143 #, no-c-format msgid "group" msgstr "group" #. Tag: para #. +> trunk5 #: index.docbook:3112 index.docbook:3126 #, 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:3117 #, no-c-format msgid "<entry>" msgstr " <entry>" #. Tag: para #. +> trunk5 #: index.docbook:3118 #, 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:3121 #, no-c-format msgid "component" msgstr "component" #. Tag: para #. +> trunk5 #: index.docbook:3122 #, 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:3131 #, no-c-format msgid "<group>" msgstr "<group>" #. Tag: para #. +> trunk5 #: index.docbook:3132 #, 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:3136 #, no-c-format msgid "The name of this group." msgstr "Il nome di questo gruppo." #. Tag: term #. +> trunk5 #: index.docbook:3139 #, no-c-format msgid "separated" msgstr "separated" #. Tag: para #. +> trunk5 #: index.docbook:3140 #, 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:3144 #, 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:3149 #, no-c-format msgid "<context>" msgstr "<context>" #. Tag: para #. +> trunk5 #: index.docbook:3150 #, no-c-format msgid "" "Declares the entries in a context<" "/link>. 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<" "/link>. Consentito solo come figlio diretto del tag <document>. Accetta" " solo tag <menu> come figli diretti. Attributi:" #. Tag: para #. +> trunk5 #: index.docbook:3154 #, 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:3159 #, no-c-format msgid "<require>" msgstr "<require>" #. Tag: para #. +> trunk5 #: index.docbook:3160 #, 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:3164 #, 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:3167 #, no-c-format msgid "map" msgstr "map" #. Tag: para #. +> trunk5 #: index.docbook:3168 #, 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 <" "replaceable>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:3176 #, no-c-format msgid "Elements for use in .rkh (help) files" msgstr "Elementi da utilizzare nei file .rkh (guida)" #. Tag: para #. +> trunk5 #: index.docbook:3180 #, 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:3183 #, no-c-format msgid "<title>" msgstr "<title>" #. Tag: para #. +> trunk5 #: index.docbook:3184 #, 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:3187 #, no-c-format msgid "<summary>" msgstr "<summary>" #. Tag: para #. +> trunk5 #: index.docbook:3188 #, 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:3191 #, no-c-format msgid "<usage>" msgstr "<usage>" #. Tag: para #. +> trunk5 #: index.docbook:3192 #, 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 "" #. Tag: term #. +> trunk5 #: index.docbook:3195 #, no-c-format msgid "<section>" msgstr "<section>" #. Tag: para #. +> trunk5 #: index.docbook:3196 #, 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<" +"/emphasis> della sezione " +"<settings>. Sarà visualizzato il testo contenuto nel tag" +" <section>." #. Tag: para #. +> trunk5 #: index.docbook:3200 #, 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:3203 index.docbook:3225 index.docbook:3239 #, no-c-format msgid "title" msgstr "title" #. Tag: para #. +> trunk5 #: index.docbook:3204 #, 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:3207 #, no-c-format msgid "short_title" msgstr "short_title" #. Tag: para #. +> trunk5 #: index.docbook:3208 #, 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:3213 #, no-c-format msgid "<settings>" msgstr "<settings>" #. Tag: para #. +> trunk5 #: index.docbook:3214 #, 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" +" <captiona> come figli diretti. Nessun attributo." #. Tag: term #. +> trunk5 #: index.docbook:3217 #, no-c-format msgid "<setting>" msgstr "<setting>" #. Tag: para #. +> trunk5 #: index.docbook:3218 #, 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:3222 #, no-c-format msgid "" "The ID of the setting in the plugin .xml. Required, no default." msgstr "" "L'ID dell'impostazione nell'estensione .xml<" "/literal>. Richiesto, nessun valore predefinito." #. Tag: para #. +> trunk5 #: index.docbook:3226 #, 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:3231 #, no-c-format msgid "<caption>" msgstr "<caption>" #. Tag: para #. +> trunk5 #: index.docbook:3232 #, 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:3236 #, 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:3240 #, 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:3245 #, no-c-format msgid "<related>" msgstr "<related>" #. Tag: para #. +> trunk5 #: index.docbook:3246 #, 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:3249 #, no-c-format msgid "<technical>" msgstr "<technical>" #. Tag: para #. +> trunk5 #: index.docbook:3250 #, 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:3253 #, no-c-format msgid "<link>" msgstr "<link>" #. Tag: para #. +> trunk5 #: index.docbook:3254 #, 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:3257 #, no-c-format msgid "href" msgstr "href" #. Tag: para #. +> trunk5 #: index.docbook:3258 #, 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:3263 #, no-c-format msgid "<label>" msgstr "<label>" #. Tag: para #. +> trunk5 #: index.docbook:3264 #, 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:3268 #, no-c-format msgid "" "The id of the element in the plugin, of which to copy the label<" "/replaceable>-attribute." msgstr "" "L'ID dell'elemento nell'estensione, di cui copiare l'etichetta label." #. Tag: term #. +> trunk5 #: index.docbook:3273 #, no-c-format msgid "<various &HTML; tags>" msgstr "<diversi tag &HTML;>" #. Tag: para #. +> trunk5 #: index.docbook:3274 #, 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:3279 #, 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:3281 #, no-c-format msgid "Class \"Component\"" msgstr "Classe «Component»" #. Tag: para #. +> trunk5 #: index.docbook:3282 #, 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:3284 #, no-c-format msgid "absoluteId(base_id)" msgstr "absoluteId(id_base)" #. Tag: para #. +> trunk5 #: index.docbook:3284 #, 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:3285 #, no-c-format msgid "getValue(id)" msgstr "getValue(id)" #. Tag: para #. +> trunk5 #: index.docbook:3285 #, 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:3286 #, no-c-format msgid "getString(id)" msgstr "getString(id)" #. Tag: para #. +> trunk5 #: index.docbook:3286 #, 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:3287 #, no-c-format msgid "getBoolean(id)" msgstr "getBoolean(id)" #. Tag: para #. +> trunk5 #: index.docbook:3287 #, 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:3288 #, no-c-format msgid "getList(id)" msgstr "getList(id)" #. Tag: para #. +> trunk5 #: index.docbook:3288 #, 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:3289 #, no-c-format msgid "setValue(id, value)" msgstr "setValue(id, valore)" #. Tag: para #. +> trunk5 #: index.docbook:3289 #, no-c-format msgid "" "Set the value of the given child property to value." msgstr "" "Impostare il valore della proprietà figlio specificata su valore<" "/emphasis>." #. Tag: term #. +> trunk5 #: index.docbook:3290 #, no-c-format msgid "getChild(id)" msgstr "getChild(id)" #. Tag: para #. +> trunk5 #: index.docbook:3290 #, no-c-format msgid "" "Return an instance of the child-property with the given id<" "/emphasis>." msgstr "" "Restituisce un'istanza della proprietà figlio con l'id" " indicato." #. Tag: term #. +> trunk5 #: index.docbook:3291 #, no-c-format msgid "addChangeCommand(id, command)" msgstr "addChangeCommand(id, comando)" #. Tag: para #. +> trunk5 #: index.docbook:3291 #, no-c-format msgid "" "Execute command whenever the child property given by <" "emphasis>id changes." msgstr "" "Eseguire il comando ogni volta che cambia la proprietà" " figlia data da id." #. Tag: term #. +> trunk5 #: index.docbook:3294 #, no-c-format msgid "Class \"RObject\"" msgstr "Classe «RObject»" #. Tag: para #. +> trunk5 #: index.docbook:3295 #, 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:3295 #, 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:3297 #, no-c-format msgid "getName()" msgstr "getName()" #. Tag: para #. +> trunk5 #: index.docbook:3297 #, no-c-format msgid "Returns the absolute name of the object." msgstr "Restituisce il nome assoluto dell'oggetto." #. Tag: term #. +> trunk5 #: index.docbook:3298 #, no-c-format msgid "exists()" msgstr "exists()" #. Tag: para #. +> trunk5 #: index.docbook:3298 #, 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:3299 #, no-c-format msgid "dimensions()" msgstr "dimensions()" #. Tag: para #. +> trunk5 #: index.docbook:3299 #, 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:3300 #, no-c-format msgid "classes()" msgstr "classes()" #. Tag: para #. +> trunk5 #: index.docbook:3300 #, 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:3301 #, no-c-format msgid "isClass(class)" msgstr "isClass(class)" #. Tag: para #. +> trunk5 #: index.docbook:3301 #, no-c-format msgid "Returns true, if the object is of class class." msgstr "" "Restituisce vero, se l'oggetto appartiene alla classe class<" "/emphasis>." #. Tag: term #. +> trunk5 #: index.docbook:3302 #, no-c-format msgid "isDataFrame()" msgstr "isDataFrame()" #. Tag: para #. +> trunk5 #: index.docbook:3302 #, 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:3303 #, no-c-format msgid "isMatrix()" msgstr "isMatrix()" #. Tag: para #. +> trunk5 #: index.docbook:3303 #, 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:3304 #, no-c-format msgid "isList()" msgstr "isList()" #. Tag: para #. +> trunk5 #: index.docbook:3304 #, 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:3305 #, no-c-format msgid "isFunction()" msgstr "isFunction()" #. Tag: para #. +> trunk5 #: index.docbook:3305 #, 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:3306 #, no-c-format msgid "isEnvironment()" msgstr "isEnvironment()" #. Tag: para #. +> trunk5 #: index.docbook:3306 #, 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:3307 #, no-c-format msgid "isDataNumeric()" msgstr "isDataNumeric()" #. Tag: para #. +> trunk5 #: index.docbook:3307 #, 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:3308 #, no-c-format msgid "isDataFactor()" msgstr "isDataFactor()" #. Tag: para #. +> trunk5 #: index.docbook:3308 #, 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:3309 #, no-c-format msgid "isDataCharacter()" msgstr "isDataCharacter()" #. Tag: para #. +> trunk5 #: index.docbook:3309 #, 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:3310 #, no-c-format msgid "isDataLogical()" msgstr "isDataLogical()" #. Tag: para #. +> trunk5 #: index.docbook:3310 #, 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:3311 #, no-c-format msgid "parent()" msgstr "parent()" #. Tag: para #. +> trunk5 #: index.docbook:3311 #, 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:3312 #, no-c-format msgid "child(childname)" msgstr "child(childname)" #. Tag: para #. +> trunk5 #: index.docbook:3312 #, 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:3315 #, no-c-format msgid "Class \"RObjectArray\"" msgstr "Classe «RObjectArray»" #. Tag: para #. +> trunk5 #: index.docbook:3316 #, 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:3318 #, no-c-format msgid "include()-function" msgstr "Funzione include()" #. Tag: para #. +> trunk5 #: index.docbook:3319 #, 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:3321 #, no-c-format msgid "doRCommand()-function" msgstr "Funzione doRCommand()" #. Tag: para #. +> trunk5 #: index.docbook:3322 #, 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:3330 #, no-c-format msgid "Troubleshooting during plugin development" msgstr "Risoluzione dei problemi durante lo sviluppo delle estensioni" #. Tag: para #. +> trunk5 #: index.docbook:3331 #, 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;<" "/guilabel> " "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:3334 #, 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 <" "guimenuitem>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<" "/guimenu> " "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:3337 #, 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:3340 #, 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:3346 #, no-c-format msgid "License" msgstr "Licenza" #. Tag: trans_comment #. +> trunk5 #: index.docbook:3347 #, no-c-format msgid "CREDIT_FOR_TRANSLATORS" msgstr "" "Traduzione italiana di Vincenzo Reale smart2128@baslug.org"