# Catalan translations for Arduino IDE package.
# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the Arduino IDE package.
# David A. Mellis <>, 2012.
# Translation to Catalan by Albert Segura <alb.segu(at)gmail(dot)com>
#
!=Project-Id-Version\: Versi\u00f3 1.0\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2012-04-05 14\:18+0100\nLast-Translator\: Albert Segura <alb.segu@gmail.com>\nLanguage-Team\: Catal\u00e0 <alb.segu[at]gmail[dot]com>\nLanguage\: ca\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\nX-Poedit-Language\: Catalan\n

#: Editor.java:366
No\ files\ were\ added\ to\ the\ sketch.=No s'ha afegit cap fitxer al sketch.

#: Editor.java:369 Sketch.java:996
One\ file\ added\ to\ the\ sketch.=S'ha afegit un fitxer al sketch.

#: Editor.java:373
#, java-format
{0}\ files\ added\ to\ the\ sketch.={0} fitxers afegits al sketch.

#: Editor.java:484
File=Fitxer

#: Editor.java:486 EditorToolbar.java:41
New=Nou

#: Editor.java:494 Base.java:903
Open...=Obrir...

#: Editor.java:503
Sketchbook=Sketchbook

#: Editor.java:509
Examples=Exemples

#: Editor.java:514 Editor.java:1977
Close=Tanca

#: Editor.java:522 Editor.java:2017 Editor.java:2421 EditorToolbar.java:41
#: EditorToolbar.java:46
Save=Desa

#: Editor.java:530
Save\ As...=Anomena i desa...

#: Editor.java:538 EditorToolbar.java:41
Upload=Puja

#: Editor.java:546 EditorToolbar.java:46
Upload\ Using\ Programmer=Puja utilitzant un Programador

#: Editor.java:556
Page\ Setup=Configuraci\u00f3 de la p\u00e0gina

#: Editor.java:564
Print=Imprimeix

#: Editor.java:576 Preferences.java:279
Preferences=Prefer\u00e8ncies

#: Editor.java:586 Base.java:782
Quit=Sortir

#: Editor.java:600
Sketch=Sketch

#: Editor.java:602
Verify\ /\ Compile=Verifica / Compila

#: Editor.java:629
Import\ Library...=Importa biblioteca...

#: Editor.java:634
Show\ Sketch\ Folder=Mostra la carpeta del Sketch

#: Editor.java:643
Add\ File...=Afegeix fitxer...

#: Editor.java:656
Tools=Eines

#: Editor.java:662 EditorToolbar.java:41 EditorToolbar.java:46
Serial\ Monitor=Monitor s\u00e8rie

#: Editor.java:682
Board=Placa

#: Editor.java:690
Serial\ Port=Port s\u00e8rie

#: Editor.java:695
Programmer=Programador

#: Editor.java:699
Burn\ Bootloader=Enregistra Bootloader

#: Editor.java:923
serialMenu\ is\ null=serialMenu es null

#: Editor.java:927 Editor.java:934
name\ is\ null=El nom es null

#: Editor.java:986
error\ retrieving\ port\ list=S'ha produ\u00eft un error en obtenir la llista de ports

#: Editor.java:1002
Help=Ajuda

#: Editor.java:1041
Getting\ Started=Primers passos

#: Editor.java:1049
Environment=Entorn

#: Editor.java:1057
Troubleshooting=Soluci\u00f3 de problemes

#: Editor.java:1065
Reference=Refer\u00e8ncia

#: Editor.java:1073 Editor.java:2728
Find\ in\ Reference=Cerca a Refer\u00e8ncia

#: Editor.java:1083
Frequently\ Asked\ Questions=Preguntes M\u00e9s Freq\u00fcents

#: Editor.java:1091
Visit\ Arduino.cc=Visita Arduino.cc

#: Editor.java:1094
http\://arduino.cc/=http\://arduino.cc/

#: Editor.java:1102
About\ Arduino=Quant a Arduino

#: Editor.java:1116
Edit=Edita

#: Editor.java:1119 Editor.java:1341
Undo=Desf\u00e9s

#: Editor.java:1124 Editor.java:1126 Editor.java:1376
Redo=Ref\u00e9s

#: Editor.java:1135 Editor.java:2652
Cut=Retalla

#: Editor.java:1143 Editor.java:2660
Copy=Copia

#: Editor.java:1151 Editor.java:2668
Copy\ for\ Forum=Copia pel Forum

#: Editor.java:1163 Editor.java:2676
Copy\ as\ HTML=Desa com a HTML

#: Editor.java:1175 Editor.java:2684
Paste=Enganxa

#: Editor.java:1184 Editor.java:2692
Select\ All=Selecciona-ho Tot

#: Editor.java:1194 Editor.java:2702
Comment/Uncomment=Comenta/Descomenta

#: Editor.java:1202 Editor.java:2710
Increase\ Indent=Augmenta el sagnat

#: Editor.java:1210 Editor.java:2718
Decrease\ Indent=Disminueix el sagnat

#: Editor.java:1220
Find...=Cerca...

#: Editor.java:1235
Find\ Next=Cerca el seg\u00fcent

#: Editor.java:1245
Find\ Previous=Cerca l'anterior

#: Editor.java:1255
Use\ Selection\ For\ Find=Utilitza la selecci\u00f3 per cercar

#: Editor.java:1816
First\ select\ a\ word\ to\ find\ in\ the\ reference.=Primer seleccioni una paraula per cercar en la refer\u00e8ncia.

#: Editor.java:1823
#, java-format
No\ reference\ available\ for\ "{0}"=No hi ha referencia disponible per a  "{0}"

#: Editor.java:1826
#, java-format
{0}.html={0}.html

#: Editor.java:1843 Sketch.java:1647
Compiling\ sketch...=Compilant el sketch...

#: Editor.java:1864 Editor.java:1881
Done\ compiling.=Compilaci\u00f3 enllestida.

#: Editor.java:1973
#, java-format
Save\ changes\ to\ "{0}"?\ \ =Desar els canvis a "{0}"?  

#: Editor.java:2006
<html>\ <head>\ <style\ type\="text/css">b\ {\ font\:\ 13pt\ "Lucida\ Grande"\ }p\ {\ font\:\ 11pt\ "Lucida\ Grande";\ margin-top\:\ 8px\ }</style>\ </head><b>Do\ you\ want\ to\ save\ changes\ to\ this\ sketch<BR>\ before\ closing?</b><p>If\ you\ don't\ save,\ your\ changes\ will\ be\ lost.=<html> <head> <style type\="text/css">b { font\: 13pt "Lucida Grande" }p { font\: 11pt "Lucida Grande"; margin-top\: 8px }</style> </head><b>Vol desar els canvis a aquest sketch<BR> abans de tancar?</b><p>Si no ho desa, els canvis es perdran.

#: Editor.java:2017 Editor.java:2098 Editor.java:2418 Sketch.java:589
#: Sketch.java:741 Sketch.java:1046 Preferences.java:78
Cancel=Cancel\u00b7la

#: Editor.java:2017
Don't\ Save=No deseu

#: Editor.java:2089
Bad\ file\ selected=Fitxer seleccionat incorrecte

#: Editor.java:2090
Processing\ can\ only\ open\ its\ own\ sketches\nand\ other\ files\ ending\ in\ .ino\ or\ .pde=El Processament nom\u00e9s pot obrir els seus propis sketches\ni altres fitxers acabats en .ino o .pde

#: Editor.java:2098 Editor.java:2418 Sketch.java:589 Sketch.java:741
#: Sketch.java:1046 Preferences.java:79
OK=D'acord

#: Editor.java:2100
#, java-format
The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=El fitxer "{0}" ha d'estar a dins de\nla carpeta del cketch anomenada "{1}".\nVol crear aquesta carpeta, moure el fitxer, i continuar?

#: Editor.java:2109
Moving=S'est\u00e0 movent

#: Editor.java:2120 Editor.java:2131 Editor.java:2141 Editor.java:2159
#: Sketch.java:479 Sketch.java:485 Sketch.java:500 Sketch.java:507
#: Sketch.java:530 Sketch.java:547 Base.java:1861 Preferences.java:240
Error=Error

#: Editor.java:2122
#, java-format
A\ folder\ named\ "{0}"\ already\ exists.\ Can't\ open\ sketch.=La carpeta anomenada "{0}" ja existeix. No es pot obrir el sketch.

#: Editor.java:2132
Could\ not\ create\ the\ sketch\ folder.=No s'ha pogut crear la carpeta del sketch.

#: Editor.java:2141
Could\ not\ copy\ to\ a\ proper\ location.=No s'ha pogut copiar a una localitzaci\u00f3 correcte

#: Editor.java:2159
Could\ not\ create\ the\ sketch.=No s'ha pogut crear el sketch.

#: Editor.java:2166
#, java-format
{0}\ |\ Arduino\ {1}={0} | Arduino {1}

#: Editor.java:2223 Editor.java:2261
Saving...=S'est\u00e0 desant...

#: Editor.java:2228 Editor.java:2264
Done\ Saving.=Guardat enllestit.

#: Editor.java:2270
Save\ Canceled.=Guardat cancel\u00b7lat.

#: Editor.java:2296
#, java-format
Serial\ port\ {0}\ not\ found.\nRetry\ the\ upload\ with\ another\ serial\ port?=Port s\u00e8rie {0} no trobat.\nRe-intentar la pujada amb un altre port s\u00e8rie?

#: Editor.java:2331
Uploading\ to\ I/O\ Board...=Pujant a la I/O de la Placa ...

#: Editor.java:2348 Editor.java:2384
Done\ uploading.=Pujada enllestida.

#: Editor.java:2356 Editor.java:2392
Upload\ canceled.=Pujada cancel\u00b7lada.

#: Editor.java:2420
Save\ changes\ before\ export?=Voleu desar els canvis abans d'exportar?

#: Editor.java:2435
Export\ canceled,\ changes\ must\ first\ be\ saved.=Exportaci\u00f3 cancel\u00b7lada, s'han de desar els canvis abans.

#: Editor.java:2457
Burning\ bootloader\ to\ I/O\ Board\ (this\ may\ take\ a\ minute)...=Enregistrant el bootloader a la I/O placa (pot durar uns minuts)...

#: Editor.java:2463
Done\ burning\ bootloader.=Enregistrament del bootloader llesta.

#: Editor.java:2465 Editor.java:2469 Editor.java:2473
Error\ while\ burning\ bootloader.=Error al enregistrar el bootloader.

#: Editor.java:2500
Printing...=S'est\u00e0 imprimint...

#: Editor.java:2517
Done\ printing.=Impressi\u00f3 finalitzada.

#: Editor.java:2520
Error\ while\ printing.=S'ha produ\u00eft un error mentre s'imprimia

#: Editor.java:2524
Printing\ canceled.=Impressi\u00f3 cancel\u00b7lada.

#: Editor.java:2572
#, java-format
Bad\ error\ line\:\ {0}=L\u00ednia d'error incorrecta\: {0}

#: Editor.java:2641
Open\ URL=Obre l'URL

#: UpdateCheck.java:53
http\://www.arduino.cc/latest.txt=http\://www.arduino.cc/latest.txt

#: UpdateCheck.java:103
A\ new\ version\ of\ Arduino\ is\ available,\nwould\ you\ like\ to\ visit\ the\ Arduino\ download\ page?=Una nova versi\u00f3 de l'Arduino est\u00e0 disponible,\nvoldria visitar la p\u00e0gina de descarrega d'Arduino?

#: UpdateCheck.java:108 Preferences.java:76
Yes=S\u00ed

#: UpdateCheck.java:108 Preferences.java:77
No=No

#: UpdateCheck.java:111
Update=Actualitza

#: UpdateCheck.java:118
http\://www.arduino.cc/en/Main/Software=http\://www.arduino.cc/en/Main/Software

#: FindReplace.java:80
Find\:=Cerca\:

#: FindReplace.java:81
Replace\ with\:=Substitueix amb\:

#: FindReplace.java:96
Ignore\ Case=Ignora difer\u00e8ncies entre maj\u00fascules i min\u00fascules

#: FindReplace.java:105
Wrap\ Around=Envolta

#: FindReplace.java:120 FindReplace.java:131
Replace\ All=Reempla\u00e7a-ho tot

#: FindReplace.java:121 FindReplace.java:130 Sketch.java:1050
Replace=Reempla\u00e7a

#: FindReplace.java:122 FindReplace.java:129
Replace\ &\ Find=Cerca i reempla\u00e7a

#: FindReplace.java:123 FindReplace.java:128
Previous=Anterior

#: FindReplace.java:124 FindReplace.java:127
Find=Cerca

#: SerialMonitor.java:93
Send=Envia

#: SerialMonitor.java:110
Autoscroll=Despla\u00e7ament autom\u00e0tic

#: SerialMonitor.java:112
No\ line\ ending=Sense salts de l\u00ednia

#: SerialMonitor.java:112
Newline=L\u00ednia nova

#: SerialMonitor.java:112
Carriage\ return=Retorn de carro

#: SerialMonitor.java:112
Both\ NL\ &\ CR=Ambd\u00f3s NL & CR

#: SerialMonitor.java:130 SerialMonitor.java:133
\ baud=\ baud

#: Serial.java:147
#, java-format
Serial\ port\ ''{0}''\ already\ in\ use.\ Try\ quiting\ any\ programs\ that\ may\ be\ using\ it.=Port s\u00e8rie "{0}" ja en \u00fas. Provi de finalitzar programes que puguin estar utilitzant-lo.

#: Serial.java:154
#, java-format
Error\ opening\ serial\ port\ ''{0}''.=Error al obrir el port s\u00e8rie "{0}".

#: Serial.java:167
#, java-format
Serial\ port\ ''{0}''\ not\ found.\ Did\ you\ select\ the\ right\ one\ from\ the\ Tools\ >\ Serial\ Port\ menu?=Port s\u00e8rie "{0}" no trobat. Ha seleccionat el port corresponent al men\u00fa Eines > Port s\u00e8rie?

#: Serial.java:424
#, java-format
readBytesUntil()\ byte\ buffer\ is\ too\ small\ for\ the\ {0}\ bytes\ up\ to\ and\ including\ char\ {1}=El buffer de bytes readBytesUntil() \u00e9s massa petit pels {0} bytes fins i incloent el char {1}

#: Serial.java:567
#, java-format
Error\ inside\ Serial.{0}()=Error a dins del Serial.{0}()

#: tools/AutoFormat.java:91
Auto\ Format=Format autom\u00e0tic

#: tools/AutoFormat.java:913 tools/format/src/AutoFormat.java:54
No\ changes\ necessary\ for\ Auto\ Format.=Cap canvi necessari pel format autom\u00e0tic.

#: tools/AutoFormat.java:919
Auto\ Format\ Canceled\:\ Too\ many\ right\ parentheses.=Format autom\u00e0tic cancel\u00b7lat\: Massa par\u00e8ntesis d'obertura.

#: tools/AutoFormat.java:922
Auto\ Format\ Canceled\:\ Too\ many\ left\ parentheses.=Format autom\u00e0tic cancel\u00b7lat\: Massa par\u00e8ntesis de tancament.

#: tools/AutoFormat.java:928
Auto\ Format\ Canceled\:\ Too\ many\ right\ curly\ braces.=Format autom\u00e0tic cancel\u00b7lat\: Massa claus d'obertura.

#: tools/AutoFormat.java:931
Auto\ Format\ Canceled\:\ Too\ many\ left\ curly\ braces.=Format autom\u00e0tic cancel\u00b7lat\: Massa claus de tancament.

#: tools/AutoFormat.java:941
Auto\ Format\ finished.=Format autom\u00e0tic finalitzat.

#: tools/FixEncoding.java:41 tools/FixEncoding.java:58
#: tools/FixEncoding.java:79
Fix\ Encoding\ &\ Reload=Arregla la codificaci\u00f3 i recarrega

#: tools/FixEncoding.java:57
Discard\ all\ changes\ and\ reload\ sketch?=Desfer tots els canvis i recarregar el sketch?

#: tools/FixEncoding.java:77
An\ error\ occurred\ while\ trying\ to\ fix\ the\ file\ encoding.\nDo\ not\ attempt\ to\ save\ this\ sketch\ as\ it\ may\ overwrite\nthe\ old\ version.\ Use\ Open\ to\ re-open\ the\ sketch\ and\ try\ again.\n=Un error ha succe\u00eft provant de arreglar la codificaci\u00f3 del fitxer.\nNo provi de desar aquest sketch, podria sobreescriure\nla versi\u00f3 antiga. Utilitzi Obrir per re-obrir el sketch i tornar-ho a provar.\n

#: tools/Archiver.java:48
Archive\ Sketch=Arxiva Sketch

#: tools/Archiver.java:59
yyMMdd=yyMMdd

#: tools/Archiver.java:74
Couldn't\ archive\ sketch=No s'ha pogut arxivar el sketch

#: tools/Archiver.java:75
Archiving\ the\ sketch\ has\ been\ canceled\ because\nthe\ sketch\ couldn't\ save\ properly.=L'arxivament del sketch ha estat cancel\u00b7lat per qu\u00e8\nel sketch no s'ha desat adequadament.

#: tools/Archiver.java:109
Archive\ sketch\ as\:=Arxiva sketch com\:

#: tools/Archiver.java:139
Archive\ sketch\ canceled.=Arxivat del sketch cancel\u00b7lat.

#: SketchCode.java:83
#, java-format
Error\ while\ loading\ code\ {0}=Error durant la carrega de codi {0}

#: SketchCode.java:258
#, java-format
"{0}"\ contains\ unrecognized\ characters.If\ this\ code\ was\ created\ with\ an\ older\ version\ of\ Processing,you\ may\ need\ to\ use\ Tools\ ->\ Fix\ Encoding\ &\ Reload\ to\ updatethe\ sketch\ to\ use\ UTF-8\ encoding.\ If\ not,\ you\ may\ need\ todelete\ the\ bad\ characters\ to\ get\ rid\ of\ this\ warning.="{0}" cont\u00e9 car\u00e0cters desconeguts. Si aquest codi va ser creat amb una versi\u00f3 antiga de Processament, podria utilitzar el men\u00fa Eines > Arregla la codificaci\u00f3 i recarrega per actualitzar el sketch per tal d'usar una codificaci\u00f3 UTF-8. Si no, haur\u00e0 de suprimir els car\u00e0cters incorrectes per desfer-se del avis.

#: Sketch.java:278 Sketch.java:307 Sketch.java:581 Sketch.java:970
Sketch\ is\ Read-Only=El Sketch \u00e9s nom\u00e9s de lectura

#: Sketch.java:279 Sketch.java:308 Sketch.java:582 Sketch.java:971
Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ the\ sketch\ in\ another\ location,\nand\ try\ again.=Alguns fitxers estan marcats com a "read-only", per tant haur\u00e0\nde desar de nou el sketch en una altre localitzaci\u00f3,\ni tornar-ho a provar.

#: Sketch.java:286
Name\ for\ new\ file\:=Escolliu nom per un nou fitxer\:

#: Sketch.java:298
Sketch\ is\ Untitled=El Sketch no t\u00e9 nom.

#: Sketch.java:299
How\ about\ saving\ the\ sketch\ first\ \nbefore\ trying\ to\ rename\ it?=Per qu\u00e8 no prova de desar el sketch primer \nabans de provar de renombrar-lo?

#: Sketch.java:359 Sketch.java:366 Sketch.java:377
Problem\ with\ rename=Hi ha un problema amb el motor de reproducci\u00f3

#: Sketch.java:360
The\ name\ cannot\ start\ with\ a\ period.=El nom no pot comen\u00e7ar amb un punt.

#: Sketch.java:368
#, java-format
".{0}"\ is\ not\ a\ valid\ extension.=".{0}" no \u00e9s una extensi\u00f3 v\u00e0lida.

#: Sketch.java:378
The\ main\ file\ can't\ use\ an\ extension.\n(It\ may\ be\ time\ for\ your\ to\ graduate\ to\ a\n"real"\ programming\ environment)=El fitxer principal no pot utilitzar una extensi\u00f3.\n(Potser es moment de que es gradu\u00ef en un\nentorn de programaci\u00f3 "real")

#: Sketch.java:400 Sketch.java:414 Sketch.java:423 Sketch.java:863
Nope=Nop

#: Sketch.java:402
#, java-format
A\ file\ named\ "{0}"\ already\ exists\ in\ "{1}"=Ja existeix un fitxer amb el nom "{0}" a "{1}"

#: Sketch.java:415
You\ can't\ have\ a\ .cpp\ file\ with\ the\ same\ name\ as\ the\ sketch.=No pot tenir un fitxer .cpp amb el mateix nom que el sketch.

#: Sketch.java:425
You\ can't\ rename\ the\ sketch\ to\ "{0}"\nbecause\ the\ sketch\ already\ has\ a\ .cpp\ file\ with\ that\ name.=No pot reanomenar el sketch a "{0}"\nper qu\u00e8 el sketch ja t\u00e9 un fitxer .cpp amb el mateix nom.

#: Sketch.java:459
Cannot\ Rename=No es pot reanomenar

#: Sketch.java:461
#, java-format
Sorry,\ a\ sketch\ (or\ folder)\ named\ "{0}"\ already\ exists.=Ho sentim, un sketch (o carpeta) anomenat "{0}" ja existeix.

#: Sketch.java:479
Could\ not\ rename\ the\ sketch.\ (0)=No es pot reanomenar el sketch. (0)

#: Sketch.java:487 Sketch.java:532
#, java-format
Could\ not\ rename\ "{0}"\ to\ "{1}"=No es pot reanomenar "{0}" per "{1}"

#: Sketch.java:500
Could\ not\ rename\ the\ sketch.\ (1)=No es pot reanomenar el sketch. (1)

#: Sketch.java:507
Could\ not\ rename\ the\ sketch.\ (2)=No es pot reanomenar el sketch. (2)

#: Sketch.java:544
createNewFile()\ returned\ false=createNewFile() ha retornat false

#: Sketch.java:591
Are\ you\ sure\ you\ want\ to\ delete\ this\ sketch?=Segur que voleu suprimir aquest sketch?

#: Sketch.java:592
#, java-format
Are\ you\ sure\ you\ want\ to\ delete\ "{0}"?=Esteu segur que voleu suprimir "{0}"?

#: Sketch.java:595 EditorHeader.java:314
Delete=Suprimeix

#: Sketch.java:620
Couldn't\ do\ it=No s'ha pogut fer

#: Sketch.java:621
#, java-format
Could\ not\ delete\ "{0}".=No s'ha pogut suprimir "{0}".

#: Sketch.java:651
removeCode\:\ internal\ error..\ could\ not\ find\ code=removeCode\: error intern... no s'ha pogut trobar codi

#: Sketch.java:724
Sketch\ is\ read-only=El Sketch \u00e9s nom\u00e9s de lectura

#: Sketch.java:725
Some\ files\ are\ marked\ "read-only",\ so\ you'll\nneed\ to\ re-save\ this\ sketch\ to\ another\ location.=Alguns arxius estan marcats "reald-only", haur\u00e0 de\ndesar el sketch a una altre localitzaci\u00f3.

#: Sketch.java:743
In\ Arduino\ 1.0,\ the\ default\ file\ extension\ has\ changed\nfrom\ .pde\ to\ .ino.\ \ New\ sketches\ (including\ those\ created\nby\ "Save-As"\ will\ use\ the\ new\ extension.\ \ The\ extension\nof\ existing\ sketches\ will\ be\ updated\ on\ save,\ but\ you\ can\ndisable\ this\ in\ the\ Preferences\ dialog.\n\nSave\ sketch\ and\ update\ its\ extension?=En l'Arduino 1.0, la extensi\u00f3 per defecte dels fitxers han canviat\nde .pde a .ino. Els nous sketch (incloent aquells creats\nper "Anomena i desa" usaran la nova extensi\u00f3. La extensi\u00f3\ndels sketches existents s'actualitzar\u00e0 al desar, per\u00f2 pot\ndeshabilitar-ho en el di\u00e0leg de Prefer\u00e8ncies.\n\nDesar el sketch i actualitzar la seva extensi\u00f3?

#: Sketch.java:750
.pde\ ->\ .ino=.pde ->.ino

#: Sketch.java:829
Save\ sketch\ folder\ as...=Anomena i desa la carpeta de sketch...

#: Sketch.java:865
You\ can't\ save\ the\ sketch\ as\ "{0}"\nbecause\ the\ sketch\ already\ has\ a\ .cpp\ file\ with\ that\ name.=No pot desar el sketch com "{0}"\nper qu\u00e8 el sketch ja cont\u00e9 un fitxer .cpp amb aquest nom.

#: Sketch.java:886
How\ very\ Borges\ of\ you=Que tant Borges de part teva

#: Sketch.java:887
You\ cannot\ save\ the\ sketch\ into\ a\ folder\ninside\ itself.\ This\ would\ go\ on\ forever.=No pot desar el sketch en una carpeta\ndins del mateix. Aix\u00f2 seria un proc\u00e9s infinit.

#: Sketch.java:979
Select\ an\ image\ or\ other\ data\ file\ to\ copy\ to\ your\ sketch=Seleccioni una imatge o un altre fitxer da dades per copiar el seu sketch

#: Sketch.java:1047
#, java-format
Replace\ the\ existing\ version\ of\ {0}?=Reempla\u00e7a la versi\u00f3 existent de {0}?

#: Sketch.java:1069 Sketch.java:1092
Error\ adding\ file=Error al afegir un fitxer

#: Sketch.java:1070
#, java-format
Could\ not\ delete\ the\ existing\ ''{0}''\ file.=No s'ha pogut suprimir el fitxer existent "{0}".

#: Sketch.java:1078
You\ can't\ fool\ me=A mi no em pots enganyar

#: Sketch.java:1079
This\ file\ has\ already\ been\ copied\ to\ the\nlocation\ from\ which\ where\ you're\ trying\ to\ add\ it.\nI\ ain't\ not\ doin\ nuthin'.=Aquest fitxer ja ha estat copiat a la\nlocalitzaci\u00f3 de la qual est\u00e0 provant d'afegir-lo.\n'I ain't not doin nuthin'.'

#: Sketch.java:1093
#, java-format
Could\ not\ add\ ''{0}''\ to\ the\ sketch.=No s'ha pogut afegir "{0}" al sketch.

#: Sketch.java:1393 Sketch.java:1424
Build\ folder\ disappeared\ or\ could\ not\ be\ written=Carpeta de construcci\u00f3 del projecte desapareguda o no s'ha pogut escriure

#: Sketch.java:1408
Could\ not\ find\ main\ class=No s'ha pogut trobar la classe principal

#: Sketch.java:1433
#, java-format
Uncaught\ exception\ type\:\ {0}=Excepci\u00f3 escapada de tipus\: {0}

#: Sketch.java:1465
#, java-format
Problem\ moving\ {0}\ to\ the\ build\ folder=Problemes movent {0} a la carpeta de treball

#: Sketch.java:1661
Uploading...=Actualitzant...

#: Sketch.java:1684
#, java-format
Binary\ sketch\ size\:\ {0}\ bytes\ (of\ a\ {1}\ byte\ maximum)=Mida en binari del sketch\: {0} bytes (d'un total de {1} bytes m\u00e0xims)

#: Sketch.java:1689
Couldn't\ determine\ program\ size\:\ {0}=No s'ha pogut determinar la mida del programa\: {0}

#: Sketch.java:1694
Sketch\ too\ big;\ see\ http\://www.arduino.cc/en/Guide/Troubleshooting\#size\ for\ tips\ on\ reducing\ it.=Sketch massa gran; visita http\://www.arduino.cc/en/Guide/Troubleshooting\#size per consells per reduir-ne la mida.

#: Sketch.java:1754
Missing\ the\ */\ from\ the\ end\ of\ a\ /*\ comment\ */=Manca el */ al final de /* comentari */

#: Sketch.java:1796
Sketch\ Disappeared=Sketch desaparegut

#: Sketch.java:1797
The\ sketch\ folder\ has\ disappeared.\n\ Will\ attempt\ to\ re-save\ in\ the\ same\ location,\nbut\ anything\ besides\ the\ code\ will\ be\ lost.=La carpeta del sketch ha desaparegut.\n Es provar\u00e0 de tornar a desar en la mateixa localitzaci\u00f3,\nper\u00f2 tot excepte el codi ser\u00e0 perdut.

#: Sketch.java:1810
Could\ not\ re-save\ sketch=No s'ha pogut desar de nou el sketch

#: Sketch.java:1811
Could\ not\ properly\ re-save\ the\ sketch.\ You\ may\ be\ in\ trouble\ at\ this\ point,\nand\ it\ might\ be\ time\ to\ copy\ and\ paste\ your\ code\ to\ another\ text\ editor.=No s'ha pogut desar el sketch adequadament. Potser t\u00e9 un problema ara mateix,\ni potser es el moment de copiar i enganxar el teu codi en un altre editor de text.

#: Sketch.java:2060
The\ sketch\ name\ had\ to\ be\ modified.\ Sketch\ names\ can\ only\ consist\nof\ ASCII\ characters\ and\ numbers\ (but\ cannot\ start\ with\ a\ number).\nThey\ should\ also\ be\ less\ less\ than\ 64\ characters\ long.=El nom del sketch ha de ser modificat. Els noms dels Sketch nom\u00e9s poden constar\nde car\u00e0cters ASCII i nombres (per\u00f2 no comen\u00e7ar amb nombres).\nTamb\u00e9 haurien de ser menys de 64 car\u00e0cters.

#: debug/Uploader.java:52
https\://developer.berlios.de/bugs/?group_id\=3590=https\://developer.berlios.de/bugs/?group_id\=3590

#: debug/Uploader.java:54 debug/Compiler.java:43
#, java-format
Compiler\ error,\ please\ submit\ this\ code\ to\ {0}=Error del compilador, si us plau pengeu aquest codi a {0}

#: debug/Uploader.java:199
#, java-format
the\ selected\ serial\ port\ {0}\ does\ not\ exist\ or\ your\ board\ is\ not\ connected=el port s\u00e8rie seleccionat {0} no existeix o la teva placa no est\u00e0 connectada

#: debug/Uploader.java:203
Device\ is\ not\ responding,\ check\ the\ right\ serial\ port\ is\ selected\ or\ RESET\ the\ board\ right\ before\ exporting=El dispositiu no respon, comprova que el port s\u00e8rie corresponent esta seleccionat o fes-li un RESET a la placa just abans d'exportar 

#: debug/Uploader.java:209
Problem\ uploading\ to\ board.\ \ See\ http\://www.arduino.cc/en/Guide/Troubleshooting\#upload\ for\ suggestions.=Problema pujant a la placa. Visita per http\://www.arduino.cc/en/Guide/Troubleshooting\#upload suggeriments.

#: debug/Uploader.java:213
Wrong\ microcontroller\ found.\ \ Did\ you\ select\ the\ right\ board\ from\ the\ Tools\ >\ Board\ menu?=Microcontrolador trobat incorrecte. Ha seleccionat la placa adequada del men\u00fa Eines > Placa?

#: debug/Compiler.java:41
http\://code.google.com/p/arduino/issues/list=http\://code.google.com/p/arduino/issues/list

#: debug/Compiler.java:79
No\ board\ selected;\ please\ choose\ a\ board\ from\ the\ Tools\ >\ Board\ menu.=Cap placa seleccionada; si us plau esculli una placa del men\u00fa Eines > Placa.

#: debug/Compiler.java:422
#, java-format
{0}\ returned\ {1}={0} ha retornat {1}

#: debug/Compiler.java:426
Error\ compiling.=Error compilant.

#: debug/Compiler.java:465
Please\ import\ the\ SPI\ library\ from\ the\ Sketch\ >\ Import\ Library\ menu.=Si us plau importeu la llibreria SPI del men\u00fa  Sketch > Importa biblioteca.

#: debug/Compiler.java:466
\nAs\ of\ Arduino\ 0019,\ the\ Ethernet\ library\ depends\ on\ the\ SPI\ library.\nYou\ appear\ to\ be\ using\ it\ or\ another\ library\ that\ depends\ on\ the\ SPI\ library.\n\n=\nA partir de Arduino 0019, la llibreria Ethernet dep\u00e8n de la llibreria SPI.\nSembla que l'esta utilitzant o ho fa una altre llibreria que dep\u00e8n de la llibreria SPI.\n\n

#: debug/Compiler.java:471
The\ 'BYTE'\ keyword\ is\ no\ longer\ supported.=La paraula clau 'BYTE' ja no esta suportada.

#: debug/Compiler.java:472
\nAs\ of\ Arduino\ 1.0,\ the\ 'BYTE'\ keyword\ is\ no\ longer\ supported.\nPlease\ use\ Serial.write()\ instead.\n\n=\nA partir de Arduino 1.0, la paraula clau 'BYTE' ja no esta suportada.\nSi us plau usa en comptes Seria.write()\n\n

#: debug/Compiler.java:477
The\ Server\ class\ has\ been\ renamed\ EthernetServer.=La classe Server ha estat reanomenada EthernetServer.

#: debug/Compiler.java:478
\nAs\ of\ Arduino\ 1.0,\ the\ Server\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetServer.\n\n=\nA partir de Arduino 1.0, la classe Server de la llibreria Ethernet ha estat reanomenada a EthernetServer.\n\n

#: debug/Compiler.java:483
The\ Client\ class\ has\ been\ renamed\ EthernetClient.=La classe Client ha estat reanomenat a EthernetClient.

#: debug/Compiler.java:484
\nAs\ of\ Arduino\ 1.0,\ the\ Client\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetClient.\n\n=\nA partir de Arduino 1.0, la classe Client de la llibreria Ethernet ha estat reanomenada a EthernetClient.\n\n

#: debug/Compiler.java:489
The\ Udp\ class\ has\ been\ renamed\ EthernetUdp.=La classe Udp ha estat reanomenada a EthernetUdp.

#: debug/Compiler.java:490
\nAs\ of\ Arduino\ 1.0,\ the\ Udp\ class\ in\ the\ Ethernet\ library\ has\ been\ renamed\ to\ EthernetClient.\n\n=\nA partir de Arduino 1.0, la classe Udp de la llibreria Ethernet ha estat reanomenada a EthernetClient.\n\n

#: debug/Compiler.java:495
Wire.send()\ has\ been\ renamed\ Wire.write().=Wire.send() ha estat reanomenada a Wire.write().

#: debug/Compiler.java:496
\nAs\ of\ Arduino\ 1.0,\ the\ Wire.send()\ function\ was\ renamed\ to\ Wire.write()\ for\ consistency\ with\ other\ libraries.\n\n=\nA partir de Arduino 1.0, la funci\u00f3 Wire.send() s'ha reanomenat a Wire.write() per consist\u00e8ncia amb altres llibreries..\n\n

#: debug/Compiler.java:501
Wire.receive()\ has\ been\ renamed\ Wire.read().=Wire.receive() ha estat reanomenada a Wire.read().

#: debug/Compiler.java:502
\nAs\ of\ Arduino\ 1.0,\ the\ Wire.receive()\ function\ was\ renamed\ to\ Wire.read()\ for\ consistency\ with\ other\ libraries.\n\n=\nA partir de Arduino 1.0, la funci\u00f3 Wire.receive() s'ha reanomenat a Wire.read() per consist\u00e8ncia amb altres llibreries..\n\n

#: EditorConsole.java:152
Console\ Error=Consola d'errors

#: EditorConsole.java:153
A\ problem\ occurred\ while\ trying\ to\ open\ the\nfiles\ used\ to\ store\ the\ console\ output.=Un problema ha succe\u00eft al provar d'obrir els\nfitxers utilitzats per desar la sortida de la consola.

#: Base.java:184
Non-fatal\ error\ while\ setting\ the\ Look\ &\ Feel.=Error no fatal mentre s'establien les prefer\u00e8ncies de l'aparen\u00e7a.

#: Base.java:185
The\ error\ message\ follows,\ however\ Arduino\ should\ run\ fine.=El missatge d'error continua, de totes formes Arduino hauria de funcionar b\u00e9.

#: Base.java:220
Problem\ Setting\ the\ Platform=Problemes per establir les prefer\u00e8ncies de Plataforma

#: Base.java:221
An\ unknown\ error\ occurred\ while\ trying\ to\ load\nplatform-specific\ code\ for\ your\ machine.=Un error desconegut ha succe\u00eft mentre es provava de carregar\ncodi especific de la plataforma per la seva maquina.

#: Base.java:232
Please\ install\ JDK\ 1.5\ or\ later=Si us plau, instal\u00b7leu JDK 1.5 o posterior

#: Base.java:233
Arduino\ requires\ a\ full\ JDK\ (not\ just\ a\ JRE)\nto\ run.\ Please\ install\ JDK\ 1.5\ or\ later.\nMore\ information\ can\ be\ found\ in\ the\ reference.=Arduino requereix JDK per complet (no nom\u00e9s el JRE)\nper funcionar. Si us plau, instal\u00b7leu JDK 1.5 o posterior.\nPodeu trobar m\u00e9s informaci\u00f3 a les refer\u00e8ncies.

#: Base.java:257
Sketchbook\ folder\ disappeared=Carpeta Sketchbook desapareguda

#: Base.java:258
The\ sketchbook\ folder\ no\ longer\ exists.\nArduino\ will\ switch\ to\ the\ default\ sketchbook\nlocation,\ and\ create\ a\ new\ sketchbook\ folder\ if\nnecessary.\ Arduino\ will\ then\ stop\ talking\ about\nhimself\ in\ the\ third\ person.=La carpeta sketchbook no existeix.\nArduino canviar\u00e0\u00a0 a la localitzaci\u00f3 per defecte\nde sketchbook, i crear\u00e0\u00a0 una nova carpeta sketchbook\nsi fos necessari. Arduino parar\u00e0\u00a0 de parlar\nd'ell mateix en tercera persona.

#: Base.java:532
Time\ for\ a\ Break=Temps per un descans

#: Base.java:533
You've\ reached\ the\ limit\ for\ auto\ naming\ of\ new\ sketches\nfor\ the\ day.\ How\ about\ going\ for\ a\ walk\ instead?=Has sobrepassat el limit d'auto-anomenament de nous sketches\npel dia d'avui. Perqu\u00e8 no fas una passejada?

#: Base.java:537
Sunshine=Brillantor

#: Base.java:538
No\ really,\ time\ for\ some\ fresh\ air\ for\ you.=No, de deb\u00f2, moment per anar a prendre aire fresc.

#: Base.java:633
Open\ an\ Arduino\ sketch...=Obre un sketch d'Arduino...

#: Base.java:772
<html>\ <head>\ <style\ type\="text/css">b\ {\ font\:\ 13pt\ "Lucida\ Grande"\ }p\ {\ font\:\ 11pt\ "Lucida\ Grande";\ margin-top\:\ 8px\ }</style>\ </head><b>Are\ you\ sure\ you\ want\ to\ Quit?</b><p>Closing\ the\ last\ open\ sketch\ will\ quit\ Arduino.=<html> <head> <style type\="text/css">b { font\: 13pt "Lucida Grande" }p { font\: 11pt "Lucida Grande"; margin-top\: 8px }</style> </head><b>Est\u00e0 segur que vol sortir?</b><p>Tancar l'ultim sketch obert tancar\u00e0 l'Arduino.

#: Base.java:970
Contributed=Contribuci\u00f3

#: Base.java:1095
Sketch\ Does\ Not\ Exist=El Sketch no existeix

#: Base.java:1096
The\ selected\ sketch\ no\ longer\ exists.\nYou\ may\ need\ to\ restart\ Arduino\ to\ update\nthe\ sketchbook\ menu.=El sketch seleccionat ja no existeix.\nHauries de reiniciar Arduino per actualitzar\nel men\u00fa de sketchbook.

#: Base.java:1125
#, java-format
The\ sketch\ "{0}"\ cannot\ be\ used.\nSketch\ names\ must\ contain\ only\ basic\ letters\ and\ numbers\n(ASCII-only\ with\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number).\nTo\ get\ rid\ of\ this\ message,\ remove\ the\ sketch\ from\n{1}=El sketch "{0}" no pot ser utilitzat.\nEls noms dels sketch han de contenir nom\u00e9s car\u00e0cters b\u00e0sics i nombres\n(Nom\u00e9s ASCII sense espais, i no pot comen\u00e7ar amb un nombre).\nPer desfer-se d'aquest missatge, elimina el sketch de\n{1}

#: Base.java:1132
Ignoring\ sketch\ with\ bad\ name=Ignorant el sketch amb un nom incorrecte

#: Base.java:1202
#, java-format
The\ library\ "{0}"\ cannot\ be\ used.\nLibrary\ names\ must\ contain\ only\ basic\ letters\ and\ numbers.\n(ASCII\ only\ and\ no\ spaces,\ and\ it\ cannot\ start\ with\ a\ number)=La llibreria "{0}" no pot ser utilitzada.\nEls noms de llibreries ha de contenir nom\u00e9s car\u00e0cters b\u00e0sics i nombres.\n(Nom\u00e9s ASCII sense espais, i no pot comen\u00e7ar amb un nombre)

#: Base.java:1207
Ignoring\ bad\ library\ name=Ignorant la llibreria amb un nom incorrecte

#: Base.java:1432
Problem\ getting\ data\ folder=Problema obtenint la carpeta de data

#: Base.java:1433
Error\ getting\ the\ Arduino\ data\ folder.=Error obtenint la carpeta data d'Arduino.

#: Base.java:1440
Settings\ issues=Errors en les prefer\u00e8ncies

#: Base.java:1441
Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ your\ settings.=Arduino no pot funcionar perqu\u00e8 no pot\ncrear una carpeta per desar les prefer\u00e8ncies.

#: Base.java:1602
You\ forgot\ your\ sketchbook=Ha oblidat el seu sketchbook

#: Base.java:1603
Arduino\ cannot\ run\ because\ it\ could\ not\ncreate\ a\ folder\ to\ store\ your\ sketchbook.=Arduino no pot funcionar perqu\u00e8 no pot\ncre\u00ef una carpeta per desar el seu sketchbook.

#: Base.java:1623
Select\ (or\ create\ new)\ folder\ for\ sketches...=Seleccioni (o cre\u00ef) una carpeta pels sketches...

#: Base.java:1647
Problem\ Opening\ URL=Problema obrint la URL

#: Base.java:1648
#, java-format
Could\ not\ open\ the\ URL\n{0}=No s'ha pogut obrir la URL\n{0}

#: Base.java:1671
Problem\ Opening\ Folder=Problema obrint la carpeta

#: Base.java:1672
#, java-format
Could\ not\ open\ the\ folder\n{0}=No s'ha pogut obrir la carpeta\n{0}

#: Base.java:1785
Guide_MacOSX.html=Guide_MacOSX.html

#: Base.java:1787
Guide_Windows.html=Guide_Windows.html

#: Base.java:1789
http\://www.arduino.cc/playground/Learning/Linux=http\://www.arduino.cc/playground/Learning/Linux

#: Base.java:1794
index.html=index.html

#: Base.java:1799
Guide_Environment.html=Guide_Environment.html

#: Base.java:1804
environment=entorn

#: Base.java:1804
platforms.html=platforms.html

#: Base.java:1809
Guide_Troubleshooting.html=Guide_Troubleshooting.html

#: Base.java:1814
FAQ.html=FAQ.html

#: Base.java:1826
Message=Missatge

#: Base.java:1842
Warning=Advert\u00e8ncia

#: Base.java:2196
#, java-format
Could\ not\ remove\ old\ version\ of\ {0}=No s'ha pogut eliminar una versi\u00f3 anterior de {0}

#: Base.java:2206
#, java-format
Could\ not\ replace\ {0}=No s'ha pogut reempla\u00e7ar {0}

#: Base.java:2247 Base.java:2270
#, java-format
Could\ not\ delete\ {0}=No s'ha pogut eliminar {0}

#: EditorHeader.java:292
New\ Tab=Pestanya nova

#: EditorHeader.java:300
Rename=Canvia el nom

#: EditorHeader.java:326
Previous\ Tab=Pestanya anterior

#: EditorHeader.java:340
Next\ Tab=Pestanya seg\u00fcent

#: EditorToolbar.java:41 EditorToolbar.java:46
Verify=Verifiqueu 

#: EditorToolbar.java:41
Open=Obre

#: EditorToolbar.java:46
New\ Editor\ Window=Obre una finestra nova del editor

#: EditorToolbar.java:46
Open\ in\ Another\ Window=Obrir en una altra finestra

#: Platform.java:167
No\ launcher\ available=No hi ha llan\u00e7ador disponible

#: Platform.java:168
Unspecified\ platform,\ no\ launcher\ available.\nTo\ enable\ opening\ URLs\ or\ folders,\ add\ a\ \n"launcher\=/path/to/app"\ line\ to\ preferences.txt=Plataforma no especificada, no hi ha un llan\u00e7ador disponible.\nPer permetre obrir URLs o carpetes, afegeix \n"launcher\=/path/yo/app" a preferences.txt

#: Theme.java:52
Could\ not\ read\ color\ theme\ settings.\nYou'll\ need\ to\ reinstall\ Processing.=No s'han pogut llegir les prefer\u00e8ncies de tema de color.\nHaur\u00e0 de reinstal\u00b7lar Processament.

#: Preferences.java:80
Browse=Navega

#: Preferences.java:83
!System\ Default=

#: Preferences.java:84
!Arabic=

#: Preferences.java:85
!Aragonese=

#: Preferences.java:86
!Catalan=

#: Preferences.java:87
!Chinese\ Simplified=

#: Preferences.java:88
!Chinese\ Traditional=

#: Preferences.java:89
!Danish=

#: Preferences.java:90
!Dutch=

#: Preferences.java:91
!English=

#: Preferences.java:92
!Estonian=

#: Preferences.java:93
!French=

#: Preferences.java:94
!Filipino=

#: Preferences.java:95
!Galician=

#: Preferences.java:96
!German=

#: Preferences.java:97
!Greek=

#: Preferences.java:98
!Hungarian=

#: Preferences.java:99
!Indonesian=

#: Preferences.java:100
!Italian=

#: Preferences.java:101
!Japanese=

#: Preferences.java:102
!Korean=

#: Preferences.java:103
!Latvian=

#: Preferences.java:104
!Lithuaninan=

#: Preferences.java:105
!Persian=

#: Preferences.java:106
!Polish=

#: Preferences.java:107 Preferences.java:108
!Portuguese=

#: Preferences.java:109
!Romanian=

#: Preferences.java:110
!Russian=

#: Preferences.java:111
!Spanish=

#: Preferences.java:210
Could\ not\ read\ default\ settings.\nYou'll\ need\ to\ reinstall\ Arduino.=No s'han pogut llegir les prefer\u00e8ncies per defecte.\nHaur\u00e0s de reinstal\u00b7lar l'Arduino.

#: Preferences.java:242
#, java-format
Could\ not\ read\ preferences\ from\ {0}=No s'ha pogut llegir les prefer\u00e8ncies de {0}

#: Preferences.java:261
Error\ reading\ preferences=Error en llegir les prefer\u00e8ncies

#: Preferences.java:263
#, java-format
Error\ reading\ the\ preferences\ file.\ Please\ delete\ (or\ move)\n{0}\ and\ restart\ Arduino.=Error al llegir el fitxer de prefer\u00e8ncies. Si us plau elimini (o mogui)\n{0} i reinici\u00ef Arduino.

#: Preferences.java:299
Sketchbook\ location\:=Ubicaci\u00f3 del Sketchbook\:

#: Preferences.java:314
Select\ new\ sketchbook\ location=Seleccioneu una ubicaci\u00f3 pel nou sketchbook

#: Preferences.java:337
!Editor\ language\:\ =

#: Preferences.java:342 Preferences.java:358
\ \ (requires\ restart\ of\ Arduino)=\  (requereix reiniciar l'Arduino)

#: Preferences.java:354
Editor\ font\ size\:\ =Mides del fonts del editor\:

#: Preferences.java:371
Show\ verbose\ output\ during\:\ =Mostra la sortida detallada durant\: 

#: Preferences.java:373
compilation\ =Compliaci\u00f3 

#: Preferences.java:375
upload=Pujada

#: Preferences.java:384
Verify\ code\ after\ upload=Verificar el codi despr\u00e9s d'actualitzar

#: Preferences.java:393
Use\ external\ editor=Utilitza un editor extern

#: Preferences.java:403
Check\ for\ updates\ on\ startup=Comprova actualitzacions al iniciar

#: Preferences.java:412
Update\ sketch\ files\ to\ new\ extension\ on\ save\ (.pde\ ->\ .ino)=Actualitza fitxer dels sketch a la nova extensi\u00f3 al desar (.pde -> .ino)

#: Preferences.java:423
Automatically\ associate\ .ino\ files\ with\ Arduino=Associa autom\u00e0ticament fitxers .ino amb l'Arduino

#: Preferences.java:433
More\ preferences\ can\ be\ edited\ directly\ in\ the\ file=Es poden editar m\u00e9s prefer\u00e8ncies directament en el fitxer

#: Preferences.java:462
(edit\ only\ when\ Arduino\ is\ not\ running)=(modifica nom\u00e9s quan l'Arduino no estigui en funcionament)

#: Preferences.java:609
#, java-format
ignoring\ invalid\ font\ size\ {0}=Ignorant mida de font inv\u00e0lida {0}
