#
# This properties file is used to create a PropertyResourceBundle
# It contains Locale specific strings used be the Accessibility package.
#
# When this file is read in, the strings are put into the 
# defaults table.  This is an implementation detail of the current
# workings of Accessibility.  DO NOT DEPEND ON THIS.  
# This may change in future versions of Accessibility as we improve 
# localization support.
#
# @author  Lynn Monsanto

#
# accessible roles
#
alert=avviso
awtcomponent=componente AWT
checkbox=casella di controllo
colorchooser=selezione colori
columnheader=intestazione colonna
combobox=casella combinata
canvas=sfondo
desktopicon=icona desktop
desktoppane=riquadro desktop
dialog=finestra di dialogo
directorypane=riquadro directory
glasspane=riquadro trasparente
filechooser=selezione file
filler=utilit\u00E0 riempimento
frame=cornice
internalframe=cornice interna
label=etichetta
layeredpane=riquadro a livelli
list=lista
listitem=voce lista
menubar=barra dei menu
menu=menu
menuitem=voce di menu
optionpane=riquadro opzioni
pagetab=scheda pagina
pagetablist=lista schede pagina
panel=pannello
passwordtext=testo della password
popupmenu=menu popup
progressbar=barra di avanzamento
pushbutton=pulsante
radiobutton=pulsante di scelta
rootpane=riquadro root
rowheader=intestazione di riga
scrollbar=barra di scorrimento
scrollpane=riquadro scorrimento
separator=separatore
slider=dispositivo di scorrimento
splitpane=riquadro doppio
swingcomponent=componente swing
table=tabella
text=testo
tree=albero
togglebutton=interruttore
toolbar=barra degli strumenti
tooltip=descrizione comandi
unknown=sconosciuto
viewport=viewport
window=finestra
#
# accessible relations
#
labelFor=etichetta per
labeledBy=etichetta di
memberOf=membro di
controlledBy=controlledBy
controllerFor=controllerFor
#
# accessible states
#
active=attivo
armed=abilitato
busy=occupato
checked=verificato
collapsed=compresso
editable=modificabile
expandable=espandibile
expanded=espanso
enabled=abilitato
focusable=attivabile in primo piano
focused=in primo piano
iconified=ridotto a icona
modal=modale
multiline=a righe multiple
multiselectable=multi-selezionabile
opaque=nascosto
pressed=premuto
resizable=ridimensionabile
selectable=selezionabile
selected=selezionato
showing=visualizzato
singleline=a riga singola
transient=transitorio
visible=visibile
vertical=verticale
horizontal=orizzontale
#
# accessible actions
#
toggleexpand=abilita/disabilita espansione

# new relations, roles and states for J2SE 1.5.0

# 
# accessible relations
#
flowsTo=va verso
flowsFrom=proviene da
subwindowOf=sottofinestra di
parentWindowOf=finestra di livello superiore di
embeds=incorpora
embeddedBy=incorporato da
childNodeOf=nodo figlio di

#
# accessible roles
#
header=intestazione
footer=pi\u00E8 di pagina
paragraph=paragrafo
ruler=righello
editbar=barra di modifica
progressMonitor=stato avanzamento

#
# accessible states
#
managesDescendants=gestisce i discendenti
indeterminate=indeterminato
truncated=troncato

# new for J2SE 1.6.0

#
# accessible roles
#
htmlcontainer=Contenitore HTML

#
# END OF MATERIAL TO LOCALIZE
#
