#
# 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=alerte
awtcomponent=composant AWT
checkbox=case \u00E0 cocher
colorchooser=s\u00E9lecteur de couleurs
columnheader=en-t\u00EAte de colonne
combobox=liste d\u00E9roulante
canvas=canevas
desktopicon=ic\u00F4ne de bureau
desktoppane=panneau de bureau
dialog=bo\u00EEte de dialogue
directorypane=panneau de r\u00E9pertoires
glasspane=panneau de grossissement
filechooser=s\u00E9lecteur de fichiers
filler=\u00E9l\u00E9ment de remplissage
frame=cadre
internalframe=cadre interne
label=libell\u00E9
layeredpane=panneau superpos\u00E9
list=liste
listitem=\u00E9l\u00E9ment de liste
menubar=barre de menus
menu=menu
menuitem=option de menu
optionpane=panneau d'options
pagetab=onglet de page
pagetablist=liste d'onglets de page
panel=panneau
passwordtext=texte de mot de passe
popupmenu=menu contextuel
progressbar=barre de progression
pushbutton=bouton
radiobutton=bouton radio
rootpane=panneau racine
rowheader=en-t\u00EAte de ligne
scrollbar=barre de d\u00E9filement
scrollpane=panneau de d\u00E9filement
separator=s\u00E9parateur
slider=curseur
splitpane=panneau divis\u00E9
swingcomponent=composant Swing
table=tableau
text=texte
tree=arborescence
togglebutton=bouton de basculement
toolbar=barre d'outils
tooltip=info-bulle
unknown=inconnu
viewport=lucarne
window=fen\u00EAtre
#
# accessible relations
#
labelFor=libell\u00E9 de
labeledBy=libell\u00E9 par
memberOf=membre de
controlledBy=contr\u00F4l\u00E9 par
controllerFor=contr\u00F4leur pour
#
# accessible states
#
active=actif
armed=arm\u00E9
busy=occup\u00E9
checked=coch\u00E9
collapsed=r\u00E9duit
editable=modifiable
expandable=extensible
expanded=d\u00E9velopp\u00E9
enabled=activ\u00E9
focusable=zone d'entr\u00E9e possible
focused=avec zone d'entr\u00E9e
iconified=r\u00E9duit \u00E0 une ic\u00F4ne
modal=modal
multiline=ligne multiple
multiselectable=multis\u00E9lectionnable
opaque=opaque
pressed=enfonc\u00E9
resizable=redimensionnable
selectable=s\u00E9lectionnable
selected=s\u00E9lectionn\u00E9
showing=montrant
singleline=ligne unique
transient=non persistant
visible=visible
vertical=vertical
horizontal=horizontal
#
# accessible actions
#
toggleexpand=basculer le d\u00E9veloppement

# new relations, roles and states for J2SE 1.5.0

# 
# accessible relations
#
flowsTo=flux vers
flowsFrom=flux depuis
subwindowOf=sous-fen\u00EAtre de
parentWindowOf=fen\u00EAtre parente de
embeds=incorpore
embeddedBy=incorpor\u00E9 par
childNodeOf=noeud enfant de

#
# accessible roles
#
header=en-t\u00EAte
footer=pied de page
paragraph=paragraphe
ruler=r\u00E8gle
editbar=barre d'\u00E9dition
progressMonitor=contr\u00F4le de la progression

#
# accessible states
#
managesDescendants=g\u00E8re les descendants
indeterminate=ind\u00E9termin\u00E9
truncated=tronqu\u00E9

# new for J2SE 1.6.0

#
# accessible roles
#
htmlcontainer=conteneur HTML

#
# END OF MATERIAL TO LOCALIZE
#
