Index: trunk/l10n-kf5/ca/docmessages/applications/katepart_development.po =================================================================== --- trunk/l10n-kf5/ca/docmessages/applications/katepart_development.po (revision 1559933) +++ trunk/l10n-kf5/ca/docmessages/applications/katepart_development.po (revision 1559934) @@ -1,7110 +1,7113 @@ # Translation of katepart_development.po to Catalan -# Copyright (C) 2013-2019 This_file_is_part_of_KDE +# Copyright (C) 2013-2020 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # -# Antoni Bella Pérez , 2013, 2014, 2015, 2016, 2017, 2018, 2019. +# Antoni Bella Pérez , 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020. # Josep Ma. Ferrer , 2014, 2015, 2017, 2018. msgid "" msgstr "" "Project-Id-Version: katepart_development\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2020-01-11 02:57+0000\n" -"PO-Revision-Date: 2019-12-22 11:27+0100\n" +"PO-Revision-Date: 2020-01-11 14:45+0100\n" "Last-Translator: Antoni Bella Pérez \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 20.03.70\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. Tag: author #: development.docbook:5 #, no-c-format msgid "&TC.Hollingsworth; &TC.Hollingsworth.mail;" msgstr "&TC.Hollingsworth; &TC.Hollingsworth.mail;" #. Tag: trans_comment #: development.docbook:6 #, no-c-format msgid "ROLES_OF_TRANSLATORS" msgstr "&traductor.Antoni.Bella;" #. Tag: title #: development.docbook:9 #, no-c-format msgid "Extending &katepart;" msgstr "Estendre la &katepart;" #. Tag: title #: development.docbook:12 #, no-c-format msgid "Introduction" msgstr "Introducció" #. Tag: para #: development.docbook:14 #, no-c-format msgid "" "Like any advanced text editor component, &katepart; offers a variety of ways " "to extend its functionality. You can write " "simple scripts to add functionality with JavaScript. Finally, once " "you have extended &katepart;, you are welcome to join us and share your enhancements with the " "world!" msgstr "" "Igual que qualsevol editor de text avançat, la &katepart; ofereix una " "varietat de maneres d'estendre la seva funcionalitat. Podeu escriure scripts senzills per afegir funcionalitat amb " "JavaScript. Finalment, un cop estengueu la &katepart;, sereu " "benvinguts a unir-vos " "amb nosaltres i compartir les vostres millores amb el món!" #. Tag: title #: development.docbook:24 #, no-c-format msgid "Working with Syntax Highlighting" msgstr "Treballar amb el ressaltat de la sintaxi" #. Tag: title #: development.docbook:28 development.docbook:213 #, no-c-format msgid "Overview" msgstr "Vista general" #. Tag: para #: development.docbook:30 #, no-c-format msgid "" "Syntax Highlighting is what makes the editor automatically display text in " "different styles/colors, depending on the function of the string in relation " "to the purpose of the file. In program source code for example, control " "statements may be rendered bold, while data types and comments get different " "colors from the rest of the text. This greatly enhances the readability of " "the text, and thus helps the author to be more efficient and productive." msgstr "" "El ressaltat de la sintaxi és el que fa que l'editor mostri automàticament " "text en diferents estils/colors, depenent de la funció de la cadena en " "relació al propòsit del fitxer. En el codi font d'un programa, per exemple, " "les sentències de control es poden presentar en negreta, mentre que els " "tipus de dades i els comentaris poden tenir diferents colors que la resta " "del text. Això millora considerablement la llegibilitat del text, i ajuda a " "l'autor a ser més eficient i productiu." #. Tag: phrase #: development.docbook:40 #, no-c-format msgid "A C++ function, rendered with syntax highlighting." msgstr "" "Una funció de C++, presentada amb ressaltat de la sintaxi." #. Tag: para #: development.docbook:42 #, no-c-format msgid "A C++ function, rendered with syntax highlighting." msgstr "" "Una funció de C++, presentada amb ressaltat de la sintaxi." #. Tag: phrase #: development.docbook:48 #, no-c-format msgid "The same C++ function, without highlighting." msgstr "La mateixa funció de C++, sense ressaltat." #. Tag: para #: development.docbook:50 #, no-c-format msgid "The same C++ function, without highlighting." msgstr "La mateixa funció de C++, sense ressaltat." #. Tag: para #: development.docbook:53 #, no-c-format msgid "Of the two examples, which is easiest to read?" msgstr "Dels dos exemples, quin resulta més fàcil de llegir?" #. Tag: para #: development.docbook:55 #, no-c-format msgid "" "&kappname; comes with a flexible, configurable and capable system for doing " "syntax highlighting, and the standard distribution provides definitions for " "a wide range of programming, scripting and markup languages and other text " "file formats. In addition you can provide your own definitions in simple " "&XML; files." msgstr "" "La &kappname; compta amb un sistema de ressaltat de sintaxi flexible, " "configurable i capaç, la distribució estàndard proveeix definicions per a " "una gran varietat de llenguatges de programació, creació de scripts i de " "marques. A més podeu proveir les vostres pròpies definicions en simples " "fitxers &XML;." #. Tag: para #: development.docbook:61 #, no-c-format msgid "" "&kappname; will automatically detect the right syntax rules when you open a " "file, based on the &MIME; Type of the file, determined by its extension, or, " "if it has none, the contents. Should you experience a bad choice, you can " "manually set the syntax to use from the ToolsHighlighting menu." msgstr "" "La &kappname; detectarà automàticament les regles de la sintaxi correctes " "quan obriu un fitxer, basant-se en el tipus &MIME; del fitxer, determinat " "per la seva extensió, o, si no en té, pel seu contingut. Si l'elecció no és " "la correcta, podreu establir-la manualment des del menú " "EinesRessaltat." #. Tag: para #: development.docbook:68 #, no-c-format msgid "" "The styles and colors used by each syntax highlight definition can be " "configured using the Highlighting Text Styles tab of the Config Dialog, while the &MIME; Types and file extensions it " "should be used for are handled by the Modes & Filetypes tab." msgstr "" "Els estils i colors emprats per a cada definició de ressaltat de sintaxi es " "poden configurar utilitzant la pestanya Estils del text ressaltat del Diàleg de configuració, mentre que els " "tipus &MIME; i extensions de fitxer per als que s'hauran d'utilitzar, es " "poden gestionar utilitzant la pàgina Modes i tipus de fitxers." #. Tag: para #: development.docbook:77 #, no-c-format msgid "" "Syntax highlighting is there to enhance the readability of correct text, but " "you cannot trust it to validate your text. Marking text for syntax is " "difficult depending on the format you are using, and in some cases the " "authors of the syntax rules will be proud if 98% of text gets correctly " "rendered, though most often you need a rare style to see the incorrect 2%." msgstr "" "El ressaltat de la sintaxi té el seu ús en la millora de la llegibilitat del " "text, però no podeu confiar-hi per a validar que el text és correcte. Marcar " "el text en funció de la seva sintaxi pot ser difícil, depenent del format " "que s'estigui emprant, i en alguns casos els autors de les regles de la " "sintaxi poden estar orgullosos si es processa correctament el 98% del text, " "si bé caldrà un estil molt rar per a veure el 2% incorrecte." #. Tag: title #: development.docbook:89 #, no-c-format msgid "The &kappname; Syntax Highlight System" msgstr "El sistema de ressaltat de la sintaxi de la &kappname;" #. Tag: para #: development.docbook:91 #, no-c-format msgid "" "This section will discuss the &kappname; syntax highlighting mechanism in " "more detail. It is for you if you want to know about it, or if you want to " "change or create syntax definitions." msgstr "" "Aquesta secció tractarà sobre el mecanisme de ressaltat de la sintaxi de la " "&kappname; amb més detall. Recomanem la seva lectura si voleu aprendre sobre " "seu, o si voleu crear o canviar les definicions de la sintaxi." #. Tag: title #: development.docbook:97 #, no-c-format msgid "How it Works" msgstr "Com funciona" #. Tag: para #: development.docbook:99 #, no-c-format msgid "" "Whenever you open a file, one of the first things the &kappname; editor does " "is detect which syntax definition to use for the file. While reading the " "text of the file, and while you type away in it, the syntax highlighting " "system will analyze the text using the rules defined by the syntax " "definition and mark in it where different contexts and styles begin and end." msgstr "" "Sempre que obriu un fitxer, una de les primeres coses que fa l'editor de la " "&kappname; és detectar quina definició de la sintaxi s'emprarà per al " "fitxer. Mentre va llegint el text del fitxer, i mentre hi va escrivint, el " "sistema de ressaltat de la sintaxi analitza el text utilitzant les regles " "establertes per la definició de la sintaxi i marcant a on comencen i acaben " "els diferents contexts i estils." #. Tag: para #: development.docbook:106 #, no-c-format msgid "" "When you type in the document, the new text is analyzed and marked on the " "fly, so that if you delete a character that is marked as the beginning or " "end of a context, the style of surrounding text changes accordingly." msgstr "" "Quan escriviu en el document, el text nou és analitzat i marcat al vol, de " "manera que si suprimiu un caràcter que marca el començament o el final d'un " "context, l'estil del text adjacent canviarà en conseqüència." #. Tag: para #: development.docbook:110 #, no-c-format msgid "" "The syntax definitions used by the &kappname; Syntax Highlighting System are " "&XML; files, containing" msgstr "" "Les definicions de la sintaxi utilitzades pel sistema de ressaltat de la " "sintaxi de la &kappname; són fitxers &XML;, que contenen" #. Tag: para #: development.docbook:113 #, no-c-format msgid "Rules for detecting the role of text, organized into context blocks" msgstr "" "Regles per a detectar el paper del text, organitzades en blocs segons el " "context" #. Tag: para #: development.docbook:114 #, no-c-format msgid "Keyword lists" msgstr "Llistes de paraules clau" #. Tag: para #: development.docbook:115 #, no-c-format msgid "Style Item definitions" msgstr "Definicions dels elements d'estil" #. Tag: para #: development.docbook:119 #, no-c-format msgid "" "When analyzing the text, the detection rules are evaluated in the order in " "which they are defined, and if the beginning of the current string matches a " "rule, the related context is used. The start point in the text is moved to " "the final point at which that rule matched and a new loop of the rules " "begins, starting in the context set by the matched rule." msgstr "" "Quan s'analitza el text, les regles de detecció són avaluades en l'ordre en " "el que estan definides, i si el començament de la cadena actual coincideix " "amb la regla, s'utilitzarà el context relacionat. El punt d'inici del text " "es mou al punt final en el que la regla coincideix i comença un nou cicle de " "regles, començant en el context establert per la regla coincident." #. Tag: title #: development.docbook:129 #, no-c-format msgid "Rules" msgstr "Regles" #. Tag: para #: development.docbook:131 #, no-c-format msgid "" "The detection rules are the heart of the highlighting detection system. A " "rule is a string, character or regular " "expression against which to match the text being analyzed. It " "contains information about which style to use for the matching part of the " "text. It may switch the working context of the system either to an " "explicitly mentioned context or to the previous context used by the text." msgstr "" "Les regles de la detecció són el nucli del sistema de detecció del " "ressaltat. Una regla és una cadena, un caràcter o una expressió regular contra la que haurà de " "coincidir el text que s'està analitzant. Conté informació sobre l'estil a " "emprar per a la part coincident del text. Es pot canviar el context de " "treball del sistema, ja sigui cap a un context mencionat explícitament o cap " "a l'anterior context emprat pel text." #. Tag: para #: development.docbook:139 #, no-c-format msgid "" "Rules are organized in context groups. A context group is used for main text " "concepts within the format, for example quoted text strings or comment " "blocks in program source code. This ensures that the highlighting system " "does not need to loop through all rules when it is not necessary, and that " "some character sequences in the text can be treated differently depending on " "the current context." msgstr "" "Les regles s'organitzen en grups de context. Un grup de context s'utilitza " "per als conceptes del text principal dins del format, per exemple, les " "cadenes de text entre cometes o els blocs de comentaris en el codi font d'un " "programa. Això garanteix que el sistema de ressaltat no necessita realitzar " "un cicle per a totes les regles quan no és necessari, i que algunes " "seqüències de caràcters del text es poden tractar de forma diferent depenent " "del context actual." #. Tag: para #: development.docbook:147 #, no-c-format msgid "" "Contexts may be generated dynamically to allow the usage of instance " "specific data in rules." msgstr "" "En les regles és possible generar contexts dinàmicament per a permetre l'ús " "de dades específiques d'una instància." #. Tag: title #: development.docbook:153 #, no-c-format msgid "Context Styles and Keywords" msgstr "Estils i paraules clau del context" #. Tag: para #: development.docbook:155 #, no-c-format msgid "" "In some programming languages, integer numbers are treated differently from " "floating point ones by the compiler (the program that converts the source " "code to a binary executable), and there may be characters having a special " "meaning within a quoted string. In such cases, it makes sense to render them " "differently from the surroundings so that they are easy to identify while " "reading the text. So even if they do not represent special contexts, they " "may be seen as such by the syntax highlighting system, so that they can be " "marked for different rendering." msgstr "" "En alguns llenguatges de programació, els nombres enters són tractats pel " "compilador (el programa que converteix el codi font en un executable binari) " "d'una forma diferent dels de coma flotant, i poden haver-hi caràcters que " "tinguin un significat especial dins d'una cadena entre cometes. En aquests " "casos, té sentit processar-los de diferent manera que el text adjacent, " "perquè resultin fàcils d'identificar. De manera que si no representen " "contexts especials, poden ser vistos com a tals pel sistema de ressaltat de " "la sintaxi, així que són marcats per a un processat diferent." #. Tag: para #: development.docbook:165 #, no-c-format msgid "" "A syntax definition may contain as many styles as required to cover the " "concepts of the format it is used for." msgstr "" "Una definició de la sintaxi pot contenir tants estils com siguin requerits " "per a cobrir tots els conceptes del format per al que s'utilitza." #. Tag: para #: development.docbook:168 #, no-c-format msgid "" "In many formats, there are lists of words that represent a specific concept. " "For example, in programming languages, control statements are one concept, " "data type names another, and built in functions of the language a third. The " "&kappname; Syntax Highlighting System can use such lists to detect and mark " "words in the text to emphasize concepts of the text formats." msgstr "" "En molts formats hi ha llistes de paraules que representen un concepte " "específic. Per exemple, en els llenguatges de programació, les sentències de " "control són un concepte, els noms de tipus de dades un altre, i les funcions " "incloses en el llenguatge són un tercer. El sistema de ressaltat de la " "sintaxi de la &kappname; pot utilitzar aquestes llistes per a detectar i " "marcar paraules en el text per emfatitzar conceptes dels formats del text." #. Tag: title #: development.docbook:178 #, no-c-format msgid "Default Styles" msgstr "Estils per omissió" #. Tag: para #: development.docbook:180 #, no-c-format msgid "" "If you open a C++ source file, a &Java; source file and an HTML document in &kappname;, you will see that even though the formats " "are different, and thus different words are chosen for special treatment, " "the colors used are the same. This is because &kappname; has a predefined " "list of Default Styles which are employed by the individual syntax " "definitions." msgstr "" "Si obriu un fitxer de codi font en C++, un fitxer de codi font en &Java; i " "un document en HTML a la &kappname;, podreu comprovar que " "tot i que els formats són diferents, i per tant les paraules que reben un " "tractament especial també són diferents, els colors emprats són els " "mateixos. Això és perquè la &kappname; té una llista per omissió d'estils " "per omissió, que s'empren en les definicions de la sintaxi individuals." #. Tag: para #: development.docbook:187 #, no-c-format msgid "" "This makes it easy to recognize similar concepts in different text formats. " "For example, comments are present in almost any programming, scripting or " "markup language, and when they are rendered using the same style in all " "languages, you do not have to stop and think to identify them within the " "text." msgstr "" "Això facilita reconèixer conceptes similars en diferents formats de text. " "Per exemple, els comentaris estan presents en pràcticament qualsevol " "llenguatge de programació, creació de scripts o de marques, i si es " "presenten utilitzant el mateix estil en tots els llenguatges, no haureu de " "parar-vos a pensar i identificar la seva posició en el text." #. Tag: para #: development.docbook:194 #, no-c-format msgid "" "All styles in a syntax definition use one of the default styles. A few " "syntax definitions use more styles than there are defaults, so if you use a " "format often, it may be worth launching the configuration dialog to see if " "some concepts use the same style. For example, there is only one default " "style for strings, but as the Perl programming language operates with two " "types of strings, you can enhance the highlighting by configuring those to " "be slightly different. All available default styles will be explained later." msgstr "" "Tots els estils de definició de la sintaxi utilitzen un dels estils per " "omissió. Hi ha poques definicions de la sintaxi que utilitzin més estils " "dels que hi ha per omissió, així que, si empreu un format molt sovint, " "potser val la pena obrir el diàleg de configuració per a veure si alguns " "conceptes estan emprant el mateix estil. Per exemple, tan sols hi ha un " "estil per omissió per a les cadenes, però com el llenguatge de programació " "Perl utilitza dos tipus de cadena, podeu millorar el ressaltat configurant " "ambdues de forma lleugerament diferent. Més endavant s'explicaran tots els " "estils per omissió " "disponibles." #. Tag: title #: development.docbook:210 #, no-c-format msgid "The Highlight Definition &XML; Format" msgstr "El format &XML; per a la definició del ressaltat" #. Tag: para #: development.docbook:215 #, no-c-format msgid "" "&kappname; uses the Syntax-Highlighting framework from &kde-frameworks;. The " "default highlighting xml files shipped with &kappname; are compiled into the " "Syntax-Highlighting library by default." msgstr "" "El &kappname; utilitza l'entorn de treball per al ressaltat de la sintaxi " "dels &kde-frameworks;. Els fitxers XML per omissió del ressaltat distribuïts " "enviats amb el &kappname; són compilats dintre de la biblioteca de ressaltat " "de la sintaxi." #. Tag: para #: development.docbook:220 #, no-c-format msgid "" "This section is an overview of the Highlight Definition &XML; format. Based " "on a small example it will describe the main components and their meaning " "and usage. The next section will go into detail with the highlight detection " "rules." msgstr "" "Aquesta secció és una introducció al format &XML; per a la definició del " "ressaltat. Descriu els components principals, el seu significat i " "utilització. La següent secció entra en detalls amb les regles de la " "detecció." #. Tag: para #: development.docbook:225 #, no-c-format msgid "" "The formal definition, also known as the XSD you find in " "Syntax Highlighting repository in the file language." "xsd" msgstr "" "La definició formal, també coneguda com la XSD es troba " "al repositori del ressaltat de la sintaxi al fitxer " "language.xsd" #. Tag: para #: development.docbook:230 #, no-c-format msgid "" "Custom .xml highlight definition " "files are located in org.kde.syntax-" "highlighting/syntax/ in your user folder found with " "qtpaths which usually is " "$HOME/.local/share" msgstr "" "Els fitxers .xml personalitzats per " "a la definició del ressaltat es troben a org." "kde.syntax-highlighting/syntax/ a la carpeta d'usuari que " "trobareu amb qtpaths que normalment és $HOME/.local/share" #. Tag: para #: development.docbook:237 #, no-c-format msgid "" "On &Windows; these files are located %USERPROFILE%/AppData/Local/" "org.kde.syntax-highlighting/syntax. %USERPROFILE% usually expands to C:\\\\Users\\\\user." msgstr "" "Al &Windows; aquests fitxers es troben a %USERPROFILE%/AppData/" "Local/org.kde.syntax-highlighting/syntax. " "%USERPROFILE% que generalment s'expandeix a C:\\" "\\Users\\\\usuari." #. Tag: para #: development.docbook:240 #, no-c-format msgid "" "If multiple files exist for the same language, the file with the highest " "version attribute in the language element will be loaded." msgstr "" "Si hi ha múltiples fitxers per al mateix llenguatge, es carregarà el fitxer " "amb l'atribut version més alt en l'element " "language." #. Tag: title #: development.docbook:243 #, no-c-format msgid "Main sections of &kappname; Highlight Definition files" msgstr "" "Principals seccions dels fitxers per a la definició del ressaltat de la " "&kappname;" #. Tag: term #: development.docbook:246 #, no-c-format msgid "A highlighting file contains a header that sets the XML version:" msgstr "" "Tots els fitxers de ressaltat contenen una capçalera que estableix la versió " "XML:" #. Tag: programlisting #: development.docbook:248 #, no-c-format msgid "<?xml version="1.0" encoding="UTF-8"?>" msgstr "<?xml version="1.0" encoding="UTF-8"?>" #. Tag: term #: development.docbook:253 #, no-c-format msgid "" "The root of the definition file is the element language. Available attributes are:" msgstr "" "La part principal del fitxer de la definició és l'element " "language. Els atributs disponibles són:" #. Tag: para #: development.docbook:257 #, no-c-format msgid "Required attributes:" msgstr "Atributs requerits:" #. Tag: para #: development.docbook:258 #, no-c-format msgid "" "name sets the name of the language. It appears in the " "menus and dialogs afterwards." msgstr "" "name estableix el nom del llenguatge. Després " "apareixerà als menús i als diàlegs." #. Tag: para #: development.docbook:259 #, no-c-format msgid "section specifies the category." msgstr "section especifica la categoria." #. Tag: para #: development.docbook:260 #, no-c-format msgid "" "extensions defines file extensions, such as "*." "cpp;*.h"" msgstr "" "extensions defineix les extensions dels fitxers, com " ""*.cpp;*.h"" #. Tag: para #: development.docbook:261 #, no-c-format msgid "" "version specifies the current revision of the " "definition file in terms of an integer number. Whenever you change a " "highlighting definition file, make sure to increase this number." msgstr "" "version especifica la versió actual del fitxer de " "definició en termes d'un nombre enter. Sempre que es canvia un fitxer de " "definició del ressaltat, assegureu-vos d'augmentar aquest número." #. Tag: para #: development.docbook:262 #, no-c-format msgid "" "kateversion specifies the latest supported &kappname; " "version." msgstr "" "kateversion especifica l'última versió implementada " "de la &kappname;." #. Tag: para #: development.docbook:264 #, no-c-format msgid "Optional attributes:" msgstr "Atributs opcionals:" #. Tag: para #: development.docbook:265 #, no-c-format msgid "mimetype associates files &MIME; type." msgstr "mimetype fitxers associats amb el tipus &MIME;." #. Tag: para #: development.docbook:266 #, no-c-format msgid "" "casesensitive defines, whether the keywords are case " "sensitive or not." msgstr "" "casesensitive defineix quan les paraules clau són o " "no sensibles a majúscules i minúscules." #. Tag: para #: development.docbook:267 #, no-c-format msgid "" "priority is necessary if another highlight definition " "file uses the same extensions. The higher priority will win." msgstr "" "priority és necessària si una altra definició de " "ressaltat utilitza les mateixes extensions. S'emprarà la de major prioritat." #. Tag: para #: development.docbook:268 #, no-c-format msgid "" "author contains the name of the author and his email-" "address." msgstr "" "author conté el nom de l'autor i la seva adreça de " "correu electrònic." #. Tag: para #: development.docbook:269 #, no-c-format msgid "" "license contains the license, usually the MIT license " "for new syntax-highlighting files." msgstr "" "license conté la llicència, normalment la llicència " "del MIT per a fitxers nous de ressaltat de la sintaxi." #. Tag: para #: development.docbook:270 #, no-c-format msgid "" "style contains the provided language and is used by " "the indenters for the attribute required-syntax-style." msgstr "" "style conté el llenguatge proporcionat i és utilitzat " "pels sagnadors per a l'atribut required-syntax-style." #. Tag: para #: development.docbook:271 #, no-c-format msgid "" "indenter defines which indenter will be used by " "default. Available indenters are: ada, normal, cstyle, cmake, " "haskell, latex, lilypond, lisp, lua, pascal, python, replicode, ruby and xml." msgstr "" "indenter defineix quin sagnat emprar de manera " "predeterminada. Els atributs disponibles són: ada, normal, cstyle, " "cmake, haskell, latex, lilypond, lisp, lua, pascal, python, replicode, ruby i xml." #. Tag: para #: development.docbook:272 #, no-c-format msgid "" "hidden defines whether the name should appear in " "&kappname;'s menus." msgstr "" "hidden defineix quan hauria d'aparèixer el nom en els " "menús de la &kappname;." #. Tag: para #: development.docbook:273 #, no-c-format msgid "So the next line may look like this:" msgstr "De manera que la línia següent pot tenir un aspecte similar a:" #. Tag: programlisting #: development.docbook:274 #, no-c-format msgid "" "<language name="C++" version="1" " "kateversion="2.4" section="Sources" extensions="*." "cpp;*.h" />" msgstr "" "<language name="C++" version="1" " "kateversion="2.4" section="Sources" extensions="*." "cpp;*.h" />" #. Tag: term #: development.docbook:280 #, no-c-format msgid "" "Next comes the highlighting element, which contains " "the optional element list and the required elements " "contexts and itemDatas." msgstr "" "A continuació estaria l'element highlighting, el qual " "conté l'element opcional list i els elements " "requerits contexts i itemDatas." #. Tag: para #: development.docbook:284 #, no-c-format msgid "" "list elements contain a list of keywords. In this " "case the keywords are class and const. You can add as many lists as you need." msgstr "" "Els elements list contenen una llista de paraules " "clau. En aquest cas les paraules clau són class i " "const. Podeu afegir tantes llistes com us calguin." #. Tag: para #: development.docbook:287 #, no-c-format msgid "" "Since &kde-frameworks; 5.53, a list can include keywords from another list " "or language/file, using the include element. " "## is used to separate the list name and the language " "definition name, in the same way as in the IncludeRules rule. This is useful to avoid duplicating keyword lists, if you " "need to include the keywords of another language/file. For example, the " "othername list contains the str " "keyword and all the keywords of the types list, which " "belongs to the ISO C++ language." msgstr "" "Des del &kde-frameworks; 5.53, una llista pot incloure paraules clau d'una " "altra llista o llenguatge/fitxer, utilitzant l'element include. Els caràcters ## s'utilitzen per a " "separar el nom de la llista i el nom de la definició del llenguatge, de la " "mateixa manera que a la regla IncludeRules. Això és " "útil per evitar la duplicació de llistes de paraules clau, si necessiteu " "incloure les paraules clau d'un altre llenguatge/fitxer. Per exemple, la " "llista altre_nom conté la paraula clau str i totes les paraules clau de la llista types, " "la qual pertany al llenguatge C++ de la ISO." #. Tag: para #: development.docbook:296 #, no-c-format msgid "" "The contexts element contains all contexts. The first " "context is by default the start of the highlighting. There are two rules in " "the context Normal Text, which match the list of " "keywords with the name somename and a rule that detects " "a quote and switches the context to string. To learn " "more about rules read the next chapter." msgstr "" "L'element contexts conté tots els contexts. El primer " "és l'emprat per omissió i amb aquest s'iniciarà el ressaltat. Hi ha dues " "regles en el context text_normal, que faran coincidir " "la llista de paraules clau amb el nom algun_nom i una " "regla que detecta una cometa i canvia el context a cadena. Per aprendre més sobre les regles llegiu el següent capítol." #. Tag: para #: development.docbook:302 #, no-c-format msgid "" "The third part is the itemDatas element. It contains " "all color and font styles needed by the contexts and rules. In this example, " "the itemData Normal Text, " "String and Keyword are used." msgstr "" "La tercera part és l'element itemDatas. Conté tots " "els colors i tipus de lletra que necessiten els contexts i les regles. En " "aquest exemple, s'utilitzen itemData " "text_normal, cadena i " "paraula_clau." #. Tag: programlisting #: development.docbook:307 #, no-c-format msgid "" "<highlighting>\n" " <list name="somename">\n" " <item>class</item>\n" " <item>const</item>\n" " </list>\n" " <list name="othername">\n" " <item>str</item>\n" " <include>types##ISO C++</include>\n" " </list>\n" " <contexts>\n" " <context attribute="Normal Text" lineEndContext="" "#pop" name="Normal Text" >\n" " <keyword attribute="Keyword" context="#stay" " "String="somename" />\n" " <keyword attribute="Keyword" context="#stay" " "String="othername" />\n" " <DetectChar attribute="String" context="" "string" char="&quot;" />\n" " </context>\n" " <context attribute="String" lineEndContext="" "#stay" name="string" >\n" " <DetectChar attribute="String" context="#pop" " "char="&quot;" />\n" " </context>\n" " </contexts>\n" " <itemDatas>\n" " <itemData name="Normal Text" defStyleNum="" "dsNormal" />\n" " <itemData name="Keyword" defStyleNum="" "dsKeyword" />\n" " <itemData name="String" defStyleNum="dsString" /" ">\n" " </itemDatas>\n" " </highlighting>" msgstr "" "<highlighting>\n" " <list name="algun_nom">\n" " <item>class</item>\n" " <item>const</item>\n" " </list>\n" " <list name="altre_nom">\n" " <item>str</item>\n" " <include>types##ISO C++</include>\n" " </list>\n" " <contexts>\n" " <context attribute="text_normal" lineEndContext="" "#pop" name="text_normal" >\n" " <keyword attribute="paraula_clau" context="" "#stay" String="algun_nom" />\n" " <keyword attribute="paraula_clau" context="" "#stay" String="altre_nom" />\n" " <DetectChar attribute="cadena" context="" "cadena" char="&quot;" />\n" " </context>\n" " <context attribute="cadena" lineEndContext="" "#stay" name="cadena" >\n" " <DetectChar attribute="cadena" context="#pop" " "char="&quot;" />\n" " </context>\n" " </contexts>\n" " <itemDatas>\n" " <itemData name="text_normal" defStyleNum="" "dsNormal" />\n" " <itemData name="paraula_clau" defStyleNum="" "dsKeyword" />\n" " <itemData name="cadena" defStyleNum="dsString" /" ">\n" " </itemDatas>\n" " </highlighting>" #. Tag: term #: development.docbook:312 #, no-c-format msgid "" "The last part of a highlight definition is the optional general section. It may contain information about keywords, code folding, " "comments, indentation, empty lines and spell checking." msgstr "" "L'última part de la definició del ressaltat és la secció opcional " "general. Pot contenir informació sobre paraules clau, " "plegat del codi, comentaris, sagnat, línies buides i verificació de " "l'ortografia." #. Tag: para #: development.docbook:318 #, no-c-format msgid "" "The comment section defines with what string a single " "line comment is introduced. You also can define a multiline comment using " "multiLine with the additional attribute end. This is used if the user presses the corresponding shortcut for " "comment/uncomment." msgstr "" "La secció comment defineix amb quina cadena " "s'introdueix un comentari en una línia senzilla. També podeu definir un " "comentari en múltiples línies utilitzant multiLine amb " "l'atribut addicional end. Això s'empra si l'usuari prem " "la drecera corresponent per comenta/descomenta." #. Tag: para #: development.docbook:323 #, no-c-format msgid "" "The keywords section defines whether keyword lists " "are case sensitive or not. Other attributes will be explained later." msgstr "" "La secció keywords defineix si les llistes de " "paraules clau són sensibles a majúscules i minúscules o no. Més endavant " "s'explicaran altres atributs." #. Tag: para #: development.docbook:326 #, no-c-format msgid "" "The other sections, folding, emptyLines and spellchecking, are usually not " "necessary and are explained later." msgstr "" "Les altres seccions, folding, emptyLines i spellchecking, normalment no són " "necessàries i s'expliquen més endavant." # skip-rule: t-pu_sp,kct-encoding #. Tag: programlisting #: development.docbook:329 #, no-c-format msgid "" "<general>\n" " <comments>\n" " <comment name=\"singleLine\" start=\"#\"/>\n" " </comments>\n" " <keywords casesensitive=\"1\"/>\n" " <folding indentationsensitive=\"0\"/>\n" " <emptyLines>\n" " <emptyLine regexpr=\"\\s+\"/>\n" " <emptyLine regexpr=\"\\s*#.*\"/>\n" " </emptyLines>\n" " <spellchecking>\n" " <encoding char=\"á\" string=\"\\'a\"/>\n" " <encoding char=\"à\" string=\"\\`a\"/>\n" " </spellchecking>\n" " </general>\n" "</language>" msgstr "" "<general>\n" " <comments>\n" " <comment name=\"singleLine\" start=\"#\"/>\n" " </comments>\n" " <keywords casesensitive=\"1\"/>\n" " <folding indentationsensitive=\"0\"/>\n" " <emptyLines>\n" " <emptyLine regexpr=\"\\s+\"/>\n" " <emptyLine regexpr=\"\\s*#.*\"/>\n" " </emptyLines>\n" " <spellchecking>\n" " <encoding char=\"á\" string=\"\\'a\"/>\n" " <encoding char=\"à\" string=\"\\`a\"/>\n" " </spellchecking>\n" " </general>\n" "</language>" #. Tag: title #: development.docbook:339 #, no-c-format msgid "The Sections in Detail" msgstr "Les seccions en detall" #. Tag: para #: development.docbook:340 #, no-c-format msgid "" "This part will describe all available attributes for contexts, itemDatas, " "keywords, comments, code folding and indentation." msgstr "" "Aquesta part descriu tots els atributs disponibles per als contexts, llistes " "de dades, paraules clau, comentaris, plegat del codi i sagnat." #. Tag: term #: development.docbook:345 #, no-c-format msgid "" "The element context belongs in the group " "contexts. A context itself defines context specific " "rules such as what should happen if the highlight system reaches the end of " "a line. Available attributes are:" msgstr "" "L'element context pertany al grup " "contexts. Un context defineix les regles específiques " "de context que s'han de seguir quan el sistema de ressaltat abasta el final " "d'una línia. Els atributs disponibles són:" #. Tag: para #: development.docbook:352 #, no-c-format msgid "" "name states the context name. Rules will use this " "name to specify the context to switch to if the rule matches." msgstr "" "name estableix el nom del context. Les regles " "utilitzaran el nom per especificar el context al que canviar si les regles " "coincideixen." #. Tag: para #: development.docbook:354 #, no-c-format msgid "" "lineEndContext defines the context the highlight " "system switches to if it reaches the end of a line. This may either be a " "name of another context, #stay to not switch the " "context (⪚. do nothing) or #pop which will cause " "it to leave this context. It is possible to use for example " "#pop#pop#pop to pop three times, or even " "#pop#pop!OtherContext to pop two times and switch to " "the context named OtherContext." msgstr "" "lineEndContext defineix el context al que canviarà el " "sistema de ressaltat si abasta el final de la línia. Pot ser un nom o un " "altre context, #stay permetrà que no es canviï el " "context (&pex;, no fer res) o #pop farà que deixi " "aquest context. És possible utilitzar per exemple #pop#pop#pop per a sortir tres vegades, o fins i tot #pop#pop!" "AltreContext perquè aparegui dues vegades i canviar a un context " "anomenat AltreContext." #. Tag: para #: development.docbook:361 #, no-c-format msgid "" "lineEmptyContext defines the context if an empty line " "is encountered. Default: #stay." msgstr "" "lineEmptyContext defineix el context si es troba una " "línia buida. Per omissió: #stay." #. Tag: para #: development.docbook:363 #, no-c-format msgid "" "fallthrough defines if the highlight system switches " "to the context specified in fallthroughContext if no rule matches. Default: " "false." msgstr "" "fallthrough defineix si el sistema de ressaltat " "canviarà al context especificat en fallthroughtContext si no coincideixen " "les regles. Per omissió: false." #. Tag: para #: development.docbook:366 #, no-c-format msgid "" "fallthroughContext specifies the next context if no " "rule matches." msgstr "" "fallthroughContext especifica el context següent si " "no hi ha regles que coincideixin." #. Tag: para #: development.docbook:368 #, no-c-format msgid "" "noIndentationBasedFolding disables indentation-based " "folding in the context. If indentation-based folding is not activated, this " "attribute is useless. This is defined in the element folding of the group general. Default: " "false." msgstr "" "noIndentationBasedFolding inhabilita el plegat basat " "en el sagnat dintre del context. Si el plegat basat en el sagnat no està " "activat, aquest atribut és inútil. Això es defineix en l'element " "folding del grup general. De " "manera predeterminada a: false." #. Tag: term #: development.docbook:377 #, no-c-format msgid "" "The element itemData is in the group " "itemDatas. It defines the font style and colors. So " "it is possible to define your own styles and colors. However, we recommend " "you stick to the default styles if possible so that the user will always see " "the same colors used in different languages. Though, sometimes there is no " "other way and it is necessary to change color and font attributes. The " "attributes name and defStyleNum are required, the others are optional. " "Available attributes are:" msgstr "" "L'element itemData es troba en el grup " "itemDatas. Defineix l'estil i els colors dels tipus " "de lletra. Per tant és possible definir els vostres propis estils i colors. " "Encara que recomanem utilitzar els estils per omissió, atès que així " "l'usuari veurà colors homogenis per als diferents llenguatges. Si bé, " "algunes vegades no hi ha altres possibilitats i és necessari canviar el " "color i els atributs dels tipus de lletra. Els atributs «name» i " "«defStyleNum» són necessaris, els altres són opcionals. Els atributs " "disponibles són:" #. Tag: para #: development.docbook:387 #, no-c-format msgid "" "name sets the name of the itemData. Contexts and " "rules will use this name in their attribute attribute " "to reference an itemData." msgstr "" "name estableix el nom del «itemData». Els contexts i " "les regles utilitzaran aquest nom en els seus atributs attribute per a fer referència a un «itemData»." #. Tag: para #: development.docbook:390 #, no-c-format msgid "" "defStyleNum defines which default style to use. " "Available default styles are explained in detail later." msgstr "" "defStyleNum defineix quin estil s'emprarà per " "omissió. Més endavant s'explicaran els estils per omissió disponibles." #. Tag: para #: development.docbook:392 #, no-c-format msgid "" "color defines a color. Valid formats are '#rrggbb' or " "'#rgb'." msgstr "" "color defineix un color. Els formats vàlids són " "«#rrggbb» o «#rgb»." #. Tag: para #: development.docbook:394 #, no-c-format msgid "selColor defines the selection color." msgstr "selColor defineix el color de la selecció." #. Tag: para #: development.docbook:395 #, no-c-format msgid "" "italic if true, the text will be " "italic." msgstr "" "italic si està a true, el text " "es mostrarà en cursiva." #. Tag: para #: development.docbook:396 #, no-c-format msgid "" "bold if true, the text will be " "bold." msgstr "" "bold si està a true, el text es " "mostrarà en negreta." #. Tag: para #: development.docbook:397 #, no-c-format msgid "" "underline if true, the text will " "be underlined." msgstr "" "underline si està a true, el " "text es mostrarà subratllat." #. Tag: para #: development.docbook:398 #, no-c-format msgid "" "strikeout if true, the text will " "be struck out." msgstr "" "strikeout si està a true, el " "text es mostrarà taxat." #. Tag: para #: development.docbook:399 #, no-c-format msgid "" "spellChecking if true, the text " "will be spellchecked." msgstr "" "spellChecking si està a true, el " "text es mostrarà amb la verificació ortogràfica." #. Tag: term #: development.docbook:405 #, no-c-format msgid "" "The element keywords in the group general defines keyword properties. Available attributes are:" msgstr "" "L'element keywords en el grup general defineix les propietats «keyword». Els atributs disponibles són:" #. Tag: para #: development.docbook:409 #, no-c-format msgid "" "casesensitive may be true or " "false. If true, all keywords are " "matched case sensitively." msgstr "" "casesensitive pot ser true o " "false. Si està a true, totes les " "paraules clau seran sensibles a majúscules i minúscules." #. Tag: para #: development.docbook:412 #, no-c-format msgid "" "weakDeliminator is a list of characters that do not " "act as word delimiters. For example, the dot '.' is a " "word delimiter. Assume a keyword in a list contains a " "dot, it will only match if you specify the dot as a weak delimiter." msgstr "" "weakDeliminator és una llista de caràcters que no " "actuen com a delimitadors de paraules (delimitador feble). Per exemple, el " "punt «.» és un delimitador de paraula. Si tenim una " "paraula clau en una list que conté un punt, tan sols " "la trobareu si especifiqueu el punt com a delimitador feble." #. Tag: para #: development.docbook:416 #, no-c-format msgid "" "additionalDeliminator defines additional delimiters." msgstr "" "additionalDeliminator defineix delimitadors " "addicionals." #. Tag: para #: development.docbook:417 #, no-c-format msgid "" "wordWrapDeliminator defines characters after which a " "line wrap may occur." msgstr "" "wordWrapDeliminator defineix els caràcters al darrere " "dels quals pot ocórrer un ajust de la línia." #. Tag: para #: development.docbook:419 #, no-c-format msgid "" "Default delimiters and word wrap delimiters are the characters ." "():!+,-<=>%&*/;?[]^{|}~\\, space (' ') and tabulator ('\\t')." msgstr "" "Els delimitadors per omissió i els d'ajust de la línia són els caràcters " ".():!+,-<=>%&*/;?[]^{|}~\\, espai " "(« ») i tabulació («\\t»)." #. Tag: term #: development.docbook:427 #, no-c-format msgid "" "The element comment in the group comments defines comment properties which are used for " "ToolsComment and ToolsUncomment. Available attributes are:" msgstr "" "L'element comment en el grup comments defineix les propietats dels comentaris emprats per " "EinesComenta i Eines Descomenta. Els atributs disponibles són:" #. Tag: para #: development.docbook:434 #, no-c-format msgid "" "name is either singleLine or " "multiLine. If you choose multiLine " "the attributes end and region are " "required." msgstr "" "name pot ser singleLine o " "multiLine. Si escolliu multiLine " "es necessiten els atributs end i region." #. Tag: para #: development.docbook:438 #, no-c-format msgid "" "start defines the string used to start a comment. In C" "++ this would be "/*"." msgstr "" "start defineix la cadena que s'utilitza per iniciar " "un comentari. En C++ seria «/*»." #. Tag: para #: development.docbook:440 #, no-c-format msgid "" "end defines the string used to close a comment. In C+" "+ this would be "*/"." msgstr "" "end defineix la cadena utilitzada per a tancar un " "comentari. En C++ seria «*/»." #. Tag: para #: development.docbook:442 #, no-c-format msgid "" "region should be the name of the foldable multiline " "comment. Assume you have beginRegion=\"Comment\" ... " "endRegion=\"Comment\" in your rules, you should use " "region=\"Comment\". This way uncomment works even if " "you do not select all the text of the multiline comment. The cursor only " "must be in the multiline comment." msgstr "" "region serà el nom amb el que es desarà el comentari " "multilínia. Si assumim que tenim una regió beginRegion=\"Comentari" "\" ... endRegion=\"Comentari\" en les " "regles, haureu d'emprar region=\"Comentari\". D'aquesta " "manera es descomentarà fins i tot si no heu seleccionat tot el text en un " "comentari multilínia. El cursor només haurà d'estar dins del comentari " "multilínia." #. Tag: term #: development.docbook:453 #, no-c-format msgid "" "The element folding in the group general defines code folding properties. Available attributes are:" msgstr "" "L'element folding en el grup general defineix les propietats de plegat del codi. Els atributs " "disponibles són:" #. Tag: para #: development.docbook:458 #, no-c-format msgid "" "indentationsensitive if true, " "the code folding markers will be added indentation based, as in the " "scripting language Python. Usually you do not need to set it, as it defaults " "to false." msgstr "" "indentationsensitive si està a true, els marcadors de plegat del codi seran afegits al sagnat, com en " "el llenguatge per a la creació de scripts en Python. Normalment no caldrà " "establir-lo, pel que per omissió és false." #. Tag: term #: development.docbook:466 #, no-c-format msgid "" "The element emptyLine in the group " "emptyLines defines which lines should be treated as " "empty lines. This allows modifying the behavior of the " "lineEmptyContext attribute in the elements " "context. Available attributes are:" msgstr "" "L'element emptyLine pertany al grup " "emptyLines defineix quines línies s'hauran de tractar " "com a línies buides. Això permet modificar el comportament de l'atribut " "lineEmptyContext en els elements context. Els atributs disponibles són:" #. Tag: para #: development.docbook:472 #, no-c-format msgid "" "regexpr defines a regular expression that will be " "treated as an empty line. By default, empty lines do not contain any " "characters, therefore, this adds additional empty lines, for example, if you " "want lines with spaces to also be considered empty lines. However, in most " "syntax definitions you do not need to set this attribute." msgstr "" "regexpr defineix una expressió regular que es " "tractarà com una línia buida. De manera predeterminada, les línies buides no " "contenen cap caràcter, per tant, això afegirà línies buides addicionals, per " "exemple, si voleu que les línies amb espais també es consideren com a línies " "buides. No obstant això, en la majoria de les definicions de la sintaxi no " "caldrà establir aquest atribut." #. Tag: term #: development.docbook:481 #, no-c-format msgid "" "The element encoding in the group " "spellchecking defines a character encoding for spell " "checking. Available attributes:" msgstr "" "L'element encoding en el grup " "spellchecking defineix una codificació de caràcters " "per a la verificació ortogràfica. Els atributs disponibles són:" #. Tag: para #: development.docbook:485 #, no-c-format msgid "char is a encoded character." msgstr "char, és un caràcter codificat." #. Tag: para #: development.docbook:486 #, no-c-format msgid "" "string is a sequence of characters that will be " "encoded as the character char in the spell checking. " "For example, in the language LaTeX, the string \\"{A} represents the character Ä." msgstr "" "string és una seqüència de caràcters que es " "codificaran com el caràcter char a la verificació " "ortogràfica. Per exemple, en el llenguatge LaTeX, la cadena " "\\"{A} representa el caràcter Ä." #. Tag: title #: development.docbook:500 #, no-c-format msgid "Available Default Styles" msgstr "Estils predeterminats disponibles" #. Tag: para #: development.docbook:501 #, no-c-format msgid "" "Default Styles were already explained, as a short summary: Default styles are " "predefined font and color styles." msgstr "" "Els estils predeterminats ja s'han explicat, a manera de resum: Els estils " "predeterminats estan predefinits per als tipus de lletra i els estils de " "colors." #. Tag: term #: development.docbook:505 #, no-c-format msgid "General default styles:" msgstr "Estils per omissió en general:" #. Tag: para #: development.docbook:507 #, no-c-format msgid "" "dsNormal, when no special highlighting is required." msgstr "" "dsNormal, quan no es requereix un ressaltat especial." #. Tag: para #: development.docbook:508 #, no-c-format msgid "dsKeyword, built-in language keywords." msgstr "dsKeyword, per a les paraules clau incloses." #. Tag: para #: development.docbook:509 #, no-c-format msgid "dsFunction, function calls and definitions." msgstr "" "dsFunction, per a crides a funcions i definicions." #. Tag: para #: development.docbook:510 #, no-c-format msgid "" "dsVariable, if applicable: variable names (e.g. " "$someVar in PHP/Perl)." msgstr "" "dsVariable, si és aplicable: noms de les variables " "(p. ex. $algunaVar als llenguatges PHP/Perl)." #. Tag: para #: development.docbook:511 #, no-c-format msgid "" "dsControlFlow, control flow keywords like if, else, " "switch, break, return, yield, ..." msgstr "" "dsControlFlow, controla el flux de paraules clau com " "«if», «else», «switch», «break», «return», «yield»..." #. Tag: para #: development.docbook:512 #, no-c-format msgid "dsOperator, operators like + - * / :: < >" msgstr "dsOperator, operadors com + - * / :: < >" #. Tag: para #: development.docbook:513 #, no-c-format msgid "" "dsBuiltIn, built-in functions, classes, and objects." msgstr "" "dsBuiltIn, funcions, classes i objectes inclosos." #. Tag: para #: development.docbook:514 #, no-c-format msgid "" "dsExtension, common extensions, such as Qt classes " "and functions/macros in C++ and Python." msgstr "" "dsExtension, extensions comunes, com les classes de " "les Qt i les funcions/macros en els llenguatges C++ i Python." #. Tag: para #: development.docbook:515 #, no-c-format msgid "" "dsPreprocessor, preprocessor statements or macro " "definitions." msgstr "" "dsPreprocessor, per a les declaracions del " "preprocessador o per a les definicions de macros." #. Tag: para #: development.docbook:516 #, no-c-format msgid "" "dsAttribute, annotations such as @override and " "__declspec(...)." msgstr "" "dsAttribute, anotacions com «@override» i " "«__declspec(...)»." #. Tag: term #: development.docbook:521 #, no-c-format msgid "String-related default styles:" msgstr "Estils per omissió relacionats amb les cadenes:" #. Tag: para #: development.docbook:523 #, no-c-format msgid "dsChar, single characters, such as 'x'." msgstr "dsChar, per a caràcters sols, com ara «x»." #. Tag: para #: development.docbook:524 #, no-c-format msgid "" "dsSpecialChar, chars with special meaning in strings " "such as escapes, substitutions, or regex operators." msgstr "" "dsSpecialChar, caràcters amb un significat especial " "en cadenes com escapades, substitucions o els operadors d'expressions " "regulars." #. Tag: para #: development.docbook:525 #, no-c-format msgid "dsString, strings like \"hello world\"." msgstr "dsString, per a cadenes com «hello world»." #. Tag: para #: development.docbook:526 #, no-c-format msgid "" "dsVerbatimString, verbatim or raw strings like 'raw " "\\backlash' in Perl, CoffeeScript, and shells, as well as r'\\raw' in Python." msgstr "" "dsVerbatimString, cadenes literals o sense processar " "com «raw \\backlash» en els llenguatges Perl, CoffeeScript i intèrprets " "d'ordres, així com «r'\\raw'» en llenguatge Python." #. Tag: para #: development.docbook:527 #, no-c-format msgid "" "dsSpecialString, SQL, regexes, HERE docs, LaTeX math " "mode, ..." msgstr "" "dsSpecialString, SQL, expressions regulars, " "documentació HERE, mode matemàtic del LaTeX..." #. Tag: para #: development.docbook:528 #, no-c-format msgid "dsImport, import, include, require of modules." msgstr "" "dsImport, per a importar, incloure o requerir mòduls." #. Tag: term #: development.docbook:533 #, no-c-format msgid "Number-related default styles:" msgstr "Estils per omissió relacionats amb números:" #. Tag: para #: development.docbook:535 #, no-c-format msgid "" "dsDataType, built-in data types like int, void, u64." msgstr "" "dsDataType, tipus de dades incloses com «int», " "«void», «u64»." #. Tag: para #: development.docbook:536 #, no-c-format msgid "dsDecVal, decimal values." msgstr "dsDecVal, valors decimals." #. Tag: para #: development.docbook:537 #, no-c-format msgid "dsBaseN, values with a base other than 10." msgstr "" "dsBaseN, per als valors en una base diferent de 10." #. Tag: para #: development.docbook:538 #, no-c-format msgid "dsFloat, floating point values." msgstr "dsFloat, per a valors decimals." #. Tag: para #: development.docbook:539 #, no-c-format msgid "" "dsConstant, built-in and user defined constants like " "PI." msgstr "" "dsConstant, definicions incloses i definides per " "l'usuari com PI." #. Tag: term #: development.docbook:544 #, no-c-format msgid "Comment and documentation-related default styles:" msgstr "Estils per omissió relacionats amb la documentació i els comentaris:" #. Tag: para #: development.docbook:546 #, no-c-format msgid "dsComment, comments." msgstr "dsComment, per a comentaris." #. Tag: para #: development.docbook:547 #, no-c-format msgid "" "dsDocumentation, /** Documentation comments */ or " "\"\"\"docstrings\"\"\"." msgstr "" "dsDocumentation, «/** Comentaris de documentació */» " "o «\"\"\"cadenes_de_documentació\"\"\"»." #. Tag: para #: development.docbook:548 #, no-c-format msgid "" "dsAnnotation, documentation commands like @param, " "@brief." msgstr "" "dsAnnotation, ordres de la documentació com «@param», " "«@brief»." #. Tag: para #: development.docbook:549 #, no-c-format msgid "" "dsCommentVar, the variable names used in above " "commands, like \"foobar\" in @param foobar." msgstr "" "dsCommentVar, els noms de les variables utilitzades " "en les ordres anteriors, com «foobar» a «@param foobar»." #. Tag: para #: development.docbook:550 #, no-c-format msgid "" "dsRegionMarker, region markers like //BEGIN, //END in " "comments." msgstr "" "dsRegionMarker, per a marcadors de regió com els " "comentaris «//BEGIN», «//END»." #. Tag: term #: development.docbook:555 #, no-c-format msgid "Other default styles:" msgstr "Altres estils per omissió:" #. Tag: para #: development.docbook:557 #, no-c-format msgid "" "dsInformation, notes and tips like @note in doxygen." msgstr "" "dsInformation, notes i consells com «@note» al " "doxygen." #. Tag: para #: development.docbook:558 #, no-c-format msgid "dsWarning, warnings like @warning in doxygen." msgstr "dsWarning, avisos com «@warning» al doxygen." #. Tag: para #: development.docbook:559 #, no-c-format msgid "dsAlert, special words like TODO, FIXME, XXXX." msgstr "" "dsAlert, paraules especials com «TODO», «FIXME», " "«XXXX»." #. Tag: para #: development.docbook:560 #, no-c-format msgid "dsError, error highlighting and wrong syntax." msgstr "" "dsError, per a errors de ressaltat i sintaxi " "incorrecta." #. Tag: para #: development.docbook:561 #, no-c-format msgid "dsOthers, when nothing else fits." msgstr "dsOthers, quan res més s'hi ajusti." #. Tag: title #: development.docbook:571 #, no-c-format msgid "Highlight Detection Rules" msgstr "Regles per a la detecció del ressaltat" #. Tag: para #: development.docbook:573 #, no-c-format msgid "This section describes the syntax detection rules." msgstr "Aquesta secció descriu les regles per a la detecció del ressaltat." #. Tag: para #: development.docbook:575 #, no-c-format msgid "" "Each rule can match zero or more characters at the beginning of the string " "they are tested against. If the rule matches, the matching characters are " "assigned the style or attribute defined by the rule, " "and a rule may ask that the current context is switched." msgstr "" "Cada regla pot coincidir en cap o amb diversos caràcters al començament de " "la cadena amb la que es comparen. Si la regla coincideix, als caràcters " "coincidents se'ls assigna l'estil o attribute definit " "per la regla, tanmateix una regla pot demanar que es canviï el context " "actual." #. Tag: para #: development.docbook:581 #, no-c-format msgid "A rule looks like this:" msgstr "Una regla té aquest aspecte:" #. Tag: programlisting #: development.docbook:583 #, no-c-format msgid "" "<RuleName attribute="(identifier)" context="" "(identifier)" [rule specific attributes] />" msgstr "" "<NomRegla attribute="(identificador)" context="" "(identificador)" [atributs específics de la regla] />" #. Tag: para #: development.docbook:585 #, no-c-format msgid "" "The attribute identifies the style to use for matched " "characters by name, and the context identifies the " "context to use from here." msgstr "" "L'attribute identifica l'estil que utilitzaran els " "caràcters coincidents per nom, i el context identifica " "el context a utilitzar des d'aquí." #. Tag: para #: development.docbook:589 #, no-c-format msgid "The context can be identified by:" msgstr "El context es pot identificar per:" #. Tag: para #: development.docbook:593 #, no-c-format msgid "" "An identifier, which is the name of the other context." msgstr "" "Un identifier, que és el nom dels altres contexts." #. Tag: para #: development.docbook:597 #, no-c-format msgid "" "An order telling the engine to stay in the current " "context (#stay), or to pop back to a previous context " "used in the string (#pop)." msgstr "" "Una order us indica al motor que romandrà en el context " "actual (#stay), o que salti al context anterior " "(#pop)." #. Tag: para #: development.docbook:600 #, no-c-format msgid "" "To go back more steps, the #pop keyword can be repeated: " "#pop#pop#pop" msgstr "" "Per a retrocedir més passos, es pot repetir la paraula clau #pop: " "#pop#pop#pop" #. Tag: para #: development.docbook:604 #, no-c-format msgid "" "An order followed by an exclamation mark (!) and an identifier, which will make the " "engine first follow the order and then switch to the other context, e.g. " "#pop#pop!OtherContext." msgstr "" "Una ordre seguida per un signe d'exclamació (!" ") i un identificador, el qual farà que el " "motor segueixi primer l'ordre i després passi a l'altre context, &pex;, " "#pop#pop!AltreContext." #. Tag: para #: development.docbook:611 #, no-c-format msgid "" "Rule specific attributes varies and are described in the following sections." msgstr "" "Els atributs específics de la regla varien, i es descriuen en les següents " "seccions." #. Tag: title #: development.docbook:615 #, no-c-format msgid "Common attributes" msgstr "Atributs comuns" #. Tag: para #: development.docbook:616 #, no-c-format msgid "" "All rules have the following attributes in common and are available whenever " "(common attributes) appears. attribute and context are required attributes, all " "others are optional." msgstr "" "Totes les regles tenen els següents atributs comuns i estan disponibles " "sempre que apareixen (atributs comuns). " "attribute i context són atributs " "requerits, els altres són opcionals." #. Tag: para #: development.docbook:623 #, no-c-format msgid "" "attribute: An attribute maps to a defined " "itemData." msgstr "" "attribute: Un mapa d'atributs d'un itemData definit." #. Tag: para #: development.docbook:626 #, no-c-format msgid "" "context: Specify the context to which the highlighting " "system switches if the rule matches." msgstr "" "context: Especifica el context al que canviarà el " "sistema de ressaltat si les regles coincideixen." #. Tag: para #: development.docbook:629 #, no-c-format msgid "" "beginRegion: Start a code folding block. Default: unset." msgstr "" "beginRegion: Inicia un bloc de plegat del codi. Per " "omissió: unset." #. Tag: para #: development.docbook:632 #, no-c-format msgid "" "endRegion: Close a code folding block. Default: unset." msgstr "" "endRegion: Tanca un bloc de plegat del codi. Per " "omissió: unset." #. Tag: para #: development.docbook:635 #, no-c-format msgid "" "lookAhead: If true, the " "highlighting system will not process the matches length. Default: " "false." msgstr "" "lookAhead: Si està a true, el " "sistema de ressaltat no processarà les longituds coincidents. Per omissió: " "false." #. Tag: para #: development.docbook:640 #, no-c-format msgid "" "firstNonSpace: Match only, if the string is the first " "non-whitespace in the line. Default: false." msgstr "" "firstNonSpace: Només coincidiran si la cadena no conté " "un espai en blanc al començament de la línia. Per omissió: false." #. Tag: para #: development.docbook:644 #, no-c-format msgid "" "column: Match only, if the column matches. Default: " "unset." msgstr "" "column: Només coincideix, si la columna coincideix. Per " "omissió: unset." #. Tag: title #: development.docbook:649 #, no-c-format msgid "Dynamic rules" msgstr "Regles dinàmiques" #. Tag: para #: development.docbook:650 #, no-c-format msgid "" "Some rules allow the optional attribute dynamic of " "type boolean that defaults to false. If dynamic is " "true, a rule can use placeholders representing the text " "matched by a regular expression rule that switched to " "the current context in its string or char attributes. In a string, the placeholder " "%N (where N is a number) will be replaced with " "the corresponding capture N from the calling " "regular expression, starting from 1. In a char the " "placeholder must be a number N and it will be " "replaced with the first character of the corresponding capture " "N from the calling regular expression. Whenever a " "rule allows this attribute it will contain a (dynamic)." msgstr "" "Algunes regles permeten l'atribut opcional dynamic de " "tipus lògic que per omissió és false. Si dynamic està a " "true, la regla podrà utilitzar arguments que " "representin el text coincident amb una regla d'una expressió " "regular que canviï al context actual per al contingut en els " "atributs string o char. En un " "string, l'argument %N (a " "on N és un número) se substituirà amb el corresponent N capturat des de l'expressió regular cridada, començant per 1. " "En un char l'argument haurà de ser un número " "N i serà substituït amb el primer caràcter de la " "corresponent N capturada des de l'expressió " "regular cridada. Sempre que un regla permeti aquest atribut haurà de " "contenir un (dynamic)." #. Tag: para #: development.docbook:666 #, no-c-format msgid "dynamic: may be (true|false)." msgstr "" "dinàmic: pot ser (true|false)." #. Tag: para #: development.docbook:670 #, no-c-format msgid "How does it work:" msgstr "Com funciona:" #. Tag: para #: development.docbook:672 #, no-c-format msgid "" "In the regular expressions of " "the RegExpr rules, all text within simple curved " "brackets (PATTERN) is captured and remembered. These " "captures can be used in the context to which it is switched, in the rules " "with the attribute dynamic true, " "by %N (in String) or " "N (in char)." msgstr "" "A les expressions regulars de " "la regla RegExpr, tot el text entre parèntesis " "(PATRÓ) serà capturat i recordat. Aquestes captures " "es podran utilitzar en el context al qual es canvia, en les regles amb " "l'atribut dynamic true, per " "%N (a String) o " "N (a char)." #. Tag: para #: development.docbook:680 #, no-c-format msgid "" "It is important to mention that a text captured in a RegExpr rule is only stored for the switched context, specified in its " "context attribute." msgstr "" "És important esmentar que un text capturat en una regla RegExpr només s'emmagatzemarà per al context del canvi, especificat en el " "seu atribut context." #. Tag: para #: development.docbook:687 #, no-c-format msgid "" "If the captures will not be used, both by dynamic rules and in the same " "regular expression, non-capturing groups should be " "used: (?:PATTERN)" msgstr "" "Si no s'utilitzen les captures, tant per a les regles dinàmiques com en la " "mateixa expressió regular, s'han d'utilitzar grups sense captura: " "(?:PATRÓ)" #. Tag: para #: development.docbook:689 -#, fuzzy, no-c-format +#, no-c-format #| msgid "" #| "The lookahead or lookbehind " #| "groups such as (?=PATTERN) or (?!" #| "PATTERN) are not captured. See Regular Expressions for more information." msgid "" "The lookahead or lookbehind groups " "such as (?=PATTERN), (?!PATTERN) or (?<=PATTERN) are not captured. See " "Regular Expressions for more " "information." msgstr "" -"Els grups lookahead o lookbehind " -"com (?=PATRÓ) o (?!PATRÓ) no " +"Els grups lookahead (anticipada) o lookbehind" +" (cerca cap enrere) com (?=PATRÓ), " +"(?!PATRÓ) (?<=PATRÓ) no " "seran capturats. Per obtenir més informació vegeu la secció sobre expressions regulars." #. Tag: para #: development.docbook:696 #, no-c-format msgid "" "The capture groups can be used within the same regular expression, using " "\\N instead of %N " "respectively. For more information, see Capturing matching text (back references) in Regular Expressions." msgstr "" "Els grups amb captura es poden utilitzar dins de la mateixa expressió " "regular, emprant \\N en lloc de %N respectivament. Per a més informació, vegeu Captura del text coincident (referències enrere) " "a les Expressions regulars." #. Tag: para #: development.docbook:705 #, no-c-format msgid "Example 1:" msgstr "Exemple 1:" #. Tag: para #: development.docbook:706 #, no-c-format msgid "" "In this simple example, the text matched by the regular expression " "=* is captured and inserted into %1 in the dynamic rule. This allows the comment to end with the " "same amount of = as at the beginning. This matches " "text like: [[ comment ]], [=[ comment ]=] or [=====[ comment ]=====]." msgstr "" "En aquest senzill exemple, el text que coincideix amb l'expressió regular " "=* serà capturat i inserit din de %1 a la regla dinàmica. Això permet que el comentari acabi amb la " "mateixa quantitat de = que al començament. Això " "coincideix amb el text com: [[ comentari ]], " "[=[ comentari ]=] o " "[=====[ comentari ]=====]." #. Tag: para #: development.docbook:712 #, no-c-format msgid "" "In addition, the captures are available only in the switched context " "Multi-line Comment." msgstr "" "A més, les captures només estaran disponibles en el context del canvi " "Comentari de múltiples línies." #. Tag: programlisting #: development.docbook:715 #, no-c-format msgid "" "<context name=\"Normal\" attribute=\"Normal Text\" lineEndContext=\"#stay" "\">\n" " <RegExpr context=\"Multi-line Comment\" attribute=\"Comment\" String=" "\"\\[(=*)\\[\" beginRegion=\"RegionComment\"/>\n" "</context>\n" "<context name=\"Multi-line Comment\" attribute=\"Comment\" lineEndContext=" "\"#stay\">\n" " <StringDetect context=\"#pop\" attribute=\"Comment\" String=\"]%1]\" " "dynamic=\"true\" endRegion=\"RegionComment\"/>\n" "</context>" msgstr "" "<context name=\"Normal\" attribute=\"Text normal\" lineEndContext=\"#stay" "\">\n" " <RegExpr context=\"Comentari de múltiples línies\" attribute=\"Comentari" "\" String=\"\\[(=*)\\[\" beginRegion=\"RegionComment\"/>\n" "</context>\n" "<context name=\"Comentari de múltiples línies\" attribute=\"Comentari\" " "lineEndContext=\"#stay\">\n" " <StringDetect context=\"#pop\" attribute=\"Comentari\" String=\"]%1]\" " "dynamic=\"true\" endRegion=\"RegionComment\"/>\n" "</context>" #. Tag: para #: development.docbook:717 #, no-c-format msgid "Example 2:" msgstr "Exemple 2:" #. Tag: para #: development.docbook:718 #, no-c-format msgid "" "In the dynamic rule, %1 corresponds to the " "capture that matches #+, and %2 to &quot;+. This matches text as: " "#label\"\"\"\"inside the context\"\"\"\"#." msgstr "" "A la regla dinàmica, %1 es correspon amb la " "captura que coincideix #+, i %2 amb &quot;+. Això coincidirà amb el " "text de: #label\"\"\"\"dins del context\"\"\"\"#." #. Tag: para #: development.docbook:721 #, no-c-format msgid "" "These captures will not be available in other contexts, such as " "OtherContext, FindEscapes or " "SomeContext." msgstr "" "Aquestes captures no estaran disponibles en altres contextos, com " "OtherContext, FindEscapes o " "SomeContext." #. Tag: programlisting #: development.docbook:725 #, no-c-format msgid "" "<context name=\"SomeContext\" attribute=\"Normal Text\" lineEndContext=" "\"#stay\">\n" " <RegExpr context=\"#pop!NamedString\" attribute=\"String\" String=\"(#+)" "(?:[\\w-]|[^[:ascii:]])(&quot;+)\"/>\n" "</context>\n" "<context name=\"NamedString\" attribute=\"String\" lineEndContext=\"#stay" "\">\n" " <RegExpr context=\"#pop!OtherContext\" attribute=\"String\" String=" "\"%2(?:%1)?\" dynamic=\"true\"/>\n" " <DetectChar context=\"FindEscapes\" attribute=\"Escape\" char=\"\\\"/" ">\n" "</context>" msgstr "" "<context name=\"SomeContext\" attribute=\"Normal Text\" lineEndContext=" "\"#stay\">\n" " <RegExpr context=\"#pop!NamedString\" attribute=\"String\" String=\"(#+)" "(?:[\\w-]|[^[:ascii:]])(&quot;+)\"/>\n" "</context>\n" "<context name=\"NamedString\" attribute=\"String\" lineEndContext=\"#stay" "\">\n" " <RegExpr context=\"#pop!OtherContext\" attribute=\"String\" String=" "\"%2(?:%1)?\" dynamic=\"true\"/>\n" " <DetectChar context=\"FindEscapes\" attribute=\"Escape\" char=\"\\\"/" ">\n" "</context>" #. Tag: para #: development.docbook:727 #, no-c-format msgid "Example 3:" msgstr "Exemple 3:" #. Tag: para #: development.docbook:728 #, no-c-format msgid "" "This matches text like: Class::function<T>( ... )." msgstr "" "Això coincidirà amb el text com: Class::function<T>( ... )." #. Tag: programlisting #: development.docbook:731 #, no-c-format msgid "" "<context name=\"Normal\" attribute=\"Normal Text\" lineEndContext=\"#stay" "\">\n" " <RegExpr context=\"FunctionName\" String=\"\\b([a-zA-Z_][\\w-]*)(::)([a-" "zA-Z_][\\w-]*)(?:&lt;[\\w\\-\\s]*&gt;)?(\\()\" lookAhead=\"true\"/" ">\n" "</context>\n" "<context name=\"FunctionName\" attribute=\"Normal Text\" lineEndContext=" "\"#pop\">\n" " <StringDetect context=\"#stay\" attribute=\"Class\" String=\"%1\" " "dynamic=\"true\"/>\n" " <StringDetect context=\"#stay\" attribute=\"Operator\" String=\"%2\" " "dynamic=\"true\"/>\n" " <StringDetect context=\"#stay\" attribute=\"Function\" String=\"%3\" " "dynamic=\"true\"/>\n" " <DetectChar context=\"#pop\" attribute=\"Normal Text\" char=\"4\" " "dynamic=\"true\"/>\n" "</context>" msgstr "" "<context name=\"Normal\" attribute=\"Normal Text\" lineEndContext=\"#stay" "\">\n" " <RegExpr context=\"FunctionName\" String=\"\\b([a-zA-Z_][\\w-]*)(::)([a-" "zA-Z_][\\w-]*)(?:&lt;[\\w\\-\\s]*&gt;)?(\\()\" lookAhead=\"true\"/" ">\n" "</context>\n" "<context name=\"FunctionName\" attribute=\"Normal Text\" lineEndContext=" "\"#pop\">\n" " <StringDetect context=\"#stay\" attribute=\"Class\" String=\"%1\" " "dynamic=\"true\"/>\n" " <StringDetect context=\"#stay\" attribute=\"Operator\" String=\"%2\" " "dynamic=\"true\"/>\n" " <StringDetect context=\"#stay\" attribute=\"Function\" String=\"%3\" " "dynamic=\"true\"/>\n" " <DetectChar context=\"#pop\" attribute=\"Normal Text\" char=\"4\" " "dynamic=\"true\"/>\n" "</context>" #. Tag: title #: development.docbook:734 #, no-c-format msgid "The Rules in Detail" msgstr "Les regles en detall" #. Tag: term #: development.docbook:738 #, no-c-format msgid "DetectChar" msgstr "DetectChar" #. Tag: para #: development.docbook:740 #, no-c-format msgid "" "Detect a single specific character. Commonly used for example to find the " "ends of quoted strings." msgstr "" "Detecta un únic caràcter específic. Normalment s'utilitza per a trobar el " "final de les cadenes entre cometes." #. Tag: programlisting #: development.docbook:742 #, no-c-format msgid "" "<DetectChar char="(character)" (common attributes) (dynamic) /" ">" msgstr "" "<DetectChar char="(caràcter)" (atributs comuns) (dinàmic) />" #. Tag: para #: development.docbook:743 #, no-c-format msgid "" "The char attribute defines the character to match." msgstr "L'atribut char defineix el caràcter a comparar." #. Tag: term #: development.docbook:749 #, no-c-format msgid "Detect2Chars" msgstr "Detect2Chars" #. Tag: para #: development.docbook:751 #, no-c-format msgid "Detect two specific characters in a defined order." msgstr "Detecta dos caràcters especificats en l'ordre definit." #. Tag: programlisting #: development.docbook:752 #, no-c-format msgid "" "<Detect2Chars char="(character)" char1="(character)" " "(common attributes) />" msgstr "" "<Detect2Chars char="(caràcter)" char1="(caràcter)" " "(atributs comuns) />" #. Tag: para #: development.docbook:753 #, no-c-format msgid "" "The char attribute defines the first character to " "match, char1 the second." msgstr "" "L'atribut char defineix el primer caràcter a " "comparar, char1 el segon." #. Tag: term #: development.docbook:759 #, no-c-format msgid "AnyChar" msgstr "AnyChar" #. Tag: para #: development.docbook:761 #, no-c-format msgid "Detect one character of a set of specified characters." msgstr "Detecta un caràcter d'un conjunt de caràcters especificats." #. Tag: programlisting #: development.docbook:762 #, no-c-format msgid "<AnyChar String="(string)" (common attributes) />" msgstr "<AnyChar String="(cadena)" (atributs comuns) />" #. Tag: para #: development.docbook:763 #, no-c-format msgid "" "The String attribute defines the set of characters." msgstr "" "L'atribut String defineix el conjunt de caràcters." #. Tag: term #: development.docbook:769 #, no-c-format msgid "StringDetect" msgstr "StringDetect" #. Tag: para #: development.docbook:771 #, no-c-format msgid "Detect an exact string." msgstr "Detecta una cadena exacta." #. Tag: programlisting #: development.docbook:772 #, no-c-format msgid "" "<StringDetect String="(string)" [insensitive="true|" "false"] (common attributes) (dynamic) />" msgstr "" "<StringDetect String="(cadena)" [insensitive="true|" "false"] (atributs comuns) (dinàmic) />" #. Tag: para #: development.docbook:773 development.docbook:789 #, no-c-format msgid "" "The String attribute defines the string to match. The " "insensitive attribute defaults to false and is passed to the string comparison function. If the value is " "true insensitive comparing is used." msgstr "" "L'atribut String defineix la cadena a comparar. " "L'atribut insensitive per omissió és " "false i es passa a la funció de comparació de la " "cadena. Si el valor és true la comparació no serà " "sensible a majúscules i minúscules." #. Tag: term #: development.docbook:782 #, no-c-format msgid "WordDetect" msgstr "WordDetect" #. Tag: para #: development.docbook:784 #, no-c-format msgid "" "Detect an exact string but additionally require word boundaries such as a " "dot '.' or a whitespace on the beginning and the end " "of the word. Think of \\b<string>\\b in terms " "of a regular expression, but it is faster than the rule RegExpr." msgstr "" "Detectar una cadena exacta requereix límits de paraula com un punt " "«.» o un espai en blanc al començament i al final de " "la paraula. Penseu en \\b<cadena>\\b en termes " "d'una expressió regular, però és més ràpid que la regla RegExpr." #. Tag: programlisting #: development.docbook:788 #, no-c-format msgid "" "<WordDetect String="(string)" [insensitive="true|" "false"] (common attributes) />" msgstr "" "<WordDetect String="(cadena)" [insensitive="true|" "false"] (atributs comuns) />" #. Tag: para #: development.docbook:794 #, no-c-format msgid "Since: Kate 3.5 (KDE 4.5)" msgstr "Des del: Kate 3.5 (KDE 4.5)" #. Tag: term #: development.docbook:799 #, no-c-format msgid "RegExpr" msgstr "RegExpr" #. Tag: para #: development.docbook:801 #, no-c-format msgid "Matches against a regular expression." msgstr "Cerca la coincidència amb una expressió regular." #. Tag: programlisting #: development.docbook:802 #, no-c-format msgid "" "<RegExpr String="(string)" [insensitive="true|false"] " "[minimal="true|false"] (common attributes) (dynamic) />" msgstr "" "<RegExpr String="(cadena)" [insensitive="true|false"] " "[minimal="true|false"] (atributs comuns) (dinàmic) />" #. Tag: para #: development.docbook:803 #, no-c-format msgid "" "The String attribute defines the regular expression." msgstr "L'atribut String defineix l'expressió regular." #. Tag: para #: development.docbook:805 #, no-c-format msgid "" "insensitive defaults to false " "and is passed to the regular expression engine." msgstr "" "insensitive per omissió és false i és passada al motor d'expressions regulars." #. Tag: para #: development.docbook:808 #, no-c-format msgid "" "minimal defaults to false and is " "passed to the regular expression engine." msgstr "" "minimal per omissió és false i " "és passada al motor d'expressions regulars." #. Tag: para #: development.docbook:811 #, no-c-format msgid "" "Because the rules are always matched against the beginning of the current " "string, a regular expression starting with a caret (^) " "indicates that the rule should only be matched against the start of a line." msgstr "" "Atès que les regles coincideixen amb el començament de la cadena actual, una " "expressió regular que comenci amb l'accent circumflex (^) " "indica que la regla tan sols s'haurà de comparar amb el començament d'una " "línia." #. Tag: para #: development.docbook:815 #, no-c-format msgid "" "See Regular Expressions for " "more information on those." msgstr "" "Vegeu la secció sobre expressions " "regulars per obtenir més informació." #. Tag: term #: development.docbook:821 #, no-c-format msgid "keyword" msgstr "keyword" #. Tag: para #: development.docbook:823 #, no-c-format msgid "Detect a keyword from a specified list." msgstr "Detecta una paraula clau des d'una llista especificada." #. Tag: programlisting #: development.docbook:824 #, no-c-format msgid "<keyword String="(list name)" (common attributes) />" msgstr "" "<keyword String="(nom de la llista)" (atributs comuns) />" #. Tag: para #: development.docbook:825 #, no-c-format msgid "" "The String attribute identifies the keyword list by " "name. A list with that name must exist." msgstr "" "L'atribut String identifica la llista de paraules " "clau pel seu nom. Haurà d'existir una llista amb aquest nom." #. Tag: para #: development.docbook:827 #, no-c-format msgid "" "The highlighting system processes keyword rules in a very optimized way. " "This makes it an absolute necessity that any keywords to be matched need to " "be surrounded by defined delimiters, either implied (the default " "delimiters), or explicitly specified within the " "additionalDeliminator property of the " "keywords tag." msgstr "" "El sistema de ressaltat processa les regles de paraules clau d'una manera " "molt optimitzada. Això fa que sigui una necessitat absoluta que qualsevol " "paraula clau que coincideixi necessitarà estar envoltada pels delimitadors " "definits, ja sigui implícitament (els delimitadors per omissió), o " "explícitament especificat dins la propietat additionalDeliminator de l'etiqueta keywords." #. Tag: para #: development.docbook:832 #, no-c-format msgid "" "If a keyword to be matched shall contain a delimiter character, this " "respective character must be added to the weakDeliminator property of the keywords tag. This character " "will then loose its delimiter property in all keyword " "rules." msgstr "" "Si una paraula clau coincideix haurà de contenir un caràcter de delimitador, " "aquest caràcter respectiu haurà d'afegir-se a la propietat " "weakDeliminator de l'etiqueta keywords. Aquest caràcter perdrà la seva propietat delimitadora en totes " "les regles keyword." #. Tag: term #: development.docbook:840 #, no-c-format msgid "Int" msgstr "Int" #. Tag: para #: development.docbook:842 -#, fuzzy, no-c-format +#, no-c-format #| msgid "" #| "Use DetectIdentifier instead of the regular " #| "expression '[a-zA-Z_]\\w*'." msgid "" "Detect an integer number (as the regular expression: \\b[0-9]+)." msgstr "" -"Utilitzeu DetectIdentifier en comptes de l'expressió " -"regular «[a-zA-Z_]\\w*»." +"Detecta un nombre enter (com l'expressió regular: \\b[0-9]+)." #. Tag: programlisting #: development.docbook:843 #, no-c-format msgid "<Int (common attributes) />" msgstr "<Int (atributs comuns) />" #. Tag: para #: development.docbook:844 development.docbook:854 development.docbook:864 #: development.docbook:874 development.docbook:883 development.docbook:904 #: development.docbook:971 development.docbook:987 #, no-c-format msgid "This rule has no specific attributes." msgstr "Aquesta regla no té atributs específics." #. Tag: term #: development.docbook:849 #, no-c-format msgid "Float" msgstr "Decimals" #. Tag: para #: development.docbook:851 #, no-c-format msgid "" "Detect a floating point number (as the regular expression: " "(\\b[0-9]+\\.[0-9]*|\\.[0-9]+)([eE][-+]?[0-9]+)?)." msgstr "" +"Detecta un nombre decimal (com l'expressió regular: (\\b[0-9]+\\." +"[0-9]*|\\.[0-9]+)([eE][-+]?[0-9]+)?)." #. Tag: programlisting #: development.docbook:853 #, no-c-format msgid "<Float (common attributes) />" msgstr "<Float (atributs comuns) />" #. Tag: term #: development.docbook:859 #, no-c-format msgid "HlCOct" msgstr "HlCOct" #. Tag: para #: development.docbook:861 -#, fuzzy, no-c-format +#, no-c-format #| msgid "" #| "Use DetectIdentifier instead of the regular " #| "expression '[a-zA-Z_]\\w*'." msgid "" "Detect an octal point number representation (as the regular expression: " "\\b0[0-7]+)." msgstr "" -"Utilitzeu DetectIdentifier en comptes de l'expressió " -"regular «[a-zA-Z_]\\w*»." +"Detecta una representació numèrica d'un nombre octal (com l'expressió " +"regular: \\b0[0-7]+)." #. Tag: programlisting #: development.docbook:863 #, no-c-format msgid "<HlCOct (common attributes) />" msgstr "<HlCOct (atributs comuns) />" #. Tag: term #: development.docbook:869 #, no-c-format msgid "HlCHex" msgstr "HlCHex" #. Tag: para #: development.docbook:871 -#, fuzzy, no-c-format +#, no-c-format #| msgid "" #| "Use DetectIdentifier instead of the regular " #| "expression '[a-zA-Z_]\\w*'." msgid "" "Detect a hexadecimal number representation (as a regular expression: " "\\b0[xX][0-9a-fA-F]+)." msgstr "" -"Utilitzeu DetectIdentifier en comptes de l'expressió " -"regular «[a-zA-Z_]\\w*»." +"Detecta una representació numèrica d'un nombre hexadecimal (com una expressió " +"regular: \\b0[xX][0-9a-fA-F]+)." #. Tag: programlisting #: development.docbook:873 #, no-c-format msgid "<HlCHex (common attributes) />" msgstr "<HlCHex (atributs comuns) />" #. Tag: term #: development.docbook:879 #, no-c-format msgid "HlCStringChar" msgstr "HlCStringChar" #. Tag: para #: development.docbook:881 #, no-c-format msgid "Detect an escaped character." msgstr "Detecta un caràcter escapat." #. Tag: programlisting #: development.docbook:882 #, no-c-format msgid "<HlCStringChar (common attributes) />" msgstr "<HlCStringChar (atributs comuns) />" #. Tag: para #: development.docbook:885 #, no-c-format msgid "" "It matches literal representations of characters commonly used in program " "code, for example \\n (newline) or \\t (TAB)." msgstr "" "Localitza representacions literals de caràcters que habitualment s'utilitzen " "en el codi de programació, per exemple \\n (línia " "nova) o \\t (tabulació)." #. Tag: para #: development.docbook:889 #, no-c-format msgid "" "The following characters will match if they follow a backslash (\\): abefnrtv"'?\\. Additionally, escaped " "hexadecimal numbers such as for example \\xff and " "escaped octal numbers, for example \\033 will match." msgstr "" "Els següents caràcters coincideixen amb la regla si segueixen a una barra " "inversa (\\): abefnrtv"'?\\. " "A més seran vàlids els nombres hexadecimals escapats com per exemple " "\\xff, i els nombres octals escapats, per exemple " "\\033." #. Tag: term #: development.docbook:900 #, no-c-format msgid "HlCChar" msgstr "HlCChar" #. Tag: para #: development.docbook:902 #, no-c-format msgid "Detect an C character." msgstr "Detecta un caràcter C." #. Tag: programlisting #: development.docbook:903 #, no-c-format msgid "<HlCChar (common attributes) />" msgstr "<HlCChar (atributs comuns) />" #. Tag: para #: development.docbook:906 #, no-c-format msgid "" "It matches C characters enclosed in a tick (Example: 'c'). The ticks may be a simple character or an escaped character. " "See HlCStringChar for matched escaped character sequences." msgstr "" "Localitza caràcters C tancats en una marca (Exemple: 'c'). La marca pot ser un caràcter simple o un caràcter escapat. " "Vegeu «HICStringChar» per a localitzar seqüències de caràcters escapats." #. Tag: term #: development.docbook:914 #, no-c-format msgid "RangeDetect" msgstr "RangeDetect" #. Tag: para #: development.docbook:916 #, no-c-format msgid "Detect a string with defined start and end characters." msgstr "Detecta una cadena amb caràcters d'inici i de final definits." #. Tag: programlisting #: development.docbook:917 #, no-c-format msgid "" "<RangeDetect char="(character)" char1="(character)" " "(common attributes) />" msgstr "" "<RangeDetect char="(caràcter)" char1="(caràcter)" " "(atributs comuns) />" #. Tag: para #: development.docbook:918 #, no-c-format msgid "" "char defines the character starting the range, " "char1 the character ending the range." msgstr "" "char defineix el caràcter que inicia l'interval, " "char1 el caràcter que finalitza l'interval." #. Tag: para #: development.docbook:920 #, no-c-format msgid "" "Useful to detect for example small quoted strings and the like, but note " "that since the highlighting engine works on one line at a time, this will " "not find strings spanning over a line break." msgstr "" "És molt útil per a detectar per exemple petites cadenes entre cometes i " "similars, però tingueu en compte que el motor de ressaltat només pot " "treballar amb una línia a la vegada, de manera que no es detectaran les " "cadenes que estiguin dividides en dues línies o més." #. Tag: term #: development.docbook:927 #, no-c-format msgid "LineContinue" msgstr "LineContinue" #. Tag: para #: development.docbook:929 #, no-c-format msgid "Matches a specified char at the end of a line." msgstr "Coincideix amb un caràcter específic al final d'una línia." #. Tag: programlisting #: development.docbook:930 #, no-c-format msgid "<LineContinue (common attributes) [char=\"\\\"] />" msgstr "<LineContinue (atributs comuns) [char=\"\\\"] />" #. Tag: para #: development.docbook:931 #, no-c-format msgid "" "char optional character to match, default is " "backslash ('\\'). New since KDE 4.13." msgstr "" "L'atribut char defineix un caràcter opcional a " "comparar, per defecte és la barra inversa ('\\'). Nou " "des del &kde; 4.13." #. Tag: para #: development.docbook:933 #, no-c-format msgid "" "This rule is useful for switching context at end of line. This is needed for " "example in C/C++ to continue macros or strings." msgstr "" "Aquesta regla és pràctica per a canviar el context al final de la línia. " "Això és necessari per exemple en C/C++ per a continuar macros o cadenes." #. Tag: term #: development.docbook:939 #, no-c-format msgid "IncludeRules" msgstr "IncludeRules" #. Tag: para #: development.docbook:941 #, no-c-format msgid "Include rules from another context or language/file." msgstr "Inclou regles des d'un altre context o llenguatge/fitxer." #. Tag: programlisting #: development.docbook:942 #, no-c-format msgid "" "<IncludeRules context="contextlink" [includeAttrib="true|" "false"] />" msgstr "" "<IncludeRules context="contextlink" [includeAttrib="true|" "false"] />" #. Tag: para #: development.docbook:944 #, no-c-format msgid "" "The context attribute defines which context to " "include." msgstr "" "L'atribut context defineix el context a incloure." #. Tag: para #: development.docbook:945 #, no-c-format msgid "" "If it is a simple string it includes all defined rules into the current " "context, example:" msgstr "" "Si és una cadena simple, inclourà totes les regles definides en el context " "actual, exemple:" #. Tag: programlisting #: development.docbook:946 #, no-c-format msgid "<IncludeRules context="anotherContext" />" msgstr "<IncludeRules context="anotherContext" />" #. Tag: para #: development.docbook:948 #, no-c-format msgid "" "If the string contains a ## the highlight system will " "look for a context from another language definition with the given name, for " "example <IncludeRules context="String##C++" /" "> would include the context String " "from the C++ highlighting definition." msgstr "" "Si la cadena conté un ## el sistema de ressaltat " "cercarà un context d'una altra definició del llenguatge amb el nom indicat, " "per exemple, <IncludeRules context="String##C+" "+" /> inclouria el context String des de la definició de ressaltat en C++." #. Tag: para #: development.docbook:955 #, no-c-format msgid "" "If includeAttrib attribute is true, change the destination attribute to the one of the source. This " "is required to make, for example, commenting work, if text matched by the " "included context is a different highlight from the host context." msgstr "" "Si l'atribut includeAttrib està a true, canvia l'atribut de destinació per un altre de la font. Això és " "necessari, per exemple, per al treball de comentar, si el text coincideix " "amb el context inclòs s'utilitzarà un ressaltat diferent que amb el context " "amfitrió." #. Tag: term #: development.docbook:966 #, no-c-format msgid "DetectSpaces" msgstr "DetectSpaces" #. Tag: para #: development.docbook:968 #, no-c-format msgid "Detect whitespaces." msgstr "Detecta els espais en blanc." #. Tag: programlisting #: development.docbook:969 #, no-c-format msgid "<DetectSpaces (common attributes) />" msgstr "<DetectSpaces (atributs comuns) />" #. Tag: para #: development.docbook:972 #, no-c-format msgid "" "Use this rule if you know that there can be several whitespaces ahead, for " "example in the beginning of indented lines. This rule will skip all " "whitespace at once, instead of testing multiple rules and skipping one at a " "time due to no match." msgstr "" "Utilitzeu aquesta regla si sabeu que hi poden haver diversos espais en blanc " "al davant, per exemple, al començament de les línies sagnades. Aquesta regla " "ometrà tots els espais en blanc a la vegada, en comptes de comprovar " "múltiples regles i saltar coincidències." #. Tag: term #: development.docbook:981 #, no-c-format msgid "DetectIdentifier" msgstr "DetectIdentifier" #. Tag: para #: development.docbook:983 -#, fuzzy, no-c-format +#, no-c-format #| msgid "" #| "Detect identifier strings (as a regular expression: [a-zA-Z_][a-zA-" #| "Z0-9_]*)." msgid "" "Detect identifier strings (as the regular expression: [a-zA-Z_][a-" "zA-Z0-9_]*)." msgstr "" -"Detecta identificadors de cadenes (com una expressió regular: [a-zA-Z_][a-zA-" -"Z0-9_]*)." +"Detecta identificadors de cadenes (com l'expressió regular: " +"[a-zA-Z_][a-zA-Z0-9_]*)." #. Tag: programlisting #: development.docbook:985 #, no-c-format msgid "<DetectIdentifier (common attributes) />" msgstr "<DetectIdentifier (atributs comuns) />" #. Tag: para #: development.docbook:988 #, no-c-format msgid "" "Use this rule to skip a string of word characters at once, rather than " "testing with multiple rules and skipping one at a time due to no match." msgstr "" "Utilitzeu aquesta regla per a saltar d'una vegada una cadena de paraula de " "caràcters, en comptes de comprovar múltiples regles a la vegada i saltar " "coincidències." #. Tag: title #: development.docbook:997 #, no-c-format msgid "Tips & Tricks" msgstr "Consells i trucs" #. Tag: para #: development.docbook:1000 #, no-c-format msgid "" "Once you have understood how the context switching works it will be easy to " "write highlight definitions. Though you should carefully check what rule you " "choose in what situation. Regular expressions are very mighty, but they are " "slow compared to the other rules. So you may consider the following tips." msgstr "" "Una vegada que hàgiu entès com funciona el canvi de context serà fàcil " "escriure definicions de ressaltat. Tot i que haureu de tenir cura de " "comprovar en quina situació s'hauria de seleccionar una regla. Les " "expressions regulars són molt potents, però són lentes en comparació amb " "altres regles. Per això haureu de tenir en compte els següents consells." #. Tag: para #: development.docbook:1008 #, no-c-format msgid "" "If you only match two characters use Detect2Chars " "instead of StringDetect. The same applies to " "DetectChar." msgstr "" "Si només heu de localitzar dos caràcters, utilitzeu Detect2Chars en comptes de StringDetect. El mateix " "s'aplica a DetectChar." #. Tag: para #: development.docbook:1013 #, no-c-format msgid "" "Regular expressions are easy to use but often there is another much faster " "way to achieve the same result. Consider you only want to match the " "character '#' if it is the first character in the " "line. A regular expression based solution would look like this: " "<RegExpr attribute="Macro" context="" "macro" String="^\\s*#" /> You can achieve " "the same much faster in using: <DetectChar " "attribute="Macro" context="macro" char="#" " "firstNonSpace="true" /> If you want to match " "the regular expression '^#' you can still use " "DetectChar with the attribute " "column="0". The attribute " "column counts characters, so a tabulator is only one " "character." msgstr "" "Les expressions regulars són fàcils d'emprar però a vegades hi ha formes " "molt més ràpides d'obtenir el mateix resultat. Imagineu que només desitgeu " "localitzar el caràcter «#» si aquest és el primer " "caràcter de la línia. Una solució basada en una expressió regular seria " "quelcom semblant a això: <RegExpr attribute="" "Macro" context="macro" String="^\\s*#" />Podeu aconseguir el mateix molt més ràpid utilitzant: " "<DetectChar attribute="Macro" context="" "macro" char="#" firstNonSpace="true" />Si voleu que l'expressió regular localitzi «^#» també podeu utilitzar DetectChar amb " "l'atribut column="0". L'atribut " "column compta els caràcters, per tant el tabulador és " "només un caràcter." #. Tag: para #: development.docbook:1026 #, no-c-format msgid "" "In RegExpr rules, use the attribute column=" "\"0\" if the pattern ^PATTERN will be " "used to match text at the beginning of a line. This improves performance, as " "it will avoid looking for matches in the rest of the columns." msgstr "" "A les regles RegExpr, utilitzeu l'atribut " "column=\"0\" si el patró ^PATRÓ s'utilitza per a fer coincidir el text amb el començament d'una " "línia. Això millorarà el rendiment, ja que evitarà cercar coincidències en " "la resta de les columnes." #. Tag: para #: development.docbook:1031 #, no-c-format msgid "" "In regular expressions, use non-capturing groups (?:PATTERN) instead of capturing groups (PATTERN), if " "the captures will not be used in the same regular expression or in dynamic " "rules. This avoids storing captures unnecessarily." msgstr "" "En les expressions regulars, utilitzeu grups sense captura (?:" "PATRÓ) en lloc dels grups amb captura (PATRÓ), si les captures no s'utilitzen per a la mateixa expressió " "regular o en regles dinàmiques. Això evita emmagatzemar innecessàriament les " "captures." #. Tag: para #: development.docbook:1036 #, no-c-format msgid "" "You can switch contexts without processing characters. Assume that you want " "to switch context when you meet the string */, but " "need to process that string in the next context. The below rule will match, " "and the lookAhead attribute will cause the " "highlighter to keep the matched string for the next context." msgstr "" "Podeu canviar de context sense processar els caràcters. Suposeu que voleu " "canviar de context quan trobeu una cadena */, però " "cal processar aquesta cadena en el següent context. La regla de sota " "coincidirà, i l'atribut lookAhead farà que es desi la " "cadena coincident per al següent context." #. Tag: programlisting #: development.docbook:1041 #, no-c-format msgid "" "<Detect2Chars attribute="Comment" context="#pop" " "char="*" char1="/" lookAhead="true" />" msgstr "" "<Detect2Chars attribute="Comment" context="#pop" " "char="*" char1="/" lookAhead="true" />" #. Tag: para #: development.docbook:1045 #, no-c-format msgid "" "Use DetectSpaces if you know that many whitespaces " "occur." msgstr "" "Utilitzeu DetectSpaces si sabeu quants espais en " "blanc hi ha." #. Tag: para #: development.docbook:1048 #, no-c-format msgid "" "Use DetectIdentifier instead of the regular " "expression '[a-zA-Z_]\\w*'." msgstr "" "Utilitzeu DetectIdentifier en comptes de l'expressió " "regular «[a-zA-Z_]\\w*»." #. Tag: para #: development.docbook:1051 #, no-c-format msgid "" "Use default styles whenever you can. This way the user will find a familiar " "environment." msgstr "" "Utilitza els estils per omissió sempre que es pugui. D'aquesta manera " "l'usuari es trobarà un entorn familiar." #. Tag: para #: development.docbook:1054 #, no-c-format msgid "" "Look into other XML-files to see how other people implement tricky rules." msgstr "" "Mireu altres fitxers XML per a comprovar de quina forma altra gent " "implementa les regles delicades." #. Tag: para #: development.docbook:1057 #, no-c-format msgid "" "You can validate every XML file by using the command validatehl.sh " "language.xsd mySyntax.xml. The files validatehl.sh and language.xsd are available in Syntax " "Highlighting repository." msgstr "" "Podeu validar tots els fitxers XML utilitzant l'ordre validatehl.sh " "language.xsd mySyntax.xml. Els fitxers validatehl.sh i language.xsd estan disponibles al repositori del ressaltat de la sintaxi." #. Tag: para #: development.docbook:1065 #, no-c-format msgid "" "If you repeat complex regular expression very often you can use " "ENTITIES. Example:" msgstr "" "Si tot sovint repetiu expressions regulars complexes podeu utilitzar " "ENTITIES. Exemple:" #. Tag: programlisting #: development.docbook:1067 #, no-c-format msgid "" "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" "<!DOCTYPE language SYSTEM \"language.dtd\"\n" "[\n" " <!ENTITY myref \"[A-Za-z_:][\\w.:_-]*\">\n" "]>" msgstr "" "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" "<!DOCTYPE language SYSTEM \"language.dtd\"\n" "[\n" " <!ENTITY la_meva_ref \"[A-Za-z_:][\\w.:_-]*\">\n" "]>" #. Tag: para #: development.docbook:1068 #, no-c-format msgid "" "Now you can use &myref; instead of the regular " "expression." msgstr "" "Ara podeu utilitzar &la_meva_ref; en comptes de " "l'expressió regular." #. Tag: title #: development.docbook:1080 #, no-c-format msgid "Scripting with JavaScript" msgstr "Crear scripts amb JavaScript" #. Tag: para #: development.docbook:1082 #, no-c-format msgid "" "The &kappname; editor component is easily extensible by writing scripts. The " "scripting language is ECMAScript (widely known as JavaScript). &kappname; " "supports two kinds of scripts: indentation and command line scripts." msgstr "" "El component d'edició de la &kappname; és fàcilment extensible, escrivint " "scripts. El llenguatge per crear scripts és ECMAScript (conegut com a " "Javascript). La &kappname; admet dos tipus de script: de sagnat i de línia " "d'ordres." #. Tag: title #: development.docbook:1089 #, no-c-format msgid "Indentation Scripts" msgstr "Scripts de sagnat" #. Tag: para #: development.docbook:1091 #, no-c-format msgid "" "Indentation scripts - also referred as indenters - automatically indent the " "source code while typing text. As an example, after hitting the return key " "the indentation level often increases." msgstr "" "Els scripts de sagnat: També coneguts com a «indenters», sagnen " "automàticament el codi font en escriure text. Com a exemple, després de " "prémer la tecla de retorn el nivell de sagnat sovint és incrementat." #. Tag: para #: development.docbook:1097 #, no-c-format msgid "" "The following sections describe step by step how to create the skeleton for " "a simple indenter. As a first step, create a new *.js " "file called ⪚ javascript.js in the local home folder " "$XDG_DATA_HOME/katepart5/script/indentation. Therein, the environment variable XDG_DATA_HOME " "typically expands to either ~/.local or ~/." "local/share." msgstr "" "En les següents seccions es descriuen pas a pas com crear l'esquelet d'un " "sagnat simple. Com a primer pas, creeu un fitxer *.js " "nou anomenat, &pex;, javascript.js a la carpeta d'inici " "local $XDG_DATA_HOME/katepart5/script/indentation. En aquest sentit, la variable d'entorn XDG_DATA_HOME normalment s'expandeix a ~/.local o ~/." "local/share." #. Tag: para #: development.docbook:1105 #, no-c-format msgid "" "On &Windows; these files are located in %USER%\\AppData\\Local" "\\katepart5\\indentation. %USERPROFILE% usually expands to C:\\\\Users\\\\user." msgstr "" "Al &Windows; aquests fitxers es troben a %USER%\\AppData\\Local" "\\katepart5\\indentation. %USERPROFILE% que generalment s'expandeix a C:\\\\Users\\" "\\usuari." #. Tag: title #: development.docbook:1109 #, no-c-format msgid "The Indentation Script Header" msgstr "La capçalera de l'script de sagnat" #. Tag: para #: development.docbook:1110 #, no-c-format msgid "" "The header of the file javascript.js is embedded as " "JSON at the beginning of the document as follows: \n" "var katescript = {\n" " \"name\": \"JavaScript\",\n" " \"author\": \"Example Name <example.name@some.address.org>\",\n" " \"license\": \"BSD License\",\n" " \"revision\": 1,\n" " \"kate-version\": \"5.1\",\n" " \"required-syntax-style\": \"javascript\",\n" " \"indent-languages\": [\"javascript\"],\n" " \"priority\": 0,\n" "}; // kate-script-header, must be at the start of the file without comments\n" " Each entry is explained in detail now:" msgstr "" "La capçalera del fitxer javascript.js està inclosa com " "un JSON al començament del document de la forma següent: \n" "var katescript = {\n" " \"name\": \"JavaScript\",\n" " \"author\": \"Nom exemple <nom.exemple@alguna.adreça.org>\",\n" " \"license\": \"BSD License\",\n" " \"revision\": 1,\n" " \"kate-version\": \"5.1\",\n" " \"required-syntax-style\": \"javascript\",\n" " \"indent-languages\": [\"javascript\"],\n" " \"priority\": 0,\n" "}; // kate-script-header, haurà d'estar al començament del fitxer sense " "comentaris\n" " Cada entrada s'explica en detall tot seguit:" #. Tag: para #: development.docbook:1117 #, no-c-format msgid "" "name [required]: This is the indenter name that appears " "in the menu ToolsIndentation and in the configuration dialog." msgstr "" "name [requerit]: Aquest és el nom del sagnat que apareix " "al menú EinesSagnat i en el diàleg de configuració." #. Tag: para #: development.docbook:1122 development.docbook:1245 #, no-c-format msgid "" "author [optional]: The author's name and contact " "information." msgstr "" "author [opcional]: El nom de l'autor i la informació de " "contacte." #. Tag: para #: development.docbook:1125 #, no-c-format msgid "" "license [optional]: Short form of the license, such as " "BSD License or LGPLv3." msgstr "" "license [opcional]: La forma curta de la llicència, com " "ara BSD o LGPLv3." #. Tag: para #: development.docbook:1128 development.docbook:1247 #, no-c-format msgid "" "revision [required]: The revision of the script. This " "number should be increased whenever the script is modified." msgstr "" "revision [requerit]: La revisió de l'script. Aquest " "número ha de ser major cada vegada que es modifica l'script." #. Tag: para #: development.docbook:1131 development.docbook:1248 #, no-c-format msgid "" "kate-version [required]: Minimum required &kappname; " "version." msgstr "" "kate-version [requerit]: La versió mínima requerida per " "la &kappname;." #. Tag: para #: development.docbook:1134 #, no-c-format msgid "" "required-syntax-style [optional]: The required syntax " "style, which matches the specified style in syntax " "highlighting files. This is important for indenters that rely on specific " "highlight information in the document. If a required syntax style is " "specified, the indenter is available only when the appropriate highlighter " "is active. This prevents undefined behavior caused by using " "the indenter without the expected highlighting schema. For instance, the " "Ruby indenter makes use of this in the files ruby.js " "and ruby.xml." msgstr "" "required-syntax-style [opcional]: L'estil de la sintaxi " "requerida, el qual coincideix amb style especificat als " "fitxers de ressaltat de la sintaxi. Això és important per als sagnats que es " "basen en la informació de ressaltat específica en el document. Si " "s'especifica un estil de la sintaxi requerit, el sagnat només estarà " "disponible amb el ressaltat actiu apropiat. Això evita comportament " "sense definir causat per l'ús del sagnat sense l'esquema del " "ressaltat esperat. Per exemple, el sagnat de Ruby en fa ús en els fitxers " "ruby.js i ruby.xml." #. Tag: para #: development.docbook:1137 #, no-c-format msgid "" "indent-languages [optional]: JSON array of syntax styles " "the indenter can indent correctly, ⪚: [\"c++\", \"java\"]." msgstr "" "indent-languages [opcional]: Una matriu JSON dels estils " "de la sintaxi que pot sagnar correctament, &pex;: [\"c++\", \"java" "\"]." #. Tag: para #: development.docbook:1140 #, no-c-format msgid "" "priority [optional]: If several indenters are suited for " "a certain highlighted file, the priority decides which indenter is chosen as " "default indenter." msgstr "" "priority [opcional]: Si els diversos sagnats són adequats " "per a un determinat fitxer ressaltat, la prioritat decideix quin sagnat és " "triat com sagnat per omissió." #. Tag: title #: development.docbook:1149 #, no-c-format msgid "The Indenter Source Code" msgstr "El codi font del sagnat" #. Tag: para #: development.docbook:1150 #, no-c-format msgid "" "Having specified the header this section explains how the indentation " "scripting itself works. The basic skeleton of the body looks like this: " "\n" "// required katepart js libraries, e.g. range.js if you use Range\n" "require (\"range.js\");\n" "\n" "triggerCharacters = \"{}/:;\";\n" "function indent(line, indentWidth, ch)\n" "{\n" " // called for each newline (ch == '\\n') and all characters specified " "in\n" " // the global variable triggerCharacters. When calling " "ToolsAlign\n" " // the variable ch is empty, i.e. ch == ''.\n" " //\n" " // see also: Scripting API\n" " return -2;\n" "}\n" " The function indent() has three " "parameters: line: the line " "that has to be indented " "indentWidth: the indentation width in " "number of spaces ch: " "either a newline character (ch == '\\n'), the trigger " "character specified in triggerCharacters or empty if the " "user invoked the action ToolsAlign. The return value of the indent() function " "specifies how the line will be indented. If the return value is a simple " "integer number, it is interpreted as follows: " "return value -2: do nothing return value -1: keep " "indentation (searches for previous non-blank line) " "return value 0: numbers >= 0 specify " "the indentation depth in spaces " "Alternatively, an array of two elements can be returned: " "return [ indent, align ]; In this case, the first element is the indentation " "depth as above with the same meaning of the special values. However, the " "second element is an absolute value representing a column for " "alignment. If this value is higher than the indent value, the " "difference represents a number of spaces to be added after the indentation " "of the first parameter. Otherwise, the second number is ignored. Using tabs " "and spaces for indentation is often referred to as mixed mode." msgstr "" "Després d'haver especificat la capçalera aquesta secció explica com funciona " "la creació de scripts de sagnat. L'esquelet bàsic del cos s'assembla a això: " "\n" "// es necessiten les biblioteques «js» de katepart, per exemple, «range.js»\n" "// si utilitzeu «Range»\n" "require (\"range.js\");\n" " \n" "triggerCharacters = \"{}/:;\";\n" "function indent(line, indentWidth, ch)\n" "{\n" " // crida per a cada línia nova (ch == «\\n») i tots els caràcters " "s'especifiquen en\n" " // la variable global triggerCharacters. Quan es crida " "EinesAlinea\n" " // la variable ch és buidada, &ead;, ch == «».\n" " //\n" " // Vegeu també: L'API per a la creació de scripts\n" " return -2;\n" "}\n" " La funció indent() té tres " "paràmetres: line: La línia " "que ha d'estar amb sagnat. " "indentWidth: L'amplada del sagnat en " "nombre d'espais. ch: o " "bé un caràcter de línia nova (ch == '\\n'),el caràcter de " "tall especificat en triggerCharacters o buida si l'usuari " "invoca l'acció EinesAlinea. El valor " "retornat de la funció indent() especifica com se sagna " "la línia. Si el valor retornat és un nombre enter simple, aquest " "s'interpreta de la següent manera: El valor " "retornat -2: No fa res. " "El valor retornat -1: Es manté el sagnat " "(cerca la línia anterior que no estigui en blanc). " "El valor retornat 0: Un número >= 0 " "especifica la profunditat del sagnat en nombre d'espais. Alternativament, un conjunt de dos elements poden retornar: " " return [ indent, align ]; En aquest cas, el primer element és la " "profunditat de sagnat com anteriorment amb el mateix significat dels valors " "especials. No obstant això, el segon element és un valor absolut que " "representa una columna d'alineació. Si aquest valor és major " "que el valor de sagnat, la diferència representa un nombre d'espais a afegir " "després del sagnat del primer paràmetre. En cas contrari, el segon nombre " "serà ignorat. L'ús de tabulacions i espais per al sagnat sovint és referit " "com mode mixt." #. Tag: para #: development.docbook:1182 #, no-c-format msgid "" "Consider the following example: Assume using tabs to indent, and tab width " "is set to 4. Here, <tab> represents a tab and '.' a space: " "\n" "1: <tab><tab>foobar(\"hello\",\n" "2: <tab><tab>.......\"world\");\n" " When indenting line 2, the indent() " "function returns [8, 15]. As result, two tabs are inserted to indent to " "column 8, and 7 spaces are added to align the second parameter under the " "first, so that it stays aligned if the file is viewed with a different tab " "width." msgstr "" "Considerem el següent exemple: Suposem que s'utilitzen tabulacions per a " "sagnar, i l'amplada de la tabulació és 4. Aquí, <tab> representa una " "tabulació i «.» un espai: \n" "1: <tab><tab>foobar(\"hola\",\n" "2: <tab><tab>.......\"món\");\n" " Quan se sagna la línia 2, la funció indent() retorna [8, 15]. Com a resultat, s'insereixen dues tabulacions per " "a sagnar fins a la columna 8, i s'afegeixen 7 espais per alinear el segon " "paràmetre a la primera, de manera que quedi alineat si el fitxer es veu amb " "una amplada de tabulació diferent." #. Tag: para #: development.docbook:1192 #, no-c-format msgid "" "A default &kde; installation ships &kappname; with several indenters. The " "corresponding JavaScript source code can be found in " "$XDG_DATA_DIRS/katepart5/script/indentation." msgstr "" "Una instal·lació per omissió del &kde; ens dóna la &kappname; amb diversos " "sagnats. El corresponent codi font de JavaScript d'origen pot trobar-se en " "$XDG_DATA_DIRS/katepart5/script/indentation." #. Tag: para #: development.docbook:1195 #, no-c-format msgid "" "On &Windows; these files are located in %USER%\\AppData\\Local" "\\katepart5\\indentation. %USER% " "usually expands to C:\\\\Users\\\\user." msgstr "" "Al &Windows; aquests fitxers es troben a %USER%\\AppData\\Local" "\\katepart5\\indentation. %USER% que " "generalment s'expandeix a C:\\\\Users\\\\usuari." #. Tag: para #: development.docbook:1199 #, no-c-format msgid "" "Developing an indenter requires reloading the scripts to see whether the " "changes behave appropriately. Instead of restarting the application, simply " "switch to the command line and invoke the command reload-scripts." msgstr "" "El desenvolupament d'un sagnat requereix tornar a carregar els scripts per " "veure si els canvis es comporten adequadament. En comptes de reiniciar " "l'aplicació, simplement canvieu a la línia d'ordres i crideu l'ordre " "reload-scripts." #. Tag: para #: development.docbook:1205 development.docbook:1311 #, no-c-format msgid "" "If you develop useful scripts please consider contributing to the &kappname; " "Project by contacting the mailing " "list." msgstr "" "Si desenvolupeu scripts útils, si us plau, considereu contribuir al projecte " "&kappname; posant-vos en contacte " "amb la llista de correu." #. Tag: title #: development.docbook:1214 #, no-c-format msgid "Command Line Scripts" msgstr "Els scripts de la línia d'ordres" #. Tag: para #: development.docbook:1216 #, no-c-format msgid "" "As it is hard to satisfy everyone's needs, &kappname; supports little helper " "tools for quick text manipulation through the built-in command line. For instance, the " "command sort is implemented as a script. This section " "explains how to create *.js files to extend &kappname; " "with arbitrary helper scripts." msgstr "" "Com és difícil satisfer les necessitats de tothom, la &kappname; suporta " "unes quantes eines d'ajuda per a la manipulació ràpida de text a través de " "la línia d'ordres " "inclosa. Per exemple, l'ordre sort s'implementa " "com un script. En aquesta secció s'explica com crear fitxers *.js per estendre la &kappname; amb scripts d'ajuda arbitrària." #. Tag: para #: development.docbook:1225 #, no-c-format msgid "" "Command line scripts are located in the same folder as indentation scripts. " "So as a first step, create a new *.js file called " "myutils.js in the local home folder " "$XDG_DATA_HOME/katepart5/script/commands. Therein, " "the environment variable XDG_DATA_HOME typically expands to " "either ~/.local or ~/.local/share." msgstr "" "Els scripts de línia d'ordres es troben a la mateixa carpeta que els scripts " "de sagnat. Així que com a primer pas, creeu un fitxer *.js nou anomenat myutils.js a la carpeta d'inici " "local $XDG_DATA_HOME/katepart5/script/commands. En aquest sentit, la variable d'entorn XDG_DATA_HOME normalment s'expandeix a ~/.local o ~/." "local/share." #. Tag: para #: development.docbook:1232 #, no-c-format msgid "" "On &Windows; these files are located in %USER%\\AppData\\Local" "\\katepart5\\commands. %USER% usually " "expands to C:\\\\Users\\\\user." msgstr "" "Al &Windows; aquests fitxers es troben a %USER%\\AppData\\Local" "\\katepart5\\commands. %USER% que " "generalment s'expandeix a C:\\\\Users\\\\usuari." #. Tag: title #: development.docbook:1237 #, no-c-format msgid "The Command Line Script Header" msgstr "La capçalera de l'script de línia d'ordres" # skip-rule: k-Shift-1 #. Tag: para #: development.docbook:1238 #, no-c-format msgid "" "The header of each command line script is embedded in JSON at the beginning " "of the script as follows: \n" "var katescript = {\n" " \"author\": \"Example Name <example.name@some.address.org>\",\n" " \"license\": \"LGPLv2+\",\n" " \"revision\": 1,\n" " \"kate-version\": \"5.1\",\n" " \"functions\": [\"sort\", \"moveLinesDown\"],\n" " \"actions\": [\n" " { \"function\": \"sort\",\n" " \"name\": \"Sort Selected Text\",\n" " \"category\": \"Editing\",\n" " \"interactive\": \"false\"\n" " },\n" " { \"function\": \"moveLinesDown\",\n" " \"name\": \"Move Lines Down\",\n" " \"category\": \"Editing\",\n" " \"shortcut\": \"Ctrl+Shift+Down\",\n" " \"interactive\": \"false\"\n" " }\n" " ]\n" "}; // kate-script-header, must be at the start of the file without comments\n" " Each entry is explained in detail now:" msgstr "" "La capçalera de cada script de la línia d'ordres està inclosa en el JSON al " "començament de l'script de la forma següent: \n" "var katescript = {\n" " \"author\": \"Nom exemple <nom.exemple@alguna.adreça.org>\",\n" " \"license\": \"LGPLv2+\",\n" " \"revision\": 1,\n" " \"kate-version\": \"5.1\",\n" " \"functions\": [\"sort\", \"moveLinesDown\"],\n" " \"actions\": [\n" " { \"function\": \"sort\",\n" " \"name\": \"Sort Selected Text\",\n" " \"category\": \"Editing\",\n" " \"interactive\": \"false\"\n" " },\n" " { \"function\": \"moveLinesDown\",\n" " \"name\": \"Move Lines Down\",\n" " \"category\": \"Editing\",\n" " \"shortcut\": \"Ctrl+Shift+Down\",\n" " \"interactive\": \"false\"\n" " }\n" " ]\n" "}; // kate-script-header, haurà d'estar al començament del fitxer sense " "comentaris\n" " Cada entrada s'explica en detall tot seguit:" #. Tag: para #: development.docbook:1246 #, no-c-format msgid "" "license [optional]: Short form of the license, such as " "BSD License or LGPLv2." msgstr "" "license [opcional]: La forma curta de la llicència, com " "ara BSD o LGPLv2." #. Tag: para #: development.docbook:1249 #, no-c-format msgid "" "functions [required]: JSON array of commands in the " "script." msgstr "" "functions [requerit]: Matriu JSON de les ordres a " "l'script." #. Tag: para #: development.docbook:1250 #, no-c-format msgid "" "actions [optional]: JSON Array of JSON objects that " "defines the actions that appear in the application menu. Detailed " "information is provided in the section Binding Shortcuts." msgstr "" "actions [opcional]: La matriu JSON dels objectes JSON que " "defineixen les accions que apareixen al menú de l'aplicació. Es proporciona " "informació detallada a la secció Vincular dreceres." #. Tag: para #: development.docbook:1254 #, no-c-format msgid "" "Since the value of functions is a JSON array, a single " "script is able to contain an arbitrary number of command line commands. Each " "function is available through &kappname;'s built-in command line." msgstr "" "Atès que el valor de functions és una matriu JSON, un " "únic script és capaç de contenir un nombre arbitrari d'ordres de la línia " "d'ordres. Cada funció està disponible a través de la línia d'ordres integrada a la " "&kappname;." #. Tag: title #: development.docbook:1262 #, no-c-format msgid "The Script Source Code" msgstr "El codi font de l'script" #. Tag: para #: development.docbook:1264 #, no-c-format msgid "" "All functions specified in the header have to be implemented in the script. " "For instance, the script file from the example above needs to implement the " "two functions sort and moveLinesDown. " "All functions have the following syntax:" msgstr "" "Totes les funcions especificades a la capçalera s'han d'implementar a " "l'script. Per exemple, el fitxer de script en l'exemple anterior necessita " "implementar les dues funcions sort i " "moveLinesDown. Totes les funcions tenen la següent " "sintaxi:" #. Tag: programlisting #: development.docbook:1270 #, no-c-format msgid "" "// required katepart js libraries, e.g. range.js if you use Range\n" "require (\"range.js\");\n" "\n" "function <name>(arg1, arg2, ...)\n" "{\n" " // ... implementation, see also: Scripting API\n" "}" msgstr "" "// es necessiten les biblioteques «js» de la katepart, per exemple, «range." "js»\n" "// si utilitzeu «Range»\n" "require (\"range.js\");\n" "\n" "function <nom>(arg1, arg2...)\n" "{\n" " // «...» implementació, vegeu també: L'API per a la creació de scripts.\n" "}" #. Tag: para #: development.docbook:1273 #, no-c-format msgid "" "Arguments in the command line are passed to the function as arg1, arg2, etc. In order to provide " "documentation for each command, simply implement the 'help' function as follows: \n" "function help(cmd)\n" "{\n" " if (cmd == \"sort\") {\n" " return i18n(\"Sort the selected text.\");\n" " } else if (cmd == \"...\") {\n" " // ...\n" " }\n" "}\n" " Executing help sort in the command line " "then calls this help function with the argument cmd " "set to the given command, &ie; cmd == \"sort\". " "&kappname; then presents the returned text as documentation to the user. " "Make sure to translate the strings." msgstr "" "Els arguments en la línia d'ordres es passen a la funció com " "arg1, arg2, &etc; Per tal de " "proveir documentació per a cada ordre, simplement implementeu la funció " "«help» de la següent manera: \n" "{\n" " if (cmd == \"sort\") {\n" " return i18n(\"Ordena el text seleccionat.\");\n" " } else if (cmd == \"...\") {\n" " // ...\n" " }\n" "}\n" " Executar help sort a la línia d'ordres " "crida a aquesta funció d'ajuda amb l'argument cmd " "establert en l'ordre donada, &ead;, cmd == \"sort\". " "La &kappname; presentarà el text retornat com a documentació per a l'usuari. " "Assegureu-vos de traduir les " "cadenes." #. Tag: para #: development.docbook:1288 #, no-c-format msgid "" "Developing a command line script requires reloading the scripts to see " "whether the changes behave appropriately. Instead of restarting the " "application, simply switch to the command line and invoke the command " "reload-scripts." msgstr "" "El desenvolupament d'un script de línia d'ordres requereix tornar a carregar " "els scripts per veure si els canvis es comporten adequadament. En comptes de " "reiniciar l'aplicació, simplement canvieu a la línia d'ordres i crideu " "l'ordre reload-scripts." #. Tag: title #: development.docbook:1295 #, no-c-format msgid "Binding Shortcuts" msgstr "Vincular les dreceres" # skip-rule: k-Shift-1 #. Tag: para #: development.docbook:1296 #, no-c-format msgid "" "In order to make the scripts accessible in the application menu and assign " "shortcuts, the script needs to provide an appropriate script header. In the " "above example, both functions sort and " "moveLinesDown appear in the menu due to the following " "part in the script header: \n" "var katescript = {\n" " ...\n" " \"actions\": [\n" " { \"function\": \"sort\",\n" " \"name\": \"Sort Selected Text\",\n" " \"icon\": \"\",\n" " \"category\": \"Editing\",\n" " \"interactive\": \"false\"\n" " },\n" " { \"function\": \"moveLinesDown\",\n" " \"name\": \"Move Lines Down\",\n" " \"icon\": \"\",\n" " \"category\": \"Editing\",\n" " \"shortcut\": \"Ctrl+Shift+Down\",\n" " \"interactive\": \"false\"\n" " }\n" " ]\n" "};\n" " The fields for one action are as follows:" msgstr "" "Per tal de fer que els scripts siguin accessibles al menú de l'aplicació i " "assignar dreceres, l'script ha de proporcionar una capçalera de script " "adequada. En l'exemple anterior, ambdues funcions sort i " "moveLinesDown apareixen al menú per la següent part a la " "capçalera de l'script: \n" "var katescript = {\n" " ...\n" " \"actions\": [\n" " { \"function\": \"sort\",\n" " \"name\": \"Sort Selected Text\",\n" " \"icon\": \"\",\n" " \"category\": \"Editing\",\n" " \"interactive\": \"false\"\n" " },\n" " { \"function\": \"moveLinesDown\",\n" " \"name\": \"Move Lines Down\",\n" " \"icon\": \"\",\n" " \"category\": \"Editing\",\n" " \"shortcut\": \"Ctrl+Shift+Down\",\n" " \"interactive\": \"false\"\n" " }\n" " ]\n" "};\n" " Els camps per a una acció són els següents:" #. Tag: para #: development.docbook:1302 #, no-c-format msgid "" "function [required]: The function that should appear in " "the menu Tools Scripts." msgstr "" "function [requerit]: La funció que ha d'aparèixer al menú " "Eines Scripts." #. Tag: para #: development.docbook:1303 #, no-c-format msgid "" "name [required]: The text appears in the script menu." msgstr "" "name [requerit]: El text apareix al menú de l'script." #. Tag: para #: development.docbook:1304 #, no-c-format msgid "" "icon [optional]: The icon appears next to the text in the " "menu. All &kde; icon names can be used here." msgstr "" "icon [opcional]: La icona apareix al costat del text en " "el menú. Aquí es poden utilitzar tots els noms d'icones del &kde;. " #. Tag: para #: development.docbook:1305 #, no-c-format msgid "" "category [optional]: If a category is specified, the " "script appears in a submenu." msgstr "" "category [opcional]: Si s'especifica una categoria, " "l'script apareixerà en un submenú." #. Tag: para #: development.docbook:1306 #, no-c-format msgid "" "shortcut [optional]: The shortcut given here is the " "default shortcut. Example: Ctrl+Alt+t. See the Qt documentation " "for further details." msgstr "" "shortcut [opcional]: La drecera indicada serà la drecera " "per omissió. Exemple: Ctrl+Alt+t. Per a més detalls, " "vegeu la Documentació de les Qt." #. Tag: para #: development.docbook:1307 #, no-c-format msgid "" "interactive [optional]: If the script needs user input in " "the command line, set this to true." msgstr "" "interactive [opcional]: Si l'script necessita utilitzar " "l'entrada a la línia d'ordres, establiu-ho a true " "(vertader)." #. Tag: title #: development.docbook:1321 #, no-c-format msgid "Scripting API" msgstr "L'API per a la creació de scripts" #. Tag: para #: development.docbook:1323 #, no-c-format msgid "" "The scripting API presented here is available to all scripts, &ie; " "indentation scripts and command line commands. The Cursor and Range classes are provided by library " "files in $XDG_DATA_DIRS/katepart5/libraries. If you want to use them in your script, which needs to use some " "of the Document or View " "functions, please include the necessary library by using:" msgstr "" "L'API per a la creació de scripts que es presenta aquí està disponible per a " "tots els scripts, &pex;, els scripts de sagnat i una ordre de línia " "d'ordres. Les classes Cursor i Range són proporcionades pels fitxers de la biblioteca a " "$XDG_DATA_DIRS/katepart5/libraries. Si voleu " "utilitzar-los en el seu vostre script, serà necessari utilitzar algunes de " "les funcions Document o View, " "si us plau, afegiu la biblioteca necessària mitjançant:" #. Tag: programlisting #: development.docbook:1329 #, no-c-format msgid "" "// required katepart js libraries, e.g. range.js if you use Range\n" "require (\"range.js\");" msgstr "" "// es necessiten les biblioteques «js» de la katepart, per exemple, «range." "js»\n" "// si utilitzeu «Range»\n" "require (\"range.js\");" #. Tag: para #: development.docbook:1332 #, no-c-format msgid "" "To extend the standard scripting API with your own functions and prototypes " "simply create a new file in &kde;'s local configuration folder " "$XDG_DATA_HOME/katepart5/libraries and include it " "into your script using:" msgstr "" "Per estendre la norma de l'API per a la creació de scripts amb les vostres " "pròpies funcions i prototips n'hi ha prou amb crear un fitxer nou a la " "carpeta de configuració local del &kde; $XDG_DATA_HOME/katepart5/libraries i incloure'l a l'script utilitzant:" #. Tag: programlisting #: development.docbook:1337 #, no-c-format msgid "require (\"myscriptnamehere.js\");" msgstr "require (\"nom_script.js\");" #. Tag: para #: development.docbook:1341 #, no-c-format msgid "" "On &Windows; these files are located in %USER%\\AppData\\Local" "\\katepart5\\libraries. %USER% usually " "expands to C:\\\\Users\\\\user." msgstr "" "Al &Windows; aquests fitxers es troben a %USER%\\AppData\\Local" "\\katepart5\\libraries. %USER% que " "generalment s'expandeix a C:\\\\Users\\\\usuari." #. Tag: para #: development.docbook:1344 #, no-c-format msgid "" "To extend existing prototypes like Cursor or " "Range, the recommended way is to not modify the global *.js files. Instead, change " "the Cursor prototype in JavaScript after the " "cursor.js is included into your script via " "require." msgstr "" "Per estendre els prototips com Cursor o " "Range, la manera més recomanable és no modificar els fitxers *.js globals. En el seu " "lloc, canvieu el prototip Cursor en JavaScript " "després afegiu el cursor.js al vostre script mitjançant " "require." #. Tag: title #: development.docbook:1353 #, no-c-format msgid "Cursors and Ranges" msgstr "Cursors i intervals" #. Tag: para #: development.docbook:1355 #, no-c-format msgid "" "As &kappname; is a text editor, all the scripting API is based on cursors " "and ranges whenever possible. A Cursor is a simple (line, column) tuple representing a text position in the document. A Range spans " "text from a starting cursor position to an ending cursor position. The API " "is explained in detail in the next sections." msgstr "" "Com la &kappname; és un editor de text, tota l'API per a la creació de " "scripts es basa en els cursors i els intervals sempre que sigui possible. Un " "Cursor és una simple (line, column) que representa una " "posició del text en el document. Un «Range» s'estén pel text des de la " "posició del cursor fins a una posició final del cursor. L'API s'explica amb " "detall en les següents seccions." #. Tag: title #: development.docbook:1364 #, no-c-format msgid "The Cursor Prototype" msgstr "El prototip de «Cursor»" #. Tag: synopsis #: development.docbook:1367 #, no-c-format msgid "Cursor();" msgstr "Cursor();" #. Tag: para #: development.docbook:1368 #, no-c-format msgid "Constructor. Returns a Cursor at position (0, 0)." msgstr "Constructor. Retorna un cursor a la posició (0, 0)." #. Tag: para #: development.docbook:1370 #, no-c-format msgid "Example: var cursor = new Cursor();" msgstr "Exemple: var cursor = new Cursor();" #. Tag: synopsis #: development.docbook:1376 #, no-c-format msgid "" "Cursor(int line, " "int column);" msgstr "" "Cursor(int línia, " "int columna);" #. Tag: para #: development.docbook:1377 #, no-c-format msgid "Constructor. Returns a Cursor at position (line, column)." msgstr "Constructor. Retorna un cursor a la posició (línia, columna)." #. Tag: para #: development.docbook:1380 #, no-c-format msgid "Example: var cursor = new Cursor(3, 42);" msgstr "Exemple: var cursor = new Cursor(3, 42);" #. Tag: synopsis #: development.docbook:1386 #, no-c-format msgid "Cursor(Cursor other);" msgstr "" "Cursor(Cursor altra);" #. Tag: para #: development.docbook:1387 #, no-c-format msgid "" "Copy constructor. Returns a copy of the cursor other." msgstr "" "El constructor de còpia. Retorna una còpia del cursor altra." #. Tag: para #: development.docbook:1390 #, no-c-format msgid "Example: var copy = new Cursor(other);" msgstr "Exemple: var copy = new Cursor(altra);" #. Tag: synopsis #: development.docbook:1396 #, no-c-format msgid "Cursor Cursor.clone();" msgstr "Cursor Cursor.clone();" #. Tag: para #: development.docbook:1397 #, no-c-format msgid "Returns a clone of the cursor." msgstr "Retorna una còpia del cursor." #. Tag: para #: development.docbook:1399 #, no-c-format msgid "Example: var clone = cursor.clone();" msgstr "Exemple: var clone = cursor.clone();" #. Tag: synopsis #: development.docbook:1405 #, no-c-format msgid "" "Cursor.setPosition(int line, int column);" msgstr "" "Cursor.setPosition(int línia, int columna);" #. Tag: para #: development.docbook:1406 #, no-c-format msgid "" "Sets the cursor position to line and " "column." msgstr "" "Estableix la posició del cursor a línia i " "columna." #. Tag: para #: development.docbook:1408 development.docbook:1520 #, no-c-format msgid "Since: &kde; 4.11" msgstr "Des del: &kde; 4.11" #. Tag: synopsis #: development.docbook:1415 #, no-c-format msgid "bool Cursor.isValid();" msgstr "bool Cursor.isValid();" #. Tag: para #: development.docbook:1416 #, no-c-format msgid "" "Check whether the cursor is valid. The cursor is invalid, if line and/or " "column are set to -1." msgstr "" "Comproveu si el cursor és vàlid. El cursor no és vàlid, si la línia i/o la " "columna s'estableix a -1." #. Tag: para #: development.docbook:1420 #, no-c-format msgid "Example: var valid = cursor.isValid();" msgstr "Exemple: var valid = cursor.isValid();" #. Tag: synopsis #: development.docbook:1427 #, no-c-format msgid "Cursor Cursor.invalid();" msgstr "Cursor Cursor.invalid();" #. Tag: para #: development.docbook:1428 #, no-c-format msgid "Returns a new invalid cursor located at (-1, -1)." msgstr "Retorna un cursor nou no vàlid situat a (-1, -1)." #. Tag: para #: development.docbook:1431 #, no-c-format msgid "Example: var invalidCursor = cursor.invalid();" msgstr "Exemple: var invalidCursor = cursor.invalid();" #. Tag: synopsis #: development.docbook:1436 #, no-c-format msgid "" "int Cursor.compareTo(Cursor other);" msgstr "" "int Cursor.compareTo(Cursor altra);" #. Tag: para #: development.docbook:1437 #, no-c-format msgid "" "Compares this cursor to the cursor other. Returns" msgstr "" "Compara aquest cursor al cursor altra. Retorna" #. Tag: para #: development.docbook:1440 #, no-c-format msgid "" "-1, if this cursor is located before the cursor " "other," msgstr "" "-1, si el cursor està situat abans del cursor " "altra," #. Tag: para #: development.docbook:1441 #, no-c-format msgid "0, if both cursors equal and" msgstr "0, si tots dos cursors són iguals i" #. Tag: para #: development.docbook:1442 #, no-c-format msgid "" "+1, if this cursor is located after the cursor " "other." msgstr "" "+1, si el cursor està situat després del cursor " "altra." #. Tag: synopsis #: development.docbook:1449 #, no-c-format msgid "" "bool Cursor.equals(Cursor other);" msgstr "" "bool Cursor.equals(Cursor altra);" #. Tag: para #: development.docbook:1450 #, no-c-format msgid "" "Returns true, if this cursor and the cursor " "other are equal, otherwise false." msgstr "" "Retorna true (vertader), si aquest cursor i el cursor " "altra són iguals, en cas contrari retornarà " "false (fals)." #. Tag: synopsis #: development.docbook:1458 #, no-c-format msgid "String Cursor.toString();" msgstr "String Cursor.toString();" #. Tag: para #: development.docbook:1459 #, no-c-format msgid "" "Returns the cursor as a string of the form Cursor(line, " "column)." msgstr "" "Retorna el cursor com una cadena de la forma Cursor(line, " "column)." #. Tag: title #: development.docbook:1468 #, no-c-format msgid "The Range Prototype" msgstr "El prototip «Range»" #. Tag: synopsis #: development.docbook:1471 #, no-c-format msgid "Range();" msgstr "Range();" #. Tag: para #: development.docbook:1472 #, no-c-format msgid "" "Constructor. Calling new Range() returns a Range at (0, " "0) - (0, 0)." msgstr "" "El constructor. Crida new Range() retornant un interval " "(0, 0) - (0, 0)." #. Tag: synopsis #: development.docbook:1479 #, no-c-format msgid "" "Range(Cursor start, " "Cursor end);" msgstr "" "Range(Cursor inici, " "Cursor final);" #. Tag: para #: development.docbook:1480 #, no-c-format msgid "" "Constructor. Calling new Range(start, " "end) returns the Range " "(start, end)." msgstr "" "El constructor. Crida new Range(inici, " "final) retorna l'interval de " "(inici, final)." #. Tag: synopsis #: development.docbook:1487 #, no-c-format msgid "" "Range(int startLine, " "int startColumn, " "int endLine, " "int endColumn);" msgstr "" "Range(int líniaInici, " "int columnaInici, " "int líniaFinal, " "int columnaFinal);" #. Tag: para #: development.docbook:1488 #, no-c-format msgid "" "Constructor. Calling new Range(startLine, startColumn, endLine, endColumn) returns the " "Range from (startLine, startColumn) to (endLine, " "endColumn)." msgstr "" "El constructor. Crida new Range(líniaInici, columnaInici, " "líniaFinal, columnaFinal) retorna l'interval de (líniaInici, columnaInici) a " "(líniaFinal, columnaFinal)." #. Tag: synopsis #: development.docbook:1496 #, no-c-format msgid "Range(Range other);" msgstr "Range(Range altra);" #. Tag: para #: development.docbook:1497 #, no-c-format msgid "" "Copy constructor. Returns a copy of Range other." msgstr "" "El constructor de còpia. Retorna una còpia de l'interval altra." #. Tag: synopsis #: development.docbook:1504 #, no-c-format msgid "Range Range.clone();" msgstr "Range Range.clone();" #. Tag: para #: development.docbook:1505 #, no-c-format msgid "Returns a clone of the range." msgstr "Retorna una còpia de l'interval." #. Tag: para #: development.docbook:1508 #, no-c-format msgid "Example: var clone = range.clone();" msgstr "Exemple: var clone = range.clone();" #. Tag: synopsis #: development.docbook:1514 #, no-c-format msgid "bool Range.isEmpty();" msgstr "bool Range.isEmpty();" #. Tag: para #: development.docbook:1515 #, no-c-format msgid "" "Returns true, if the start and end cursors are equal." msgstr "" "Retorna true (vertader), si inici i final del cursor són " "iguals." #. Tag: para #: development.docbook:1518 #, no-c-format msgid "Example: var empty = range.isEmpty();" msgstr "Exemple: var empty = range.isEmpty();" #. Tag: synopsis #: development.docbook:1527 #, no-c-format msgid "bool Range.isValid();" msgstr "bool Range.isValid();" #. Tag: para #: development.docbook:1528 #, no-c-format msgid "" "Returns true, if both start and end cursor are valid, " "otherwise false." msgstr "" "Retorna true (vertader), si inici i final del cursor són " "vàlids, en cas contrari retornarà false (fals)." #. Tag: para #: development.docbook:1531 #, no-c-format msgid "Example: var valid = range.isValid();" msgstr "Exemple: var valid = range.isValid();" #. Tag: synopsis #: development.docbook:1537 #, no-c-format msgid "Range Range.invalid();" msgstr "Range Range.invalid();" #. Tag: para #: development.docbook:1538 #, no-c-format msgid "Returns the Range from (-1, -1) to (-1, -1)." msgstr "Retorna l'interval de (-1, -1) a (-1, -1)." #. Tag: synopsis #: development.docbook:1545 #, no-c-format msgid "" "bool Range.contains(Cursor cursor);" msgstr "" "bool Range.contains(Cursor cursor);" #. Tag: para #: development.docbook:1546 #, no-c-format msgid "" "Returns true, if this range contains the cursor position, " "otherwise false." msgstr "" "Retorna true (vertader) si aquest interval conté la " "posició de cursor, en cas contrari retornarà false (fals)." #. Tag: synopsis #: development.docbook:1553 #, no-c-format msgid "" "bool Range.contains(Range other);" msgstr "" "bool Range.contains(Range altra);" #. Tag: para #: development.docbook:1554 #, no-c-format msgid "" "Returns true, if this range contains the Range " "other, otherwise false." msgstr "" "Retorna true (vertader), si aquest interval conté " "l'interval altra, en cas contrari retornarà " "false (fals)." #. Tag: synopsis #: development.docbook:1562 #, no-c-format msgid "" "bool Range.containsColumn(int column);" msgstr "" "bool Range.containsColumn(int columna);" #. Tag: para #: development.docbook:1563 #, no-c-format msgid "" "Returns true, if column is in " "the half open interval [start.column, end.column), " "otherwise false." msgstr "" "Retorna true (vertader), si columna està en l'interval obert mig [start.column, end." "column), en cas contrari retornarà false (fals)." #. Tag: synopsis #: development.docbook:1571 #, no-c-format msgid "" "bool Range.containsLine(int line);" msgstr "" "bool Range.containsLine(int línia);" #. Tag: para #: development.docbook:1572 #, no-c-format msgid "" "Returns true, if line is in " "the half open interval [start.line, end.line), otherwise " "false." msgstr "" "Retorna true (vertader), si línia està en l'interval obert mig [start.line, end.line), en cas contrari retornarà false (fals)." #. Tag: synopsis #: development.docbook:1580 #, no-c-format msgid "" "bool Range.overlaps(Range other);" msgstr "" "bool Range.overlaps(Range altre);" #. Tag: para #: development.docbook:1581 #, no-c-format msgid "" "Returns true, if this range and the range " "other share a common region, otherwise " "false." msgstr "" "Retorna true (vertader), si aquest interval i l'interval " "altre comparteixen una regió comuna, en cas " "contrari retornarà false (fals)." #. Tag: synopsis #: development.docbook:1589 #, no-c-format msgid "" "bool Range.overlapsLine(int line);" msgstr "" "bool Range.overlapsLine(int línia);" #. Tag: para #: development.docbook:1590 #, no-c-format msgid "" "Returns true, if line is in " "the interval [start.line, end.line], otherwise " "false." msgstr "" "Retorna true (vertader), si línia està en l'interval [start.line, end.line], " "en cas contrari retornarà false (fals)." #. Tag: synopsis #: development.docbook:1598 #, no-c-format msgid "" "bool Range.overlapsColumn(int column);" msgstr "" "bool Range.overlapsColumn(int columna);" #. Tag: para #: development.docbook:1599 #, no-c-format msgid "" "Returns true, if column is in " "the interval [start.column, end.column], otherwise " "false." msgstr "" "Retorna true (vertader), si columna està en l'interval [start.column, end.column], en cas contrari retornarà false (fals)." #. Tag: synopsis #: development.docbook:1607 #, no-c-format msgid "bool Range.onSingleLine();" msgstr "bool Range.onSingleLine();" #. Tag: para #: development.docbook:1608 #, no-c-format msgid "" "Returns true, if the range starts and ends at the same " "line, &ie; if Range.start.line == Range.end.line." msgstr "" "Retorna true (vertader), si l'interval comença i " "finalitza a la mateixa línia, &ead; si Línia.comença.interval " "== Línia.finalitza.interval." #. Tag: para #: development.docbook:1612 development.docbook:1969 development.docbook:2108 #, no-c-format msgid "Since: &kde; 4.9" msgstr "Des del: &kde; 4.9" #. Tag: synopsis #: development.docbook:1619 #, no-c-format msgid "" "bool Range.equals(Range other);" msgstr "" "bool Range.equals(Range altra);" #. Tag: para #: development.docbook:1620 #, no-c-format msgid "" "Returns true, if this range and the Range " "other are equal, otherwise false." msgstr "" "Retorna true (vertader), si aquest interval i l'interval " "altra són iguals, en cas contrari retornarà " "false (fals)." #. Tag: synopsis #: development.docbook:1628 #, no-c-format msgid "String Range.toString();" msgstr "String Range.toString();" #. Tag: para #: development.docbook:1629 #, no-c-format msgid "" "Returns the range as a string of the form Range(Cursor(line, " "column), Cursor(line, column))." msgstr "" "Retorna l'interval com una cadena de la forma «Rang(Cursor(line, " "column), Cursor(line, column))»." #. Tag: title #: development.docbook:1638 #, no-c-format msgid "Global Functions" msgstr "Funcions globals" #. Tag: para #: development.docbook:1639 #, no-c-format msgid "This section lists all global functions." msgstr "Aquesta secció llista totes les funcions globals." #. Tag: title #: development.docbook:1643 #, no-c-format msgid "Reading & Including Files" msgstr "Llegir i incloure fitxers" #. Tag: synopsis #: development.docbook:1646 #, no-c-format msgid "" "String read(String file);" msgstr "" "String read(String fitxer);" #. Tag: para #: development.docbook:1647 #, no-c-format msgid "" "Will search the given file relative to the " "katepart/script/files directory and return its content as " "a string." msgstr "" "Cercarà el fitxer donat en relació al directori " "katepart/script/files i retorna el seu contingut com una " "cadena." #. Tag: synopsis #: development.docbook:1653 #, no-c-format msgid "" "void require(String file);" msgstr "" "void require(String fitxer);" #. Tag: para #: development.docbook:1654 #, no-c-format msgid "" "Will search the given file relative to the " "katepart/script/libraries directory and evaluate it. " "require is internally guarded against multiple inclusions " "of the same file." msgstr "" "Cercarà el fitxer donat en relació al directori " "katepart/script/libraries i l'avaluarà. require està internament protegit contra inclusions múltiples del mateix " "fitxer." #. Tag: para #: development.docbook:1658 #, no-c-format msgid "Since: &kde; 4.10" msgstr "Des del: &kde; 4.10" #. Tag: title #: development.docbook:1667 #, no-c-format msgid "Debugging" msgstr "Depuració" #. Tag: synopsis #: development.docbook:1670 #, no-c-format msgid "" "void debug(String text);" msgstr "" "void debug(String text);" #. Tag: para #: development.docbook:1671 #, no-c-format msgid "" "Prints text to stdout in the " "console launching the application." msgstr "" "Imprimeix text a stdout a la " "consola de llançament de l'aplicació." #. Tag: title #: development.docbook:1680 #, no-c-format msgid "Translation" msgstr "Traducció" # skip-rule: common-tutorial #. Tag: para #: development.docbook:1682 #, no-c-format msgid "" "In order to support full localization, there are several functions to " "translate strings in scripts, namely i18n, " "i18nc, i18np and i18ncp. These functions behave exactly like &kde;'s translation " "functions." msgstr "" "Per tal de donar suport a la completa localització, hi ha diverses funcions " "per convertir cadenes en els scripts, anomenades i18n, " "i18nc, i18np i i18ncp. Aquestes funcions es comporten exactament com les funcions " "de traducció del &kde;." #. Tag: para #: development.docbook:1689 #, no-c-format msgid "" "The translation functions translate the wrapped strings through &kde;'s " "translation system to the language used in the application. Strings in " "scripts being developed in the official &kappname; sources are automatically " "extracted and translatable. In other words, as a &kappname; developer you do " "not have to bother with message extraction and translation. It should be " "noted though, that the translation only works inside the &kde; " "infrastructure, &ie;, new strings in 3rd-party scripts developed outside of " "&kde; are not translated. Therefore, please consider contributing your " "scripts to &kate; such that proper translation is possible." msgstr "" "Les funcions de traducció tradueixen les cadenes embolcallades a través del " "sistema de traducció del &kde; per a l'idioma utilitzat en l'aplicació. Les " "cadenes als scripts es desenvolupen a les fonts oficials de la &kappname; i " "s'extrauen de forma automàtica i traduïble. En altres paraules, com a " "desenvolupador de la &kappname; no haureu de preocupar-vos per l'extracció " "dels missatges i la traducció. Cal assenyalar però, que la traducció només " "funciona dins de la infraestructura del &kde;, &ead;, les cadenes noves als " "scripts de terceres parts desenvolupats fora del &kde; no seran traduïbles. " "Per tant, considereu en contribuir els vostres scripts al &kate;, de tal " "manera que sigui possible una traducció apropiada." #. Tag: synopsis #: development.docbook:1701 #, no-c-format msgid "" "void i18n(String text, " "arg1, ...);" msgstr "" "void i18n(String text, " "arg1...);" #. Tag: para #: development.docbook:1702 #, no-c-format msgid "" "Translates text into the language used by the " "application. The arguments arg1, ..., are " "optional and used to replace the placeholders %1, " "%2, etc." msgstr "" "Tradueix text a la llengua emprada per " "l'aplicació. Els arguments arg1..., són opcionals " "i s'utilitzen per a substituir els arguments %1, " "%2, &etc;" #. Tag: synopsis #: development.docbook:1709 #, no-c-format msgid "" "void i18nc(String context, " "String text, " "arg1, ...);" msgstr "" "void i18nc(String context, " "String text, " "arg1...);" #. Tag: para #: development.docbook:1710 #, no-c-format msgid "" "Translates text into the language used by the " "application. Additionally, the string context is " "visible to translators so they can provide a better translation. The " "arguments arg1, ..., are optional and used to " "replace the placeholders %1, %2, etc." msgstr "" "Tradueix text a la llengua emprada per " "l'aplicació. A més, la cadena context és visible " "als traductors perquè puguin oferir una millor traducció. Els arguments " "arg1..., són opcionals i s'utilitzen per a " "substituir els arguments %1, %2, &etc;" #. Tag: synopsis #: development.docbook:1719 #, no-c-format msgid "" "void i18np(String singular, String plural, " "int number, " "arg1, ...);" msgstr "" "void i18np(String singular, String plural, " "int número, " "arg1...);" #. Tag: para #: development.docbook:1720 #, no-c-format msgid "" "Translates either singular or " "plural into the language used by the application, " "depending on the given number. The arguments " "arg1, ..., are optional and used to replace the " "placeholders %1, %2, etc." msgstr "" "Tradueix singular o plural a la llengua emprada per l'aplicació, en funció del " "número indicat. Els arguments arg1..., són opcionals i s'utilitzen per a substituir els arguments " "%1, %2, &etc;" #. Tag: synopsis #: development.docbook:1729 #, no-c-format msgid "" "void i18ncp(String context, String singular, String plural, " "int number, " "arg1, ...);" msgstr "" "void i18ncp(String context, String singular, String plural, " "int número, " "arg1...);" #. Tag: para #: development.docbook:1730 #, no-c-format msgid "" "Translates either singular or " "plural into the language used by the application, " "depending on the given number. Additionally, the " "string context is visible to translators so they " "can provide a better translation. The arguments arg1, ..., are optional and used to replace the placeholders " "%1, %2, etc." msgstr "" "Tradueix singular o plural a la llengua emprada per l'aplicació, en funció del " "número indicat. A més, la cadena " "context és visible als traductors perquè puguin " "oferir una millor traducció. Els arguments arg1..., són opcionals i s'utilitzen per a substituir els arguments " "%1, %2, &etc;" #. Tag: title #: development.docbook:1744 #, no-c-format msgid "The View API" msgstr "L'API de «View»" #. Tag: para #: development.docbook:1745 #, no-c-format msgid "" "Whenever a script is being executed, there is a global variable " "view representing the current active " "editor view. The following is a list of all available View functions." msgstr "" "Cada vegada que s'executa un script, si hi ha una variable global " "view que representa la vista actual de " "l'editor actiu. La següent és una llista de totes les funcions «View» " "disponibles." #. Tag: synopsis #: development.docbook:1752 #, no-c-format msgid "Cursor view.cursorPosition()" msgstr "Cursor view.cursorPosition()" #. Tag: para #: development.docbook:1753 #, no-c-format msgid "Returns the current cursor position in the view." msgstr "Retorna la posició actual del cursor en la vista." #. Tag: synopsis #: development.docbook:1758 #, no-c-format msgid "" "void view.setCursorPosition(int line, int column);\n" "void view.setCursorPosition(Cursor cursor);" msgstr "" "void view.setCursorPosition(int línia, int columna);\n" "void view.setCursorPosition(Cursor cursor);" #. Tag: para #: development.docbook:1759 #, no-c-format msgid "" "Set the current cursor position to either (line, column) or to the given " "cursor." msgstr "" "Estableix la posició actual del cursor a (línia, columna) o el cursor " "indicat." #. Tag: synopsis #: development.docbook:1766 #, no-c-format msgid "Cursor view.virtualCursorPosition();" msgstr "Cursor view.virtualCursorPosition();" #. Tag: para #: development.docbook:1767 #, no-c-format msgid "" "Returns the virtual cursor position with each tab counting the corresponding " "amount of spaces depending on the current tab width." msgstr "" "Retorna la posició del cursor virtual amb cada tabulació comptant la " "corresponent quantitat d'espais depenent de l'amplada de la tabulació actual." #. Tag: synopsis #: development.docbook:1774 #, no-c-format msgid "" "void view.setVirtualCursorPosition(int line, int column);\n" "void view.setVirtualCursorPosition(Cursor cursor);" msgstr "" "void view.setVirtualCursorPosition(int línia, int column);\n" "void view.setVirtualCursorPosition(Cursor cursor);" #. Tag: para #: development.docbook:1775 #, no-c-format msgid "" "Set the current virtual cursor position to (line, column) or to the given " "cursor." msgstr "" "Estableix la posició actual del cursor virtual (línia, columna) o el cursor " "indicat." #. Tag: synopsis #: development.docbook:1782 #, no-c-format msgid "String view.selectedText();" msgstr "String view.selectedText();" #. Tag: para #: development.docbook:1783 #, no-c-format msgid "" "Returns the selected text. If no text is selected, the returned string is " "empty." msgstr "" "Retorna el text seleccionat. Si no hi ha text seleccionat, la cadena " "retornada estarà buida." #. Tag: synopsis #: development.docbook:1790 #, no-c-format msgid "bool view.hasSelection();" msgstr "bool view.hasSelection();" #. Tag: para #: development.docbook:1791 #, no-c-format msgid "" "Returns true, if the view has selected text, otherwise " "false." msgstr "" "Retorna true (vertader), si la vista conté el text " "seleccionat, en cas contrari retornarà false (fals)." #. Tag: synopsis #: development.docbook:1798 #, no-c-format msgid "Range view.selection();" msgstr "Range view.selection();" #. Tag: para #: development.docbook:1799 #, no-c-format msgid "" "Returns the selected text range. The returned range is invalid if there is " "no selected text." msgstr "" "Retorna l'interval de text seleccionat. L'interval retornat no serà vàlid si " "no hi ha text seleccionat." #. Tag: synopsis #: development.docbook:1807 #, no-c-format msgid "" "void view.setSelection(Range range);" msgstr "" "void view.setSelection(Range rang);" #. Tag: para #: development.docbook:1808 #, no-c-format msgid "Set the selected text to the given range." msgstr "Estableix el text seleccionat a l'interval indicat." #. Tag: synopsis #: development.docbook:1815 #, no-c-format msgid "void view.removeSelectedText();" msgstr "void view.removeSelectedText();" #. Tag: para #: development.docbook:1816 #, no-c-format msgid "" "Remove the selected text. If the view does not have any selected text, this " "does nothing." msgstr "" "Elimina el text seleccionat. Si la vista no té cap text seleccionat, no farà " "res." #. Tag: synopsis #: development.docbook:1824 #, no-c-format msgid "void view.selectAll();" msgstr "void view.selectAll();" #. Tag: para #: development.docbook:1825 #, no-c-format msgid "Selects the entire text in the document." msgstr "Selecciona el text sencer en el document." #. Tag: synopsis #: development.docbook:1832 #, no-c-format msgid "void view.clearSelection();" msgstr "void view.clearSelection();" #. Tag: para #: development.docbook:1833 #, no-c-format msgid "Clears the text selection without removing the text." msgstr "Neteja la selecció de text sense eliminar-lo." #. Tag: synopsis #: development.docbook:1839 #, no-c-format msgid "" "object view.executeCommand(String command,\n" " String args,\n" " Range range);" msgstr "" "object view.executeCommand(String ordre,\n" " String args,\n" " Range interval);" #. Tag: para #: development.docbook:1840 #, no-c-format msgid "" "Executes the command " "line command command with the optional " "arguments args and the optional " "range. The returned object has a boolean property object.ok " "that indicates whether execution of the command " "was successful. In case of an error, the string object.status contains an error message." msgstr "" "Executa l'ordredes de la línia d'ordres amb els " "arguments args opcionals i " "l'interval opcional. L'objecte retornat tindrà una propietat booleana object.ok, la qual indica que l'execució de l'ordre ha tingut èxit. En cas d'error, la cadena object." "status contindrà un missatge d'error." #. Tag: para #: development.docbook:1847 development.docbook:2549 development.docbook:2559 #: development.docbook:2569 #, no-c-format msgid "Since: &kde-frameworks; 5.50" msgstr "Des del: &kde-frameworks; 5.0" #. Tag: title #: development.docbook:1856 #, no-c-format msgid "The Document API" msgstr "L'API de «Document»" #. Tag: para #: development.docbook:1857 #, no-c-format msgid "" "Whenever a script is being executed, there is a global variable " "document representing the current active " "document. The following is a list of all available Document functions." msgstr "" "Cada vegada que s'executa un script, si hi ha una variable global " "document que representa el document actiu " "actual. La següent és una llista de totes les funcions de «Document» " "disponibles." #. Tag: synopsis #: development.docbook:1865 #, no-c-format msgid "String document.fileName();" msgstr "String document.fileName();" #. Tag: para #: development.docbook:1866 #, no-c-format msgid "" "Returns the document's filename or an empty string for unsaved text buffers." msgstr "" "Retorna el nom de fitxer del document o una cadena buida per a la memòria " "cau del text sense desar." #. Tag: synopsis #: development.docbook:1873 #, no-c-format msgid "String document.url();" msgstr "String document.url();" #. Tag: para #: development.docbook:1874 #, no-c-format msgid "" "Returns the document's full url or an empty string for unsaved text buffers." msgstr "" "Retorna l'URL complet del document o una cadena buida per a la memòria cau " "del text sense desar." #. Tag: synopsis #: development.docbook:1881 #, no-c-format msgid "String document.mimeType();" msgstr "String document.mimeType();" #. Tag: para #: development.docbook:1882 #, no-c-format msgid "" "Returns the document's mime type or the mime type application/octet-" "stream if no appropriate mime type could be found." msgstr "" "Retorna el tipus MIME del document o el tipus MIME application/" "octet-stream si no es pot trobar un tipus MIME adequat." #. Tag: synopsis #: development.docbook:1890 #, no-c-format msgid "String document.encoding();" msgstr "String document.encoding();" #. Tag: para #: development.docbook:1891 #, no-c-format msgid "Returns the currently used encoding to save the file." msgstr "Retorna la codificació emprada actualment per a desar el fitxer." #. Tag: synopsis #: development.docbook:1897 #, no-c-format msgid "String document.highlightingMode();" msgstr "String document.highlightingMode();" #. Tag: para #: development.docbook:1898 #, no-c-format msgid "Returns the global highlighting mode used for the whole document." msgstr "Retorna el mode de ressaltat global emprat per a tot el document." #. Tag: synopsis #: development.docbook:1904 #, no-c-format msgid "" "String document.highlightingModeAt(Cursor pos);" msgstr "" "String document.highlightingModeAt(Cursor pos);" #. Tag: para #: development.docbook:1905 #, no-c-format msgid "" "Returns the highlighting mode used at the given position in the document." msgstr "" "Retorna el mode de ressaltat emprat a la posició indicada en el document." #. Tag: synopsis #: development.docbook:1911 #, no-c-format msgid "Array document.embeddedHighlightingModes();" msgstr "Array document.embeddedHighlightingModes();" #. Tag: para #: development.docbook:1912 #, no-c-format msgid "Returns an array of highlighting modes embedded in this document." msgstr "Retorna una cadena de modes de ressaltat inclosos en aquest document." #. Tag: synopsis #: development.docbook:1918 #, no-c-format msgid "bool document.isModified();" msgstr "bool document.isModified();" #. Tag: para #: development.docbook:1919 #, no-c-format msgid "" "Returns true, if the document has unsaved changes " "(modified), otherwise false." msgstr "" "Retorna true (vertader), si el document conté canvis " "sense desar (modificat), en cas contrari retornarà false " "(fals)." #. Tag: synopsis #: development.docbook:1926 #, no-c-format msgid "String document.text();" msgstr "String document.text();" #. Tag: para #: development.docbook:1927 #, no-c-format msgid "" "Returns the entire content of the document in a single text string. Newlines " "are marked with the newline character \\n." msgstr "" "Retorna el contingut complet del document en una cadena de text única. Els " "salts de línia estan marcats amb el caràcter de nova línia " "\\n." #. Tag: synopsis #: development.docbook:1935 #, no-c-format msgid "" "String document.text(int fromLine, int fromColumn, int toLine, " "int toColumn);\n" "String document.text(Cursor from, Cursor to);\n" "String document.text(Range range);" msgstr "" "String document.text(int desDeLínia, int desDeColumna, int alaLínia, " "int alaColumna);\n" "String document.text(Cursor desDe, Cursor a);\n" "String document.text(Range rang);" #. Tag: para #: development.docbook:1936 #, no-c-format msgid "" "Returns the text in the given range. It is recommended to use the cursor and " "range based version for better readability of the source code." msgstr "" "Retorna el text en l'interval donat. Es recomana utilitzar el cursor i la " "versió basada en l'interval per a una millor lectura del codi font." #. Tag: synopsis #: development.docbook:1944 #, no-c-format msgid "" "String document.line(int line);" msgstr "" "String document.line(int línia);" #. Tag: para #: development.docbook:1945 #, no-c-format msgid "" "Returns the given text line as string. The string is empty if the requested " "line is out of range." msgstr "" "Retorna la línia de text donada com a cadena. La cadena estarà buida si la " "línia demanada està fora de l'interval." #. Tag: synopsis #: development.docbook:1953 #, no-c-format msgid "" "String document.wordAt(int line, int column);\n" "String document.wordAt(Cursor cursor);" msgstr "" "String document.wordAt(int línia, int columna);\n" "String document.wordAt(Cursor cursor);" #. Tag: para #: development.docbook:1954 #, no-c-format msgid "Returns the word at the given cursor position." msgstr "Retorna la paraula a la posició del cursor donada." #. Tag: synopsis #: development.docbook:1962 #, no-c-format msgid "" "Range document.wordRangeAt(int line, int column);\n" "Range document.wordRangeAt(Cursor cursor);" msgstr "" "Range document.wordRangeAt(int línia, int columna);\n" "Range document.wordRangeAt(Cursor cursor);" #. Tag: para #: development.docbook:1964 #, no-c-format msgid "" "Return the range of the word at the given cursor position. The returned " "range is invalid (see Range.isValid()), if the text position is after the " "end of a line. If there is no word at the given cursor, an empty range is " "returned." msgstr "" "Retorna l'interval de la paraula a la posició del cursor donada. L'interval " "retornat no serà vàlid (vegeu Range.isValid()), si la posició del text és " "després del final d'una línia. Si no hi ha paraula al cursor donat, es " "retornarà un interval buit." #. Tag: synopsis #: development.docbook:1977 #, no-c-format msgid "" "String document.charAt(int line, int column);\n" "String document.charAt(Cursor cursor);" msgstr "" "String document.charAt(int línia, int columna);\n" "String document.charAt(Cursor cursor);" #. Tag: para #: development.docbook:1978 #, no-c-format msgid "Returns the character at the given cursor position." msgstr "Retorna el caràcter a la posició del cursor donada." #. Tag: synopsis #: development.docbook:1985 #, no-c-format msgid "" "String document.firstChar(int line);" msgstr "" "String document.firstChar(int línia);" #. Tag: para #: development.docbook:1986 #, no-c-format msgid "" "Returns the first character in the given line " "that is not a whitespace. The first character is at column 0. If the line is " "empty or only contains whitespace characters, the returned string is empty." msgstr "" "Retorna el primer caràcter en la línia donada que " "no és un espai en blanc. El primer caràcter és a la columna 0. Si la línia " "està buida o només conté espais en blanc, la cadena retornada estarà buida." #. Tag: synopsis #: development.docbook:1996 #, no-c-format msgid "" "String document.lastChar(int line);" msgstr "" "String document.lastChar(int línia);" #. Tag: para #: development.docbook:1997 #, no-c-format msgid "" "Returns the last character in the given line that " "is not a whitespace. If the line is empty or only contains whitespace " "characters, the returned string is empty." msgstr "" "Retorna l'últim caràcter de la línia donada que " "no és un espai en blanc. Si la línia està buida o només conté espais en " "blanc, la cadena retornada estarà buida." #. Tag: synopsis #: development.docbook:2006 #, no-c-format msgid "" "bool document.isSpace(int line, int column);\n" "bool document.isSpace(Cursor cursor);" msgstr "" "bool document.isSpace(int línia, int columna);\n" "bool document.isSpace(Cursor cursor);" #. Tag: para #: development.docbook:2007 #, no-c-format msgid "" "Returns true, if the character at the given cursor " "position is a whitespace, otherwise false." msgstr "" "Retorna true (vertader), si el caràcter a la posició del " "cursor donada és un espai en blanc, en cas contrari retornarà " "false (fals)." #. Tag: synopsis #: development.docbook:2015 #, no-c-format msgid "" "bool document.matchesAt(int line, int column, " "String text);\n" "bool document.matchesAt(Cursor cursor, String text);" msgstr "" "bool document.matchesAt(int línia, int columna, " "String text);\n" "bool document.matchesAt(Cursor cursor, String text);" #. Tag: para #: development.docbook:2016 #, no-c-format msgid "" "Returns true, if the given text matches at the corresponding cursor position, otherwise " "false." msgstr "" "Retorna true (vertader), si el text donat coincideix a la posició del cursor corresponent, en cas " "contrari retornarà false (fals)." #. Tag: synopsis #: development.docbook:2024 #, no-c-format msgid "" "bool document.startsWith(int line, String text, " "bool skipWhiteSpaces);" msgstr "" "bool document.startsWith(int línia, String text, " "bool skipWhiteSpaces);" #. Tag: para #: development.docbook:2025 #, no-c-format msgid "" "Returns true, if the line starts with text, otherwise false. The argument " "skipWhiteSpaces controls whether leading " "whitespaces are ignored." msgstr "" "Retorna true (vertader), si la línia comença amb " "text, en cas contrari retornarà false (fals). L'argument skipWhiteSpaces " "controla si s'han d'ometre els espais en blanc al davant." #. Tag: synopsis #: development.docbook:2033 #, no-c-format msgid "" "bool document.endsWith(int line, String text, " "bool skipWhiteSpaces);" msgstr "" "bool document.endsWith(int línia, String text, " "bool skipWhiteSpaces);" #. Tag: para #: development.docbook:2034 #, no-c-format msgid "" "Returns true, if the line ends with text, otherwise false. The argument " "skipWhiteSpaces controls whether trailing " "whitespaces are ignored." msgstr "" "Retorna true (vertader), si la línia acaba amb " "text, en cas contrari retornarà false (fals). L'argument skipWhiteSpaces " "controla si s'han d'ometre els espais en blanc finals." #. Tag: synopsis #: development.docbook:2042 #, no-c-format msgid "" "bool document.setText(String text);" msgstr "" "bool document.setText(String text);" #. Tag: para #: development.docbook:2043 #, no-c-format msgid "Sets the entire document text." msgstr "Estableix el text a tot el document." #. Tag: synopsis #: development.docbook:2050 #, no-c-format msgid "bool document.clear();" msgstr "bool document.clear();" #. Tag: para #: development.docbook:2051 #, no-c-format msgid "Removes the entire text in the document." msgstr "Elimina tot el text en el document." #. Tag: synopsis #: development.docbook:2058 #, no-c-format msgid "" "bool document.truncate(int line, int column);\n" "bool document.truncate(Cursor cursor);" msgstr "" "bool document.truncate(int línia, int columna);\n" "bool document.truncate(Cursor cursor);" #. Tag: para #: development.docbook:2059 #, no-c-format msgid "" "Truncate the given line at the given column or cursor position. Returns " "true on success, or false if the given " "line is not part of the document range." msgstr "" "Trunca la línia donada a la columna o la posició donada del cursor. Retorna " "true (vertader) en cas d'èxit, o false " "(fals) si la línia donada no forma part de l'interval del document." #. Tag: synopsis #: development.docbook:2067 #, no-c-format msgid "" "bool document.insertText(int line, int column, " "String text);\n" "bool document.insertText(Cursor cursor, String text);" msgstr "" "bool document.insertText(int línia, int columna, " "String text);\n" "bool document.insertText(Cursor cursor, String text);" #. Tag: para #: development.docbook:2068 #, no-c-format msgid "" "Inserts the text at the given cursor position. " "Returns true on success, or false, if " "the document is in read-only mode." msgstr "" "Insereix el text a la posició donada del cursor. " "Retorna true (vertader) en cas d'èxit, o false (fals), si el document està en el mode de només lectura." #. Tag: synopsis #: development.docbook:2076 #, no-c-format msgid "" "bool document.removeText(int fromLine, int fromColumn, int toLine, " "int toColumn);\n" "bool document.removeText(Cursor from, Cursor to);\n" "bool document.removeText(Range range);" msgstr "" "bool document.removeText(int desDeLínia, int desDeColumna, int alaLínia, int alaColumna);\n" "bool document.removeText(Cursor desDe, Cursor a);\n" "bool document.removeText(Range rang);" #. Tag: para #: development.docbook:2077 #, no-c-format msgid "" "Removes the text in the given range. Returns true on " "success, or false, if the document is in read-only mode." msgstr "" "Elimina el text dins de l'interval donat. Retorna true " "(vertader) en cas d'èxit, o false (fals), si el document " "està en el mode de només lectura." #. Tag: synopsis #: development.docbook:2085 #, no-c-format msgid "" "bool document.insertLine(int line, String text);" msgstr "" "bool document.insertLine(int línia, String text);" #. Tag: para #: development.docbook:2086 #, no-c-format msgid "" "Inserts text in the given line. Returns true on success, " "or false, if the document is in read-only mode or the " "line is not in the document range." msgstr "" "Insereix text en la línia donada. Retorna true (vertader) " "en cas d'èxit, o false (fals), si el document està en el " "mode de només lectura o la línia no està en l'interval del document." #. Tag: synopsis #: development.docbook:2094 #, no-c-format msgid "" "bool document.removeLine(int line);" msgstr "" "bool document.removeLine(int línia);" #. Tag: para #: development.docbook:2095 #, no-c-format msgid "" "Removes the given text line. Returns true on success, or " "false, if the document is in read-only mode or the line " "is not in the document range." msgstr "" "Elimina la línia de text donada. Retorna true (vertader) " "en cas d'èxit, o false (fals), si el document està en el " "mode de només lectura o la línia no està en l'interval del document." #. Tag: synopsis #: development.docbook:2103 #, no-c-format msgid "" "bool document.wrapLine(int line, int column);\n" "bool document.wrapLine(Cursor cursor);" msgstr "" "bool document.wrapLine(int línia, int columna);\n" "bool document.wrapLine(Cursor cursor);" #. Tag: para #: development.docbook:2104 #, no-c-format msgid "" "Wraps the line at the given cursor position. Returns true " "on success, otherwise false, ⪚ if line < 0." msgstr "" "Ajusta la línia a la posició del cursor donada. Retorna true (vertader) en cas d'èxit, o false (fals), &pex; " "si la línia < 0." #. Tag: synopsis #: development.docbook:2116 #, no-c-format msgid "" "void document.joinLines(int startLine, int endLine);" msgstr "" "void document.joinLines(int iniciLínia, int finalLínia);" #. Tag: para #: development.docbook:2117 #, no-c-format msgid "" "Joins the lines from startLine to " "endLine. Two succeeding text lines are always " "separated with a single space." msgstr "" "S'uneix a les línies de iniciLínia a " "finalLínia. Dues línies de text successives " "sempre estan separades per un espai." #. Tag: synopsis #: development.docbook:2125 #, no-c-format msgid "int document.lines();" msgstr "int document.lines();" #. Tag: para #: development.docbook:2126 #, no-c-format msgid "Returns the number of lines in the document." msgstr "Retorna el nombre de línies en el document." #. Tag: synopsis #: development.docbook:2133 #, no-c-format msgid "" "bool document.isLineModified(int line);" msgstr "" "bool document.isLineModified(int línia);" #. Tag: para #: development.docbook:2134 #, no-c-format msgid "" "Returns true, if line " "currently contains unsaved data." msgstr "" "Retorna true (vertader), si la línia actual conté dades sense desar." #. Tag: para #: development.docbook:2137 development.docbook:2149 development.docbook:2160 #: development.docbook:2172 development.docbook:2346 #, no-c-format msgid "Since: &kde; 5.0" msgstr "Des del: &kde; 5.0" #. Tag: synopsis #: development.docbook:2144 #, no-c-format msgid "" "bool document.isLineSaved(int line);" msgstr "" "bool document.isLineSaved(int línia);" #. Tag: para #: development.docbook:2145 #, no-c-format msgid "" "Returns true, if line was " "changed, but the document was saved. Hence, the line currently does not " "contain any unsaved data." msgstr "" "Retorna true (vertader), si la línia ha canviat, però el document ha estat desat. Per tant, la línia " "actual no conté cap dada sense desar." #. Tag: synopsis #: development.docbook:2156 #, no-c-format msgid "" "bool document.isLineTouched(int line);" msgstr "" "bool document.isLineTouched(int línia);" #. Tag: para #: development.docbook:2157 #, no-c-format msgid "" "Returns true, if line " "currently contains unsaved data or was changed before." msgstr "" "Retorna true (vertader), si la línia actual conté dades sense desar o que s'han canviat abans." #. Tag: synopsis #: development.docbook:2167 #, no-c-format msgid "" "bool document.findTouchedLine(int startLine, bool down);" msgstr "" "bool document.findTouchedLine(int iniciLínia, bool avall);" #. Tag: para #: development.docbook:2168 #, no-c-format msgid "" "Search for the next touched line starting at line. The search is performed either upwards or downwards depending " "on the search direction specified in down." msgstr "" "Cerca la següent línia tocada començant per la línia. La cerca es realitza amunt o avall depenent de la direcció " "especificada a avall." #. Tag: synopsis #: development.docbook:2179 #, no-c-format msgid "int document.length();" msgstr "int document.length();" #. Tag: para #: development.docbook:2180 #, no-c-format msgid "Returns the number of characters in the document." msgstr "Retorna el nombre de caràcters en el document." #. Tag: synopsis #: development.docbook:2187 #, no-c-format msgid "" "int document.lineLength(int line);" msgstr "" "int document.lineLength(int línia);" #. Tag: para #: development.docbook:2188 #, no-c-format msgid "Returns the line's length." msgstr "Retorna la longitud de la línia." #. Tag: synopsis #: development.docbook:2195 #, no-c-format msgid "void document.editBegin();" msgstr "void document.editBegin();" #. Tag: para #: development.docbook:2196 #, no-c-format msgid "" "Starts an edit group for undo/redo grouping. Make sure to always call " "editEnd() as often as you call editBegin(). Calling editBegin() internally uses a " "reference counter, &ie;, this call can be nested." msgstr "" "Comença un grup d'edició per agrupar desfer/refer. Assegureu-vos de cridar " "sempre editEnd() tan aviat com crideu " "editBegin(). La crida editBegin() " "utilitza internament un comptador de referència, &ead;, aquesta crida es pot " "imbricar." #. Tag: synopsis #: development.docbook:2206 #, no-c-format msgid "void document.editEnd();" msgstr "void document.editEnd();" #. Tag: para #: development.docbook:2207 #, no-c-format msgid "" "Ends an edit group. The last call of editEnd() (&ie; " "the one for the first call of editBegin()) finishes the " "edit step." msgstr "" "Finalitza un grup d'edició. L'última crida de editEnd() " "(&ead;, una per a la primera crida de editBegin()) " "finalitza el pas d'edició." #. Tag: synopsis #: development.docbook:2216 #, no-c-format msgid "" "int document.firstColumn(int line);" msgstr "" "int document.firstColumn(int línia);" #. Tag: para #: development.docbook:2217 #, no-c-format msgid "" "Returns the first non-whitespace column in the given line. If there are only whitespaces in the line, the return value is " "-1." msgstr "" "Retorna la primera columna que no està en blanc en la línia donada. Si només hi ha espais en blanc a la línia, el valor " "retornat serà -1." #. Tag: synopsis #: development.docbook:2225 #, no-c-format msgid "" "int document.lastColumn(int line);" msgstr "" "int document.lastColumn(int línia);" #. Tag: para #: development.docbook:2226 #, no-c-format msgid "" "Returns the last non-whitespace column in the given line. If there are only whitespaces in the line, the return value is " "-1." msgstr "" "Retorna la darrera columna que no està en blanc en la línia donada. Si només hi ha espais en blanc a la línia, el valor " "retornat serà -1." #. Tag: synopsis #: development.docbook:2234 #, no-c-format msgid "" "int document.prevNonSpaceColumn(int line, int column);\n" "int document.prevNonSpaceColumn(Cursor cursor);" msgstr "" "int document.prevNonSpaceColumn(int línia, int columna);\n" "int document.prevNonSpaceColumn(Cursor cursor);" #. Tag: para #: development.docbook:2235 #, no-c-format msgid "" "Returns the column with a non-whitespace character starting at the given " "cursor position and searching backwards." msgstr "" "Retorna la columna no buida que conté un caràcter no en blanc a partir de la " "posició donada del cursor i cercant cap enrere." #. Tag: synopsis #: development.docbook:2243 #, no-c-format msgid "" "int document.nextNonSpaceColumn(int line, int column);\n" "int document.nextNonSpaceColumn(Cursor cursor);" msgstr "" "int document.nextNonSpaceColumn(int línia, int columna);\n" "int document.nextNonSpaceColumn(Cursor cursor);" #. Tag: para #: development.docbook:2244 #, no-c-format msgid "" "Returns the column with a non-whitespace character starting at the given " "cursor position and searching forwards." msgstr "" "Retorna la columna no buida que conté un caràcter no en blanc a partir de la " "posició donada del cursor i cercant cap endavant." #. Tag: synopsis #: development.docbook:2252 #, no-c-format msgid "" "int document.prevNonEmptyLine(int line);" msgstr "" "int document.prevNonEmptyLine(int línia);" #. Tag: para #: development.docbook:2253 #, no-c-format msgid "" "Returns the next non-empty line containing non-whitespace characters " "searching backwards." msgstr "" "Retorna la línia següent no buida que conté caràcters no en blanc a la cerca " "cap enrere." #. Tag: synopsis #: development.docbook:2261 #, no-c-format msgid "" "int document.nextNonEmptyLine(int line);" msgstr "" "int document.nextNonEmptyLine(int línia);" #. Tag: para #: development.docbook:2262 #, no-c-format msgid "" "Returns the next non-empty line containing non-whitespace characters " "searching forwards." msgstr "" "Retorna la línia següent no buida que conté caràcters no en blanc a la cerca " "cap endavant." #. Tag: synopsis #: development.docbook:2270 #, no-c-format msgid "" "bool document.isInWord(String character, int attribute);" msgstr "" "bool document.isInWord(String caràcter, int atribut);" #. Tag: para #: development.docbook:2271 #, no-c-format msgid "" "Returns true, if the given character with the given attribute can be part " "of a word, otherwise false." msgstr "" "Retorna true (vertader), si el caràcter donat amb l'atribut donat pot formar " "part d'una paraula, en cas contrari retornarà false " "(fals)." #. Tag: synopsis #: development.docbook:2280 #, no-c-format msgid "" "bool document.canBreakAt(String character, int attribute);" msgstr "" "bool document.canBreakAt(String caràcter, int atribut);" #. Tag: para #: development.docbook:2281 #, no-c-format msgid "" "Returns true, if the given character with the given attribute is suited " "to wrap a line, otherwise false." msgstr "" "Retorna true (vertader), si el caràcter donat amb l'atribut donat és adequat " "com a embolcall d'una línia, en cas contrari retornarà false (fals)." #. Tag: synopsis #: development.docbook:2290 #, no-c-format msgid "" "bool document.canComment(int startAttribute, int endAttribute);" msgstr "" "bool document.canComment(int iniciAtribut, int finalAtribut);" #. Tag: para #: development.docbook:2291 #, no-c-format msgid "" "Returns true, if a range starting and ending with the " "given attributes is suited to be commented out, otherwise false." msgstr "" "Retorna true (vertader), si un interval inicial i final " "amb els atributs donats es presten a ser descomentats, en cas contrari " "retornarà false (fals)." #. Tag: synopsis #: development.docbook:2299 #, no-c-format msgid "" "String document.commentMarker(int attribute);" msgstr "" "String document.commentMarker(int atribut);" #. Tag: para #: development.docbook:2300 #, no-c-format msgid "" "Returns the comment marker for single line comments for a given " "attribute." msgstr "" "Retorna el marcador de comentari per als comentaris de línia única per a un " "atribut donat." #. Tag: synopsis #: development.docbook:2307 #, no-c-format msgid "" "String document.commentStart(int attribute);" msgstr "" "String document.commentStart(int atribut);" #. Tag: para #: development.docbook:2308 #, no-c-format msgid "" "Returns the comment marker for the start of multi-line comments for a given " "attribute." msgstr "" "Retorna el marcador de comentari per al començament de comentaris de " "múltiples línies per a un atribut donat." #. Tag: synopsis #: development.docbook:2316 #, no-c-format msgid "" "String document.commentEnd(int attribute);" msgstr "" "String document.commentEnd(int atribut);" #. Tag: para #: development.docbook:2317 #, no-c-format msgid "" "Returns the comment marker for the end of multi-line comments for a given " "attribute." msgstr "" "Retorna el marcador de comentari per al final de comentaris de múltiples " "línies per a un atribut donat." #. Tag: synopsis #: development.docbook:2325 #, no-c-format msgid "Range document.documentRange();" msgstr "Range document.documentRange();" #. Tag: para #: development.docbook:2326 #, no-c-format msgid "Returns a range that encompasses the whole document." msgstr "Retorna un interval que abasta tot el document." #. Tag: synopsis #: development.docbook:2333 #, no-c-format msgid "Cursor documentEnd();" msgstr "Cursor documentEnd();" #. Tag: para #: development.docbook:2334 #, no-c-format msgid "" "Returns a cursor positioned at the last column of the last line in the " "document." msgstr "" "Retorna un cursor situat a l'última columna de l'última línia al document." #. Tag: synopsis #: development.docbook:2341 #, no-c-format msgid "" "bool isValidTextPosition(int line, int column);\n" "bool isValidTextPosition(Cursor cursor);" msgstr "" "bool isValidTextPosition(int línia, int columna);\n" "bool isValidTextPosition(Cursor cursor);" #. Tag: para #: development.docbook:2342 #, no-c-format msgid "" "Returns true, if the given cursor position is positioned " "at a valid text position. A text position is valid only if it locate at the " "start, in the middle, or the end of a valid line. Further, a text position " "is invalid if it is located in a Unicode surrogate." msgstr "" "Retorna true (vertader), si la posició indicada del " "cursor està situada a una posició vàlida del text. Una posició de text només " "és vàlida si es localitza al començament, al mig o al final d'una línia " "vàlida. A més, una posició de text no serà vàlida si es troba en un " "substitut Unicode." #. Tag: synopsis #: development.docbook:2353 #, no-c-format msgid "" "int document.attribute(int line, int column);\n" "int document.attribute(Cursor cursor);" msgstr "" "int document.attribute(int línia, int columna);\n" "int document.attribute(Cursor cursor);" #. Tag: para #: development.docbook:2354 #, no-c-format msgid "Returns the attribute at the given cursor position." msgstr "Retorna l'atribut a la posició del cursor donada." #. Tag: synopsis #: development.docbook:2361 #, no-c-format msgid "" "bool document.isAttribute(int line, int column, " "int attribute);\n" "bool document.isAttribute(Cursor cursor, int attribute);" msgstr "" "bool document.isAttribute(int línia, int columna, " "int atribut);\n" "bool document.isAttribute(Cursor cursor, int atribut);" #. Tag: para #: development.docbook:2362 #, no-c-format msgid "" "Returns true, if the attribute at the given cursor " "position equals attribute, otherwise " "false." msgstr "" "Retorna true (vertader), si l'atribut a la posició del " "cursor és igual que l'atribut, en cas contrari " "retornarà false (fals)." #. Tag: synopsis #: development.docbook:2370 #, no-c-format msgid "" "String document.attributeName(int line, int column);\n" "String document.attributeName(Cursor cursor);" msgstr "" "String document.attributeName(int línia, int columna);\n" "String document.attributeName(Cursor cursor);" #. Tag: para #: development.docbook:2371 #, no-c-format msgid "" "Returns the attribute name as human readable text. This is equal to the " "itemData name in the syntax highlighting files." msgstr "" "Retorna el nom de l'atribut com a text llegible. Això equival al nom " "itemData en els fitxers de ressaltat de la sintaxi." #. Tag: synopsis #: development.docbook:2379 #, no-c-format msgid "" "bool document.isAttributeName(int line, int column, String name);\n" "bool document.isAttributeName(Cursor cursor, String name);" msgstr "" "bool document.isAttributeName(int línia, int columna, String nom);\n" "bool document.isAttributeName(Cursor cursor, String nom);" #. Tag: para #: development.docbook:2380 #, no-c-format msgid "" "Returns true, if the attribute name at a certain cursor " "position matches the given name, otherwise " "false." msgstr "" "Retorna true (vertader), si el nom de l'atribut en una " "posició determinada del cursor coincideix amb el nom donat, en cas contrari retornarà false " "(fals)." #. Tag: synopsis #: development.docbook:2388 #, no-c-format msgid "" "String document.variable(String key);" msgstr "" "String document.variable(String clau);" #. Tag: para #: development.docbook:2389 #, no-c-format msgid "" "Returns the value of the requested document variable key. If the document variable does not exist, the return value is " "an empty string." msgstr "" "Retorna el valor de la variable de document demanada clau. Si la variable de document no existeix, el valor retornat serà " "una cadena buida." #. Tag: synopsis #: development.docbook:2397 #, no-c-format msgid "" "void document.setVariable(String key, String value);" msgstr "" "void document.setVariable(String clau, String valor);" #. Tag: para #: development.docbook:2398 #, no-c-format msgid "" "Set the value of the requested document variable key." msgstr "" "Estableix el valor de la variable de document demanada clau." #. Tag: para #: development.docbook:2401 #, no-c-format msgid "" "See also: Kate document variables" msgstr "" "Vegeu també: variables de document del " "Kate" #. Tag: para #: development.docbook:2404 #, no-c-format msgid "Since: &kde; 4.8" msgstr "Des del: &kde; 4.8" #. Tag: synopsis #: development.docbook:2411 #, no-c-format msgid "" "int document.firstVirtualColumn(int line);" msgstr "" "int document.firstVirtualColumn(int línia);" #. Tag: para #: development.docbook:2412 #, no-c-format msgid "" "Returns the virtual column of the first non-whitespace character in the " "given line or -1, if the line is empty or contains only " "whitespace characters." msgstr "" "Retorna la columna virtual del primer caràcter que no està en blanc a la " "línia donada o -1, si la línia està buida o només conté " "caràcters d'espai en blanc." #. Tag: synopsis #: development.docbook:2420 #, no-c-format msgid "" "int document.lastVirtualColumn(int line);" msgstr "" "int document.lastVirtualColumn(int línia);" #. Tag: para #: development.docbook:2421 #, no-c-format msgid "" "Returns the virtual column of the last non-whitespace character in the given " "line or -1, if the line is empty or contains only " "whitespace characters." msgstr "" "Retorna la columna virtual de l'últim caràcter que no està en blanc a la " "línia donada o -1, si la línia està buida o només conté " "caràcters d'espai en blanc." #. Tag: synopsis #: development.docbook:2429 #, no-c-format msgid "" "int document.toVirtualColumn(int line, int column);\n" "int document.toVirtualColumn(Cursor cursor);\n" "Cursor document.toVirtualCursor(Cursor cursor);" msgstr "" "int document.toVirtualColumn(int línia, int columna);\n" "int document.toVirtualColumn(Cursor cursor);\n" "Cursor document.toVirtualCursor(Cursor cursor);" #. Tag: para #: development.docbook:2430 #, no-c-format msgid "" "Converts the given real cursor position to a virtual cursor " "position, either returning an int or a Cursor object." msgstr "" "Converteix la posició real donada del cursor a una posició " "virtual del cursor, d'altra manera retorna un «int» o un objecte «Cursor»." #. Tag: synopsis #: development.docbook:2438 #, no-c-format msgid "" "int document.fromVirtualColumn(int line, int virtualColumn);\n" "int document.fromVirtualColumn(Cursor virtualCursor);\n" "Cursor document.fromVirtualCursor(Cursor " "virtualCursor);" msgstr "" "int document.fromVirtualColumn(int línia, int virtualColumna);\n" "int document.fromVirtualColumn(Cursor virtualCursor);\n" "Cursor document.fromVirtualCursor(Cursor " "virtualCursor);" #. Tag: para #: development.docbook:2439 #, no-c-format msgid "" "Converts the given virtual cursor position to a real cursor " "position, either returning an int or a Cursor object." msgstr "" "Converteix la posició virtual donada del cursor a una posició real del cursor, d'altra manera retorna un «int» o un objecte «Cursor»." #. Tag: synopsis #: development.docbook:2447 #, no-c-format msgid "" "Cursor document.anchor(int line, int column, " "Char character);\n" "Cursor document.anchor(Cursor cursor, Char character);" msgstr "" "Cursor document.anchor(int línia, int columna, " "Char caràcter);\n" "Cursor document.anchor(Cursor cursor, Char caràcter);" #. Tag: para #: development.docbook:2448 #, no-c-format msgid "" "Searches backward for the given character starting from the given cursor. As " "an example, if '(' is passed as character, this function will return the " "position of the opening '('. This reference counting, &ie; other '(...)' are " "ignored." msgstr "" "Cerca enrere pel caràcter donat a partir del cursor donat. Com a exemple, si " "es passa «(» com a caràcter, aquesta funció retornarà la posició de " "l'obertura «(». Això compta la referència, &ead;, els altres «(...)» seran " "ignorats." #. Tag: synopsis #: development.docbook:2458 #, no-c-format msgid "" "Cursor document.rfind(int line, int column, " "String text, " "int attribute = -1);\n" "Cursor document.rfind(Cursor cursor, String text, " "int attribute = -1);" msgstr "" "Cursor document.rfind(int línia, int columna, " "String text, " "int atribut = -1);\n" "Cursor document.rfind(Cursor cursor, String text, " "int atribut = -1);" #. Tag: para #: development.docbook:2459 #, no-c-format msgid "" "Find searching backwards the given text with the appropriate " "attribute. The argument attribute is ignored if it is set to -1. The returned " "cursor is invalid, if the text could not be found." msgstr "" "Cerca cap enrere el text donat amb l'atribut " "adequat. L'argument atribut s'ignorarà si " "s'estableix a -1. El cursor retornat no serà vàlid, si el " "text no s'ha pogut trobar." #. Tag: synopsis #: development.docbook:2468 #, no-c-format msgid "" "int document.defStyleNum(int line, int column);\n" "int document.defStyleNum(Cursor cursor);" msgstr "" "int document.defStyleNum(int línia, int columna);\n" "int document.defStyleNum(Cursor cursor);" #. Tag: para #: development.docbook:2469 #, no-c-format msgid "Returns the default style used at the given cursor position." msgstr "Retorna l'estil per omissió utilitzat a la posició donada del cursor." #. Tag: synopsis #: development.docbook:2476 #, no-c-format msgid "" "bool document.isCode(int line, int column);\n" "bool document.isCode(Cursor cursor);" msgstr "" "bool document.isCode(int línia, int columna);\n" "bool document.isCode(Cursor cursor);" #. Tag: para #: development.docbook:2477 #, no-c-format msgid "" "Returns true, if the attribute at the given cursor " "position is not equal to all of the following styles: dsComment, dsString, dsRegionMarker, " "dsChar, dsOthers." msgstr "" "Retorna true (vertader), si l'atribut a la posició donada " "del cursor no és igual per a tots els següents estils: dsComment, dsString, dsRegionMarker, " "dsChar, dsOthers." #. Tag: synopsis #: development.docbook:2488 #, no-c-format msgid "" "bool document.isComment(int line, int column);\n" "bool document.isComment(Cursor cursor);" msgstr "" "bool document.isComment(int línia, int columna);\n" "bool document.isComment(Cursor cursor);" #. Tag: para #: development.docbook:2489 #, no-c-format msgid "" "Returns true, if the attribute of the character at the " "cursor position is dsComment, otherwise false." msgstr "" "Retorna true (vertader), si l'atribut del caràcter a la " "posició del cursor és dsComment, en cas contrari " "retornarà false (fals)." #. Tag: synopsis #: development.docbook:2497 #, no-c-format msgid "" "bool document.isString(int line, int column);\n" "bool document.isString(Cursor cursor);" msgstr "" "bool document.isString(int línia, int columna);\n" "bool document.isString(Cursor cursor);" #. Tag: para #: development.docbook:2498 #, no-c-format msgid "" "Returns true, if the attribute of the character at the " "cursor position is dsString, otherwise false." msgstr "" "Retorna true (vertader), si l'atribut del caràcter a la " "posició del cursor és dsString, en cas contrari retornarà " "false (fals)." #. Tag: synopsis #: development.docbook:2506 #, no-c-format msgid "" "bool document.isRegionMarker(int line, int column);\n" "bool document.isRegionMarker(Cursor cursor);" msgstr "" "bool document.isRegionMarker(int línia, int columna);\n" "bool document.isRegionMarker(Cursor cursor);" #. Tag: para #: development.docbook:2507 #, no-c-format msgid "" "Returns true, if the attribute of the character at the " "cursor position is dsRegionMarker, otherwise " "false." msgstr "" "Retorna true (vertader), si l'atribut del caràcter a la " "posició del cursor és dsRegionMarker, en cas contrari " "retornarà false (fals)." #. Tag: synopsis #: development.docbook:2515 #, no-c-format msgid "" "bool document.isChar(int line, int column);\n" "bool document.isChar(Cursor cursor);" msgstr "" "bool document.isChar(int línia, int columna);\n" "bool document.isChar(Cursor cursor);" #. Tag: para #: development.docbook:2516 #, no-c-format msgid "" "Returns true, if the attribute of the character at the " "cursor position is dsChar, otherwise false." msgstr "" "Retorna true (vertader), si l'atribut del caràcter a la " "posició del cursor és dsChar, en cas contrari retornarà " "false (fals)." #. Tag: synopsis #: development.docbook:2524 #, no-c-format msgid "" "bool document.isOthers(int line, int column);\n" "bool document.isOthers(Cursor cursor);" msgstr "" "bool document.isOthers(int línia, int columna);\n" "bool document.isOthers(Cursor cursor);" #. Tag: para #: development.docbook:2525 #, no-c-format msgid "" "Returns true, if the attribute of the character at the " "cursor position is dsOthers, otherwise false." msgstr "" "Retorna true (vertader), si l'atribut del caràcter a la " "posició del cursor és dsOthers, en cas contrari retornarà " "false (fals)." #. Tag: title #: development.docbook:2537 #, no-c-format msgid "The Editor API" msgstr "L'API de l'editor" #. Tag: para #: development.docbook:2538 #, no-c-format msgid "" "In addition to the document and view API, there is a general editor API that " "provides functions for general editor scripting functionality." msgstr "" "A més de l'API del document i la visualització, hi ha una API general de " "l'editor que proporciona funcions per a la funcionalitat per a crear scripts " "general de l'editor." #. Tag: synopsis #: development.docbook:2545 #, no-c-format msgid "String editor.clipboardText();" msgstr "Cadena editor.clipboardText();" #. Tag: para #: development.docbook:2546 #, no-c-format msgid "Returns the text that currently is in the global clipboard." msgstr "Retorna el text que es troba actualment al porta-retalls global." #. Tag: synopsis #: development.docbook:2554 #, no-c-format msgid "String editor.clipboardHistory();" msgstr "Cadena editor.clipboardHistory();" #. Tag: para #: development.docbook:2555 #, no-c-format msgid "" "The editor holds a clipboard history that contains up to 10 clipboard " "entries. This function returns all entries that currently are in the " "clipboard history." msgstr "" "L'editor manté un historial del porta-retalls que conté fins a 10 entrades. " "Aquesta funció retorna totes les entrades que actualment es troben a " "l'historial del porta-retalls." #. Tag: synopsis #: development.docbook:2564 #, no-c-format msgid "" "void editor.setClipboardText(String text);" msgstr "" "void editor.setClipboardText(String text);" #. Tag: para #: development.docbook:2565 #, no-c-format msgid "" "Set the contents of the clipboard to text. The " "text will be added to the clipboard history." msgstr "" "Estableix el contingut del porta-retalls al text. " "El text serà afegit a l'historial del porta-" "retalls." #~ msgid "Detect an integer number." #~ msgstr "Detecta un nombre enter." #~ msgid "Detect a floating point number." #~ msgstr "Detecta un nombre decimal." #~ msgid "Detect an octal point number representation." #~ msgstr "Detecta una representació numèrica d'un nombre octal." #~ msgid "Detect a hexadecimal number representation." #~ msgstr "Detecta una representació numèrica d'un nombre hexadecimal." #~ msgid "" #~ "<general>\n" #~ " <comments>\n" #~ " <comment name=\"singleLine\" start=\"#\"/>\n" #~ " </comments>\n" #~ " <keywords casesensitive=\"1\"/>\n" #~ " </general>\n" #~ "</language>" #~ msgstr "" #~ "<general>\n" #~ " <comments>\n" #~ " <comment name=\"singleLine\" start=\"#\"/>\n" #~ " </comments>\n" #~ " <keywords casesensitive=\"1\"/>\n" #~ " </general>\n" #~ "</language>" #~ msgid "" #~ "dynamic if true, the context " #~ "remembers strings/placeholders saved by dynamic rules. This is needed for " #~ "HERE documents for example. Default: false." #~ msgstr "" #~ "dynamic si està a true, el " #~ "context recordarà cadenes/marcadors de posició desats per les regles " #~ "dinàmiques. Això es necessita per als documents HERE, per exemple. Per " #~ "omissió: false." #~ msgid "" #~ "Some rules can have child rules which are then " #~ "evaluated only if the parent rule matched. The entire matched string will " #~ "be given the attribute defined by the parent rule. A rule with child " #~ "rules looks like this:" #~ msgstr "" #~ "Algunes regles poden tenir regles filles que " #~ "s'executen únicament si la regla pare resulta aplicable. A tota la cadena " #~ "coincident es donarà l'atribut definit per la regla pare. Una regla amb " #~ "regles filles té aquest aspecte:" #~ msgid "" #~ "<RuleName (attributes)>\n" #~ " <ChildRuleName (attributes) />\n" #~ " ...\n" #~ "</RuleName>" #~ msgstr "" #~ "<NomRegla (atributs)>\n" #~ " <NomReglaFill (atributs) />\n" #~ " ...\n" #~ "</NomRegla>" #~ msgid "<Int (common attributes) (dynamic) />" #~ msgstr "<Int (atributs comuns) (dinàmic) />" #~ msgid "" #~ "This rule has no specific attributes. Child rules are typically used to " #~ "detect combinations of L and U after the number, indicating the integer type in program code. " #~ "Actually all rules are allowed as child rules, though, the DTD only allows the child rule StringDetect." #~ msgstr "" #~ "Aquesta regla no té atributs específics. Les regles filles normalment " #~ "s'utilitzen per a detectar combinacions de L i " #~ "U després del número, indicant el tipus d'enter en " #~ "el codi del programa. En realitat s'admeten totes les regles com a regles " #~ "filles, tot i que, la DTD només permet la regla " #~ "fill StringDetect." #~ msgid "" #~ "The following example matches integer numbers follows by the character " #~ "'L'." #~ msgstr "El següent exemple troba nombres enters seguits del caràcter «L»." #~ msgid "" #~ "<Int attribute=\"Decimal\" context=\"#stay\" >\n" #~ " <StringDetect attribute=\"Decimal\" context=\"#stay\" String=\"L\" " #~ "insensitive=\"true\"/>\n" #~ "</Int>" #~ msgstr "" #~ "<Int attribute=\"Decimal\" context=\"#stay\" >\n" #~ " <StringDetect attribute=\"Decimal\" context=\"#stay\" String=\"L\" " #~ "insensitive=\"true\"/>\n" #~ "</Int>" #~ msgid "" #~ "This rule has no specific attributes. AnyChar is " #~ "allowed as a child rule and typically used to detect combinations, see " #~ "rule Int for reference." #~ msgstr "" #~ "Aquesta regla no té atributs específics. Es permet AnyChar com a regla fill i normalment s'utilitza per a detectar " #~ "combinacions, vegeu la regla Int com a referència." #~ msgid "" #~ "You can download updated or additional syntax highlight definitions from " #~ "the &kappname; website by clicking the Download Highlighting " #~ "Files... button in the Modes & Filetypes tab of the Config Dialog." #~ msgstr "" #~ "Podeu baixar actualitzacions o definicions addicionals del ressaltat de " #~ "la sintaxi des del lloc web de la &kappname; fent clic en el botó " #~ "Baixa els fitxers de ressaltat... a la pestanya " #~ "Modes i tipus de " #~ "fitxers del diàleg de " #~ "configuració." #~ msgid "" #~ "The element indentation in the group " #~ "general defines which indenter will be used. " #~ "However, we strongly recommend you omit this element, as the indenter " #~ "usually will be set by either defining a File Type or by adding a mode " #~ "line to the text file. If you specify an indenter though, you will force " #~ "a specific indentation on the user, which he might not like at all. " #~ "Available attributes are:" #~ msgstr "" #~ "L'element indentation en el grup " #~ "general defineix quin sagnat s'utilitzarà. Encara " #~ "que recomanem fervorosament que l'ometeu, atès que el sagnat sol ser " #~ "establert en el tipus de fitxer o en afegir el mode de línia al fitxer de " #~ "text. Tot i que si especifiqueu un sagnat, forçareu un sagnat específic " #~ "per a l'usuari, que podria no agradar-li. Els atributs disponibles són:" #~ msgid "" #~ "The formal definition, also known as the XSD, is " #~ "stored in the file language.xsd which should be " #~ "installed on your system in the folder $XDG_DATA_DIRS/katepart5/syntax. Therein, the environment variable " #~ "XDG_DATA_DIRS typically expands to /usr/share." #~ msgstr "" #~ "La definició formal, també coneguda com la DTD, es " #~ "desa en el fitxer language.dtd, el qual hauria " #~ "d'estar instal·lat a la carpeta $XDG_DATA_DIRS/" #~ "katepart5/syntax del vostre sistema. En aquest sentit, la " #~ "variable d'entorn XDG_DATA_DIRS normalment s'expandeix a " #~ "/usr/share." #~ msgid "" #~ "You can validate every XML file by using the command xmllint --" #~ "schema language.xsd mySyntax.xml." #~ msgstr "" #~ "Podeu validar cadascun dels fitxers XML emprant l'ordre xmllint " #~ "--schema llenguatge.xsd mevaSintaxi.xml." #~ msgid "" #~ "version specifies the current version of the " #~ "definition file." #~ msgstr "" #~ "version especifica la versió actual del fitxer de " #~ "la definició." #~ msgid "Editor Component Extensions" #~ msgstr "Extensions del component d'edició" #~ msgid "" #~ "Editor Component Extensions extend KatePart, the Advanced Text Editor component used within " #~ "many &kde; applications, such as &kate;, &kwrite;, Kile, and KDevelop. " #~ "Creating an Editor Component Plugin will allow you to extend the editor's " #~ "functionality in any and all of these programs." #~ msgstr "" #~ "Les extensions per al " #~ "component d'edició estenen la KatePart, el component de l'editor " #~ "de text avançat és utilitzat en moltes aplicacions del &kde;, com &kate;, " #~ "&kwrite;, Kile i KDevelop. La creació d'un connector per al component " #~ "d'edició us permetrà estendre la funcionalitat de l'editor a tots i " #~ "cadascun d'aquests programes." #~ msgid "" #~ "You can find the complete API documentation in the &kde; " #~ "API Reference." #~ msgstr "" #~ "Podeu trobar la documentació de la API a la referència de " #~ "la API del &kde;." #~ msgid "So here are only the list of available default styles:" #~ msgstr "Aquí només teniu la llista dels estils per omissió disponibles:" Index: trunk/l10n-kf5/ca/docmessages/applications/katepart_regular-expressions.po =================================================================== --- trunk/l10n-kf5/ca/docmessages/applications/katepart_regular-expressions.po (revision 1559933) +++ trunk/l10n-kf5/ca/docmessages/applications/katepart_regular-expressions.po (revision 1559934) @@ -1,1716 +1,1723 @@ # Translation of katepart_regular-expressions.po to Catalan -# Copyright (C) 2005-2019 This_file_is_part_of_KDE +# Copyright (C) 2005-2020 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # -# Antoni Bella Pérez , 2005, 2007, 2011, 2012, 2013, 2016, 2019. +# Antoni Bella Pérez , 2005, 2007, 2011, 2012, 2013, 2016, 2019, 2020. # Josep Ma. Ferrer , 2009, 2010, 2014, 2016, 2018. msgid "" msgstr "" "Project-Id-Version: katepart_regular-expressions\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2020-01-11 02:57+0000\n" -"PO-Revision-Date: 2019-12-21 10:16+0100\n" +"PO-Revision-Date: 2020-01-11 14:48+0100\n" "Last-Translator: Antoni Bella Pérez \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-KDE-DocBook-SVN-URL: trunk/KDE/kdesdk/doc/kate/regular-expressions." -"docbook\n" +"X-KDE-DocBook-SVN-URL: trunk/KDE/kdesdk/doc/kate/regular-expressions.docbook\n" "X-KDE-DocBook-SVN-Changed-Revision: 608839\n" "X-Generator: Lokalize 20.03.70\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. Tag: author #: regular-expressions.docbook:4 #, no-c-format msgid "&Anders.Lund; &Anders.Lund.mail;" msgstr "&Anders.Lund; &Anders.Lund.mail;" #. Tag: trans_comment #: regular-expressions.docbook:5 #, no-c-format msgid "ROLES_OF_TRANSLATORS" msgstr "&traductor.Antoni.Bella;" #. Tag: title #: regular-expressions.docbook:9 #, no-c-format msgid "Regular Expressions" msgstr "Expressions regulars" #. Tag: synopsis #: regular-expressions.docbook:11 #, no-c-format msgid "" "This Appendix contains a brief but hopefully sufficient and\n" "covering introduction to the world of regular\n" "expressions. It documents regular expressions in the form\n" "available within &kappname;, which is not compatible with the regular\n" "expressions of perl, nor with those of for example\n" "grep." msgstr "" "Aquest apèndix conté una breu però probablement suficient i\n" "completa introducció al món de les expressions\n" "regulars. Les documenta tal com apareixen en\n" "el &kappname;, donat que no són compatibles amb les expressions\n" "regulars de perl, ni de grep, per exemple." #. Tag: title #: regular-expressions.docbook:15 #, no-c-format msgid "Introduction" msgstr "Introducció" #. Tag: para #: regular-expressions.docbook:17 #, no-c-format msgid "" "Regular Expressions provides us with a way to describe " "some possible contents of a text string in a way understood by a small piece " "of software, so that it can investigate if a text matches, and also in the " "case of advanced applications with the means of saving pieces or the " "matching text." msgstr "" "Les expressions regulars us proporcionen un mètode per " "a descriure el possible contingut d'una cadena de text de manera que pugui " "ser interpretada per una petita peça de programari, i d'aquesta manera es " "pugui esbrinar si un text es correspon amb el cercat i, en el cas " "d'aplicacions avançades, es posin els mitjans per a recuperar parts del text " "coincident." #. Tag: para #: regular-expressions.docbook:23 #, no-c-format msgid "" "An example: Say you want to search a text for paragraphs that starts with " "either of the names Henrik or Pernille " "followed by some form of the verb say." msgstr "" "Per exemple: Posem que voleu cercar un text que és el començament d'un " "paràgraf que inclou els noms «Enric» o «Pere», seguits d'alguna forma del " "verb «dir»." #. Tag: para #: regular-expressions.docbook:28 #, no-c-format msgid "" "With a normal search, you would start out searching for the first name, " "Henrik maybe followed by sa like this: " "Henrik sa, and while looking for matches, you would " "have to discard those not being the beginning of a paragraph, as well as " "those in which the word starting with the letters sa was not " "either says, said or so. And then of course " "repeat all of that with the next name..." msgstr "" "En una cerca normal, s'hauria de començar a cercar pel primer nom, «Enric» " "potser seguit de «di», de la següent manera: Enric di, i mentre cerca coincidències, haureu de descartar aquelles que " "no estiguin al començament d'un paràgraf, així com aquelles en les que la " "paraula que comenci per «di» que no pertanyi al verb «dir». I després tornar " "a repetir tot el procés amb el següent nom..." #. Tag: para #: regular-expressions.docbook:37 #, no-c-format msgid "" "With Regular Expressions, that task could be accomplished with a single " "search, and with a larger degree of preciseness." msgstr "" "Amb les expressions regulars, aquesta tasca s'hauria de realitzar d'una sola " "cerca, i amb un alt grau de precisió." #. Tag: para #: regular-expressions.docbook:40 #, no-c-format msgid "" "To achieve this, Regular Expressions defines rules for expressing in details " "a generalization of a string to match. Our example, which we might literally " "express like this: A line starting with either Henrik " "or Pernille (possibly following up to 4 blanks or tab " "characters) followed by a whitespace followed by sa and then " "either ys or id could be expressed " "with the following regular expression:" msgstr "" "Per a aconseguir-ho, les expressions regulars estableixen regles per " "expressar amb detall una generalització de la cadena a cercar. El nostre " "exemple el podríem expressar literalment com: «Una línia que comença per " "«Enric» o per «Pere» (possiblement després de 4 espais en blanc o " "tabulacions) seguit d'un espai en blanc seguit de «di» i després «u» o " "«gué»», es podria expressar amb la següent expressió regular:" #. Tag: userinput #: regular-expressions.docbook:47 #, no-c-format msgid "^[ \\t]{0,4}(Henrik|Pernille) sa(ys|id)" msgstr "^[ \\t]{0,4}(Enric|Pere) di(u|gué)" #. Tag: para #: regular-expressions.docbook:50 #, no-c-format msgid "" "The above example demonstrates all four major concepts of modern Regular " "Expressions, namely:" msgstr "" "L'exemple anterior mostra els quatre conceptes principals de les expressions " "regulars modernes, a veure:" #. Tag: para #: regular-expressions.docbook:54 #, no-c-format msgid "Patterns" msgstr "Patrons" #. Tag: para #: regular-expressions.docbook:55 #, no-c-format msgid "Assertions" msgstr "Declaracions" #. Tag: para #: regular-expressions.docbook:56 #, no-c-format msgid "Quantifiers" msgstr "Quantificadors" #. Tag: para #: regular-expressions.docbook:57 #, no-c-format msgid "Back references" msgstr "Referències enrere" #. Tag: para #: regular-expressions.docbook:60 #, no-c-format msgid "" "The caret (^) starting the expression is an assertion, " "being true only if the following matching string is at the start of a line." msgstr "" "L'accent circumflex (^) que es troba al començament de " "l'expressió és una declaració, que tan sols és certa si la resta de la " "cadena de cerca es troba al començament d'una línia." #. Tag: para #: regular-expressions.docbook:64 #, no-c-format msgid "" "The strings [ \\t] and (Henrik|Pernille) sa(ys|" "id) are patterns. The first one is a character class that matches either a blank or a (horizontal) tab character; the " "other pattern contains first a subpattern matching either Henrik or Pernille, then a piece " "matching the exact string sa and finally a subpattern " "matching either ys or id" msgstr "" "Les cadenes [ \\t] i (Enric|Pere) di(u|gué) són patrons. El primer és una classe de caràcters que coincideix amb un espai en blanc o amb una tabulació " "(horitzontal); l'altre patró conté un primer subpatró que coincideix amb " "Enric o amb Pere, " "després una part de coincidència exacta di i per acabar " "un altre subpatró que coincideix amb u o amb gué" #. Tag: para #: regular-expressions.docbook:74 #, no-c-format msgid "" "The string {0,4} is a quantifier saying anywhere " "from 0 up to 4 of the previous." msgstr "" "La cadena {0,4} és un quantificador que diu «en qualsevol " "lloc des de 0 a 4 caràcters anteriors»." #. Tag: para #: regular-expressions.docbook:77 #, no-c-format msgid "" "Because regular expression software supporting the concept of back " "references saves the entire matching part of the string as well " "as sub-patterns enclosed in parentheses, given some means of access to those " "references, we could get our hands on either the whole match (when searching " "a text document in an editor with a regular expression, that is often marked " "as selected) or either the name found, or the last part of the verb." msgstr "" "Com el programari d'expressions regulars suporta el concepte de " "referències enrere desa tota la part coincident de la " "cadena així com els subpatrons tancats entre parèntesis, proporcionant " "mitjans per accedir a aquestes referències, podem posar les nostres mans " "tant en la cadena coincident completa (quan se cerca al text d'un editor " "mitjançant una expressió regular, que normalment apareix marcada com a " "seleccionada) com en el nom trobat, o en l'última part del verb." #. Tag: para #: regular-expressions.docbook:85 #, no-c-format msgid "" "All together, the expression will match where we wanted it to, and only " "there." msgstr "" "Unint-ho tot, l'expressió coincidirà a on nosaltres vulguem, i tan sols allí." #. Tag: para #: regular-expressions.docbook:88 #, no-c-format msgid "" "The following sections will describe in details how to construct and use " "patterns, character classes, assertions, quantifiers and back references, " "and the final section will give a few useful examples." msgstr "" "Les següents seccions descriuen amb detall com construir i usar patrons, " "classes de caràcters, declaracions, quantificadors i referències enrere, i " "l'última secció presentarà una sèrie d'útils exemples." #. Tag: title #: regular-expressions.docbook:97 #, no-c-format msgid "Patterns" msgstr "Patrons" #. Tag: para #: regular-expressions.docbook:99 #, no-c-format msgid "" "Patterns consists of literal strings and character classes. Patterns may " "contain sub-patterns, which are patterns enclosed in parentheses." msgstr "" "Els patrons consten de cadenes literals i classes de caràcter. Els patrons " "poden contenir subpatrons, que són patrons tancats entre parèntesis." #. Tag: title #: regular-expressions.docbook:104 #, no-c-format msgid "Escaping characters" msgstr "Caràcters d'escapada" #. Tag: para #: regular-expressions.docbook:106 #, no-c-format msgid "" "In patterns as well as in character classes, some characters have a special " "meaning. To literally match any of those characters, they must be marked or " "escaped to let the regular expression software know " "that it should interpret such characters in their literal meaning." msgstr "" "En els patrons, així com en les classes de caràcter, alguns caràcters tenen " "un significat especial. Per aconseguir una coincidència literal amb algun " "d'aquests caràcters, és necessari marcar-los com a escapats per a permetre a l'intèrpret d'expressions regulars comprendre que " "aquests caràcters han de ser inclosos en el seu significat literal." #. Tag: para #: regular-expressions.docbook:112 #, no-c-format msgid "" "This is done by prepending the character with a backslash (\\)." msgstr "" "Això es fa precedint el caràcter d'una barra inversa (\\)." #. Tag: para #: regular-expressions.docbook:116 #, no-c-format msgid "" "The regular expression software will silently ignore escaping a character " "that does not have any special meaning in the context, so escaping for " "example a j (\\j) is safe. If you are " "in doubt whether a character could have a special meaning, you can therefore " "escape it safely." msgstr "" "El programari d'expressions regulars ignorarà l'escapat de qualsevol " "caràcter que no tingui cap significat especial en el context, així que " "escapar, per exemple, «j» (\\j) no té per què causar " "problemes. Si teniu cap dubte sobre quan un caràcter pot tenir un significat " "especial, escapeu-lo amb seguretat." #. Tag: para #: regular-expressions.docbook:122 #, no-c-format msgid "" "Escaping of course includes the backslash character itself, to literally " "match a such, you would write \\\\." msgstr "" "L'escapat inclou el propi caràcter de la barra inversa. Per a poder " "presentar-la de forma literal, heu d'escriure \\\\." #. Tag: title #: regular-expressions.docbook:129 #, no-c-format msgid "Character Classes and abbreviations" msgstr "Classes de caràcter i abreujaments" #. Tag: para #: regular-expressions.docbook:131 #, no-c-format msgid "" "A character class is an expression that matches one of " "a defined set of characters. In Regular Expressions, character classes are " "defined by putting the legal characters for the class in square brackets, " "[], or by using one of the abbreviated classes described " "below." msgstr "" "Una classe de caràcter és una expressió que coincideix " "amb un conjunt de caràcters definit. En les expressions regulars, les " "classes de caràcter s'estableixen col·locant els caràcters vàlids de la " "classe entre claudàtors [], o usant una de les classes " "abreujades que es descriuen a continuació." #. Tag: para #: regular-expressions.docbook:137 #, no-c-format msgid "" "Simple character classes just contains one or more literal characters, for " "example [abc] (matching either of the letters " "a, b or c) or " "[0123456789] (matching any digit)." msgstr "" "Les classes de caràcters simples tan sols contenen un o més caràcters " "literals, per exemple [abc] (que coincidirà amb les " "lletres «a», «b» o «c») o [0123456789] (que " "coincidirà amb qualsevol dígit)." #. Tag: para #: regular-expressions.docbook:142 #, no-c-format msgid "" "Because letters and digits have a logical order, you can abbreviate those by " "specifying ranges of them: [a-c] is equal to " "[abc] and [0-9] is equal to " "[0123456789]. Combining these constructs, for example " "[a-fynot1-38] is completely legal (the last one would " "match, of course, either of a,b,c,d, e,f,y," "n,o,t, 1," "2,3 or 8)." msgstr "" "Com les lletres i els dígits tenen un ordre lògic, ho podeu abreujar usant " "intervals: [a-c] és igual que [abc] i [0-9] és igual que " "[0123456789]. Combinant aquestes construccions, per " "exemple [a-fynot1-38] resulta completament vàlid " "(aquesta última hauria de coincidir amb qualsevol dels caràcters o dígits " "«a», «b», «c», «d», «e», «f», «y», «n», «o», «t», «1», «2», «3» o «8»)." #. Tag: para #: regular-expressions.docbook:154 #, no-c-format msgid "" "As capital letters are different characters from their non-capital " "equivalents, to create a caseless character class matching a " "or b, in any case, you need to write it [aAbB]." msgstr "" "Com les lletres majúscules són caràcters diferents que els seus equivalents " "en minúscula, per a crear una classe de caràcter que sigui independent del " "format de les lletres, haureu d'escriure [aAbB]." #. Tag: para #: regular-expressions.docbook:159 #, no-c-format msgid "" "It is of course possible to create a negative class matching " "as anything but To do so put a caret (^) " "at the beginning of the class:" msgstr "" "De manera que és possible crear una classe «negativa» perquè es faci " "coincidir «tot menys». Per a fer-ho inclogueu un accent circumflex " "(^) al començament de la classe:" #. Tag: para #: regular-expressions.docbook:163 #, no-c-format msgid "" "[^abc] will match any character but a, b or c." msgstr "" "[^abc] coincidirà amb qualsevol caràcter " "excepte amb «a», «b» o «c»." #. Tag: para #: regular-expressions.docbook:167 #, no-c-format msgid "" "In addition to literal characters, some abbreviations are defined, making " "life still a bit easier:" msgstr "" "A més dels caràcters literals, hi ha alguns abreujaments definits, per a " "facilitar una mica les coses:" #. Tag: userinput #: regular-expressions.docbook:173 #, no-c-format msgid "\\a" msgstr "\\a" #. Tag: para #: regular-expressions.docbook:174 #, no-c-format msgid "This matches the ASCII bell character (BEL, 0x07)." msgstr "" "Aquest coincideix amb el caràcter ASCII del timbre (BEL, " "0x07)." #. Tag: userinput #: regular-expressions.docbook:178 #, no-c-format msgid "\\f" msgstr "\\f" #. Tag: para #: regular-expressions.docbook:179 #, no-c-format msgid "" "This matches the ASCII form feed character (FF, 0x0C)." msgstr "" "Aquest coincideix amb el caràcter ASCII del salt de " "pàgina (FF, 0x0C)." #. Tag: userinput #: regular-expressions.docbook:183 #, no-c-format msgid "\\n" msgstr "\\n" #. Tag: para #: regular-expressions.docbook:184 #, no-c-format msgid "" "This matches the ASCII line feed character (LF, 0x0A, " "Unix newline)." msgstr "" "Aquest coincideix amb el caràcter ASCII del salt de línia " "(LF, 0x0A, nova línia a Unix)." #. Tag: userinput #: regular-expressions.docbook:188 #, no-c-format msgid "\\r" msgstr "\\r" #. Tag: para #: regular-expressions.docbook:189 #, no-c-format msgid "" "This matches the ASCII carriage return character (CR, " "0x0D)." msgstr "" "Aquest coincideix amb el caràcter ASCII de retorn de " "carro (CR, 0x0D)." #. Tag: userinput #: regular-expressions.docbook:193 #, no-c-format msgid "\\t" msgstr "\\t" #. Tag: para #: regular-expressions.docbook:194 #, no-c-format msgid "" "This matches the ASCII horizontal tab character (HT, " "0x09)." msgstr "" "Aquest coincideix amb el caràcter ASCII del tabulador " "horitzontal (HT, 0x09)." #. Tag: userinput #: regular-expressions.docbook:198 #, no-c-format msgid "\\v" msgstr "\\v" #. Tag: para #: regular-expressions.docbook:199 #, no-c-format msgid "" "This matches the ASCII vertical tab character (VT, 0x0B)." msgstr "" "Aquest coincideix amb el caràcter ASCII del tabulador " "vertical (VT, 0x0B)." #. Tag: userinput #: regular-expressions.docbook:202 #, no-c-format msgid "\\xhhhh" msgstr "\\xhhhh" #. Tag: para #: regular-expressions.docbook:204 #, no-c-format msgid "" "This matches the Unicode character corresponding to the hexadecimal number " "hhhh (between 0x0000 and 0xFFFF). \\0ooo (&ie;, \\zero ooo) matches the " "ASCII/Latin-1 character corresponding to the octal number " "ooo (between 0 and 0377)." msgstr "" "Aquest coincideix amb el caràcter Unicode corresponent al número hexadecimal " "hhhh (entre 0x0000 i 0xFFFF). \\0ooo (&ead;, \\zero ooo) coincideix amb el " "caràcter ASCII/Latin-1 corresponent al número octal ooo " "(entre 0 i 0377)." #. Tag: term #: regular-expressions.docbook:212 #, no-c-format msgid ". (dot)" msgstr ". (punt)" #. Tag: para #: regular-expressions.docbook:213 #, no-c-format msgid "This matches any character (including newline)." msgstr "Aquest coincideix amb qualsevol caràcter (inclòs el de nova línia)." #. Tag: userinput #: regular-expressions.docbook:217 #, no-c-format msgid "\\d" msgstr "\\d" #. Tag: para #: regular-expressions.docbook:218 #, no-c-format msgid "This matches a digit. Equal to [0-9]" msgstr "Aquest coincideix amb un dígit. És igual que [0-9]" #. Tag: userinput #: regular-expressions.docbook:222 #, no-c-format msgid "\\D" msgstr "\\D" #. Tag: para #: regular-expressions.docbook:223 #, no-c-format msgid "" "This matches a non-digit. Equal to [^0-9] or [^" "\\d]" msgstr "" "Aquest coincideix amb un no dígit. És igual que [^0-9] o " "[^\\d]" #. Tag: userinput #: regular-expressions.docbook:227 #, no-c-format msgid "\\s" msgstr "\\s" #. Tag: para #: regular-expressions.docbook:228 #, no-c-format msgid "" "This matches a whitespace character. Practically equal to [ \\t\\n" "\\r]" msgstr "" "Aquest coincideix amb un caràcter d'espai en blanc. Pràcticament igual que " "[\\t\\n\\r]" #. Tag: userinput #: regular-expressions.docbook:232 #, no-c-format msgid "\\S" msgstr "\\S" #. Tag: para #: regular-expressions.docbook:233 #, no-c-format msgid "" "This matches a non-whitespace. Practically equal to [^ \\t\\r\\n], and equal to [^\\s]" msgstr "" "Aquest coincideix amb un no espai en blanc. Pràcticament igual que " "[^\\t\\r\\n], i igual que [^\\s]" #. Tag: userinput #: regular-expressions.docbook:237 #, no-c-format msgid "\\w" msgstr "\\w" #. Tag: para #: regular-expressions.docbook:238 #, no-c-format msgid "" "Matches any word character - in this case any letter, digit " "or underscore. Equal to [a-zA-Z0-9_]" msgstr "" "Coincideix amb qualsevol «caràcter d'una paraula», en aquest cas qualsevol " "lletra, dígit o guió baix. És igual que [a-zA-Z0-9_]." #. Tag: userinput #: regular-expressions.docbook:243 #, no-c-format msgid "\\W" msgstr "\\W" #. Tag: para #: regular-expressions.docbook:244 #, no-c-format msgid "" "Matches any non-word character - anything but letters, numbers or " "underscore. Equal to [^a-zA-Z0-9_] or [^\\w]" msgstr "" "Coincideix amb qualsevol caràcter que no sigui una paraula, qualsevol cosa " "menys lletres, números o guió baix. És igual que [^a-zA-Z0-9_] o [^\\w]." #. Tag: para #: regular-expressions.docbook:253 #, no-c-format msgid "" "The POSIX notation of classes, [:<class " "name>:] are also supported. For example, [:" "digit:] is equivalent to \\d, and " "[:space:] to \\s. See the full " "list of POSIX character classes here." msgstr "" "També està admesa la notació POSIX de les classes, " "[:<nom classe>:]. Per exemple, [:" "dígit:] és equivalent a \\d, i " "[:espai:] a \\s. Vegeu la " "llista completa de les classes de caràcters POSIX aquí." #. Tag: para #: regular-expressions.docbook:260 #, no-c-format msgid "" "The abbreviated classes can be put inside a custom class, for example to " "match a word character, a blank or a dot, you could write [\\w " "\\.]" msgstr "" "Les classes abreujades es poden posar a dins d'una classe pròpia, per " "exemple per a fer coincidir un caràcter d'una paraula, un espai en blanc o " "un punt, podeu escriure [\\w \\.]" #. Tag: title #: regular-expressions.docbook:265 #, no-c-format msgid "Characters with special meanings inside character classes" msgstr "Caràcters amb significat especial dintre de les classes de caràcters" #. Tag: para #: regular-expressions.docbook:267 #, no-c-format msgid "" "The following characters has a special meaning inside the [] " "character class construct, and must be escaped to be literally included in a " "class:" msgstr "" "Els següents caràcters tenen un significat especial dintre de la construcció " "de classes dels caràcters «[]», i és necessari escapar-los perquè siguin " "inclosos literalment en una classe:" #. Tag: userinput #: regular-expressions.docbook:273 #, no-c-format msgid "]" msgstr "]" #. Tag: para #: regular-expressions.docbook:274 #, no-c-format msgid "" "Ends the character class. Must be escaped unless it is the very first " "character in the class (may follow an unescaped caret)" msgstr "" "Finalitza la classe de caràcters. Haurà d'estar escapat excepte si és el " "primer caràcter de la classe (pot seguir a un accent circumflex sense " "escapar)." #. Tag: term #: regular-expressions.docbook:278 regular-expressions.docbook:415 #, no-c-format msgid "^ (caret)" msgstr "^ (accent circumflex)" #. Tag: para #: regular-expressions.docbook:279 #, no-c-format msgid "" "Denotes a negative class, if it is the first character. Must be escaped to " "match literally if it is the first character in the class." msgstr "" "Indica que es tracta d'una classe negativa, si és el primer caràcter. Haurà " "d'estar escapat per a cercar una coincidència literal en el cas que sigui el " "primer caràcter en la classe." #. Tag: term #: regular-expressions.docbook:282 #, no-c-format msgid "- (dash)" msgstr "- (guió)" #. Tag: para #: regular-expressions.docbook:283 #, no-c-format msgid "" "Denotes a logical range. Must always be escaped within a character class." msgstr "" "Indica un interval lògic. Haurà d'estar escapat en una classe de caràcter." #. Tag: term #: regular-expressions.docbook:286 regular-expressions.docbook:410 #, no-c-format msgid "\\ (backslash)" msgstr "\\ (barra inversa)" #. Tag: para #: regular-expressions.docbook:287 #, no-c-format msgid "The escape character. Must always be escaped." msgstr "El caràcter d'escapada. Haurà d'estar sempre escapat." #. Tag: title #: regular-expressions.docbook:298 #, no-c-format msgid "Alternatives: matching one of" msgstr "Alternatives: Coincidències amb «un de»" #. Tag: para #: regular-expressions.docbook:300 #, no-c-format msgid "" "If you want to match one of a set of alternative patterns, you can separate " "those with | (vertical bar character)." msgstr "" "Si desitgeu que la coincidència sigui una d'una sèrie de patrons " "alternatius, els podeu separar amb | (caràcter de barra " "vertical)." #. Tag: para #: regular-expressions.docbook:303 #, no-c-format msgid "" "For example to find either John or Harry you " "would use an expression John|Harry." msgstr "" "Per exemple, per a trobar «Jordi» o «Albert», hauríeu d'usar una expressió " "Jordi|Albert." #. Tag: title #: regular-expressions.docbook:309 #, no-c-format msgid "Sub Patterns" msgstr "Subpatrons" #. Tag: para #: regular-expressions.docbook:311 #, no-c-format msgid "" "Sub patterns are patterns enclosed in parentheses, and " "they have several uses in the world of regular expressions." msgstr "" "Els subpatrons són patrons tancats entre parèntesis, i " "tenen diversos usos en el món de les expressions regulars." #. Tag: title #: regular-expressions.docbook:317 #, no-c-format msgid "Specifying alternatives" msgstr "Especificació d'alternatives" #. Tag: para #: regular-expressions.docbook:319 #, no-c-format msgid "" "You may use a sub pattern to group a set of alternatives within a larger " "pattern. The alternatives are separated by the character | " "(vertical bar)." msgstr "" "Podeu usar un subpatró per agrupar un conjunt d'alternatives dins d'un patró " "més gran. Les alternatives se separen amb el caràcter «|» (barra vertical)." #. Tag: para #: regular-expressions.docbook:323 #, no-c-format msgid "" "For example to match either of the words int, float or double, you could use the pattern int|" "float|double. If you only want to find one if it is followed by " "some whitespace and then some letters, put the alternatives inside a " "subpattern: (int|float|double)\\s+\\w+." msgstr "" "Per exemple, per a cercar la coincidència de les paraules «int», «float» o " "«double», es podria usar el patró int|float|double. " "Si tan sols desitgeu trobar-ne una seguida d'algun tipus d'espai en blanc i " "després algunes lletres, poseu les alternatives dins d'un subpatró: " "(int|float|double)\\s+\\w+." #. Tag: title #: regular-expressions.docbook:334 #, no-c-format msgid "Capturing matching text (back references)" msgstr "Captura del text coincident (referències enrere)" #. Tag: para #: regular-expressions.docbook:336 #, no-c-format msgid "" "If you want to use a back reference, use a sub pattern (PATTERN) to have the desired part of the pattern remembered. To prevent " "the sub pattern from being remembered, use a non-capturing group " "(?:PATTERN)." msgstr "" "Si voleu utilitzar una referència enrere, utilitzeu un subpatró " "(PATRÓ) perquè es recordi la part desitjada del " "patró. Per evitar que es recordi el subpatró, utilitzeu un grup sense " "captura (?:PATTERN)." #. Tag: para #: regular-expressions.docbook:341 #, no-c-format msgid "" "For example, if you want to find two occurrences of the same word separated " "by a comma and possibly some whitespace, you could write (\\w+)," "\\s*\\1. The sub pattern \\w+ would find a " "chunk of word characters, and the entire expression would match if those " "were followed by a comma, 0 or more whitespace and then an equal chunk of " "word characters. (The string \\1 references the " "first sub pattern enclosed in parentheses)" msgstr "" "Per exemple, si desitgeu trobar dues ocurrències de la mateixa paraula " "separades per una coma i possiblement algun espai en blanc, podeu escriure " "(\\w+),\\s*\\1. El subpatró \\w+ " "localitzarà un conjunt de caràcters d'una paraula, i tota l'expressió " "coincidirà si aquest conjunt va seguit d'una coma, 0 o més espais en blanc i " "després un conjunt de caràcters d'una paraula igual que el primer (la cadena " "\\1 fa referència al primer subpatró delimitat " "per parèntesis)." #. Tag: para #: regular-expressions.docbook:351 #, no-c-format msgid "" "To avoid ambiguities with usage of \\1 with some " "digits behind it (⪚ \\12 can be 12th subpattern or " "just the first subpattern with 2) we use " "\\{12} as syntax for multi-digit subpatterns." msgstr "" "Per evitar ambigüitats amb l'ús de \\1 amb alguns " "dígits al darrere (&pex;, \\12 pot ser el subpatró 12 " "o simplement el primer subpatró amb 2) utilitzarem " "\\{12} com a sintaxi pels subpatrons amb múltiples " "dígits." #. Tag: para #: regular-expressions.docbook:352 #, no-c-format msgid "Examples:" msgstr "Exemples:" #. Tag: para #: regular-expressions.docbook:354 #, no-c-format msgid "\\{12}1 is use subpattern 12" msgstr "" "\\{12}1 és utilitza el subpatró 12" #. Tag: para #: regular-expressions.docbook:355 #, no-c-format msgid "" "\\123 is use capture 1 then 23 as the normal " "text" msgstr "" "\\123 és utilitza la captura 1 després 23 com " "a text normal" #. Tag: title #: regular-expressions.docbook:365 #, no-c-format msgid "Lookahead Assertions" msgstr "Declaracions d'anticipació" #. Tag: para #: regular-expressions.docbook:367 #, no-c-format msgid "" "A lookahead assertion is a sub pattern, starting with either ?= or ?!." msgstr "" -"Una declaració d'anticipació és un subpatró, que comença per ?= o per ?!." +"Una declaració d'anticipació és un subpatró, el qual comença per ?=" +" o per ?!." # skip-rule: gender-kid #. Tag: para #: regular-expressions.docbook:370 #, no-c-format msgid "" "For example to match the literal string Bill but only if not " "followed by Gates, you could use this expression: " "Bill(?! Gates). (This would find Bill Clinton as well as Billy the kid, but silently ignore the " "other matches.)" msgstr "" "Per exemple, si voleu cercar la cadena literal «Bill», però tan sols si no " "va seguida de « Gates», podeu usar l'expressió: Bill(?! Gates). (Això coincidirà amb «Bill Clinton» i amb «Billy el nen», però " "ignoraria en silenci les altres coincidències)." #. Tag: para #: regular-expressions.docbook:376 regular-expressions.docbook:393 #, no-c-format msgid "Sub patterns used for assertions are not captured." msgstr "Els subpatrons usats en les declaracions no es capturen." #. Tag: para #: regular-expressions.docbook:378 regular-expressions.docbook:395 #, no-c-format msgid "See also Assertions" msgstr "Veure també Declaracions." #. Tag: title #: regular-expressions.docbook:383 -#, fuzzy, no-c-format +#, no-c-format #| msgid "Lookahead Assertions" msgid "Lookbehind Assertions" -msgstr "Declaracions d'anticipació" +msgstr "Declaracions de cerca cap enrere" #. Tag: para #: regular-expressions.docbook:385 -#, fuzzy, no-c-format +#, no-c-format #| msgid "" #| "A lookahead assertion is a sub pattern, starting with either ?= or ?!." msgid "" "A lookbehind assertion is a sub pattern, starting with either ?<" "= or ?<!." msgstr "" -"Una declaració d'anticipació és un subpatró, que comença per ?= o per ?!." +"Una declaració de cerca cap enrere és un subpatró, el qual comença per " +"?<= o per ?<!." #. Tag: para #: regular-expressions.docbook:388 #, no-c-format msgid "" "Lookbehind has the same effect as the lookahead, but works backwards. For " "example to match the literal string fruit but only if not " "preceded by grape, you could use this expression: " "(?<!grape)fruit." msgstr "" +"La cerca cap enrere té el mateix efecte que l'anticipada, però funciona a " +"l'inrevés. Per exemple, per a fer coincidir la cadena literal fruit, però només si no està precedida per grape, podreu " +"utilitzar aquesta expressió: (?<!grape)fruit." #. Tag: title #: regular-expressions.docbook:402 #, no-c-format msgid "Characters with a special meaning inside patterns" msgstr "Caràcters amb un significat especial dins dels patrons" #. Tag: para #: regular-expressions.docbook:404 #, no-c-format msgid "" "The following characters have meaning inside a pattern, and must be escaped " "if you want to literally match them:" msgstr "" "Els següents caràcters tenen significat dins dels patrons, i és necessari " "escapar-los per a una coincidència literal:" #. Tag: para #: regular-expressions.docbook:411 #, no-c-format msgid "The escape character." msgstr "El caràcter d'escapada." #. Tag: para #: regular-expressions.docbook:416 #, no-c-format msgid "Asserts the beginning of the string." msgstr "Declara el començament de la cadena." #. Tag: userinput #: regular-expressions.docbook:420 #, no-c-format msgid "$" msgstr "$" #. Tag: para #: regular-expressions.docbook:421 #, no-c-format msgid "Asserts the end of string." msgstr "Declara el final de la cadena." #. Tag: term #: regular-expressions.docbook:425 #, no-c-format msgid "() (left and right parentheses)" msgstr "() (parèntesis dret i esquerre)" #. Tag: para #: regular-expressions.docbook:426 #, no-c-format msgid "Denotes sub patterns." msgstr "Denota subpatrons." #. Tag: term #: regular-expressions.docbook:430 #, no-c-format msgid "{} (left and right curly braces)" msgstr "{} (claus dreta i esquerra)" #. Tag: para #: regular-expressions.docbook:431 #, no-c-format msgid "Denotes numeric quantifiers." msgstr "Denota quantificadors numèrics." #. Tag: term #: regular-expressions.docbook:435 #, no-c-format msgid "[] (left and right square brackets)" msgstr "[] (claudàtors dret i esquerre)" #. Tag: para #: regular-expressions.docbook:436 #, no-c-format msgid "Denotes character classes." msgstr "Denota classes de caràcter." #. Tag: term #: regular-expressions.docbook:440 #, no-c-format msgid "| (vertical bar)" msgstr "| (barra vertical)" #. Tag: para #: regular-expressions.docbook:441 #, no-c-format msgid "logical OR. Separates alternatives." msgstr "O lògic. Separa alternatives." #. Tag: term #: regular-expressions.docbook:445 regular-expressions.docbook:522 #, no-c-format msgid "+ (plus sign)" msgstr "+ (signe més)" #. Tag: para #: regular-expressions.docbook:446 #, no-c-format msgid "Quantifier, 1 or more." msgstr "Quantificador, 1 o més." #. Tag: term #: regular-expressions.docbook:450 regular-expressions.docbook:517 #, no-c-format msgid "* (asterisk)" msgstr "* (asterisc)" #. Tag: para #: regular-expressions.docbook:451 #, no-c-format msgid "Quantifier, 0 or more." msgstr "Quantificador, 0 o més." #. Tag: term #: regular-expressions.docbook:455 regular-expressions.docbook:527 #, no-c-format msgid "? (question mark)" msgstr "? (signe d'interrogació)" #. Tag: para #: regular-expressions.docbook:456 #, no-c-format msgid "An optional character. Can be interpreted as a quantifier, 0 or 1." msgstr "Un caràcter opcional. Es pot interpretar com quantificador, 0 o 1." #. Tag: title #: regular-expressions.docbook:468 #, no-c-format msgid "Quantifiers" msgstr "Quantificadors" #. Tag: para #: regular-expressions.docbook:470 #, no-c-format msgid "" "Quantifiers allows a regular expression to match a " "specified number or range of numbers of either a character, character class " "or sub pattern." msgstr "" "Els quantificadors permeten que una expressió regular " "coincideixi amb un número o un interval de números de qualsevol caràcter, " "una classe de caràcter o un subpatró." #. Tag: para #: regular-expressions.docbook:474 #, no-c-format msgid "" "Quantifiers are enclosed in curly brackets ({ and " "}) and have the general form {[minimum-" "occurrences][,[maximum-occurrences]]}" msgstr "" "Els quantificadors es col·loquen entre claus ({ i " "}). Teniu la forma general {[ocurrències-mínimes]" "[,[ocurrències-màximes]]}" #. Tag: para #: regular-expressions.docbook:479 #, no-c-format msgid "The usage is best explained by example:" msgstr "L'ús s'explica millor en aquest exemple:" #. Tag: userinput #: regular-expressions.docbook:484 #, no-c-format msgid "{1}" msgstr "{1}" #. Tag: para #: regular-expressions.docbook:485 #, no-c-format msgid "Exactly 1 occurrence" msgstr "Exactament 1 ocurrència" #. Tag: userinput #: regular-expressions.docbook:489 #, no-c-format msgid "{0,1}" msgstr "{0,1}" #. Tag: para #: regular-expressions.docbook:490 #, no-c-format msgid "Zero or 1 occurrences" msgstr "Zero o 1 ocurrència" #. Tag: userinput #: regular-expressions.docbook:494 #, no-c-format msgid "{,1}" msgstr "{,1}" #. Tag: para #: regular-expressions.docbook:495 #, no-c-format msgid "The same, with less work;)" msgstr "El mateix, però amb menys treball ;)" #. Tag: userinput #: regular-expressions.docbook:499 #, no-c-format msgid "{5,10}" msgstr "{5,10}" #. Tag: para #: regular-expressions.docbook:500 #, no-c-format msgid "At least 5 but maximum 10 occurrences." msgstr "Com a mínim 5 i com a màxim 10 ocurrències." #. Tag: userinput #: regular-expressions.docbook:504 #, no-c-format msgid "{5,}" msgstr "{5,}" #. Tag: para #: regular-expressions.docbook:505 #, no-c-format msgid "At least 5 occurrences, no maximum." msgstr "Com a mínim 5 ocurrències, sense màxim." #. Tag: para #: regular-expressions.docbook:512 #, no-c-format msgid "Additionally, there are some abbreviations:" msgstr "A més, hi ha alguns abreujaments:" #. Tag: para #: regular-expressions.docbook:518 #, no-c-format msgid "similar to {0,}, find any number of occurrences." msgstr "" "Similar a {0,}, troba qualsevol nombre d'ocurrències." #. Tag: para #: regular-expressions.docbook:523 #, no-c-format msgid "similar to {1,}, at least 1 occurrence." msgstr "Similar a {1,}, almenys 1 ocurrència." #. Tag: para #: regular-expressions.docbook:528 #, no-c-format msgid "similar to {0,1}, zero or 1 occurrence." msgstr "Similar a {0,1}, zero o 1 ocurrència." #. Tag: title #: regular-expressions.docbook:537 #, no-c-format msgid "Greed" msgstr "Avarícia" #. Tag: para #: regular-expressions.docbook:539 #, no-c-format msgid "" "When using quantifiers with no maximum, regular expressions defaults to " "match as much of the searched string as possible, commonly known as " "greedy behavior." msgstr "" "Quan s'usen quantificadors sense màxim, les expressions regulars intenten " "coincidir amb la major part possible de la cadena cercada, coneixent-se " "aquest comportament com a avariciós." #. Tag: para #: regular-expressions.docbook:543 #, no-c-format msgid "" "Modern regular expression software provides the means of turning off " "greediness, though in a graphical environment it is up to the " "interface to provide you with access to this feature. For example a search " "dialog providing a regular expression search could have a check box labeled " "Minimal matching as well as it ought to indicate if " "greediness is the default behavior." msgstr "" "El programari modern d'expressions regulars proporciona els mitjans per a " "«desactivar l'avarícia», tot i que en els entorns gràfics dependrà de la " "interfície en tenir accés a aquesta característica. Per exemple, un diàleg " "de cerca que permeti expressions regulars, podria tenir una casella de " "selecció anomenada «Coincidència mínima». a més, hi podria haver una " "indicació quant a que el comportament per omissió és d'avarícia." #. Tag: title #: regular-expressions.docbook:554 #, no-c-format msgid "In context examples" msgstr "Exemples en context" #. Tag: para #: regular-expressions.docbook:556 #, no-c-format msgid "Here are a few examples of using quantifiers" msgstr "Aquests són alguns exemples que usen quantificadors:" #. Tag: userinput #: regular-expressions.docbook:561 #, no-c-format msgid "^\\d{4,5}\\s" msgstr "^\\d{4,5}\\s" #. Tag: para #: regular-expressions.docbook:562 #, no-c-format msgid "" "Matches the digits in 1234 go and 12345 now, " "but neither in 567 eleven nor in 223459 somewhere" msgstr "" "Coincideix amb els dígits en «1234 ja» i «12345 ara», però no amb els de " "«567 onze» ni els de «223459 enlloc»." #. Tag: userinput #: regular-expressions.docbook:567 #, no-c-format msgid "\\s+" msgstr "\\s+" #. Tag: para #: regular-expressions.docbook:568 #, no-c-format msgid "Matches one or more whitespace characters" msgstr "Coincideix amb un o més espais en blanc." #. Tag: userinput #: regular-expressions.docbook:572 #, no-c-format msgid "(bla){1,}" msgstr "(bla){1,}" #. Tag: para #: regular-expressions.docbook:573 #, no-c-format msgid "" "Matches all of blablabla and the bla in " "blackbird or tabla" msgstr "Coincideix amb «blablabla» i amb el «bla» de «blanc» o «tabla»." #. Tag: userinput #: regular-expressions.docbook:577 #, no-c-format msgid "/?>" msgstr "/?>" #. Tag: para #: regular-expressions.docbook:578 #, no-c-format msgid "" "Matches /> in <closeditem/> as well " "as > in <openitem>." msgstr "" "Coincideix amb «/>» en «<elementtancat/>» així com amb «>» en " "«<elementobert>»." #. Tag: title #: regular-expressions.docbook:589 #, no-c-format msgid "Assertions" msgstr "Declaracions" #. Tag: para #: regular-expressions.docbook:591 #, no-c-format msgid "" "Assertions allows a regular expression to match only " "under certain controlled conditions." msgstr "" "Les declaracions permeten que una expressió regular tan " "sols coincideixi sota una sèrie de condicions controlades." #. Tag: para #: regular-expressions.docbook:594 #, no-c-format msgid "" "An assertion does not need a character to match, it rather investigates the " "surroundings of a possible match before acknowledging it. For example the " "word boundary assertion does not try to find a non word " "character opposite a word one at its position, instead it makes sure that " "there is not a word character. This means that the assertion can match where " "there is no character, &ie; at the ends of a searched string." msgstr "" "Una declaració no necessita la coincidència d'un caràcter, sinó que " "investiga els voltants cercant una possible coincidència abans de donar-la " "per vàlida. Per exemple, la declaració límit de paraula " "no intenta trobar un caràcter que no sigui d'una paraula en oposició a un " "que sí que estigui en la seva posició, en comptes d'això mira d'assegurar " "que no és un caràcter d'una paraula. Això vol dir que la declaració pot ser " "vàlida en el cas que no hi hagi cap caràcter, &ead;, al final de la cadena " "cercada." #. Tag: para #: regular-expressions.docbook:602 #, no-c-format msgid "" "Some assertions actually do have a pattern to match, but the part of the " "string matching that will not be a part of the result of the match of the " "full expression." msgstr "" "Algunes declaracions actuals no tenen un patró amb què coincidir, però la " "part coincident de la cadena no serà part del resultat de la coincidència de " "l'expressió completa." #. Tag: para #: regular-expressions.docbook:606 #, no-c-format msgid "" "Regular Expressions as documented here supports the following assertions:" msgstr "" "Les expressions regulars aquí documentades suporten les següents " "declaracions:" #. Tag: term #: regular-expressions.docbook:612 #, no-c-format msgid "^ (caret: beginning of string)" msgstr "" "^ (accent circumflex: el començament d'una cadena)" #. Tag: para #: regular-expressions.docbook:614 #, no-c-format msgid "Matches the beginning of the searched string." msgstr "Coincideix amb el començament de la cadena cercada." #. Tag: para #: regular-expressions.docbook:615 #, no-c-format msgid "" "The expression ^Peter will match at Peter in the string Peter, hey! but not in Hey, Peter!" "" msgstr "" "L'expressió ^Pere coincidirà amb «Pere» en la cadena " "«Pere, hola!» però no en «Hola Pere!»" #. Tag: term #: regular-expressions.docbook:621 #, no-c-format msgid "$ (end of string)" msgstr "$ (final de la cadena)" #. Tag: para #: regular-expressions.docbook:622 #, no-c-format msgid "Matches the end of the searched string." msgstr "Coincideix amb el final de la cadena cercada." #. Tag: para #: regular-expressions.docbook:624 #, no-c-format msgid "" "The expression you\\?$ will match at the last you in " "the string You didn't do that, did you? but nowhere in " "You didn't do that, right?" msgstr "" "L'expressió tu\\?$ coincidirà amb el final de la " "cadena «No l'has fet tu?», però amb cap part de «Tu no l'has fet?»" #. Tag: term #: regular-expressions.docbook:632 #, no-c-format msgid "\\b (word boundary)" msgstr "\\b (límit de paraula)" #. Tag: para #: regular-expressions.docbook:633 #, no-c-format msgid "" "Matches if there is a word character at one side and not a word character at " "the other." msgstr "" "Coincideix si hi ha un caràcter de paraula a un costat i no un caràcter de " "paraula a l'altre." #. Tag: para #: regular-expressions.docbook:635 #, no-c-format msgid "" "This is useful to find word ends, for example both ends to find a whole " "word. The expression \\bin\\b will match at the " "separate in in the string He came in through the " "window, but not at the in in window." msgstr "" "Això és molt útil per a trobar el final de les paraules, o ambdós extrems " "per a delimitar tota la paraula. L'expressió \\bin\\b " "coincidirà amb el «in» separat en la cadena «He came in through the window», " "però no amb el «in» de «window»." #. Tag: term #: regular-expressions.docbook:644 #, no-c-format msgid "\\B (non word boundary)" msgstr "\\B (no límit de paraula)" #. Tag: para #: regular-expressions.docbook:645 #, no-c-format msgid "Matches wherever \\b does not." msgstr "Coincideix amb tot el que «\\b» no coincideix." #. Tag: para #: regular-expressions.docbook:646 #, no-c-format msgid "" "That means that it will match for example within words: The expression " "\\Bin\\B will match at in window but " "not in integer or I'm in love." msgstr "" "Això vol dir que coincidirà, per exemple, dins de les paraules: L'expressió " "\\Bin\\B coincidirà en «window» però no en «integer» " "o en «I'm in love»." #. Tag: term #: regular-expressions.docbook:652 #, no-c-format msgid "(?=PATTERN) (Positive lookahead)" msgstr "(?=PATRÓ) (anticipació positiva)" #. Tag: para #: regular-expressions.docbook:653 #, no-c-format msgid "" "A lookahead assertion looks at the part of the string following a possible " "match. The positive lookahead will prevent the string from matching if the " "text following the possible match does not match the PATTERN of the assertion, but the text matched by that will not be " "included in the result." msgstr "" "Una declaració d'anticipació cerca la part de la cadena seguida d'una " "possible coincidència. L'anticipació positiva prevé la coincidència de la " "cadena si el text que segueix no correspon al PATRÓ de " "la declaració, i el text que coincideix amb aquest no serà inclòs en el " "resultat." #. Tag: para #: regular-expressions.docbook:657 #, no-c-format msgid "" "The expression handy(?=\\w) will match at " "handy in handyman but not in That came " "in handy!" msgstr "" "L'expressió handy(?=\\w) coincidirà amb «handy» en " "«handyman» però no en «That came in handy!»" #. Tag: term #: regular-expressions.docbook:663 #, no-c-format msgid "(?!PATTERN) (Negative lookahead)" msgstr "(?!PATRÓ) (anticipació negativa)" #. Tag: para #: regular-expressions.docbook:665 #, no-c-format msgid "" "The negative lookahead prevents a possible match to be acknowledged if the " "following part of the searched string does match its PATTERN." msgstr "" "L'anticipació negativa prevé una possible coincidència si la següent part de " "la cadena coincideix amb el PATRÓ." #. Tag: para #: regular-expressions.docbook:668 #, no-c-format msgid "" "The expression const \\w+\\b(?!\\s*&) will match " "at const char in the string const char* foo " "while it can not match const QString in const " "QString& bar because the & matches the " "negative lookahead assertion pattern." msgstr "" "L'expressió const \\w+\\b(?!\\s*&) coincidirà amb " "«const char» en la cadena «const char* foo», mentre que no coincidirà amb " "«const QString» en «const QString& bar», atès que el «&» coincideix " "amb el patró de la declaració d'anticipació negativa." #. Tag: term #: regular-expressions.docbook:678 -#, fuzzy, no-c-format +#, no-c-format #| msgid "(?=PATTERN) (Positive lookahead)" msgid "(?<=PATTERN) (Positive lookbehind)" -msgstr "(?=PATRÓ) (anticipació positiva)" +msgstr "(?<=PATRÓ) (cerca cap enrere positiva)" #. Tag: para #: regular-expressions.docbook:679 -#, fuzzy, no-c-format +#, no-c-format #| msgid "" #| "A lookahead assertion looks at the part of the string following a " #| "possible match. The positive lookahead will prevent the string from " #| "matching if the text following the possible match does not match the " #| "PATTERN of the assertion, but the text matched by " #| "that will not be included in the result." msgid "" "Lookbehind has the same effect as the lookahead, but works backwards. A " "lookbehind looks at the part of the string previous a possible match. The " "positive lookbehind will match a string only if it is preceded by the " "PATTERN of the assertion, but the text matched by that " "will not be included in the result." msgstr "" -"Una declaració d'anticipació cerca la part de la cadena seguida d'una " -"possible coincidència. L'anticipació positiva prevé la coincidència de la " -"cadena si el text que segueix no correspon al PATRÓ de " -"la declaració, i el text que coincideix amb aquest no serà inclòs en el " -"resultat." +"La cerca cap enrere té el mateix efecte que l'anticipació, però funciona a " +"l'inrevés.Una cerca capo enrere la part de la cadena anterior a una possible " +"coincidència. La cerca cap enrere positiva només coincidirà amb una cadena si " +"està precedida pel PATRÓ de la declaració, i el text que " +"coincideix amb aquest no serà inclòs en el resultat." #. Tag: para #: regular-expressions.docbook:683 -#, fuzzy, no-c-format +#, no-c-format #| msgid "" #| "The expression handy(?=\\w) will match at " #| "handy in handyman but not in That " #| "came in handy!" msgid "" "The expression (?<cup)cake will match at " "cake if it is succeeded by cup (in " "cupcake but not in cheesecake or in " "cake alone)." msgstr "" -"L'expressió handy(?=\\w) coincidirà amb «handy» en " -"«handyman» però no en «That came in handy!»" +"L'expressió (?<cup)cake coincidirà amb cake" +" si està precedit per cup (sí a cupcake " +"però no a cheesecake o cake)." #. Tag: term #: regular-expressions.docbook:690 -#, fuzzy, no-c-format +#, no-c-format #| msgid "(?!PATTERN) (Negative lookahead)" msgid "(?<!PATTERN) (Negative lookbehind)" -msgstr "(?!PATRÓ) (anticipació negativa)" +msgstr "(?<!PATRÓ) (cerca cap enrere negativa)" #. Tag: para #: regular-expressions.docbook:691 -#, fuzzy, no-c-format +#, no-c-format #| msgid "" #| "The negative lookahead prevents a possible match to be acknowledged if " #| "the following part of the searched string does match its " #| "PATTERN." msgid "" "The negative lookbehind prevents a possible match to be acknowledged if the " "previous part of the searched string does match its PATTERN." msgstr "" -"L'anticipació negativa prevé una possible coincidència si la següent part de " -"la cadena coincideix amb el PATRÓ." +"La cerca cap enrere negativa prevé una possible coincidència si la part " +"anterior de la cadena coincideix amb el PATRÓ." #. Tag: para #: regular-expressions.docbook:693 -#, fuzzy, no-c-format +#, no-c-format #| msgid "" #| "The expression ^Peter will match at Peter in the string Peter, hey! but not in Hey, " #| "Peter!" msgid "" "The expression (?<![\\w\\.])[0-9]+ will match at " "123 in the strings =123 and -123 while it can not match 123 in .123 or " "word123." msgstr "" -"L'expressió ^Pere coincidirà amb «Pere» en la cadena " +"L'expressió (?<![\\w\\.])[0-9]+ coincidirà amb " +"123 a les cadenes =123 i -123 " +"però no coincidirà amb les cadenes .123 o word123." "«Pere, hola!» però no en «Hola Pere!»" #. Tag: term #: regular-expressions.docbook:700 #, no-c-format msgid "(PATTERN) (Capturing group)" msgstr "(PATRÓ) (amb captura del grup)" #. Tag: para #: regular-expressions.docbook:702 #, no-c-format msgid "" "The sub pattern within the parentheses is captured and remembered, so that " "it can be used in back references. For example, the expression " "(&quot;+)[^&quot;]*\\1 matches " """""text"""" " "and "text"." msgstr "" "El subpatró dins dels parèntesis serà capturat i recordat, de manera que " "pugui usar-se en les referències enrere. Per exemple, l'expressió " "(&quot;+)[^&quot;]*\\1 coincidirà amb " """""text"""" " "i "text"." #. Tag: para #: regular-expressions.docbook:707 #, no-c-format msgid "" "See the section Capturing matching text " "(back references) for more information." msgstr "" "Per obtenir més informació vegeu Captura " "del text coincident (referències enrere)." #. Tag: term #: regular-expressions.docbook:713 #, no-c-format msgid "(?:PATTERN) (Non-capturing group)" msgstr "(?:PATRÓ) (sense captura del grup)" #. Tag: para #: regular-expressions.docbook:715 #, no-c-format msgid "" "The sub pattern within the parentheses is not captured and is not " "remembered. It is preferable to always use non-capturing groups if the " "captures will not be used." msgstr "" "El subpatró entre parèntesis no es capturarà ni recordarà. És preferible " "utilitzar sempre grups sense captura si no s'utilitzaran les captures." #~ msgid "" #~ "The POSIX notation of classes, [:<class name>:] is currently not supported." #~ msgstr "" #~ "La notació POSIX de classes, [:<class name>:] actualment no està suportada." #~ msgid "" #~ "If you want to use a back reference, use a sub pattern to have the " #~ "desired part of the pattern remembered." #~ msgstr "" #~ "Si desitgeu usar una referència enrere, useu un subpatró perquè es " #~ "recordi la part desitjada del patró." Index: trunk/l10n-kf5/ca/docs/applications/katepart/development.docbook =================================================================== --- trunk/l10n-kf5/ca/docs/applications/katepart/development.docbook (revision 1559933) +++ trunk/l10n-kf5/ca/docs/applications/katepart/development.docbook (revision 1559934) @@ -1,5399 +1,5411 @@ &TC.Hollingsworth; &TC.Hollingsworth.mail; &traductor.Antoni.Bella; Estendre la &katepart; Introducció Igual que qualsevol editor de text avançat, la &katepart; ofereix una varietat de maneres d'estendre la seva funcionalitat. Podeu escriure scripts senzills per afegir funcionalitat amb JavaScript. Finalment, un cop estengueu la &katepart;, sereu benvinguts a unir-vos amb nosaltres i compartir les vostres millores amb el món! Treballar amb el ressaltat de la sintaxi Vista general El ressaltat de la sintaxi és el que fa que l'editor mostri automàticament text en diferents estils/colors, depenent de la funció de la cadena en relació al propòsit del fitxer. En el codi font d'un programa, per exemple, les sentències de control es poden presentar en negreta, mentre que els tipus de dades i els comentaris poden tenir diferents colors que la resta del text. Això millora considerablement la llegibilitat del text, i ajuda a l'autor a ser més eficient i productiu. Una funció de C++, presentada amb ressaltat de la sintaxi. Una funció de C++, presentada amb ressaltat de la sintaxi. La mateixa funció de C++, sense ressaltat. La mateixa funció de C++, sense ressaltat. Dels dos exemples, quin resulta més fàcil de llegir? La &kappname; compta amb un sistema de ressaltat de sintaxi flexible, configurable i capaç, la distribució estàndard proveeix definicions per a una gran varietat de llenguatges de programació, creació de scripts i de marques. A més podeu proveir les vostres pròpies definicions en simples fitxers &XML;. La &kappname; detectarà automàticament les regles de la sintaxi correctes quan obriu un fitxer, basant-se en el tipus &MIME; del fitxer, determinat per la seva extensió, o, si no en té, pel seu contingut. Si l'elecció no és la correcta, podreu establir-la manualment des del menú EinesRessaltat. Els estils i colors emprats per a cada definició de ressaltat de sintaxi es poden configurar utilitzant la pestanya Estils del text ressaltat del Diàleg de configuració, mentre que els tipus &MIME; i extensions de fitxer per als que s'hauran d'utilitzar, es poden gestionar utilitzant la pàgina Modes i tipus de fitxers. El ressaltat de la sintaxi té el seu ús en la millora de la llegibilitat del text, però no podeu confiar-hi per a validar que el text és correcte. Marcar el text en funció de la seva sintaxi pot ser difícil, depenent del format que s'estigui emprant, i en alguns casos els autors de les regles de la sintaxi poden estar orgullosos si es processa correctament el 98% del text, si bé caldrà un estil molt rar per a veure el 2% incorrecte. El sistema de ressaltat de la sintaxi de la &kappname; Aquesta secció tractarà sobre el mecanisme de ressaltat de la sintaxi de la &kappname; amb més detall. Recomanem la seva lectura si voleu aprendre sobre seu, o si voleu crear o canviar les definicions de la sintaxi. Com funciona Sempre que obriu un fitxer, una de les primeres coses que fa l'editor de la &kappname; és detectar quina definició de la sintaxi s'emprarà per al fitxer. Mentre va llegint el text del fitxer, i mentre hi va escrivint, el sistema de ressaltat de la sintaxi analitza el text utilitzant les regles establertes per la definició de la sintaxi i marcant a on comencen i acaben els diferents contexts i estils. Quan escriviu en el document, el text nou és analitzat i marcat al vol, de manera que si suprimiu un caràcter que marca el començament o el final d'un context, l'estil del text adjacent canviarà en conseqüència. Les definicions de la sintaxi utilitzades pel sistema de ressaltat de la sintaxi de la &kappname; són fitxers &XML;, que contenen Regles per a detectar el paper del text, organitzades en blocs segons el context Llistes de paraules clau Definicions dels elements d'estil Quan s'analitza el text, les regles de detecció són avaluades en l'ordre en el que estan definides, i si el començament de la cadena actual coincideix amb la regla, s'utilitzarà el context relacionat. El punt d'inici del text es mou al punt final en el que la regla coincideix i comença un nou cicle de regles, començant en el context establert per la regla coincident. Regles Les regles de la detecció són el nucli del sistema de detecció del ressaltat. Una regla és una cadena, un caràcter o una expressió regular contra la que haurà de coincidir el text que s'està analitzant. Conté informació sobre l'estil a emprar per a la part coincident del text. Es pot canviar el context de treball del sistema, ja sigui cap a un context mencionat explícitament o cap a l'anterior context emprat pel text. Les regles s'organitzen en grups de context. Un grup de context s'utilitza per als conceptes del text principal dins del format, per exemple, les cadenes de text entre cometes o els blocs de comentaris en el codi font d'un programa. Això garanteix que el sistema de ressaltat no necessita realitzar un cicle per a totes les regles quan no és necessari, i que algunes seqüències de caràcters del text es poden tractar de forma diferent depenent del context actual. En les regles és possible generar contexts dinàmicament per a permetre l'ús de dades específiques d'una instància. Estils i paraules clau del context En alguns llenguatges de programació, els nombres enters són tractats pel compilador (el programa que converteix el codi font en un executable binari) d'una forma diferent dels de coma flotant, i poden haver-hi caràcters que tinguin un significat especial dins d'una cadena entre cometes. En aquests casos, té sentit processar-los de diferent manera que el text adjacent, perquè resultin fàcils d'identificar. De manera que si no representen contexts especials, poden ser vistos com a tals pel sistema de ressaltat de la sintaxi, així que són marcats per a un processat diferent. Una definició de la sintaxi pot contenir tants estils com siguin requerits per a cobrir tots els conceptes del format per al que s'utilitza. En molts formats hi ha llistes de paraules que representen un concepte específic. Per exemple, en els llenguatges de programació, les sentències de control són un concepte, els noms de tipus de dades un altre, i les funcions incloses en el llenguatge són un tercer. El sistema de ressaltat de la sintaxi de la &kappname; pot utilitzar aquestes llistes per a detectar i marcar paraules en el text per emfatitzar conceptes dels formats del text. Estils per omissió Si obriu un fitxer de codi font en C++, un fitxer de codi font en &Java; i un document en HTML a la &kappname;, podreu comprovar que tot i que els formats són diferents, i per tant les paraules que reben un tractament especial també són diferents, els colors emprats són els mateixos. Això és perquè la &kappname; té una llista per omissió d'estils per omissió, que s'empren en les definicions de la sintaxi individuals. Això facilita reconèixer conceptes similars en diferents formats de text. Per exemple, els comentaris estan presents en pràcticament qualsevol llenguatge de programació, creació de scripts o de marques, i si es presenten utilitzant el mateix estil en tots els llenguatges, no haureu de parar-vos a pensar i identificar la seva posició en el text. Tots els estils de definició de la sintaxi utilitzen un dels estils per omissió. Hi ha poques definicions de la sintaxi que utilitzin més estils dels que hi ha per omissió, així que, si empreu un format molt sovint, potser val la pena obrir el diàleg de configuració per a veure si alguns conceptes estan emprant el mateix estil. Per exemple, tan sols hi ha un estil per omissió per a les cadenes, però com el llenguatge de programació Perl utilitza dos tipus de cadena, podeu millorar el ressaltat configurant ambdues de forma lleugerament diferent. Més endavant s'explicaran tots els estils per omissió disponibles. El format &XML; per a la definició del ressaltat Vista general El &kappname; utilitza l'entorn de treball per al ressaltat de la sintaxi dels &kde-frameworks;. Els fitxers XML per omissió del ressaltat distribuïts enviats amb el &kappname; són compilats dintre de la biblioteca de ressaltat de la sintaxi. Aquesta secció és una introducció al format &XML; per a la definició del ressaltat. Descriu els components principals, el seu significat i utilització. La següent secció entra en detalls amb les regles de la detecció. La definició formal, també coneguda com la XSD es troba al repositori del ressaltat de la sintaxi al fitxer language.xsd Els fitxers .xml personalitzats per a la definició del ressaltat es troben a org.kde.syntax-highlighting/syntax/ a la carpeta d'usuari que trobareu amb qtpaths que normalment és $HOME/.local/share Al &Windows; aquests fitxers es troben a %USERPROFILE%/AppData/Local/org.kde.syntax-highlighting/syntax. %USERPROFILE% que generalment s'expandeix a C:\\Users\\usuari. Si hi ha múltiples fitxers per al mateix llenguatge, es carregarà el fitxer amb l'atribut version més alt en l'element language. Principals seccions dels fitxers per a la definició del ressaltat de la &kappname; Tots els fitxers de ressaltat contenen una capçalera que estableix la versió XML: <?xml version="1.0" encoding="UTF-8"?> La part principal del fitxer de la definició és l'element language. Els atributs disponibles són: Atributs requerits: name estableix el nom del llenguatge. Després apareixerà als menús i als diàlegs. section especifica la categoria. extensions defineix les extensions dels fitxers, com "*.cpp;*.h" version especifica la versió actual del fitxer de definició en termes d'un nombre enter. Sempre que es canvia un fitxer de definició del ressaltat, assegureu-vos d'augmentar aquest número. kateversion especifica l'última versió implementada de la &kappname;. Atributs opcionals: mimetype fitxers associats amb el tipus &MIME;. casesensitive defineix quan les paraules clau són o no sensibles a majúscules i minúscules. priority és necessària si una altra definició de ressaltat utilitza les mateixes extensions. S'emprarà la de major prioritat. author conté el nom de l'autor i la seva adreça de correu electrònic. license conté la llicència, normalment la llicència del MIT per a fitxers nous de ressaltat de la sintaxi. style conté el llenguatge proporcionat i és utilitzat pels sagnadors per a l'atribut required-syntax-style. indenter defineix quin sagnat emprar de manera predeterminada. Els atributs disponibles són: ada, normal, cstyle, cmake, haskell, latex, lilypond, lisp, lua, pascal, python, replicode, ruby i xml. hidden defineix quan hauria d'aparèixer el nom en els menús de la &kappname;. De manera que la línia següent pot tenir un aspecte similar a: <language name="C++" version="1" kateversion="2.4" section="Sources" extensions="*.cpp;*.h" /> A continuació estaria l'element highlighting, el qual conté l'element opcional list i els elements requerits contexts i itemDatas. Els elements list contenen una llista de paraules clau. En aquest cas les paraules clau són class i const. Podeu afegir tantes llistes com us calguin. Des del &kde-frameworks; 5.53, una llista pot incloure paraules clau d'una altra llista o llenguatge/fitxer, utilitzant l'element include. Els caràcters ## s'utilitzen per a separar el nom de la llista i el nom de la definició del llenguatge, de la mateixa manera que a la regla IncludeRules. Això és útil per evitar la duplicació de llistes de paraules clau, si necessiteu incloure les paraules clau d'un altre llenguatge/fitxer. Per exemple, la llista altre_nom conté la paraula clau str i totes les paraules clau de la llista types, la qual pertany al llenguatge C++ de la ISO. L'element contexts conté tots els contexts. El primer és l'emprat per omissió i amb aquest s'iniciarà el ressaltat. Hi ha dues regles en el context text_normal, que faran coincidir la llista de paraules clau amb el nom algun_nom i una regla que detecta una cometa i canvia el context a cadena. Per aprendre més sobre les regles llegiu el següent capítol. La tercera part és l'element itemDatas. Conté tots els colors i tipus de lletra que necessiten els contexts i les regles. En aquest exemple, s'utilitzen itemData text_normal, cadena i paraula_clau. <highlighting> <list name="algun_nom"> <item>class</item> <item>const</item> </list> <list name="altre_nom"> <item>str</item> <include>types##ISO C++</include> </list> <contexts> <context attribute="text_normal" lineEndContext="#pop" name="text_normal" > <keyword attribute="paraula_clau" context="#stay" String="algun_nom" /> <keyword attribute="paraula_clau" context="#stay" String="altre_nom" /> <DetectChar attribute="cadena" context="cadena" char="&quot;" /> </context> <context attribute="cadena" lineEndContext="#stay" name="cadena" > <DetectChar attribute="cadena" context="#pop" char="&quot;" /> </context> </contexts> <itemDatas> <itemData name="text_normal" defStyleNum="dsNormal" /> <itemData name="paraula_clau" defStyleNum="dsKeyword" /> <itemData name="cadena" defStyleNum="dsString" /> </itemDatas> </highlighting> L'última part de la definició del ressaltat és la secció opcional general. Pot contenir informació sobre paraules clau, plegat del codi, comentaris, sagnat, línies buides i verificació de l'ortografia. La secció comment defineix amb quina cadena s'introdueix un comentari en una línia senzilla. També podeu definir un comentari en múltiples línies utilitzant multiLine amb l'atribut addicional end. Això s'empra si l'usuari prem la drecera corresponent per comenta/descomenta. La secció keywords defineix si les llistes de paraules clau són sensibles a majúscules i minúscules o no. Més endavant s'explicaran altres atributs. Les altres seccions, folding, emptyLines i spellchecking, normalment no són necessàries i s'expliquen més endavant. <general> <comments> <comment name="singleLine" start="#"/> </comments> <keywords casesensitive="1"/> <folding indentationsensitive="0"/> <emptyLines> <emptyLine regexpr="\s+"/> <emptyLine regexpr="\s*#.*"/> </emptyLines> <spellchecking> <encoding char="á" string="\'a"/> <encoding char="à" string="\`a"/> </spellchecking> </general> </language> Les seccions en detall Aquesta part descriu tots els atributs disponibles per als contexts, llistes de dades, paraules clau, comentaris, plegat del codi i sagnat. L'element context pertany al grup contexts. Un context defineix les regles específiques de context que s'han de seguir quan el sistema de ressaltat abasta el final d'una línia. Els atributs disponibles són: name estableix el nom del context. Les regles utilitzaran el nom per especificar el context al que canviar si les regles coincideixen. lineEndContext defineix el context al que canviarà el sistema de ressaltat si abasta el final de la línia. Pot ser un nom o un altre context, #stay permetrà que no es canviï el context (&pex;, no fer res) o #pop farà que deixi aquest context. És possible utilitzar per exemple #pop#pop#pop per a sortir tres vegades, o fins i tot #pop#pop!AltreContext perquè aparegui dues vegades i canviar a un context anomenat AltreContext. lineEmptyContext defineix el context si es troba una línia buida. Per omissió: #stay. fallthrough defineix si el sistema de ressaltat canviarà al context especificat en fallthroughtContext si no coincideixen les regles. Per omissió: false. fallthroughContext especifica el context següent si no hi ha regles que coincideixin. noIndentationBasedFolding inhabilita el plegat basat en el sagnat dintre del context. Si el plegat basat en el sagnat no està activat, aquest atribut és inútil. Això es defineix en l'element folding del grup general. De manera predeterminada a: false. L'element itemData es troba en el grup itemDatas. Defineix l'estil i els colors dels tipus de lletra. Per tant és possible definir els vostres propis estils i colors. Encara que recomanem utilitzar els estils per omissió, atès que així l'usuari veurà colors homogenis per als diferents llenguatges. Si bé, algunes vegades no hi ha altres possibilitats i és necessari canviar el color i els atributs dels tipus de lletra. Els atributs «name» i «defStyleNum» són necessaris, els altres són opcionals. Els atributs disponibles són: name estableix el nom del «itemData». Els contexts i les regles utilitzaran aquest nom en els seus atributs attribute per a fer referència a un «itemData». defStyleNum defineix quin estil s'emprarà per omissió. Més endavant s'explicaran els estils per omissió disponibles. color defineix un color. Els formats vàlids són «#rrggbb» o «#rgb». selColor defineix el color de la selecció. italic si està a true, el text es mostrarà en cursiva. bold si està a true, el text es mostrarà en negreta. underline si està a true, el text es mostrarà subratllat. strikeout si està a true, el text es mostrarà taxat. spellChecking si està a true, el text es mostrarà amb la verificació ortogràfica. L'element keywords en el grup general defineix les propietats «keyword». Els atributs disponibles són: casesensitive pot ser true o false. Si està a true, totes les paraules clau seran sensibles a majúscules i minúscules. weakDeliminator és una llista de caràcters que no actuen com a delimitadors de paraules (delimitador feble). Per exemple, el punt «.» és un delimitador de paraula. Si tenim una paraula clau en una list que conté un punt, tan sols la trobareu si especifiqueu el punt com a delimitador feble. additionalDeliminator defineix delimitadors addicionals. wordWrapDeliminator defineix els caràcters al darrere dels quals pot ocórrer un ajust de la línia. Els delimitadors per omissió i els d'ajust de la línia són els caràcters .():!+,-<=>%&*/;?[]^{|}~\, espai (« ») i tabulació («\t»). L'element comment en el grup comments defineix les propietats dels comentaris emprats per EinesComenta i Eines Descomenta. Els atributs disponibles són: name pot ser singleLine o multiLine. Si escolliu multiLine es necessiten els atributs end i region. start defineix la cadena que s'utilitza per iniciar un comentari. En C++ seria «/*». end defineix la cadena utilitzada per a tancar un comentari. En C++ seria «*/». region serà el nom amb el que es desarà el comentari multilínia. Si assumim que tenim una regió beginRegion="Comentari" ... endRegion="Comentari" en les regles, haureu d'emprar region="Comentari". D'aquesta manera es descomentarà fins i tot si no heu seleccionat tot el text en un comentari multilínia. El cursor només haurà d'estar dins del comentari multilínia. L'element folding en el grup general defineix les propietats de plegat del codi. Els atributs disponibles són: indentationsensitive si està a true, els marcadors de plegat del codi seran afegits al sagnat, com en el llenguatge per a la creació de scripts en Python. Normalment no caldrà establir-lo, pel que per omissió és false. L'element emptyLine pertany al grup emptyLines defineix quines línies s'hauran de tractar com a línies buides. Això permet modificar el comportament de l'atribut lineEmptyContext en els elements context. Els atributs disponibles són: regexpr defineix una expressió regular que es tractarà com una línia buida. De manera predeterminada, les línies buides no contenen cap caràcter, per tant, això afegirà línies buides addicionals, per exemple, si voleu que les línies amb espais també es consideren com a línies buides. No obstant això, en la majoria de les definicions de la sintaxi no caldrà establir aquest atribut. L'element encoding en el grup spellchecking defineix una codificació de caràcters per a la verificació ortogràfica. Els atributs disponibles són: char, és un caràcter codificat. string és una seqüència de caràcters que es codificaran com el caràcter char a la verificació ortogràfica. Per exemple, en el llenguatge LaTeX, la cadena \"{A} representa el caràcter Ä. Estils predeterminats disponibles Els estils predeterminats ja s'han explicat, a manera de resum: Els estils predeterminats estan predefinits per als tipus de lletra i els estils de colors. Estils per omissió en general: dsNormal, quan no es requereix un ressaltat especial. dsKeyword, per a les paraules clau incloses. dsFunction, per a crides a funcions i definicions. dsVariable, si és aplicable: noms de les variables (p. ex. $algunaVar als llenguatges PHP/Perl). dsControlFlow, controla el flux de paraules clau com «if», «else», «switch», «break», «return», «yield»... dsOperator, operadors com + - * / :: < > dsBuiltIn, funcions, classes i objectes inclosos. dsExtension, extensions comunes, com les classes de les Qt i les funcions/macros en els llenguatges C++ i Python. dsPreprocessor, per a les declaracions del preprocessador o per a les definicions de macros. dsAttribute, anotacions com «@override» i «__declspec(...)». Estils per omissió relacionats amb les cadenes: dsChar, per a caràcters sols, com ara «x». dsSpecialChar, caràcters amb un significat especial en cadenes com escapades, substitucions o els operadors d'expressions regulars. dsString, per a cadenes com «hello world». dsVerbatimString, cadenes literals o sense processar com «raw \backlash» en els llenguatges Perl, CoffeeScript i intèrprets d'ordres, així com «r'\raw'» en llenguatge Python. dsSpecialString, SQL, expressions regulars, documentació HERE, mode matemàtic del LaTeX... dsImport, per a importar, incloure o requerir mòduls. Estils per omissió relacionats amb números: dsDataType, tipus de dades incloses com «int», «void», «u64». dsDecVal, valors decimals. dsBaseN, per als valors en una base diferent de 10. dsFloat, per a valors decimals. dsConstant, definicions incloses i definides per l'usuari com PI. Estils per omissió relacionats amb la documentació i els comentaris: dsComment, per a comentaris. dsDocumentation, «/** Comentaris de documentació */» o «"""cadenes_de_documentació"""». dsAnnotation, ordres de la documentació com «@param», «@brief». dsCommentVar, els noms de les variables utilitzades en les ordres anteriors, com «foobar» a «@param foobar». dsRegionMarker, per a marcadors de regió com els comentaris «//BEGIN», «//END». Altres estils per omissió: dsInformation, notes i consells com «@note» al doxygen. dsWarning, avisos com «@warning» al doxygen. dsAlert, paraules especials com «TODO», «FIXME», «XXXX». dsError, per a errors de ressaltat i sintaxi incorrecta. dsOthers, quan res més s'hi ajusti. Regles per a la detecció del ressaltat Aquesta secció descriu les regles per a la detecció del ressaltat. Cada regla pot coincidir en cap o amb diversos caràcters al començament de la cadena amb la que es comparen. Si la regla coincideix, als caràcters coincidents se'ls assigna l'estil o attribute definit per la regla, tanmateix una regla pot demanar que es canviï el context actual. Una regla té aquest aspecte: <NomRegla attribute="(identificador)" context="(identificador)" [atributs específics de la regla] /> L'attribute identifica l'estil que utilitzaran els caràcters coincidents per nom, i el context identifica el context a utilitzar des d'aquí. El context es pot identificar per: Un identifier, que és el nom dels altres contexts. Una order us indica al motor que romandrà en el context actual (#stay), o que salti al context anterior (#pop). Per a retrocedir més passos, es pot repetir la paraula clau #pop: #pop#pop#pop Una ordre seguida per un signe d'exclamació (!) i un identificador, el qual farà que el motor segueixi primer l'ordre i després passi a l'altre context, &pex;, #pop#pop!AltreContext. Els atributs específics de la regla varien, i es descriuen en les següents seccions. Atributs comuns Totes les regles tenen els següents atributs comuns i estan disponibles sempre que apareixen (atributs comuns). attribute i context són atributs requerits, els altres són opcionals. attribute: Un mapa d'atributs d'un itemData definit. context: Especifica el context al que canviarà el sistema de ressaltat si les regles coincideixen. beginRegion: Inicia un bloc de plegat del codi. Per omissió: unset. endRegion: Tanca un bloc de plegat del codi. Per omissió: unset. lookAhead: Si està a true, el sistema de ressaltat no processarà les longituds coincidents. Per omissió: false. firstNonSpace: Només coincidiran si la cadena no conté un espai en blanc al començament de la línia. Per omissió: false. column: Només coincideix, si la columna coincideix. Per omissió: unset. Regles dinàmiques Algunes regles permeten l'atribut opcional dynamic de tipus lògic que per omissió és false. Si dynamic està a true, la regla podrà utilitzar arguments que representin el text coincident amb una regla d'una expressió regular que canviï al context actual per al contingut en els atributs string o char. En un string, l'argument %N (a on N és un número) se substituirà amb el corresponent N capturat des de l'expressió regular cridada, començant per 1. En un char l'argument haurà de ser un número N i serà substituït amb el primer caràcter de la corresponent N capturada des de l'expressió regular cridada. Sempre que un regla permeti aquest atribut haurà de contenir un (dynamic). dinàmic: pot ser (true|false). Com funciona: A les expressions regulars de la regla RegExpr, tot el text entre parèntesis (PATRÓ) serà capturat i recordat. Aquestes captures es podran utilitzar en el context al qual es canvia, en les regles amb l'atribut dynamic true, per %N (a String) o N (a char). És important esmentar que un text capturat en una regla RegExpr només s'emmagatzemarà per al context del canvi, especificat en el seu atribut context. Si no s'utilitzen les captures, tant per a les regles dinàmiques com en la mateixa expressió regular, s'han d'utilitzar grups sense captura: (?:PATRÓ) Els grups lookahead o (anticipada) o lookbehind com (cerca cap enrere) com (?=PATRÓ) o , (?!PATRÓ) (?<=PATRÓ) no seran capturats. Per obtenir més informació vegeu la secció sobre expressions regulars. Els grups amb captura es poden utilitzar dins de la mateixa expressió regular, emprant \N en lloc de %N respectivament. Per a més informació, vegeu Captura del text coincident (referències enrere) a les Expressions regulars. Exemple 1: En aquest senzill exemple, el text que coincideix amb l'expressió regular =* serà capturat i inserit din de %1 a la regla dinàmica. Això permet que el comentari acabi amb la mateixa quantitat de = que al començament. Això coincideix amb el text com: [[ comentari ]], [=[ comentari ]=] o [=====[ comentari ]=====]. A més, les captures només estaran disponibles en el context del canvi Comentari de múltiples línies. <context name="Normal" attribute="Text normal" lineEndContext="#stay"> <RegExpr context="Comentari de múltiples línies" attribute="Comentari" String="\[(=*)\[" beginRegion="RegionComment"/> </context> <context name="Comentari de múltiples línies" attribute="Comentari" lineEndContext="#stay"> <StringDetect context="#pop" attribute="Comentari" String="]%1]" dynamic="true" endRegion="RegionComment"/> </context> Exemple 2: A la regla dinàmica, %1 es correspon amb la captura que coincideix #+, i %2 amb &quot;+. Això coincidirà amb el text de: #label""""dins del context""""#. Aquestes captures no estaran disponibles en altres contextos, com OtherContext, FindEscapes o SomeContext. <context name="SomeContext" attribute="Normal Text" lineEndContext="#stay"> <RegExpr context="#pop!NamedString" attribute="String" String="(#+)(?:[\w-]|[^[:ascii:]])(&quot;+)"/> </context> <context name="NamedString" attribute="String" lineEndContext="#stay"> <RegExpr context="#pop!OtherContext" attribute="String" String="%2(?:%1)?" dynamic="true"/> <DetectChar context="FindEscapes" attribute="Escape" char="\"/> </context> Exemple 3: Això coincidirà amb el text com: Class::function<T>( ... ). <context name="Normal" attribute="Normal Text" lineEndContext="#stay"> <RegExpr context="FunctionName" String="\b([a-zA-Z_][\w-]*)(::)([a-zA-Z_][\w-]*)(?:&lt;[\w\-\s]*&gt;)?(\()" lookAhead="true"/> </context> <context name="FunctionName" attribute="Normal Text" lineEndContext="#pop"> <StringDetect context="#stay" attribute="Class" String="%1" dynamic="true"/> <StringDetect context="#stay" attribute="Operator" String="%2" dynamic="true"/> <StringDetect context="#stay" attribute="Function" String="%3" dynamic="true"/> <DetectChar context="#pop" attribute="Normal Text" char="4" dynamic="true"/> </context> Les regles en detall DetectChar Detecta un únic caràcter específic. Normalment s'utilitza per a trobar el final de les cadenes entre cometes. <DetectChar char="(caràcter)" (atributs comuns) (dinàmic) /> L'atribut char defineix el caràcter a comparar. Detect2Chars Detecta dos caràcters especificats en l'ordre definit. <Detect2Chars char="(caràcter)" char1="(caràcter)" (atributs comuns) /> L'atribut char defineix el primer caràcter a comparar, char1 el segon. AnyChar Detecta un caràcter d'un conjunt de caràcters especificats. <AnyChar String="(cadena)" (atributs comuns) /> L'atribut String defineix el conjunt de caràcters. StringDetect Detecta una cadena exacta. <StringDetect String="(cadena)" [insensitive="true|false"] (atributs comuns) (dinàmic) /> L'atribut String defineix la cadena a comparar. L'atribut insensitive per omissió és false i es passa a la funció de comparació de la cadena. Si el valor és true la comparació no serà sensible a majúscules i minúscules. WordDetect Detectar una cadena exacta requereix límits de paraula com un punt «.» o un espai en blanc al començament i al final de la paraula. Penseu en \b<cadena>\b en termes d'una expressió regular, però és més ràpid que la regla RegExpr. <WordDetect String="(cadena)" [insensitive="true|false"] (atributs comuns) /> L'atribut String defineix la cadena a comparar. L'atribut insensitive per omissió és false i es passa a la funció de comparació de la cadena. Si el valor és true la comparació no serà sensible a majúscules i minúscules. Des del: Kate 3.5 (KDE 4.5) RegExpr Cerca la coincidència amb una expressió regular. <RegExpr String="(cadena)" [insensitive="true|false"] [minimal="true|false"] (atributs comuns) (dinàmic) /> L'atribut String defineix l'expressió regular. insensitive per omissió és false i és passada al motor d'expressions regulars. minimal per omissió és false i és passada al motor d'expressions regulars. Atès que les regles coincideixen amb el començament de la cadena actual, una expressió regular que comenci amb l'accent circumflex (^) indica que la regla tan sols s'haurà de comparar amb el començament d'una línia. Vegeu la secció sobre expressions regulars per obtenir més informació. keyword Detecta una paraula clau des d'una llista especificada. <keyword String="(nom de la llista)" (atributs comuns) /> L'atribut String identifica la llista de paraules clau pel seu nom. Haurà d'existir una llista amb aquest nom. El sistema de ressaltat processa les regles de paraules clau d'una manera molt optimitzada. Això fa que sigui una necessitat absoluta que qualsevol paraula clau que coincideixi necessitarà estar envoltada pels delimitadors definits, ja sigui implícitament (els delimitadors per omissió), o explícitament especificat dins la propietat additionalDeliminator de l'etiqueta keywords. Si una paraula clau coincideix haurà de contenir un caràcter de delimitador, aquest caràcter respectiu haurà d'afegir-se a la propietat weakDeliminator de l'etiqueta keywords. Aquest caràcter perdrà la seva propietat delimitadora en totes les regles keyword. Int Detecta un nombre enter. +>Detecta un nombre enter (com l'expressió regular: \b[0-9]+). <Int (atributs comuns) /> Aquesta regla no té atributs específics. Decimals Detecta un nombre decimal. +>Detecta un nombre decimal (com l'expressió regular: (\b[0-9]+\.[0-9]*|\.[0-9]+)([eE][-+]?[0-9]+)?). <Float (atributs comuns) /> Aquesta regla no té atributs específics. HlCOct Detecta una representació numèrica d'un nombre octal. +>Detecta una representació numèrica d'un nombre octal (com l'expressió regular: \b0[0-7]+). <HlCOct (atributs comuns) /> Aquesta regla no té atributs específics. HlCHex Detecta una representació numèrica d'un nombre hexadecimal. +>Detecta una representació numèrica d'un nombre hexadecimal (com una expressió regular: \b0[xX][0-9a-fA-F]+). <HlCHex (atributs comuns) /> Aquesta regla no té atributs específics. HlCStringChar Detecta un caràcter escapat. <HlCStringChar (atributs comuns) /> Aquesta regla no té atributs específics. Localitza representacions literals de caràcters que habitualment s'utilitzen en el codi de programació, per exemple \n (línia nova) o \t (tabulació). Els següents caràcters coincideixen amb la regla si segueixen a una barra inversa (\): abefnrtv"'?\. A més seran vàlids els nombres hexadecimals escapats com per exemple \xff, i els nombres octals escapats, per exemple \033. HlCChar Detecta un caràcter C. <HlCChar (atributs comuns) /> Aquesta regla no té atributs específics. Localitza caràcters C tancats en una marca (Exemple: 'c'). La marca pot ser un caràcter simple o un caràcter escapat. Vegeu «HICStringChar» per a localitzar seqüències de caràcters escapats. RangeDetect Detecta una cadena amb caràcters d'inici i de final definits. <RangeDetect char="(caràcter)" char1="(caràcter)" (atributs comuns) /> char defineix el caràcter que inicia l'interval, char1 el caràcter que finalitza l'interval. És molt útil per a detectar per exemple petites cadenes entre cometes i similars, però tingueu en compte que el motor de ressaltat només pot treballar amb una línia a la vegada, de manera que no es detectaran les cadenes que estiguin dividides en dues línies o més. LineContinue Coincideix amb un caràcter específic al final d'una línia. <LineContinue (atributs comuns) [char="\"] /> L'atribut char defineix un caràcter opcional a comparar, per defecte és la barra inversa ('\'). Nou des del &kde; 4.13. Aquesta regla és pràctica per a canviar el context al final de la línia. Això és necessari per exemple en C/C++ per a continuar macros o cadenes. IncludeRules Inclou regles des d'un altre context o llenguatge/fitxer. <IncludeRules context="contextlink" [includeAttrib="true|false"] /> L'atribut context defineix el context a incloure. Si és una cadena simple, inclourà totes les regles definides en el context actual, exemple: <IncludeRules context="anotherContext" /> Si la cadena conté un ## el sistema de ressaltat cercarà un context d'una altra definició del llenguatge amb el nom indicat, per exemple, <IncludeRules context="String##C++" /> inclouria el context String des de la definició de ressaltat en C++. Si l'atribut includeAttrib està a true, canvia l'atribut de destinació per un altre de la font. Això és necessari, per exemple, per al treball de comentar, si el text coincideix amb el context inclòs s'utilitzarà un ressaltat diferent que amb el context amfitrió. DetectSpaces Detecta els espais en blanc. <DetectSpaces (atributs comuns) /> Aquesta regla no té atributs específics. Utilitzeu aquesta regla si sabeu que hi poden haver diversos espais en blanc al davant, per exemple, al començament de les línies sagnades. Aquesta regla ometrà tots els espais en blanc a la vegada, en comptes de comprovar múltiples regles i saltar coincidències. DetectIdentifier Detecta identificadors de cadenes (com una expressió regular: [a-zA-Z_][a-zA-Z0-9_]*). +>Detecta identificadors de cadenes (com l'expressió regular: [a-zA-Z_][a-zA-Z0-9_]*). <DetectIdentifier (atributs comuns) /> Aquesta regla no té atributs específics. Utilitzeu aquesta regla per a saltar d'una vegada una cadena de paraula de caràcters, en comptes de comprovar múltiples regles a la vegada i saltar coincidències. Consells i trucs Una vegada que hàgiu entès com funciona el canvi de context serà fàcil escriure definicions de ressaltat. Tot i que haureu de tenir cura de comprovar en quina situació s'hauria de seleccionar una regla. Les expressions regulars són molt potents, però són lentes en comparació amb altres regles. Per això haureu de tenir en compte els següents consells. Si només heu de localitzar dos caràcters, utilitzeu Detect2Chars en comptes de StringDetect. El mateix s'aplica a DetectChar. Les expressions regulars són fàcils d'emprar però a vegades hi ha formes molt més ràpides d'obtenir el mateix resultat. Imagineu que només desitgeu localitzar el caràcter «#» si aquest és el primer caràcter de la línia. Una solució basada en una expressió regular seria quelcom semblant a això: <RegExpr attribute="Macro" context="macro" String="^\s*#" />Podeu aconseguir el mateix molt més ràpid utilitzant: <DetectChar attribute="Macro" context="macro" char="#" firstNonSpace="true" />Si voleu que l'expressió regular localitzi «^#» també podeu utilitzar DetectChar amb l'atribut column="0". L'atribut column compta els caràcters, per tant el tabulador és només un caràcter. A les regles RegExpr, utilitzeu l'atribut column="0" si el patró ^PATRÓ s'utilitza per a fer coincidir el text amb el començament d'una línia. Això millorarà el rendiment, ja que evitarà cercar coincidències en la resta de les columnes. En les expressions regulars, utilitzeu grups sense captura (?:PATRÓ) en lloc dels grups amb captura (PATRÓ), si les captures no s'utilitzen per a la mateixa expressió regular o en regles dinàmiques. Això evita emmagatzemar innecessàriament les captures. Podeu canviar de context sense processar els caràcters. Suposeu que voleu canviar de context quan trobeu una cadena */, però cal processar aquesta cadena en el següent context. La regla de sota coincidirà, i l'atribut lookAhead farà que es desi la cadena coincident per al següent context. <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" /> Utilitzeu DetectSpaces si sabeu quants espais en blanc hi ha. Utilitzeu DetectIdentifier en comptes de l'expressió regular «[a-zA-Z_]\w*». Utilitza els estils per omissió sempre que es pugui. D'aquesta manera l'usuari es trobarà un entorn familiar. Mireu altres fitxers XML per a comprovar de quina forma altra gent implementa les regles delicades. Podeu validar tots els fitxers XML utilitzant l'ordre validatehl.sh language.xsd mySyntax.xml. Els fitxers validatehl.sh i language.xsd estan disponibles al repositori del ressaltat de la sintaxi. Si tot sovint repetiu expressions regulars complexes podeu utilitzar ENTITIES. Exemple: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd" [ <!ENTITY la_meva_ref "[A-Za-z_:][\w.:_-]*"> ]> Ara podeu utilitzar &la_meva_ref; en comptes de l'expressió regular. Crear scripts amb JavaScript El component d'edició de la &kappname; és fàcilment extensible, escrivint scripts. El llenguatge per crear scripts és ECMAScript (conegut com a Javascript). La &kappname; admet dos tipus de script: de sagnat i de línia d'ordres. Scripts de sagnat Els scripts de sagnat: També coneguts com a «indenters», sagnen automàticament el codi font en escriure text. Com a exemple, després de prémer la tecla de retorn el nivell de sagnat sovint és incrementat. En les següents seccions es descriuen pas a pas com crear l'esquelet d'un sagnat simple. Com a primer pas, creeu un fitxer *.js nou anomenat, &pex;, javascript.js a la carpeta d'inici local $XDG_DATA_HOME/katepart5/script/indentation. En aquest sentit, la variable d'entorn XDG_DATA_HOME normalment s'expandeix a ~/.local o ~/.local/share. Al &Windows; aquests fitxers es troben a %USER%\AppData\Local\katepart5\indentation. %USERPROFILE% que generalment s'expandeix a C:\\Users\\usuari. La capçalera de l'script de sagnat La capçalera del fitxer javascript.js està inclosa com un JSON al començament del document de la forma següent: var katescript = { "name": "JavaScript", "author": "Nom exemple <nom.exemple@alguna.adreça.org>", "license": "BSD License", "revision": 1, "kate-version": "5.1", "required-syntax-style": "javascript", "indent-languages": ["javascript"], "priority": 0, }; // kate-script-header, haurà d'estar al començament del fitxer sense comentaris Cada entrada s'explica en detall tot seguit: name [requerit]: Aquest és el nom del sagnat que apareix al menú EinesSagnat i en el diàleg de configuració. author [opcional]: El nom de l'autor i la informació de contacte. license [opcional]: La forma curta de la llicència, com ara BSD o LGPLv3. revision [requerit]: La revisió de l'script. Aquest número ha de ser major cada vegada que es modifica l'script. kate-version [requerit]: La versió mínima requerida per la &kappname;. required-syntax-style [opcional]: L'estil de la sintaxi requerida, el qual coincideix amb style especificat als fitxers de ressaltat de la sintaxi. Això és important per als sagnats que es basen en la informació de ressaltat específica en el document. Si s'especifica un estil de la sintaxi requerit, el sagnat només estarà disponible amb el ressaltat actiu apropiat. Això evita comportament sense definir causat per l'ús del sagnat sense l'esquema del ressaltat esperat. Per exemple, el sagnat de Ruby en fa ús en els fitxers ruby.js i ruby.xml. indent-languages [opcional]: Una matriu JSON dels estils de la sintaxi que pot sagnar correctament, &pex;: ["c++", "java"]. priority [opcional]: Si els diversos sagnats són adequats per a un determinat fitxer ressaltat, la prioritat decideix quin sagnat és triat com sagnat per omissió. El codi font del sagnat Després d'haver especificat la capçalera aquesta secció explica com funciona la creació de scripts de sagnat. L'esquelet bàsic del cos s'assembla a això: // es necessiten les biblioteques «js» de katepart, per exemple, «range.js» // si utilitzeu «Range» require ("range.js"); triggerCharacters = "{}/:;"; function indent(line, indentWidth, ch) { // crida per a cada línia nova (ch == «\n») i tots els caràcters s'especifiquen en // la variable global triggerCharacters. Quan es crida EinesAlinea // la variable ch és buidada, &ead;, ch == «». // // Vegeu també: L'API per a la creació de scripts return -2; } La funció indent() té tres paràmetres: line: La línia que ha d'estar amb sagnat. indentWidth: L'amplada del sagnat en nombre d'espais. ch: o bé un caràcter de línia nova (ch == '\n'),el caràcter de tall especificat en triggerCharacters o buida si l'usuari invoca l'acció EinesAlinea. El valor retornat de la funció indent() especifica com se sagna la línia. Si el valor retornat és un nombre enter simple, aquest s'interpreta de la següent manera: El valor retornat -2: No fa res. El valor retornat -1: Es manté el sagnat (cerca la línia anterior que no estigui en blanc). El valor retornat 0: Un número >= 0 especifica la profunditat del sagnat en nombre d'espais. Alternativament, un conjunt de dos elements poden retornar: return [ indent, align ]; En aquest cas, el primer element és la profunditat de sagnat com anteriorment amb el mateix significat dels valors especials. No obstant això, el segon element és un valor absolut que representa una columna d'alineació. Si aquest valor és major que el valor de sagnat, la diferència representa un nombre d'espais a afegir després del sagnat del primer paràmetre. En cas contrari, el segon nombre serà ignorat. L'ús de tabulacions i espais per al sagnat sovint és referit com mode mixt. Considerem el següent exemple: Suposem que s'utilitzen tabulacions per a sagnar, i l'amplada de la tabulació és 4. Aquí, <tab> representa una tabulació i «.» un espai: 1: <tab><tab>foobar("hola", 2: <tab><tab>......."món"); Quan se sagna la línia 2, la funció indent() retorna [8, 15]. Com a resultat, s'insereixen dues tabulacions per a sagnar fins a la columna 8, i s'afegeixen 7 espais per alinear el segon paràmetre a la primera, de manera que quedi alineat si el fitxer es veu amb una amplada de tabulació diferent. Una instal·lació per omissió del &kde; ens dóna la &kappname; amb diversos sagnats. El corresponent codi font de JavaScript d'origen pot trobar-se en $XDG_DATA_DIRS/katepart5/script/indentation. Al &Windows; aquests fitxers es troben a %USER%\AppData\Local\katepart5\indentation. %USER% que generalment s'expandeix a C:\\Users\\usuari. El desenvolupament d'un sagnat requereix tornar a carregar els scripts per veure si els canvis es comporten adequadament. En comptes de reiniciar l'aplicació, simplement canvieu a la línia d'ordres i crideu l'ordre reload-scripts. Si desenvolupeu scripts útils, si us plau, considereu contribuir al projecte &kappname; posant-vos en contacte amb la llista de correu. Els scripts de la línia d'ordres Com és difícil satisfer les necessitats de tothom, la &kappname; suporta unes quantes eines d'ajuda per a la manipulació ràpida de text a través de la línia d'ordres inclosa. Per exemple, l'ordre sort s'implementa com un script. En aquesta secció s'explica com crear fitxers *.js per estendre la &kappname; amb scripts d'ajuda arbitrària. Els scripts de línia d'ordres es troben a la mateixa carpeta que els scripts de sagnat. Així que com a primer pas, creeu un fitxer *.js nou anomenat myutils.js a la carpeta d'inici local $XDG_DATA_HOME/katepart5/script/commands. En aquest sentit, la variable d'entorn XDG_DATA_HOME normalment s'expandeix a ~/.local o ~/.local/share. Al &Windows; aquests fitxers es troben a %USER%\AppData\Local\katepart5\commands. %USER% que generalment s'expandeix a C:\\Users\\usuari. La capçalera de l'script de línia d'ordres La capçalera de cada script de la línia d'ordres està inclosa en el JSON al començament de l'script de la forma següent: var katescript = { "author": "Nom exemple <nom.exemple@alguna.adreça.org>", "license": "LGPLv2+", "revision": 1, "kate-version": "5.1", "functions": ["sort", "moveLinesDown"], "actions": [ { "function": "sort", "name": "Sort Selected Text", "category": "Editing", "interactive": "false" }, { "function": "moveLinesDown", "name": "Move Lines Down", "category": "Editing", "shortcut": "Ctrl+Shift+Down", "interactive": "false" } ] }; // kate-script-header, haurà d'estar al començament del fitxer sense comentaris Cada entrada s'explica en detall tot seguit: author [opcional]: El nom de l'autor i la informació de contacte. license [opcional]: La forma curta de la llicència, com ara BSD o LGPLv2. revision [requerit]: La revisió de l'script. Aquest número ha de ser major cada vegada que es modifica l'script. kate-version [requerit]: La versió mínima requerida per la &kappname;. functions [requerit]: Matriu JSON de les ordres a l'script. actions [opcional]: La matriu JSON dels objectes JSON que defineixen les accions que apareixen al menú de l'aplicació. Es proporciona informació detallada a la secció Vincular dreceres. Atès que el valor de functions és una matriu JSON, un únic script és capaç de contenir un nombre arbitrari d'ordres de la línia d'ordres. Cada funció està disponible a través de la línia d'ordres integrada a la &kappname;. El codi font de l'script Totes les funcions especificades a la capçalera s'han d'implementar a l'script. Per exemple, el fitxer de script en l'exemple anterior necessita implementar les dues funcions sort i moveLinesDown. Totes les funcions tenen la següent sintaxi: // es necessiten les biblioteques «js» de la katepart, per exemple, «range.js» // si utilitzeu «Range» require ("range.js"); function <nom>(arg1, arg2...) { // «...» implementació, vegeu també: L'API per a la creació de scripts. } Els arguments en la línia d'ordres es passen a la funció com arg1, arg2, &etc; Per tal de proveir documentació per a cada ordre, simplement implementeu la funció «help» de la següent manera: { if (cmd == "sort") { return i18n("Ordena el text seleccionat."); } else if (cmd == "...") { // ... } } Executar help sort a la línia d'ordres crida a aquesta funció d'ajuda amb l'argument cmd establert en l'ordre donada, &ead;, cmd == "sort". La &kappname; presentarà el text retornat com a documentació per a l'usuari. Assegureu-vos de traduir les cadenes. El desenvolupament d'un script de línia d'ordres requereix tornar a carregar els scripts per veure si els canvis es comporten adequadament. En comptes de reiniciar l'aplicació, simplement canvieu a la línia d'ordres i crideu l'ordre reload-scripts. Vincular les dreceres Per tal de fer que els scripts siguin accessibles al menú de l'aplicació i assignar dreceres, l'script ha de proporcionar una capçalera de script adequada. En l'exemple anterior, ambdues funcions sort i moveLinesDown apareixen al menú per la següent part a la capçalera de l'script: var katescript = { ... "actions": [ { "function": "sort", "name": "Sort Selected Text", "icon": "", "category": "Editing", "interactive": "false" }, { "function": "moveLinesDown", "name": "Move Lines Down", "icon": "", "category": "Editing", "shortcut": "Ctrl+Shift+Down", "interactive": "false" } ] }; Els camps per a una acció són els següents: function [requerit]: La funció que ha d'aparèixer al menú Eines Scripts. name [requerit]: El text apareix al menú de l'script. icon [opcional]: La icona apareix al costat del text en el menú. Aquí es poden utilitzar tots els noms d'icones del &kde;. category [opcional]: Si s'especifica una categoria, l'script apareixerà en un submenú. shortcut [opcional]: La drecera indicada serà la drecera per omissió. Exemple: Ctrl+Alt+t. Per a més detalls, vegeu la Documentació de les Qt. interactive [opcional]: Si l'script necessita utilitzar l'entrada a la línia d'ordres, establiu-ho a true (vertader). Si desenvolupeu scripts útils, si us plau, considereu contribuir al projecte &kappname; posant-vos en contacte amb la llista de correu. L'API per a la creació de scripts L'API per a la creació de scripts que es presenta aquí està disponible per a tots els scripts, &pex;, els scripts de sagnat i una ordre de línia d'ordres. Les classes Cursor i Range són proporcionades pels fitxers de la biblioteca a $XDG_DATA_DIRS/katepart5/libraries. Si voleu utilitzar-los en el seu vostre script, serà necessari utilitzar algunes de les funcions Document o View, si us plau, afegiu la biblioteca necessària mitjançant: // es necessiten les biblioteques «js» de la katepart, per exemple, «range.js» // si utilitzeu «Range» require ("range.js"); Per estendre la norma de l'API per a la creació de scripts amb les vostres pròpies funcions i prototips n'hi ha prou amb crear un fitxer nou a la carpeta de configuració local del &kde; $XDG_DATA_HOME/katepart5/libraries i incloure'l a l'script utilitzant: require ("nom_script.js"); Al &Windows; aquests fitxers es troben a %USER%\AppData\Local\katepart5\libraries. %USER% que generalment s'expandeix a C:\\Users\\usuari. Per estendre els prototips com Cursor o Range, la manera més recomanable és no modificar els fitxers *.js globals. En el seu lloc, canvieu el prototip Cursor en JavaScript després afegiu el cursor.js al vostre script mitjançant require. Cursors i intervals Com la &kappname; és un editor de text, tota l'API per a la creació de scripts es basa en els cursors i els intervals sempre que sigui possible. Un Cursor és una simple (line, column) que representa una posició del text en el document. Un «Range» s'estén pel text des de la posició del cursor fins a una posició final del cursor. L'API s'explica amb detall en les següents seccions. El prototip de «Cursor» Cursor(); Constructor. Retorna un cursor a la posició (0, 0). Exemple: var cursor = new Cursor(); Cursor(int línia, int columna); Constructor. Retorna un cursor a la posició (línia, columna). Exemple: var cursor = new Cursor(3, 42); Cursor(Cursor altra); El constructor de còpia. Retorna una còpia del cursor altra. Exemple: var copy = new Cursor(altra); Cursor Cursor.clone(); Retorna una còpia del cursor. Exemple: var clone = cursor.clone(); Cursor.setPosition(int línia, int columna); Estableix la posició del cursor a línia i columna. Des del: &kde; 4.11 bool Cursor.isValid(); Comproveu si el cursor és vàlid. El cursor no és vàlid, si la línia i/o la columna s'estableix a -1. Exemple: var valid = cursor.isValid(); Cursor Cursor.invalid(); Retorna un cursor nou no vàlid situat a (-1, -1). Exemple: var invalidCursor = cursor.invalid(); int Cursor.compareTo(Cursor altra); Compara aquest cursor al cursor altra. Retorna -1, si el cursor està situat abans del cursor altra, 0, si tots dos cursors són iguals i +1, si el cursor està situat després del cursor altra. bool Cursor.equals(Cursor altra); Retorna true (vertader), si aquest cursor i el cursor altra són iguals, en cas contrari retornarà false (fals). String Cursor.toString(); Retorna el cursor com una cadena de la forma Cursor(line, column). El prototip «Range» Range(); El constructor. Crida new Range() retornant un interval (0, 0) - (0, 0). Range(Cursor inici, Cursor final); El constructor. Crida new Range(inici, final) retorna l'interval de (inici, final). Range(int líniaInici, int columnaInici, int líniaFinal, int columnaFinal); El constructor. Crida new Range(líniaInici, columnaInici, líniaFinal, columnaFinal) retorna l'interval de (líniaInici, columnaInici) a (líniaFinal, columnaFinal). Range(Range altra); El constructor de còpia. Retorna una còpia de l'interval altra. Range Range.clone(); Retorna una còpia de l'interval. Exemple: var clone = range.clone(); bool Range.isEmpty(); Retorna true (vertader), si inici i final del cursor són iguals. Exemple: var empty = range.isEmpty(); Des del: &kde; 4.11 bool Range.isValid(); Retorna true (vertader), si inici i final del cursor són vàlids, en cas contrari retornarà false (fals). Exemple: var valid = range.isValid(); Range Range.invalid(); Retorna l'interval de (-1, -1) a (-1, -1). bool Range.contains(Cursor cursor); Retorna true (vertader) si aquest interval conté la posició de cursor, en cas contrari retornarà false (fals). bool Range.contains(Range altra); Retorna true (vertader), si aquest interval conté l'interval altra, en cas contrari retornarà false (fals). bool Range.containsColumn(int columna); Retorna true (vertader), si columna està en l'interval obert mig [start.column, end.column), en cas contrari retornarà false (fals). bool Range.containsLine(int línia); Retorna true (vertader), si línia està en l'interval obert mig [start.line, end.line), en cas contrari retornarà false (fals). bool Range.overlaps(Range altre); Retorna true (vertader), si aquest interval i l'interval altre comparteixen una regió comuna, en cas contrari retornarà false (fals). bool Range.overlapsLine(int línia); Retorna true (vertader), si línia està en l'interval [start.line, end.line], en cas contrari retornarà false (fals). bool Range.overlapsColumn(int columna); Retorna true (vertader), si columna està en l'interval [start.column, end.column], en cas contrari retornarà false (fals). bool Range.onSingleLine(); Retorna true (vertader), si l'interval comença i finalitza a la mateixa línia, &ead; si Línia.comença.interval == Línia.finalitza.interval. Des del: &kde; 4.9 bool Range.equals(Range altra); Retorna true (vertader), si aquest interval i l'interval altra són iguals, en cas contrari retornarà false (fals). String Range.toString(); Retorna l'interval com una cadena de la forma «Rang(Cursor(line, column), Cursor(line, column))». Funcions globals Aquesta secció llista totes les funcions globals. Llegir i incloure fitxers String read(String fitxer); Cercarà el fitxer donat en relació al directori katepart/script/files i retorna el seu contingut com una cadena. void require(String fitxer); Cercarà el fitxer donat en relació al directori katepart/script/libraries i l'avaluarà. require està internament protegit contra inclusions múltiples del mateix fitxer. Des del: &kde; 4.10 Depuració void debug(String text); Imprimeix text a stdout a la consola de llançament de l'aplicació. Traducció Per tal de donar suport a la completa localització, hi ha diverses funcions per convertir cadenes en els scripts, anomenades i18n, i18nc, i18np i i18ncp. Aquestes funcions es comporten exactament com les funcions de traducció del &kde;. Les funcions de traducció tradueixen les cadenes embolcallades a través del sistema de traducció del &kde; per a l'idioma utilitzat en l'aplicació. Les cadenes als scripts es desenvolupen a les fonts oficials de la &kappname; i s'extrauen de forma automàtica i traduïble. En altres paraules, com a desenvolupador de la &kappname; no haureu de preocupar-vos per l'extracció dels missatges i la traducció. Cal assenyalar però, que la traducció només funciona dins de la infraestructura del &kde;, &ead;, les cadenes noves als scripts de terceres parts desenvolupats fora del &kde; no seran traduïbles. Per tant, considereu en contribuir els vostres scripts al &kate;, de tal manera que sigui possible una traducció apropiada. void i18n(String text, arg1...); Tradueix text a la llengua emprada per l'aplicació. Els arguments arg1..., són opcionals i s'utilitzen per a substituir els arguments %1, %2, &etc; void i18nc(String context, String text, arg1...); Tradueix text a la llengua emprada per l'aplicació. A més, la cadena context és visible als traductors perquè puguin oferir una millor traducció. Els arguments arg1..., són opcionals i s'utilitzen per a substituir els arguments %1, %2, &etc; void i18np(String singular, String plural, int número, arg1...); Tradueix singular o plural a la llengua emprada per l'aplicació, en funció del número indicat. Els arguments arg1..., són opcionals i s'utilitzen per a substituir els arguments %1, %2, &etc; void i18ncp(String context, String singular, String plural, int número, arg1...); Tradueix singular o plural a la llengua emprada per l'aplicació, en funció del número indicat. A més, la cadena context és visible als traductors perquè puguin oferir una millor traducció. Els arguments arg1..., són opcionals i s'utilitzen per a substituir els arguments %1, %2, &etc; L'API de «View» Cada vegada que s'executa un script, si hi ha una variable global view que representa la vista actual de l'editor actiu. La següent és una llista de totes les funcions «View» disponibles. Cursor view.cursorPosition() Retorna la posició actual del cursor en la vista. void view.setCursorPosition(int línia, int columna); void view.setCursorPosition(Cursor cursor); Estableix la posició actual del cursor a (línia, columna) o el cursor indicat. Cursor view.virtualCursorPosition(); Retorna la posició del cursor virtual amb cada tabulació comptant la corresponent quantitat d'espais depenent de l'amplada de la tabulació actual. void view.setVirtualCursorPosition(int línia, int column); void view.setVirtualCursorPosition(Cursor cursor); Estableix la posició actual del cursor virtual (línia, columna) o el cursor indicat. String view.selectedText(); Retorna el text seleccionat. Si no hi ha text seleccionat, la cadena retornada estarà buida. bool view.hasSelection(); Retorna true (vertader), si la vista conté el text seleccionat, en cas contrari retornarà false (fals). Range view.selection(); Retorna l'interval de text seleccionat. L'interval retornat no serà vàlid si no hi ha text seleccionat. void view.setSelection(Range rang); Estableix el text seleccionat a l'interval indicat. void view.removeSelectedText(); Elimina el text seleccionat. Si la vista no té cap text seleccionat, no farà res. void view.selectAll(); Selecciona el text sencer en el document. void view.clearSelection(); Neteja la selecció de text sense eliminar-lo. object view.executeCommand(String ordre, String args, Range interval); Executa l'ordredes de la línia d'ordres amb els arguments args opcionals i l'interval opcional. L'objecte retornat tindrà una propietat booleana object.ok, la qual indica que l'execució de l'ordre ha tingut èxit. En cas d'error, la cadena object.status contindrà un missatge d'error. Des del: &kde-frameworks; 5.0 L'API de «Document» Cada vegada que s'executa un script, si hi ha una variable global document que representa el document actiu actual. La següent és una llista de totes les funcions de «Document» disponibles. String document.fileName(); Retorna el nom de fitxer del document o una cadena buida per a la memòria cau del text sense desar. String document.url(); Retorna l'URL complet del document o una cadena buida per a la memòria cau del text sense desar. String document.mimeType(); Retorna el tipus MIME del document o el tipus MIME application/octet-stream si no es pot trobar un tipus MIME adequat. String document.encoding(); Retorna la codificació emprada actualment per a desar el fitxer. String document.highlightingMode(); Retorna el mode de ressaltat global emprat per a tot el document. String document.highlightingModeAt(Cursor pos); Retorna el mode de ressaltat emprat a la posició indicada en el document. Array document.embeddedHighlightingModes(); Retorna una cadena de modes de ressaltat inclosos en aquest document. bool document.isModified(); Retorna true (vertader), si el document conté canvis sense desar (modificat), en cas contrari retornarà false (fals). String document.text(); Retorna el contingut complet del document en una cadena de text única. Els salts de línia estan marcats amb el caràcter de nova línia \n. String document.text(int desDeLínia, int desDeColumna, int alaLínia, int alaColumna); String document.text(Cursor desDe, Cursor a); String document.text(Range rang); Retorna el text en l'interval donat. Es recomana utilitzar el cursor i la versió basada en l'interval per a una millor lectura del codi font. String document.line(int línia); Retorna la línia de text donada com a cadena. La cadena estarà buida si la línia demanada està fora de l'interval. String document.wordAt(int línia, int columna); String document.wordAt(Cursor cursor); Retorna la paraula a la posició del cursor donada. Range document.wordRangeAt(int línia, int columna); Range document.wordRangeAt(Cursor cursor); Retorna l'interval de la paraula a la posició del cursor donada. L'interval retornat no serà vàlid (vegeu Range.isValid()), si la posició del text és després del final d'una línia. Si no hi ha paraula al cursor donat, es retornarà un interval buit. Des del: &kde; 4.9 String document.charAt(int línia, int columna); String document.charAt(Cursor cursor); Retorna el caràcter a la posició del cursor donada. String document.firstChar(int línia); Retorna el primer caràcter en la línia donada que no és un espai en blanc. El primer caràcter és a la columna 0. Si la línia està buida o només conté espais en blanc, la cadena retornada estarà buida. String document.lastChar(int línia); Retorna l'últim caràcter de la línia donada que no és un espai en blanc. Si la línia està buida o només conté espais en blanc, la cadena retornada estarà buida. bool document.isSpace(int línia, int columna); bool document.isSpace(Cursor cursor); Retorna true (vertader), si el caràcter a la posició del cursor donada és un espai en blanc, en cas contrari retornarà false (fals). bool document.matchesAt(int línia, int columna, String text); bool document.matchesAt(Cursor cursor, String text); Retorna true (vertader), si el text donat coincideix a la posició del cursor corresponent, en cas contrari retornarà false (fals). bool document.startsWith(int línia, String text, bool skipWhiteSpaces); Retorna true (vertader), si la línia comença amb text, en cas contrari retornarà false (fals). L'argument skipWhiteSpaces controla si s'han d'ometre els espais en blanc al davant. bool document.endsWith(int línia, String text, bool skipWhiteSpaces); Retorna true (vertader), si la línia acaba amb text, en cas contrari retornarà false (fals). L'argument skipWhiteSpaces controla si s'han d'ometre els espais en blanc finals. bool document.setText(String text); Estableix el text a tot el document. bool document.clear(); Elimina tot el text en el document. bool document.truncate(int línia, int columna); bool document.truncate(Cursor cursor); Trunca la línia donada a la columna o la posició donada del cursor. Retorna true (vertader) en cas d'èxit, o false (fals) si la línia donada no forma part de l'interval del document. bool document.insertText(int línia, int columna, String text); bool document.insertText(Cursor cursor, String text); Insereix el text a la posició donada del cursor. Retorna true (vertader) en cas d'èxit, o false (fals), si el document està en el mode de només lectura. bool document.removeText(int desDeLínia, int desDeColumna, int alaLínia, int alaColumna); bool document.removeText(Cursor desDe, Cursor a); bool document.removeText(Range rang); Elimina el text dins de l'interval donat. Retorna true (vertader) en cas d'èxit, o false (fals), si el document està en el mode de només lectura. bool document.insertLine(int línia, String text); Insereix text en la línia donada. Retorna true (vertader) en cas d'èxit, o false (fals), si el document està en el mode de només lectura o la línia no està en l'interval del document. bool document.removeLine(int línia); Elimina la línia de text donada. Retorna true (vertader) en cas d'èxit, o false (fals), si el document està en el mode de només lectura o la línia no està en l'interval del document. bool document.wrapLine(int línia, int columna); bool document.wrapLine(Cursor cursor); Ajusta la línia a la posició del cursor donada. Retorna true (vertader) en cas d'èxit, o false (fals), &pex; si la línia < 0. Des del: &kde; 4.9 void document.joinLines(int iniciLínia, int finalLínia); S'uneix a les línies de iniciLínia a finalLínia. Dues línies de text successives sempre estan separades per un espai. int document.lines(); Retorna el nombre de línies en el document. bool document.isLineModified(int línia); Retorna true (vertader), si la línia actual conté dades sense desar. Des del: &kde; 5.0 bool document.isLineSaved(int línia); Retorna true (vertader), si la línia ha canviat, però el document ha estat desat. Per tant, la línia actual no conté cap dada sense desar. Des del: &kde; 5.0 bool document.isLineTouched(int línia); Retorna true (vertader), si la línia actual conté dades sense desar o que s'han canviat abans. Des del: &kde; 5.0 bool document.findTouchedLine(int iniciLínia, bool avall); Cerca la següent línia tocada començant per la línia. La cerca es realitza amunt o avall depenent de la direcció especificada a avall. Des del: &kde; 5.0 int document.length(); Retorna el nombre de caràcters en el document. int document.lineLength(int línia); Retorna la longitud de la línia. void document.editBegin(); Comença un grup d'edició per agrupar desfer/refer. Assegureu-vos de cridar sempre editEnd() tan aviat com crideu editBegin(). La crida editBegin() utilitza internament un comptador de referència, &ead;, aquesta crida es pot imbricar. void document.editEnd(); Finalitza un grup d'edició. L'última crida de editEnd() (&ead;, una per a la primera crida de editBegin()) finalitza el pas d'edició. int document.firstColumn(int línia); Retorna la primera columna que no està en blanc en la línia donada. Si només hi ha espais en blanc a la línia, el valor retornat serà -1. int document.lastColumn(int línia); Retorna la darrera columna que no està en blanc en la línia donada. Si només hi ha espais en blanc a la línia, el valor retornat serà -1. int document.prevNonSpaceColumn(int línia, int columna); int document.prevNonSpaceColumn(Cursor cursor); Retorna la columna no buida que conté un caràcter no en blanc a partir de la posició donada del cursor i cercant cap enrere. int document.nextNonSpaceColumn(int línia, int columna); int document.nextNonSpaceColumn(Cursor cursor); Retorna la columna no buida que conté un caràcter no en blanc a partir de la posició donada del cursor i cercant cap endavant. int document.prevNonEmptyLine(int línia); Retorna la línia següent no buida que conté caràcters no en blanc a la cerca cap enrere. int document.nextNonEmptyLine(int línia); Retorna la línia següent no buida que conté caràcters no en blanc a la cerca cap endavant. bool document.isInWord(String caràcter, int atribut); Retorna true (vertader), si el caràcter donat amb l'atribut donat pot formar part d'una paraula, en cas contrari retornarà false (fals). bool document.canBreakAt(String caràcter, int atribut); Retorna true (vertader), si el caràcter donat amb l'atribut donat és adequat com a embolcall d'una línia, en cas contrari retornarà false (fals). bool document.canComment(int iniciAtribut, int finalAtribut); Retorna true (vertader), si un interval inicial i final amb els atributs donats es presten a ser descomentats, en cas contrari retornarà false (fals). String document.commentMarker(int atribut); Retorna el marcador de comentari per als comentaris de línia única per a un atribut donat. String document.commentStart(int atribut); Retorna el marcador de comentari per al començament de comentaris de múltiples línies per a un atribut donat. String document.commentEnd(int atribut); Retorna el marcador de comentari per al final de comentaris de múltiples línies per a un atribut donat. Range document.documentRange(); Retorna un interval que abasta tot el document. Cursor documentEnd(); Retorna un cursor situat a l'última columna de l'última línia al document. bool isValidTextPosition(int línia, int columna); bool isValidTextPosition(Cursor cursor); Retorna true (vertader), si la posició indicada del cursor està situada a una posició vàlida del text. Una posició de text només és vàlida si es localitza al començament, al mig o al final d'una línia vàlida. A més, una posició de text no serà vàlida si es troba en un substitut Unicode. Des del: &kde; 5.0 int document.attribute(int línia, int columna); int document.attribute(Cursor cursor); Retorna l'atribut a la posició del cursor donada. bool document.isAttribute(int línia, int columna, int atribut); bool document.isAttribute(Cursor cursor, int atribut); Retorna true (vertader), si l'atribut a la posició del cursor és igual que l'atribut, en cas contrari retornarà false (fals). String document.attributeName(int línia, int columna); String document.attributeName(Cursor cursor); Retorna el nom de l'atribut com a text llegible. Això equival al nom itemData en els fitxers de ressaltat de la sintaxi. bool document.isAttributeName(int línia, int columna, String nom); bool document.isAttributeName(Cursor cursor, String nom); Retorna true (vertader), si el nom de l'atribut en una posició determinada del cursor coincideix amb el nom donat, en cas contrari retornarà false (fals). String document.variable(String clau); Retorna el valor de la variable de document demanada clau. Si la variable de document no existeix, el valor retornat serà una cadena buida. void document.setVariable(String clau, String valor); Estableix el valor de la variable de document demanada clau. Vegeu també: variables de document del Kate Des del: &kde; 4.8 int document.firstVirtualColumn(int línia); Retorna la columna virtual del primer caràcter que no està en blanc a la línia donada o -1, si la línia està buida o només conté caràcters d'espai en blanc. int document.lastVirtualColumn(int línia); Retorna la columna virtual de l'últim caràcter que no està en blanc a la línia donada o -1, si la línia està buida o només conté caràcters d'espai en blanc. int document.toVirtualColumn(int línia, int columna); int document.toVirtualColumn(Cursor cursor); Cursor document.toVirtualCursor(Cursor cursor); Converteix la posició real donada del cursor a una posició virtual del cursor, d'altra manera retorna un «int» o un objecte «Cursor». int document.fromVirtualColumn(int línia, int virtualColumna); int document.fromVirtualColumn(Cursor virtualCursor); Cursor document.fromVirtualCursor(Cursor virtualCursor); Converteix la posició virtual donada del cursor a una posició real del cursor, d'altra manera retorna un «int» o un objecte «Cursor». Cursor document.anchor(int línia, int columna, Char caràcter); Cursor document.anchor(Cursor cursor, Char caràcter); Cerca enrere pel caràcter donat a partir del cursor donat. Com a exemple, si es passa «(» com a caràcter, aquesta funció retornarà la posició de l'obertura «(». Això compta la referència, &ead;, els altres «(...)» seran ignorats. Cursor document.rfind(int línia, int columna, String text, int atribut = -1); Cursor document.rfind(Cursor cursor, String text, int atribut = -1); Cerca cap enrere el text donat amb l'atribut adequat. L'argument atribut s'ignorarà si s'estableix a -1. El cursor retornat no serà vàlid, si el text no s'ha pogut trobar. int document.defStyleNum(int línia, int columna); int document.defStyleNum(Cursor cursor); Retorna l'estil per omissió utilitzat a la posició donada del cursor. bool document.isCode(int línia, int columna); bool document.isCode(Cursor cursor); Retorna true (vertader), si l'atribut a la posició donada del cursor no és igual per a tots els següents estils: dsComment, dsString, dsRegionMarker, dsChar, dsOthers. bool document.isComment(int línia, int columna); bool document.isComment(Cursor cursor); Retorna true (vertader), si l'atribut del caràcter a la posició del cursor és dsComment, en cas contrari retornarà false (fals). bool document.isString(int línia, int columna); bool document.isString(Cursor cursor); Retorna true (vertader), si l'atribut del caràcter a la posició del cursor és dsString, en cas contrari retornarà false (fals). bool document.isRegionMarker(int línia, int columna); bool document.isRegionMarker(Cursor cursor); Retorna true (vertader), si l'atribut del caràcter a la posició del cursor és dsRegionMarker, en cas contrari retornarà false (fals). bool document.isChar(int línia, int columna); bool document.isChar(Cursor cursor); Retorna true (vertader), si l'atribut del caràcter a la posició del cursor és dsChar, en cas contrari retornarà false (fals). bool document.isOthers(int línia, int columna); bool document.isOthers(Cursor cursor); Retorna true (vertader), si l'atribut del caràcter a la posició del cursor és dsOthers, en cas contrari retornarà false (fals). L'API de l'editor A més de l'API del document i la visualització, hi ha una API general de l'editor que proporciona funcions per a la funcionalitat per a crear scripts general de l'editor. Cadena editor.clipboardText(); Retorna el text que es troba actualment al porta-retalls global. Des del: &kde-frameworks; 5.0 Cadena editor.clipboardHistory(); L'editor manté un historial del porta-retalls que conté fins a 10 entrades. Aquesta funció retorna totes les entrades que actualment es troben a l'historial del porta-retalls. Des del: &kde-frameworks; 5.0 void editor.setClipboardText(String text); Estableix el contingut del porta-retalls al text. El text serà afegit a l'historial del porta-retalls. Des del: &kde-frameworks; 5.0 Index: trunk/l10n-kf5/ca/docs/applications/katepart/regular-expressions.docbook =================================================================== --- trunk/l10n-kf5/ca/docs/applications/katepart/regular-expressions.docbook (revision 1559933) +++ trunk/l10n-kf5/ca/docs/applications/katepart/regular-expressions.docbook (revision 1559934) @@ -1,1104 +1,1188 @@ &Anders.Lund; &Anders.Lund.mail; &traductor.Antoni.Bella; Expressions regulars Aquest apèndix conté una breu però probablement suficient i completa introducció al món de les expressions regulars. Les documenta tal com apareixen en el &kappname;, donat que no són compatibles amb les expressions regulars de perl, ni de grep, per exemple. Introducció Les expressions regulars us proporcionen un mètode per a descriure el possible contingut d'una cadena de text de manera que pugui ser interpretada per una petita peça de programari, i d'aquesta manera es pugui esbrinar si un text es correspon amb el cercat i, en el cas d'aplicacions avançades, es posin els mitjans per a recuperar parts del text coincident. Per exemple: Posem que voleu cercar un text que és el començament d'un paràgraf que inclou els noms «Enric» o «Pere», seguits d'alguna forma del verb «dir». En una cerca normal, s'hauria de començar a cercar pel primer nom, «Enric» potser seguit de «di», de la següent manera: Enric di, i mentre cerca coincidències, haureu de descartar aquelles que no estiguin al començament d'un paràgraf, així com aquelles en les que la paraula que comenci per «di» que no pertanyi al verb «dir». I després tornar a repetir tot el procés amb el següent nom... Amb les expressions regulars, aquesta tasca s'hauria de realitzar d'una sola cerca, i amb un alt grau de precisió. Per a aconseguir-ho, les expressions regulars estableixen regles per expressar amb detall una generalització de la cadena a cercar. El nostre exemple el podríem expressar literalment com: «Una línia que comença per «Enric» o per «Pere» (possiblement després de 4 espais en blanc o tabulacions) seguit d'un espai en blanc seguit de «di» i després «u» o «gué»», es podria expressar amb la següent expressió regular: ^[ \t]{0,4}(Enric|Pere) di(u|gué) L'exemple anterior mostra els quatre conceptes principals de les expressions regulars modernes, a veure: Patrons Declaracions Quantificadors Referències enrere L'accent circumflex (^) que es troba al començament de l'expressió és una declaració, que tan sols és certa si la resta de la cadena de cerca es troba al començament d'una línia. Les cadenes [ \t] i (Enric|Pere) di(u|gué) són patrons. El primer és una classe de caràcters que coincideix amb un espai en blanc o amb una tabulació (horitzontal); l'altre patró conté un primer subpatró que coincideix amb Enric o amb Pere, després una part de coincidència exacta di i per acabar un altre subpatró que coincideix amb u o amb gué La cadena {0,4} és un quantificador que diu «en qualsevol lloc des de 0 a 4 caràcters anteriors». Com el programari d'expressions regulars suporta el concepte de referències enrere desa tota la part coincident de la cadena així com els subpatrons tancats entre parèntesis, proporcionant mitjans per accedir a aquestes referències, podem posar les nostres mans tant en la cadena coincident completa (quan se cerca al text d'un editor mitjançant una expressió regular, que normalment apareix marcada com a seleccionada) com en el nom trobat, o en l'última part del verb. Unint-ho tot, l'expressió coincidirà a on nosaltres vulguem, i tan sols allí. Les següents seccions descriuen amb detall com construir i usar patrons, classes de caràcters, declaracions, quantificadors i referències enrere, i l'última secció presentarà una sèrie d'útils exemples. Patrons Els patrons consten de cadenes literals i classes de caràcter. Els patrons poden contenir subpatrons, que són patrons tancats entre parèntesis. Caràcters d'escapada En els patrons, així com en les classes de caràcter, alguns caràcters tenen un significat especial. Per aconseguir una coincidència literal amb algun d'aquests caràcters, és necessari marcar-los com a escapats per a permetre a l'intèrpret d'expressions regulars comprendre que aquests caràcters han de ser inclosos en el seu significat literal. Això es fa precedint el caràcter d'una barra inversa (\). El programari d'expressions regulars ignorarà l'escapat de qualsevol caràcter que no tingui cap significat especial en el context, així que escapar, per exemple, «j» (\j) no té per què causar problemes. Si teniu cap dubte sobre quan un caràcter pot tenir un significat especial, escapeu-lo amb seguretat. L'escapat inclou el propi caràcter de la barra inversa. Per a poder presentar-la de forma literal, heu d'escriure \\. Classes de caràcter i abreujaments Una classe de caràcter és una expressió que coincideix amb un conjunt de caràcters definit. En les expressions regulars, les classes de caràcter s'estableixen col·locant els caràcters vàlids de la classe entre claudàtors [], o usant una de les classes abreujades que es descriuen a continuació. Les classes de caràcters simples tan sols contenen un o més caràcters literals, per exemple [abc] (que coincidirà amb les lletres «a», «b» o «c») o [0123456789] (que coincidirà amb qualsevol dígit). Com les lletres i els dígits tenen un ordre lògic, ho podeu abreujar usant intervals: [a-c] és igual que [abc] i [0-9] és igual que [0123456789]. Combinant aquestes construccions, per exemple [a-fynot1-38] resulta completament vàlid (aquesta última hauria de coincidir amb qualsevol dels caràcters o dígits «a», «b», «c», «d», «e», «f», «y», «n», «o», «t», «1», «2», «3» o «8»). Com les lletres majúscules són caràcters diferents que els seus equivalents en minúscula, per a crear una classe de caràcter que sigui independent del format de les lletres, haureu d'escriure [aAbB]. De manera que és possible crear una classe «negativa» perquè es faci coincidir «tot menys». Per a fer-ho inclogueu un accent circumflex (^) al començament de la classe: [^abc] coincidirà amb qualsevol caràcter excepte amb «a», «b» o «c». A més dels caràcters literals, hi ha alguns abreujaments definits, per a facilitar una mica les coses: \a Aquest coincideix amb el caràcter ASCII del timbre (BEL, 0x07). \f Aquest coincideix amb el caràcter ASCII del salt de pàgina (FF, 0x0C). \n Aquest coincideix amb el caràcter ASCII del salt de línia (LF, 0x0A, nova línia a Unix). \r Aquest coincideix amb el caràcter ASCII de retorn de carro (CR, 0x0D). \t Aquest coincideix amb el caràcter ASCII del tabulador horitzontal (HT, 0x09). \v Aquest coincideix amb el caràcter ASCII del tabulador vertical (VT, 0x0B). \xhhhh Aquest coincideix amb el caràcter Unicode corresponent al número hexadecimal hhhh (entre 0x0000 i 0xFFFF). \0ooo (&ead;, \zero ooo) coincideix amb el caràcter ASCII/Latin-1 corresponent al número octal ooo (entre 0 i 0377). . (punt) Aquest coincideix amb qualsevol caràcter (inclòs el de nova línia). \d Aquest coincideix amb un dígit. És igual que [0-9] \D Aquest coincideix amb un no dígit. És igual que [^0-9] o [^\d] \s Aquest coincideix amb un caràcter d'espai en blanc. Pràcticament igual que [\t\n\r] \S Aquest coincideix amb un no espai en blanc. Pràcticament igual que [^\t\r\n], i igual que [^\s] \w Coincideix amb qualsevol «caràcter d'una paraula», en aquest cas qualsevol lletra, dígit o guió baix. És igual que [a-zA-Z0-9_]. \W Coincideix amb qualsevol caràcter que no sigui una paraula, qualsevol cosa menys lletres, números o guió baix. És igual que [^a-zA-Z0-9_] o [^\w]. També està admesa la notació POSIX de les classes, [:<nom classe>:]. Per exemple, [:dígit:] és equivalent a \d, i [:espai:] a \s. Vegeu la llista completa de les classes de caràcters POSIX aquí. Les classes abreujades es poden posar a dins d'una classe pròpia, per exemple per a fer coincidir un caràcter d'una paraula, un espai en blanc o un punt, podeu escriure [\w \.] Caràcters amb significat especial dintre de les classes de caràcters Els següents caràcters tenen un significat especial dintre de la construcció de classes dels caràcters «[]», i és necessari escapar-los perquè siguin inclosos literalment en una classe: ] Finalitza la classe de caràcters. Haurà d'estar escapat excepte si és el primer caràcter de la classe (pot seguir a un accent circumflex sense escapar). ^ (accent circumflex) Indica que es tracta d'una classe negativa, si és el primer caràcter. Haurà d'estar escapat per a cercar una coincidència literal en el cas que sigui el primer caràcter en la classe. - (guió) Indica un interval lògic. Haurà d'estar escapat en una classe de caràcter. \ (barra inversa) El caràcter d'escapada. Haurà d'estar sempre escapat. Alternatives: Coincidències amb «un de» Si desitgeu que la coincidència sigui una d'una sèrie de patrons alternatius, els podeu separar amb | (caràcter de barra vertical). Per exemple, per a trobar «Jordi» o «Albert», hauríeu d'usar una expressió Jordi|Albert. Subpatrons Els subpatrons són patrons tancats entre parèntesis, i tenen diversos usos en el món de les expressions regulars. Especificació d'alternatives Podeu usar un subpatró per agrupar un conjunt d'alternatives dins d'un patró més gran. Les alternatives se separen amb el caràcter «|» (barra vertical). Per exemple, per a cercar la coincidència de les paraules «int», «float» o «double», es podria usar el patró int|float|double. Si tan sols desitgeu trobar-ne una seguida d'algun tipus d'espai en blanc i després algunes lletres, poseu les alternatives dins d'un subpatró: (int|float|double)\s+\w+. Captura del text coincident (referències enrere) Si voleu utilitzar una referència enrere, utilitzeu un subpatró (PATRÓ) perquè es recordi la part desitjada del patró. Per evitar que es recordi el subpatró, utilitzeu un grup sense captura (?:PATTERN). Per exemple, si desitgeu trobar dues ocurrències de la mateixa paraula separades per una coma i possiblement algun espai en blanc, podeu escriure (\w+),\s*\1. El subpatró \w+ localitzarà un conjunt de caràcters d'una paraula, i tota l'expressió coincidirà si aquest conjunt va seguit d'una coma, 0 o més espais en blanc i després un conjunt de caràcters d'una paraula igual que el primer (la cadena \1 fa referència al primer subpatró delimitat per parèntesis). Per evitar ambigüitats amb l'ús de \1 amb alguns dígits al darrere (&pex;, \12 pot ser el subpatró 12 o simplement el primer subpatró amb 2) utilitzarem \{12} com a sintaxi pels subpatrons amb múltiples dígits. Exemples: \{12}1 és utilitza el subpatró 12 \123 és utilitza la captura 1 després 23 com a text normal Declaracions d'anticipació Una declaració d'anticipació és un subpatró, que comença per Una declaració d'anticipació és un subpatró, el qual comença per ?= o per ?!. Per exemple, si voleu cercar la cadena literal «Bill», però tan sols si no va seguida de « Gates», podeu usar l'expressió: Bill(?! Gates). (Això coincidirà amb «Bill Clinton» i amb «Billy el nen», però ignoraria en silenci les altres coincidències). Els subpatrons usats en les declaracions no es capturen. Veure també Declaracions. + +Declaracions de cerca cap enrere + +Una declaració de cerca cap enrere és un subpatró, el qual comença per ?<= o per ?<!. + +La cerca cap enrere té el mateix efecte que l'anticipada, però funciona a l'inrevés. Per exemple, per a fer coincidir la cadena literal fruit, però només si no està precedida per grape, podreu utilitzar aquesta expressió: (?<!grape)fruit. + +Els subpatrons usats en les declaracions no es capturen. + +Veure també Declaracions. + + + Caràcters amb un significat especial dins dels patrons Els següents caràcters tenen significat dins dels patrons, i és necessari escapar-los per a una coincidència literal: \ (barra inversa) El caràcter d'escapada. ^ (accent circumflex) Declara el començament de la cadena. $ Declara el final de la cadena. () (parèntesis dret i esquerre) Denota subpatrons. {} (claus dreta i esquerra) Denota quantificadors numèrics. [] (claudàtors dret i esquerre) Denota classes de caràcter. | (barra vertical) O lògic. Separa alternatives. + (signe més) Quantificador, 1 o més. * (asterisc) Quantificador, 0 o més. ? (signe d'interrogació) Un caràcter opcional. Es pot interpretar com quantificador, 0 o 1. Quantificadors Els quantificadors permeten que una expressió regular coincideixi amb un número o un interval de números de qualsevol caràcter, una classe de caràcter o un subpatró. Els quantificadors es col·loquen entre claus ({ i }). Teniu la forma general {[ocurrències-mínimes][,[ocurrències-màximes]]} L'ús s'explica millor en aquest exemple: {1} Exactament 1 ocurrència {0,1} Zero o 1 ocurrència {,1} El mateix, però amb menys treball ;) {5,10} Com a mínim 5 i com a màxim 10 ocurrències. {5,} Com a mínim 5 ocurrències, sense màxim. A més, hi ha alguns abreujaments: * (asterisc) Similar a {0,}, troba qualsevol nombre d'ocurrències. + (signe més) Similar a {1,}, almenys 1 ocurrència. ? (signe d'interrogació) Similar a {0,1}, zero o 1 ocurrència. Avarícia Quan s'usen quantificadors sense màxim, les expressions regulars intenten coincidir amb la major part possible de la cadena cercada, coneixent-se aquest comportament com a avariciós. El programari modern d'expressions regulars proporciona els mitjans per a «desactivar l'avarícia», tot i que en els entorns gràfics dependrà de la interfície en tenir accés a aquesta característica. Per exemple, un diàleg de cerca que permeti expressions regulars, podria tenir una casella de selecció anomenada «Coincidència mínima». a més, hi podria haver una indicació quant a que el comportament per omissió és d'avarícia. Exemples en context Aquests són alguns exemples que usen quantificadors: ^\d{4,5}\s Coincideix amb els dígits en «1234 ja» i «12345 ara», però no amb els de «567 onze» ni els de «223459 enlloc». \s+ Coincideix amb un o més espais en blanc. (bla){1,} Coincideix amb «blablabla» i amb el «bla» de «blanc» o «tabla». /?> Coincideix amb «/>» en «<elementtancat/>» així com amb «>» en «<elementobert>». Declaracions Les declaracions permeten que una expressió regular tan sols coincideixi sota una sèrie de condicions controlades. Una declaració no necessita la coincidència d'un caràcter, sinó que investiga els voltants cercant una possible coincidència abans de donar-la per vàlida. Per exemple, la declaració límit de paraula no intenta trobar un caràcter que no sigui d'una paraula en oposició a un que sí que estigui en la seva posició, en comptes d'això mira d'assegurar que no és un caràcter d'una paraula. Això vol dir que la declaració pot ser vàlida en el cas que no hi hagi cap caràcter, &ead;, al final de la cadena cercada. Algunes declaracions actuals no tenen un patró amb què coincidir, però la part coincident de la cadena no serà part del resultat de la coincidència de l'expressió completa. Les expressions regulars aquí documentades suporten les següents declaracions: ^ (accent circumflex: el començament d'una cadena) Coincideix amb el començament de la cadena cercada. L'expressió ^Pere coincidirà amb «Pere» en la cadena «Pere, hola!» però no en «Hola Pere!» $ (final de la cadena) Coincideix amb el final de la cadena cercada. L'expressió tu\?$ coincidirà amb el final de la cadena «No l'has fet tu?», però amb cap part de «Tu no l'has fet?» \b (límit de paraula) Coincideix si hi ha un caràcter de paraula a un costat i no un caràcter de paraula a l'altre. Això és molt útil per a trobar el final de les paraules, o ambdós extrems per a delimitar tota la paraula. L'expressió \bin\b coincidirà amb el «in» separat en la cadena «He came in through the window», però no amb el «in» de «window». \B (no límit de paraula) Coincideix amb tot el que «\b» no coincideix. Això vol dir que coincidirà, per exemple, dins de les paraules: L'expressió \Bin\B coincidirà en «window» però no en «integer» o en «I'm in love». (?=PATRÓ) (anticipació positiva) Una declaració d'anticipació cerca la part de la cadena seguida d'una possible coincidència. L'anticipació positiva prevé la coincidència de la cadena si el text que segueix no correspon al PATRÓ de la declaració, i el text que coincideix amb aquest no serà inclòs en el resultat. L'expressió handy(?=\w) coincidirà amb «handy» en «handyman» però no en «That came in handy!» (?!PATRÓ) (anticipació negativa) L'anticipació negativa prevé una possible coincidència si la següent part de la cadena coincideix amb el PATRÓ. L'expressió const \w+\b(?!\s*&) coincidirà amb «const char» en la cadena «const char* foo», mentre que no coincidirà amb «const QString» en «const QString& bar», atès que el «&» coincideix amb el patró de la declaració d'anticipació negativa. (?<=PATRÓ) (cerca cap enrere positiva) +La cerca cap enrere té el mateix efecte que l'anticipació, però funciona a l'inrevés.Una cerca capo enrere la part de la cadena anterior a una possible coincidència. La cerca cap enrere positiva només coincidirà amb una cadena si està precedida pel PATRÓ de la declaració, i el text que coincideix amb aquest no serà inclòs en el resultat. +L'expressió (?<cup)cake coincidirà amb cake si està precedit per cup (sí a cupcake però no a cheesecake o cake). + + + + +(?<!PATRÓ) (cerca cap enrere negativa) +La cerca cap enrere negativa prevé una possible coincidència si la part anterior de la cadena coincideix amb el PATRÓ. +L'expressió (?<![\w\.])[0-9]+ coincidirà amb 123 a les cadenes =123 i -123 però no coincidirà amb les cadenes .123 o word123.«Pere, hola!» però no en «Hola Pere!» + + + + +(PATRÓ) (amb captura del grup) El subpatró dins dels parèntesis serà capturat i recordat, de manera que pugui usar-se en les referències enrere. Per exemple, l'expressió (&quot;+)[^&quot;]*\1 coincidirà amb """"text"""" i "text". Per obtenir més informació vegeu Captura del text coincident (referències enrere). (?:PATRÓ) (sense captura del grup) El subpatró entre parèntesis no es capturarà ni recordarà. És preferible utilitzar sempre grups sense captura si no s'utilitzaran les captures.