[gnome-devel-docs] Added galician translations for optimization-guide. Updated galician translations for platform-demos



commit 49022bba284713dda83e7abfbd0da5885e771910
Author: Fran Dieguez <fran openhost es>
Date:   Mon Sep 5 04:03:39 2011 +0200

    Added galician translations for optimization-guide.
    Updated galician translations for platform-demos

 optimization-guide/Makefile.am |    2 +-
 optimization-guide/gl/gl.po    | 1056 ++++++++++++++++++++++++++++++++++++++++
 platform-demos/gl/gl.po        |   93 ++++-
 3 files changed, 1146 insertions(+), 5 deletions(-)
---
diff --git a/optimization-guide/Makefile.am b/optimization-guide/Makefile.am
index d84ccec..5e94fcc 100644
--- a/optimization-guide/Makefile.am
+++ b/optimization-guide/Makefile.am
@@ -2,7 +2,7 @@ include $(top_srcdir)/gnome-doc-utils.make
 dist-hook: doc-dist-hook
 
 DOC_MODULE = optimization-guide
-DOC_LINGUAS = cs de el es fr sl zh_CN
+DOC_LINGUAS = cs de el es fr gl sl zh_CN
 DOC_ENTITIES =
 DOC_INCLUDES = \
   optimization-harmful.xml \
diff --git a/optimization-guide/gl/gl.po b/optimization-guide/gl/gl.po
new file mode 100644
index 0000000..eabadfc
--- /dev/null
+++ b/optimization-guide/gl/gl.po
@@ -0,0 +1,1056 @@
+# Galician translation for gnome-devel-docs.
+# Copyright (C) 2011 gnome-devel-docs's COPYRIGHT HOLDER
+# This file is distributed under the same license as the gnome-devel-docs package.
+# FIRST AUTHOR <EMAIL ADDRESS>, YEAR.
+# Fran Dieguez <frandieguez gnome org>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gnome-devel-docs master\n"
+"POT-Creation-Date: 2011-09-01 17:35+0000\n"
+"PO-Revision-Date: 2011-09-05 04:02+0200\n"
+"Last-Translator: Fran Dieguez <frandieguez gnome org>\n"
+"Language-Team: Galego <gnome-l10n-gl gnome org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bits\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: C/optimization-intro.xml:3(title)
+msgid "The Quick Guide to Optimizing GNOME Programs"
+msgstr "GuÃa rÃpida para optimizar programas de GNOME"
+
+#: C/optimization-intro.xml:5(para)
+msgid ""
+"This is a brief introduction to optimization, both the hows and the whys. "
+"Details of individual tools and techniques are left for later articles, but "
+"a collection of hints and tricks is provided."
+msgstr ""
+"Esta à unha breve introduciÃn à optimizaciÃn, dos cÃmos tanto dos porquÃs. "
+"DÃixanse para posteriores artigos os detalles de ferramentas e tÃcnicas "
+"individuais pero fornÃcese unha colecciÃn de suxestiÃns e trucos."
+
+#: C/optimization-intro.xml:10(title)
+msgid "What are we Optimizing?"
+msgstr "Que se està optimizando?"
+
+#: C/optimization-intro.xml:11(para)
+msgid ""
+"When we optimize for GNOME the first thing to remember is this: we are not "
+"trying to make the program better, we are trying to make the person using "
+"the computer happier."
+msgstr ""
+"Ao optimizar GNOME o primeiro que hai que lembrar à isto: non se està "
+"tentando mellorar o programa, estase tentando mellorando facer que as "
+"persoas usen o equipo mÃis felices."
+
+#: C/optimization-intro.xml:14(para)
+msgid ""
+"Better programs make people happier, but there are some improvements that "
+"will make them a lot happier than others: Responsiveness, start-up time, "
+"easy to access commands and not having the computer go into swap the moment "
+"more than two programs are open."
+msgstr ""
+"Programas mellores fan à xente mÃis feliz pero existen algunhas mellores que "
+"faranos mÃis felices que outras: tempo de resposta, tempo de inicio, "
+"facilidade para acceder a ordes e que o equipo non teÃa que usar a memoria "
+"de intercambio cando mÃis de dous programas estean abertos."
+
+#: C/optimization-intro.xml:17(para)
+msgid ""
+"Traditional optimization tackles concepts like CPU use, code size, the "
+"number of mouse clicks and the memory use of the program. This second list "
+"has been chosen to correlate with the first list, however there is an "
+"important difference: The person using GNOME doesn't care about the second "
+"list, but they care a lot about the first list. When optimizing GNOME "
+"programs we will reduce CPU use, memory use and all those things, but these "
+"are the means to the end, not the final goal. We are optimizing for people."
+msgstr ""
+"A optimizaciÃn tradicional contempla conceptos como o uso de CPI, o tamaÃo "
+"do cÃdigo, o nÃmero de pulsaciÃns do reato e o uso de memoria de programa. "
+"Elixiuse esta segunda lista para correlar como a primeira, porÃn existe unha "
+"diferenza importante. Ã persoa que usa GNOME non lle importa a segunda "
+"lista, pero sà a primeira. Ao optimizar os programas de GNOME reducirase o "
+"uso de CPU, o uso de memoria e todo aquelo, pero son conceptos para o fin, "
+"non o obxectivo final. OptimÃzase para as persoas."
+
+#: C/optimization-intro.xml:23(title)
+msgid "Doing the Optimization"
+msgstr "Realizar a optimizaciÃn"
+
+#: C/optimization-intro.xml:24(para)
+msgid ""
+"The previous section omitted one important qualifier: To optimize something "
+"it has to be measurable. You can't measure happiness. However, you can "
+"measure start-up time so you can tell if you have improved it. Happiness "
+"will then, hopefully, follow."
+msgstr ""
+"Na secciÃn anterior omitiuse un calificador importante: optimizar algo debe "
+"ser medÃbel. Non se pode medir a felicidade. PorÃn pÃdese medir o tempo de "
+"inicio dun programa para saber se se mellorou. A felicidade do usuario "
+"aumentarà pois."
+
+#: C/optimization-intro.xml:27(para)
+msgid ""
+"Optimization is the process of measurement, refinement and re-measurement. "
+"So the first thing you must do is find a way to measure what you are "
+"optimizing. Ideally this measurement is a single number, for example: the "
+"time taken to perform a task. This is your benchmark, it is the only way to "
+"tell if you are winning or losing. There is a big difference between a "
+"program that <emphasis>should</emphasis> be fast and a program that "
+"<emphasis>is</emphasis> fast."
+msgstr ""
+"A optimizaciÃn à un proceso de medida, refinamento e remedida. O primeiro "
+"que debe facer à atopar unha forma de medir o que està optimizando. "
+"Idealmente a medida à un simple nÃmero, por exemplo: o tempo que se tarda en "
+"realiar unha tarefa. ESta à a sÃa proba, à a Ãnica forma de saber se està "
+"ganando ou perdendo. Existe unha gran diferenza entre un programa que "
+"<emphasis>deerÃa</emphasis> ser rÃpido e un programa que <emphasis>Ã</"
+"emphasis> rÃpido."
+
+#: C/optimization-intro.xml:30(para)
+msgid ""
+"Once you have a basic benchmark you need to find out why your code is not "
+"doing as well as it should. It is tempting to do this by inspection: just "
+"looking at the code and trying to spot something that looks like it needs "
+"improvement. You will invariably be wrong. Using a profiler to get a "
+"detailed break-down of what your program really does is the only way to be "
+"sure."
+msgstr ""
+"Unha vez que ten unha proba de rendemento bÃsica debe atopar por que o seu "
+"cÃdigo non o està facendo tan ben como deberÃa. à tentado facelo "
+"inspeccionando: simplemente mirar o cÃdigo e tratar de atopar algo que "
+"parece que precisa unha mellora. Estarà perdendo o tempo, usar un perfilador "
+"para obter unha lista detallada do que o seu programa està facendo Ã, "
+"realmente, a Ãnica forma de estar seguro."
+
+#: C/optimization-intro.xml:33(para)
+msgid ""
+"Usually the problem is isolated to small sections of code. Pick the worst "
+"place and concentrate on that first. Once that is done, rerun the profiler "
+"and repeat. As you proceed the gains made at each step will get less and "
+"less, at some point you will have to decide that the results are good "
+"enough. If your efforts are only extracting 10% improvements then you are "
+"well past the point where you should have stopped."
+msgstr ""
+"Xeralmente o problema està illado en pequenas partes do cÃdigo. Elixa a peor "
+"parte e concÃntrese nesa primeiro. Unha vez que o teÃa feito, volva ao "
+"perfilador e repita o proceso. Segundo proceda, as melloras obtidas en cada "
+"paso faranse cada vez mÃis pequenas, nalgÃn punto terà que decidir que os "
+"resultados son suficientes. Se os seus esforzos sà estÃn obtendo un 10% de "
+"melloras entÃn fai tempo que pasou o punto en que deberÃa ter parado."
+
+#: C/optimization-intro.xml:36(para)
+msgid ""
+"Don't forget the big picture. For example, rather than just trying to speed "
+"up a piece of code, ask yourself if it needs to be run at all. Could it be "
+"combined with another piece of code? Can the results of previous "
+"calculations be saved and reused? It won't even need to be optimized if it "
+"is in a place where the user is never going to notice it. Worse still, the "
+"code may already be optimized and is doing the heavy calculations now to "
+"avoid doing them later. Code does not run in isolation and neither does the "
+"optimization process."
+msgstr ""
+
+#: C/optimization-intro.xml:41(title)
+msgid "Hints"
+msgstr "SuxestiÃns"
+
+#: C/optimization-intro.xml:43(title)
+msgid "The Fundamentals"
+msgstr "O fundamental"
+
+#: C/optimization-intro.xml:45(para)
+msgid ""
+"Re-run your benchmark after every change you make to the code and keep a log "
+"of everything you change and how it affects the benchmark. This lets you "
+"undo mistakes and also helps you not to repeat mistakes."
+msgstr ""
+"Volva a executar a sÃa proba de rendemento despois de cada cambio que "
+"realice sobre o cÃdigo e manteÃa un rexistro de todo o que cambia e de como "
+"afecta ao rendemento. Isto permÃtelle desfacer erros e tamÃn axÃdalle a non "
+"repetilos."
+
+#: C/optimization-intro.xml:50(para)
+msgid ""
+"Make sure your code is correct and bug-free before optimizing it. Check that "
+"it remains correct and bug-free after optimization."
+msgstr ""
+"AsegÃrse de que o seu cÃdigo à correcto e està libre de erros antes de "
+"optimizalo. Comprobe que permanece correcto e libre de erros desois de telo "
+"optimizado."
+
+#: C/optimization-intro.xml:55(para)
+msgid "Optimize at the high level before optimizing the details."
+msgstr "Optimizar ao nivel mÃis alto antes de optimizar os detalles."
+
+#: C/optimization-intro.xml:60(para)
+msgid ""
+"Use the right algorithm. The classic text-book example is using quick-sort "
+"instead of bubble-sort. There are many others, some save memory, some save "
+"CPU. Also, see what shortcuts you can make: you can do quicker than quick-"
+"sort if you are prepared to make some compromises."
+msgstr ""
+"Use o algoritmo correcto. O clÃsico exemplo de libro de texto à usar "
+"ordenaciÃn rÃpida no lugar de ordenaciÃn por burbulla. Existen moitos "
+"outros, algÃns aforran memoria, alguns aforran CPU. TamÃn debe ver que "
+"atallos de teclado pode crear: pode facelo mÃis rÃpido que unha ordenaciÃn "
+"rÃpida se està preparado para tomar certos compromisos."
+
+#: C/optimization-intro.xml:65(para)
+msgid ""
+"Optimization is a trade-off. Caching results speeds up calculations, but "
+"increases memory use. Saving data to disk saves memory, but costs time when "
+"it is loaded back from disk."
+msgstr ""
+"A optimizaciÃn à intercambio. Obter resultados mellora os cÃlculos pero "
+"aumenta a memoria en uso. Gardar datos ao disco aforra memoria pero custa "
+"tempo ao cargalos de novo desde o disco."
+
+#: C/optimization-intro.xml:70(para)
+msgid ""
+"Make sure you choose a wide variety of inputs to optimize against. If you "
+"don't it is easy to end up with a piece of code carefully optimized for one "
+"file and no others."
+msgstr ""
+"AsegÃrese de elixir certa variedade de entradas que optimizar. SE non o fai "
+"Ã doado que remate cun trozo de cÃdigo coidadosamente optimizado par aun "
+"campo e non para outros."
+
+#: C/optimization-intro.xml:75(para)
+msgid ""
+"Avoid expensive operations: Multiple small disk reads. Using up lots of "
+"memory so disk swapping becomes necessary. Avoid anything that writes or "
+"reads from the hard disk unnecessarily. The network is slow too. Also avoid "
+"graphics operations that need a response from the X server."
+msgstr ""
+"Evite as operaciÃns caras: mÃltiples lecturas de disco pequenas. Use un "
+"montÃn de memoria para que o Ãrea de intercambio (ÂswapÂ) fÃgase "
+"innecesario. Evite calquera cousa que escriba ou lea innecesariamente do "
+"disco. A rede tamÃn à lenta. Evite tamÃn operaciÃns grÃficas que precisan "
+"unha resposta do servidor X."
+
+#: C/optimization-intro.xml:81(title)
+msgid "Traps for the Unwary"
+msgstr "Trampas para os imprudentes"
+
+#: C/optimization-intro.xml:83(para)
+msgid ""
+"Beware of side effects. There can often be strange interactions between "
+"different sections of code, a speed-up in one part can slow another part "
+"down."
+msgstr ""
+"Estea atento aos efectos colaterais. Xeralmente son interacciÃns estranas "
+"entre diferentes secciÃns do cÃdigo, unha extensiÃn dunha parte pode "
+"retardar outra."
+
+#: C/optimization-intro.xml:88(para)
+msgid ""
+"When timing code, even on a quiet system, events outside the program add "
+"noise to the timing results. Average over multiple runs. If the code is very "
+"short, timer resolution is also a problem. In this case measure the time the "
+"computer takes to run the code 100 or 1000 times. If the times you are "
+"recording are longer than a few seconds, you should be OK."
+msgstr ""
+"Ao cronometrar o tempo do cÃdigo, incluso nun sistema parado, os eventos "
+"fora do programa engaden ruido aos resultados de tempo. Faga unha medida "
+"sobre mÃltiples execuciÃns. Se o cÃdigo à moi pequeno a resoluciÃn do tempo "
+"tamÃn à un problema. Neste caso mida o tempo que o equipo tarda en executar "
+"o cÃdigo 100 ou 1000 veces. Se os tempos que està obtendo son algo "
+"superiores a uns poucos segundos todo deberÃa estar correcto."
+
+#: C/optimization-intro.xml:93(para)
+msgid ""
+"It is very easy to be misled by the profiler. There are stories of people "
+"optimizing the operating system idle-loop because that is where it spent all "
+"its time! Don't optimize code that does nothing the user cares about."
+msgstr ""
+"Ã moi doado perferse co perfilador. Existen historias de programadores "
+"optimizando o bÃcle de inactividade porque à onde se perdÃa todo o seu "
+"tempo. Non optimice cÃdigo do que o usuario non se preocupe."
+
+#: C/optimization-intro.xml:98(para)
+msgid ""
+"Remember the resources on the X server. Your program's memory usage doesn't "
+"include the pixmaps that are stored in the X server's process, but they are "
+"still using up memory. Use xrestop to see what resources your program is "
+"using."
+msgstr ""
+"Lembre os resultados do servidor X. O uso de memoria do seu programa non "
+"inclÃe os pixmaps almacenados nos procesos do servidor X, pero aÃnda seguen "
+"usando memoria. Use xrestop para ver os recursos que està usando o seu "
+"programa."
+
+#: C/optimization-intro.xml:104(title)
+msgid "Low Level Hints"
+msgstr "Consellos de baixo nivel"
+
+#: C/optimization-intro.xml:106(para)
+msgid ""
+"When optimizing memory use, be wary of the difference between peak usage and "
+"average memory usage. Some memory is almost always allocated, this is "
+"usually bad. Some is only briefly allocated, this may be quite acceptable. "
+"Tools like massif use the concept of space-time, the product of memory used "
+"and the duration it was allocated for, instead."
+msgstr ""
+"Ao optimizar o uso de memoria considere a diferenza entre o uso de pico e o "
+"uso medio de memoria. Algunha memoria sempre està reservada, isto xeralmente "
+"à malo. Algunha està temporalmente reservada, isto pode ser aceptÃbel. "
+"Ferramentas como massif usan o concepto de espazo-tempo, o produto da "
+"memoria usada e o tempo durante o que estivo reservada."
+
+#: C/optimization-intro.xml:111(para)
+msgid ""
+"Time simplified bits of code that do only the things you know are essential, "
+"this gives an absolute lower limit on the time your code will take. For "
+"example, when optimizing a loop time the empty loop. If that is still too "
+"long no amount of micro-optimization will help and you will have to change "
+"your design. Make sure the compiler doesn't optimize away your empty loop."
+msgstr ""
+"Controle o tempo de trozos de cÃdigo simplificados que sà fan cousas "
+"esenciais, isto fornece un lÃmite absoluto inferior no tempo que usarà o "
+"cÃdigo. Por exemplo, ao optimizar un bÃcle, controle o tempo do bÃcle "
+"baleiro. Se aÃnda à moito tempo calquera intento de optimizaciÃn non axudarà "
+"e deberà cambiar o seu deseÃo. AsegÃrese de que o compilador non desoptimiza "
+"o bÃcle baleiro."
+
+#: C/optimization-intro.xml:116(para)
+msgid ""
+"Move code out from inside loops. A slightly more complicated piece of code "
+"that is executed once is far quicker than a simple piece of code executed a "
+"thousand times. Avoid calling slow code often."
+msgstr ""
+"mova o cÃdigo fora dos bucles internos. Un anaco de cÃdigo mÃis complicado "
+"que se executa unha soa vez à moito mÃis rÃpido que un trozo de cÃdigo mÃis "
+"sinxelo que se executa mil veces. Evite chamar habitualmente a cÃdigo lento."
+
+#: C/optimization-intro.xml:121(para)
+msgid ""
+"Give the compiler as many hints as possible. Use the const keyword. Use "
+"<envar>G_INLINE_FUNC</envar> for short, frequently called, functions. Look "
+"up <envar>G_GNUC_PURE</envar>, <envar>G_LIKELY</envar> and the other glib "
+"miscellaneous macros. Use the macros instead of gcc-specific keywords to "
+"ensure portability."
+msgstr ""
+"Forneza ao compilador tantas suxestiÃns como lle sea posÃbel. Usa a palabra "
+"chave ÂconstÂ. Use <envar>G_INLINE_FUNC</envar> para funciÃns curtas "
+"frecuentemente chamadas. Busque <envar>G_GNUC_PURE</envar>, <envar>G_LIKELY</"
+"envar> e outras macros miscelÃneas de glib. Use as macros no lugar de "
+"palabras chave especÃficas de gcc para asegurar a portabilidade."
+
+#: C/optimization-intro.xml:126(para)
+msgid ""
+"Don't use assembly language. It is not portable and, while it may be fast on "
+"one processor, it is not even guaranteed to be fast on every processor that "
+"supports that architecture (e.g. Athlon vs. Pentium 4)."
+msgstr ""
+"Non use linguaxes de ensamblado. O cÃdigo non à portÃbel e pode ser mÃis "
+"rÃpido nun procesador que noutro, ademais non està garantizado que sea "
+"rÃpido en cada procesador que admite esa arquitectura (p.ex. Athlon contra "
+"Pentium 4)"
+
+#: C/optimization-intro.xml:131(para)
+msgid ""
+"Don't rewrite an existing library routine unless you are sure it is "
+"unnecessarily slow. Many CPU-intensive library routines have already been "
+"optimized. Conversely, some library routines are slow, especially ones that "
+"make system calls to the operating system."
+msgstr ""
+"Non rescriba unha rutina existente dunha biblioteca a non ser que estea "
+"seguro de que à demasiado lenta. Moitas rutinas de bibliotecas de uso "
+"intensivo pola CPU xa se optimizaron. Algunhas rutinas de bibliotecas son "
+"lentas, especialmente aquelas que realizan chamadas ao sistema operativo."
+
+#: C/optimization-intro.xml:136(para)
+msgid ""
+"Minimize the number of libraries you link to. The fewer libraries to link "
+"in, the faster the program starts. This is a difficult thing to do with "
+"GNOME."
+msgstr ""
+"Minimice o nÃmero de bibliotecas Ãs que liga. Canto menor sexa o nÃmero de "
+"bibliotecas a ligar, mÃis rÃpido se iniciarà o programa. à unha tarefa "
+"difÃcil en GNOME."
+
+#: C/optimization-intro.xml:142(title)
+msgid "High Level Tricks"
+msgstr "Trucos de alto nivel"
+
+#: C/optimization-intro.xml:144(para)
+msgid ""
+"Take advantage of concurrency. This doesn't just mean using multiple "
+"processors, it also means taking advantage of the time the user spends "
+"thinking about what they are going to do next to perform some calculations "
+"in anticipation. Do calculations while waiting for data to be loaded off "
+"disk. Take advantage of multiple resources, use them all at once."
+msgstr ""
+"A ventaxa da concurrencia. Isto non significa simplemente usar varios "
+"procesadores, tamÃn significa aproveitarse do tempo que o usuario pasa "
+"pensando en que farà despois, para realizar algÃns cÃlculos anticipados. "
+"Faga cÃlculos mentres se agarda a carga de datos desde o disco. AprovÃitese "
+"dos recursos mÃltiples, Ãseos todos à vez."
+
+#: C/optimization-intro.xml:149(para)
+msgid ""
+"Cheat. The user only has to think that the computer is fast, it doesn't "
+"matter whether it actually is or not. It is the time between the command and "
+"the answer that is important, it doesn't matter if the response is pre-"
+"calculated, cached, or will in fact be worked out later at a more convenient "
+"time, as long as the user gets what they expect."
+msgstr ""
+"Engane. O usuario sà ten que pensar que o equipo à rÃpido, non importa se "
+"realmente o à ou non. à o tempo entre a orde e a resposta o que importa, non "
+"importa se a resposta esta precalculada, cacheada ou se traballarà nela en "
+"calquera momento posterior conveniente, sempre que o usuario obteÃa o que "
+"agarda."
+
+#: C/optimization-intro.xml:154(para)
+msgid ""
+"Do things in the idle loop. It is easier to program than using full multi-"
+"threading but still gets things done out of the users eye. Be careful "
+"though, if you spend too long in the idle loop your program will become "
+"sluggish. So regularly give control back to the main loop."
+msgstr ""
+
+#: C/optimization-intro.xml:159(para)
+msgid ""
+"If all else fails, tell the user that the code is going to be slow and put "
+"up a progress bar. They won't be as happy as if you had just presented the "
+"results, but they will at least know the program hasn't crashed and they can "
+"go get a cup of coffee."
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/optimization-massif.xml:52(None)
+msgid ""
+"@@image: 'figures/massif-before.png'; md5=1a6b2ace548e6789ab8bfacb3727b345"
+msgstr ""
+"@@image: 'figures/massif-before.png'; md5=1a6b2ace548e6789ab8bfacb3727b345"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/optimization-massif.xml:114(None)
+msgid ""
+"@@image: 'figures/massif-after.png'; md5=36d1b4ad7ab49b28b69ad3eabbaa7069"
+msgstr ""
+"@@image: 'figures/massif-after.png'; md5=36d1b4ad7ab49b28b69ad3eabbaa7069"
+
+#: C/optimization-massif.xml:3(title)
+msgid ""
+"Using <application>Massif</application> for Profiling Memory Use in GNOME "
+"Software"
+msgstr ""
+
+#: C/optimization-massif.xml:5(para)
+msgid ""
+"This article describes how to use the <application>Massif</application> heap "
+"profiler with GNOME applications. We describe how to invoke, interpret, and "
+"act on the output of <application>Massif</application>. The "
+"<application>Same GNOME</application> game is used as an example."
+msgstr ""
+
+#: C/optimization-massif.xml:10(title)
+msgid "Introduction"
+msgstr "IntroduciÃn"
+
+#: C/optimization-massif.xml:11(para)
+msgid ""
+"<application>Massif</application> is a member of the <ulink type=\"http\" "
+"url=\"http://valgrind.org/\";>valgrind</ulink> suite of memory-profiling "
+"tools. Its purpose is to give a detailed view of dynamic memory usage during "
+"the lifetime of the program. Specifically it records the memory use of the "
+"heap and the stack."
+msgstr ""
+
+#: C/optimization-massif.xml:14(para)
+msgid ""
+"The heap is the region of memory which is allocated with functions like "
+"malloc. It grows on demand and is usually the largest region of memory in a "
+"program. The stack is where all the local data for functions is stored. This "
+"includes the \"automatic\" variables in C and the return address for "
+"subroutines. The stack is typically a lot smaller and a lot more active than "
+"the heap. We won't consider the stack explicitly since <application>Massif</"
+"application> treats it as though it were just another part of the heap. "
+"<application>Massif</application> also gives information about how much "
+"memory is used to manage the heap."
+msgstr ""
+
+#: C/optimization-massif.xml:17(para)
+msgid ""
+"<application>Massif</application> produces two output files: a graphical "
+"overview in a postscript file and a detailed breakdown in a text file."
+msgstr ""
+
+#: C/optimization-massif.xml:22(title)
+msgid "Using <application>Massif</application> with GNOME"
+msgstr "Usar <application>Massif</application> con GNOME"
+
+#: C/optimization-massif.xml:23(para)
+msgid ""
+"<application>Massif</application> has very few options and for many programs "
+"does not need them. However for GNOME applications, where memory allocation "
+"might be buried deep in either glib or GTK, the number of levels down the "
+"call-stack Massif descends needs to be increased. This is achieved using the "
+"--depth parameter. By default this is 3; increasing it to 5 will guarantee "
+"the call-stack reaches down to your code. One or two more levels may also be "
+"desirable to provide your code with some context. Since the level of detail "
+"becomes quickly overwhelming it is best to start with the smaller depth "
+"parameter and only increase it when it becomes apparent that it isn't "
+"sufficient."
+msgstr ""
+
+#: C/optimization-massif.xml:26(para)
+msgid ""
+"It is also useful to tell <application>Massif</application> which functions "
+"allocate memory in glib. It removes an unnecessary layer of function calls "
+"from the reports and gives you a clearer idea of what code is allocating "
+"memory. The allocating functions in glib are g_malloc, g_malloc0, g_realloc, "
+"g_try_malloc, and g_mem_chunk_alloc. You use the --alloc-fn option to tell "
+"Massif about them."
+msgstr ""
+
+#: C/optimization-massif.xml:29(para)
+msgid "Your command-line should therefore look something like:"
+msgstr "A sÃa liÃa de orde deberÃa semellarse a esta:"
+
+#: C/optimization-massif.xml:32(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"valgrind --tool=massif --depth=5  --alloc-fn=g_malloc --alloc-fn=g_realloc --alloc-fn=g_try_malloc \\\n"
+"         --alloc-fn=g_malloc0 --alloc-fn=g_mem_chunk_alloc same-gnome\n"
+"        "
+msgstr ""
+"\n"
+"valgrind --tool=massif --depth=5  --alloc-fn=g_malloc --alloc-fn=g_realloc --alloc-fn=g_try_malloc \\\n"
+"         --alloc-fn=g_malloc0 --alloc-fn=g_mem_chunk_alloc same-gnome\n"
+"        "
+
+#: C/optimization-massif.xml:36(para)
+msgid ""
+"<application>Same GNOME</application> is the program we will be using as an "
+"example. Be warned that, since valgrind emulates the CPU, it will run "
+"<emphasis>very</emphasis> slowly. You will also need a lot of memory."
+msgstr ""
+
+#: C/optimization-massif.xml:41(title)
+msgid "Interpreting the Results"
+msgstr "Interpretar os resultados"
+
+#: C/optimization-massif.xml:42(para)
+msgid ""
+"The graphical output of <application>Massif</application> is largely self "
+"explanatory. Each band represents the memory allocated by one function over "
+"time. Once you identify which bands are using the most memory, usually the "
+"big thick ones at the top you will have to consult the text file for the "
+"details."
+msgstr ""
+
+#: C/optimization-massif.xml:45(para)
+msgid ""
+"The text file is arranged as a hierarchy of sections, at the top is a list "
+"of the worst memory users arranged in order of decreasing spacetime. Below "
+"this are further sections, each breaking the results down into finer detail "
+"as you proceed down the call-stack. To illustrate this we will use the "
+"output of the command above."
+msgstr ""
+
+#: C/optimization-massif.xml:49(title)
+msgid ""
+"<application>Massif</application> output for the unoptimized version of the "
+"<application>Same GNOME</application> program."
+msgstr ""
+"A saÃda de <application>Massif</application> para a versiÃn non optimizada "
+"do programa <application>Same GNOME</application>."
+
+#: C/optimization-massif.xml:56(para)
+msgid ""
+"<xref linkend=\"optimization-massif-FIG-output-unoptimized\"/> shows a "
+"typical postscript output from <application>Massif</application>. This is "
+"the result you would get from playing a single game of <application>Same "
+"GNOME</application> (version 2.8.0) and then quitting. The postscript file "
+"will have a name like <filename>massif.12345.ps</filename> and the text file "
+"will be called <filename>massif.12345.txt</filename>. The number in the "
+"middle is the process ID of the program that was examined. If you actually "
+"try this example you will find two versions of each file, with slightly "
+"different numbers, this is because <application>Same GNOME</application> "
+"starts a second process and <application>Massif</application> follows that "
+"too. We will ignore this second process, it consumes very little memory."
+msgstr ""
+
+#: C/optimization-massif.xml:59(para)
+msgid ""
+"At the top of the graph we see a large yellow band labelled gdk_pixbuf_new. "
+"This seems like an ideal candidate for optimization, but we will need to use "
+"the text file to find out what is calling gdk_pixbuf_new. The top of the "
+"text file will look something like this:"
+msgstr ""
+"Na parte superior da grÃfica vese unha gran banda amarela etiquetada como "
+"gdk_pixbuf_new. Semella un candidato ideal para a optimizaciÃn, pero "
+"precisarase usar o ficheiro de texto para topar que està chamando a "
+"gdk_pixbuf_new. A parte superior do ficheiro de texto mostrarà algo como o "
+"seguinte:"
+
+#: C/optimization-massif.xml:62(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"Command: ./same-gnome \n"
+"\n"
+"== 0 ===========================\n"
+"Heap allocation functions accounted for 90.4% of measured spacetime\n"
+"\n"
+"Called from:\n"
+"  28.8% : 0x6BF83A: gdk_pixbuf_new (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"\n"
+"    6.1% : 0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"    5.9% : 0x510B3C: (within /usr/lib/libfreetype.so.6.3.7)\n"
+"\n"
+"    3.5% : 0x2A4A6B: __gconv_open (in /lib/tls/libc-2.3.3.so)\n"
+"        "
+msgstr ""
+"\n"
+"Command: ./same-gnome \n"
+"\n"
+"== 0 ===========================\n"
+"Heap allocation functions accounted for 90.4% of measured spacetime\n"
+"\n"
+"Called from:\n"
+"  28.8% : 0x6BF83A: gdk_pixbuf_new (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"\n"
+"    6.1% : 0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"    5.9% : 0x510B3C: (within /usr/lib/libfreetype.so.6.3.7)\n"
+"\n"
+"    3.5% : 0x2A4A6B: __gconv_open (in /lib/tls/libc-2.3.3.so)\n"
+"        "
+
+#: C/optimization-massif.xml:77(para)
+msgid ""
+"The line with the '=' signs indicates how far down the stack trace we are, "
+"in this case we are at the top. After this it lists the heaviest users of "
+"memory in order of decreasing spacetime. Spacetime is the product of the "
+"amount of memory used and how long it was used for. It corresponds to the "
+"area of the bands in the graph. This part of the file tells us what we "
+"already know: most of the spacetime is dedicated to gdk_pixbuf_new. To find "
+"out what called gdk_pixbuf_new we need to search further down the text file:"
+msgstr ""
+
+#: C/optimization-massif.xml:80(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"== 4 ===========================\n"
+"Context accounted for 28.8% of measured spacetime\n"
+"  0x6BF83A: gdk_pixbuf_new (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"  0x3A998998: (within /usr/lib/gtk-2.0/2.4.0/loaders/libpixbufloader-png.so)\n"
+"  0x6C2760: (within /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"  0x6C285E: gdk_pixbuf_new_from_file (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"\n"
+"Called from:\n"
+"  27.8% : 0x804C1A3: load_scenario (same-gnome.c:463)\n"
+"\n"
+"    0.9% : 0x3E8095E: (within /usr/lib/libgnomeui-2.so.0.792.0)\n"
+"\n"
+"  and 1 other insignificant place\n"
+"        "
+msgstr ""
+"\n"
+"== 4 ===========================\n"
+"Context accounted for 28.8% of measured spacetime\n"
+"  0x6BF83A: gdk_pixbuf_new (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"  0x3A998998: (within /usr/lib/gtk-2.0/2.4.0/loaders/libpixbufloader-png.so)\n"
+"  0x6C2760: (within /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"  0x6C285E: gdk_pixbuf_new_from_file (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
+"\n"
+"Called from:\n"
+"  27.8% : 0x804C1A3: load_scenario (same-gnome.c:463)\n"
+"\n"
+"    0.9% : 0x3E8095E: (within /usr/lib/libgnomeui-2.so.0.792.0)\n"
+"\n"
+"  and 1 other insignificant place\n"
+"        "
+
+#: C/optimization-massif.xml:95(para)
+msgid ""
+"The first line tells us we are now four levels deep into the stack. Below it "
+"is a listing of the function calls that leads from here to gdk_pixbuf_new. "
+"Finally there is a list of functions that are at the next level down and "
+"call these functions. There are, of course, also entries for levels 1, 2, "
+"and 3, but this is the first level to reach right down through the GDK code "
+"to the <application>Same GNOME</application> code. From this listing, we can "
+"see instantly that the problem code is load_scenario."
+msgstr ""
+
+#: C/optimization-massif.xml:98(para)
+msgid ""
+"Now that we know what part of our code is using all the spacetime we can "
+"look at it and find out why. It turns out that the load_scenario is loading "
+"a pixbuf from file and then never freeing that memory. Having identified the "
+"problem code, we can start to fix it."
+msgstr ""
+"Agora que sabe que parte do cÃdigo usa todo o espazo de tempo pÃdese buscar "
+"o porque. Resulta que load_scenario està cargando un pixbuf dun ficheiro e "
+"nunca libera esa memoria. Tendo identificado o cÃdigo do problema pÃdese "
+"comezar a arranxalo."
+
+#: C/optimization-massif.xml:103(title)
+msgid "Acting on the Results"
+msgstr "Actuar sobre os resultados"
+
+#: C/optimization-massif.xml:104(para)
+msgid ""
+"Reducing spacetime consumption is good, but there are two ways of reducing "
+"it and they are not equal. You can either reduce the amount of memory "
+"allocated, or reduce the amount of time it is allocated for. Consider for a "
+"moment a model system with only two processes running. Both processes use up "
+"almost all the physical RAM and if they overlap at all then the system will "
+"swap and everything will slow down. Obviously if we reduce the memory usage "
+"of each process by a factor of two then they can peacefully coexist without "
+"the need for swapping. If instead we reduce the time the memory is allocated "
+"by a factor of two then the two programs can coexist, but only as long as "
+"their periods of high memory use don't overlap. So it is better to reduce "
+"the amount of memory allocated."
+msgstr ""
+
+#: C/optimization-massif.xml:107(para)
+msgid ""
+"Unfortunately, the choice of optimization is also constrained by the needs "
+"of the program. The size of the pixbuf data in <application>Same GNOME</"
+"application> is determined by the size of the game's graphics and cannot be "
+"easily reduced. However, the amount of time it spends loaded into memory can "
+"be drastically reduced. <xref linkend=\"optimization-massif-FIG-output-"
+"optimized\"/> shows the <application>Massif</application> analysis of "
+"<application>Same GNOME</application> after being altered to dispose of the "
+"pixbufs once the images have been loaded into the X server."
+msgstr ""
+
+#: C/optimization-massif.xml:111(title)
+msgid ""
+"<application>Massif</application> output for the optimized <application>Same "
+"GNOME</application> program."
+msgstr ""
+"A saÃda de <application>Massif</application> para o programa optimizado "
+"<application>Same GNOME</application>."
+
+#: C/optimization-massif.xml:118(para)
+msgid ""
+"The spacetime use of gdk_pixbuf_new is now a thin band that only spikes "
+"briefly (it is now the sixteenth band down and shaded magenta). As a bonus, "
+"the peak memory use has dropped by 200 kB since the spike occurs before "
+"other memory is allocated. If two processes like this were run together the "
+"chances of the peak memory usage coinciding, and hence the risk of swapping, "
+"would be quite low."
+msgstr ""
+
+#: C/optimization-massif.xml:121(para)
+msgid ""
+"Can we do better ? A quick examination of <application>Massif</"
+"application>'s text output reveals: g_strdup to be the new major offender."
+msgstr ""
+
+#: C/optimization-massif.xml:124(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"Command: ./same-gnome \n"
+"\n"
+"== 0 ===========================\n"
+"Heap allocation functions accounted for 87.6% of measured spacetime\n"
+"\n"
+"Called from:\n"
+"    7.7% : 0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"    7.6% : 0x43BC9F: (within /usr/lib/libgdk-x11-2.0.so.0.400.9)\n"
+"\n"
+"    6.9% : 0x510B3C: (within /usr/lib/libfreetype.so.6.3.7)\n"
+"\n"
+"    5.2% : 0x2A4A6B: __gconv_open (in /lib/tls/libc-2.3.3.so)\n"
+"        "
+msgstr ""
+"\n"
+"Command: ./same-gnome \n"
+"\n"
+"== 0 ===========================\n"
+"Heap allocation functions accounted for 87.6% of measured spacetime\n"
+"\n"
+"Called from:\n"
+"    7.7% : 0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"    7.6% : 0x43BC9F: (within /usr/lib/libgdk-x11-2.0.so.0.400.9)\n"
+"\n"
+"    6.9% : 0x510B3C: (within /usr/lib/libfreetype.so.6.3.7)\n"
+"\n"
+"    5.2% : 0x2A4A6B: __gconv_open (in /lib/tls/libc-2.3.3.so)\n"
+"        "
+
+#: C/optimization-massif.xml:139(para)
+msgid ""
+"If we look closer though we see that it is called from many, many, places."
+msgstr ""
+
+#: C/optimization-massif.xml:142(programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"== 1 ===========================\n"
+"Context accounted for  7.7% of measured spacetime\n"
+"  0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"Called from:\n"
+"    1.8% : 0x8BF606: gtk_icon_source_copy (in /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
+"\n"
+"    1.1% : 0x67AF6B: g_param_spec_internal (in /usr/lib/libgobject-2.0.so.0.400.6)\n"
+"\n"
+"    0.9% : 0x91FCFC: (within /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
+"\n"
+"    0.8% : 0x57EEBF: g_quark_from_string (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"  and 155 other insignificant places\n"
+"        "
+msgstr ""
+"\n"
+"== 1 ===========================\n"
+"Context accounted for  7.7% of measured spacetime\n"
+"  0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"Called from:\n"
+"    1.8% : 0x8BF606: gtk_icon_source_copy (in /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
+"\n"
+"    1.1% : 0x67AF6B: g_param_spec_internal (in /usr/lib/libgobject-2.0.so.0.400.6)\n"
+"\n"
+"    0.9% : 0x91FCFC: (within /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
+"\n"
+"    0.8% : 0x57EEBF: g_quark_from_string (in /usr/lib/libglib-2.0.so.0.400.6)\n"
+"\n"
+"  and 155 other insignificant places\n"
+"        "
+
+#: C/optimization-massif.xml:158(para)
+msgid ""
+"We now face diminishing returns for our optimization efforts. The graph "
+"hints at another possible approach: Both the \"other\" and \"heap admin\" "
+"bands are quite large. This tells us that there are a lot of small "
+"allocations being made from a variety of places. Eliminating these will be "
+"difficult, but if they can be grouped then the individual allocations can be "
+"larger and the \"heap admin\" overhead can be reduced."
+msgstr ""
+"Agora encÃrase a reduciÃn da saÃda para os esforzos de optimizaciÃn. O "
+"grÃfico suxire outra posÃbel aproximaciÃn: tanto a banda Âother como a "
+"Âheap admin son bastante largas. Isto quere dicir que existen moitas "
+"pequenas reservas realizadas desde certa variedade de sitios. Eliminalos "
+"serà difÃcil, pero se se poden agrupar, entÃn as reservas son individuais "
+"poden ser mÃis grandes e a elevada banda Âheap admin pode reducirse."
+
+#: C/optimization-massif.xml:163(title)
+msgid "Caveats"
+msgstr "Advertencias"
+
+#: C/optimization-massif.xml:164(para)
+msgid ""
+"There are a couple of things to watch out for: Firstly, spacetime is only "
+"reported as a percentage, you have to compare it to the overall size of the "
+"program to decide if the amount of memory is worth pursuing. The graph, with "
+"its kilobyte vertical axis, is good for this."
+msgstr ""
+"Existen un par de cousas para ter en conta: Primeiramente, sà se informa do "
+"espazo de tempo como porcentaxe, ten que comparalo co tamaÃo total do "
+"programa para decidir se merece a pena perseguir a cantidade total de "
+"memoria. O grÃfico, co seu eixe vertical de kilobytes, Ã bo para iso."
+
+#: C/optimization-massif.xml:167(para)
+msgid ""
+"Secondly, <application>Massif</application> only takes into account the "
+"memory used by your own program. Resources like pixmaps are stored in the X "
+"server and aren't considered by <application>Massif</application>. In the "
+"<application>Same GNOME</application> example we have actually only moved "
+"the memory consumption from client-side pixbufs to server-side pixmaps. Even "
+"though we cheated there are performance gains. Keeping the image data in the "
+"X server makes the graphics routines quicker and removes a lot of inter-"
+"process communication. Also, the pixmaps will be stored in a native graphics "
+"format which is often more compact than the 32-bit RGBA format used by "
+"gdk_pixbuf. To measure the effect of pixmaps, and other X resources use the "
+"<ulink type=\"http\" url=\"http://www.freedesktop.org/Software/xrestop";
+"\">xrestop</ulink> program."
+msgstr ""
+
+#: C/optimization-harmful.xml:3(title)
+msgid "Disk Seeks Considered Harmful"
+msgstr "Buscas de disco consideradas daÃinas"
+
+#: C/optimization-harmful.xml:5(para)
+msgid ""
+"Disk seeks are one of the most expensive operations you can possibly "
+"perform. You might not know this from looking at how many of them we "
+"perform, but trust me, they are. Consequently, please refrain from the "
+"following suboptimal behavior:"
+msgstr ""
+"As buscas de disco son unha das operaciÃns mÃis caras que pode realizar. "
+"Pode que non saiba isto simplemente mirando cantas se realizan, pero crea "
+"que realmente o son. Por iso, evite os seguintes comportamentos."
+
+#: C/optimization-harmful.xml:10(para)
+msgid "Placing lots of small files all over the disk."
+msgstr "Localizar montÃns de pequenos ficheiros por todo o disco."
+
+#: C/optimization-harmful.xml:15(para)
+msgid "Opening, stating, and reading lots of files all over the disk"
+msgstr "Abrir, iniciar e ler montÃns de ficheiros por todo o disco."
+
+#: C/optimization-harmful.xml:20(para)
+msgid ""
+"Doing the above on files that are laid out at different times, so as to "
+"ensure that they are fragmented and cause even more seeking."
+msgstr ""
+"Realizar o anterior sobre ficheiros que se abren en diferentes momentos, "
+"para asegurarse de que estÃn fragmentados e causan aÃnda mÃis buscas no "
+"disco."
+
+#: C/optimization-harmful.xml:25(para)
+msgid ""
+"Doing the above on files that are in different directories, so as to ensure "
+"that they are in different cylinder groups and and cause even more seeking."
+msgstr ""
+"Realizar o seguinte sobre ficheiros que estÃn en diferentes cartafoles, para "
+"asegurarse de que estÃn en grupos de cilindros diferentes e poden causar "
+"incluso mÃis buscas."
+
+#: C/optimization-harmful.xml:30(para)
+msgid "Repeatedly doing the above when it only needs to be done once."
+msgstr ""
+"Realizar de forma repetida o anterior cando sà se precisa realizar unha vez."
+
+#: C/optimization-harmful.xml:35(para)
+msgid "Ways in which you can optimize your code to be seek-friendly:"
+msgstr ""
+"Formas nas que pode optimizar o seu cÃdigo para que sexa amigÃbel à hora de "
+"facer buscas:"
+
+#: C/optimization-harmful.xml:40(para)
+msgid "Consolidate data into a single file."
+msgstr "Consolidar os datos nun sà ficheiro."
+
+#: C/optimization-harmful.xml:45(para)
+msgid "Keep data together in the same directory."
+msgstr "Manter os datos xuntos no mesmo cartafol."
+
+#: C/optimization-harmful.xml:50(para)
+msgid "Cache data so as to not need to reread constantly."
+msgstr "Cachear os datos para non ter que volver a lelos constantemente."
+
+#: C/optimization-harmful.xml:55(para)
+msgid ""
+"Share data so as not to have to reread it from disk when each application "
+"loads."
+msgstr ""
+"Compartir os datos para non ter que volver a lelos do disco cada vez que un "
+"aplicativo se carga."
+
+#: C/optimization-harmful.xml:60(para)
+msgid ""
+"Consider caching all of the data in a single binary file that is properly "
+"aligned and can be mmaped."
+msgstr ""
+"Considerar cachear tÃdolos datos nun ficheiro binario Ãnico que està aliÃado "
+"axeitadamente e pÃdse mapear."
+
+#: C/optimization-harmful.xml:65(para)
+msgid ""
+"The trouble with disk seeks are compounded for reads, which is unfortunately "
+"what we are doing. Remember, reads are generally synchronous while writes "
+"are asynchronous. This only compounds the problem, serializing each read, "
+"and contributing to program latency."
+msgstr ""
+"O problema coas buscas nos discos complÃcase para as lecturas, que à "
+"desafortunadamente o que se busca. Lembre, as lecturas son xeralmente "
+"sÃncronas mentres que as escrituras son asÃncronas. Isto sà complica o "
+"problema, serializando cada lectura e contribuÃndo à latencia do programa."
+
+#: C/optimization-guide.xml:5(title)
+msgid "Optimizing GNOME Software"
+msgstr "Optimizar software para GNOME"
+
+#: C/optimization-guide.xml:8(publishername) C/optimization-guide.xml:56(para)
+msgid "GNOME Documentation Project"
+msgstr "GNOME Documentation Project"
+
+#: C/optimization-guide.xml:11(year) C/optimization-guide.xml:15(year)
+msgid "2004-2005"
+msgstr "2004-2005"
+
+#: C/optimization-guide.xml:12(holder)
+msgid "Callum McKenzie"
+msgstr "Callum McKenzie"
+
+#: C/optimization-guide.xml:16(holder)
+msgid "Robert Love"
+msgstr "Robert Love"
+
+#: C/optimization-guide.xml:20(firstname)
+msgid "Callum"
+msgstr "Callum"
+
+#: C/optimization-guide.xml:21(surname)
+msgid "McKenzie"
+msgstr "McKenzie"
+
+#: C/optimization-guide.xml:24(firstname)
+msgid "Robert"
+msgstr "Robert"
+
+#: C/optimization-guide.xml:25(surname)
+msgid "Love"
+msgstr "Love"
+
+#: C/optimization-guide.xml:29(para)
+msgid ""
+"Permission is granted to copy, distribute and/or modify this document under "
+"the terms of the <citetitle>GNU Free Documentation License</citetitle>, "
+"Version 1.1 or any later version published by the Free Software Foundation "
+"with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. "
+"You may obtain a copy of the <citetitle>GNU Free Documentation License</"
+"citetitle> from the Free Software Foundation by visiting <ulink type=\"http"
+"\" url=\"http://www.fsf.org\";>their Web site</ulink> or by writing to: Free "
+"Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA "
+"02111-1307, USA."
+msgstr ""
+
+#: C/optimization-guide.xml:41(para)
+msgid ""
+"Many of the names used by companies to distinguish their products and "
+"services are claimed as trademarks. Where those names appear in any GNOME "
+"documentation, and those trademarks are made aware to the members of the "
+"GNOME Documentation Project, the names have been printed in caps or initial "
+"caps."
+msgstr ""
+
+#: C/optimization-guide.xml:52(revnumber)
+msgid "0.1"
+msgstr "0.1"
+
+#: C/optimization-guide.xml:53(date)
+msgid "November 2007"
+msgstr "Novembro de 2007"
+
+#: C/optimization-guide.xml:55(para)
+msgid "William Johnston"
+msgstr "William Johnston"
+
+#: C/optimization-guide.xml:57(para)
+msgid "Intial conversion to docbook format."
+msgstr "ConversiÃn inicial ao formato docbook."
+
+#: C/optimization-guide.xml:63(para)
+msgid ""
+"Software can be optimized in many ways: for speed, program size, or memory "
+"use. This section contains guides and tutorials for optimizing your software."
+msgstr ""
+"O software pode optimizarse de moitas formas: para maior velocidade, tamaÃo "
+"do programa ou uso de memoria. Esta secciÃn contÃn guÃas e titoriais para "
+"optimizar o seu software."
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
+#: C/optimization-guide.xml:0(None)
+msgid "translator-credits"
+msgstr "Fran Dieguez <frandieguez gnome org>, 2011."
diff --git a/platform-demos/gl/gl.po b/platform-demos/gl/gl.po
index 444ec52..b0bc799 100644
--- a/platform-demos/gl/gl.po
+++ b/platform-demos/gl/gl.po
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs master\n"
-"POT-Creation-Date: 2011-05-15 07:54+0000\n"
-"PO-Revision-Date: 2011-06-21 15:25+0200\n"
+"POT-Creation-Date: 2011-08-10 20:48+0000\n"
+"PO-Revision-Date: 2011-08-22 10:10+0200\n"
 "Last-Translator: Fran DiÃguez <frandieguez gnome org>\n"
 "Language-Team: Galician <gnome-l10n-gl gnome org>\n"
 "MIME-Version: 1.0\n"
@@ -18,7 +18,7 @@ msgstr ""
 
 #: C/index.page:7(name)
 msgid "GNOME Documentation Team"
-msgstr "Equipo de documentaciÃn de GNO"
+msgstr "Equipo de documentaciÃn de GNOME"
 
 #: C/index.page:8(email) C/record-collection.js.page:13(email)
 #: C/image-viewer.cpp.page:13(email) C/image-viewer.c.page:13(email)
@@ -896,18 +896,26 @@ msgid ""
 "defines from the previous section and the address of the <code>ClutterColor</"
 "code> we just defined."
 msgstr ""
+"LiÃas 9-11: aquà à onde se obtÃn o <code>ClutterStage</code> predeterminado "
+"que forneceu <code>clutter_init</code>. EntÃn estabelÃcese o tamaÃo usando o "
+"definido na secciÃn anterior e os enderezos do <code>ClutterColor</code> que "
+"xa estÃn definidas."
 
 #: C/photo-wall.c.page:166(p)
 msgid ""
 "A <code>ClutterStage</code> is the top-level <code>ClutterActor</code> onto "
 "which other <code>ClutterActor</code>s are placed."
 msgstr ""
+"Un <code>CluterStage</code> Ã o nivel superior dun <code>ClutterActor</code> "
+"no que se localizan outros <code>ClutterActor</code>."
 
 #: C/photo-wall.c.page:168(p)
 msgid ""
 "Line 12: Here we call our function for getting the image file paths. We'll "
 "look at this in a bit."
 msgstr ""
+"LiÃa 12: aquà chÃmase à funciÃn para obter as rutas das imaxes. Isto verase "
+"en breve."
 
 #: C/photo-wall.c.page:169(p)
 msgid ""
@@ -915,11 +923,16 @@ msgid ""
 "the images and place them into their spot in the image wall. We will look at "
 "this in detail in the next section."
 msgstr ""
+"LiÃa 14-26: aquà à onde se configuran os <code>ClutterActor</code>, cÃrganse "
+"as imaxes e colÃcanse no seu sitio no mural de imaxes. Isto verase con mÃis "
+"detalle na seguinte secciÃn."
 
 #: C/photo-wall.c.page:170(p)
 msgid ""
 "Line 29: Show the stage and <em>all its children</em>, meaning our images."
 msgstr ""
+"LiÃa 29: mostra o escenario e <em>todos os seus fillos</em>, Ã dicir, as "
+"imaxes."
 
 #: C/photo-wall.c.page:171(p)
 msgid "Line 32: Start the Clutter main loop."
@@ -962,10 +975,14 @@ msgid ""
 "access through our <code>GSList</code> node. The second argument is for "
 "error reporting but we are ignoring that to keep things short."
 msgstr ""
+"LiÃa 6: aquà à onde actualmente se crea o <code>ClutterActor</code> e "
+"localÃzase a imaxe no actor. O primeiro argumento à a ruta coa que se "
+"acceder ao nodo da <code>GSList</code>. O seguindo argumento à para informar "
+"dun error, pero ignÃrase para simplificar."
 
 #: C/photo-wall.c.page:200(p)
 msgid "Line 7: We'll look at this function in a later section."
-msgstr ""
+msgstr "LiÃa 7: esta funciÃn verase nunha secciÃn posterior."
 
 #: C/photo-wall.c.page:202(p)
 msgid ""
@@ -982,6 +999,8 @@ msgid ""
 "Line 9: This adds our <code>ClutterActor</code> to a <code>GSList</code> so "
 "that we can later iterate over the <code>ClutterActor</code>s."
 msgstr ""
+"LiÃa 9: isto engade o <code>ClutterActor</code> a unha <code>GSList</code> "
+"que logo se poderà iterar sobre os <code>ClutterActor</code>."
 
 #: C/photo-wall.c.page:205(p)
 msgid ""
@@ -991,6 +1010,10 @@ msgid ""
 "<code>g_slist_reverse</code> because it faster than inserting many objects "
 "at the end of the list."
 msgstr ""
+"Ã interesante ter en conta que prefÃrese antepoÃer os <code>ClutterActor</"
+"code> no lugar de anexalos, o que evita atravesar a lista en cada inserciÃn. "
+"A miÃdo verà <code>g_slist_prepend</code> seguido de <code>g_slist_reverse</"
+"code>, xa que à mÃis rÃpido que inserir varios obxectos ao final da lista."
 
 #: C/photo-wall.c.page:211(title)
 msgid "Loading the images"
@@ -1031,6 +1054,9 @@ msgid ""
 "We now take a look at the sizing and positioning of <code>ClutterActor</"
 "code>s and also readying the <code>ClutterActor</code> for user interaction."
 msgstr ""
+"Vote unha ollada ao tamaÃo e ao posicionamento dos <code>ClutterActor</code> "
+"e a como se deixa listo o <code>ClutterActor</code> para a interacciÃn do "
+"usuario."
 
 #: C/photo-wall.c.page:265(p)
 msgid ""
@@ -1038,12 +1064,18 @@ msgid ""
 "<code>button-press-event</code> in our case. For Photo Wall, all "
 "<code>ClutterActor</code>s in the wall should initially be reactive."
 msgstr ""
+"LiÃa 7: configurar un actor como Âreactivo significa que reacciona aos "
+"eventos tales como <code>button-press-event</code> no noso caso. Para o "
+"mural de fotos, todos os <code>ClutterActor</code> do mural deben ser "
+"inicialmente reactivos."
 
 #: C/photo-wall.c.page:268(p)
 msgid ""
 "Line 9â12: Now we connect the <code>button-press-event</code> to the "
 "<code>actor_clicked_cb</code> callback which we will look at next."
 msgstr ""
+"LiÃas 9-12: agora conÃctase o evento <code>button-press-evento</code> Ã "
+"chamada <code>actor_clicked_cb</code> que veremos mÃis adiante."
 
 #: C/photo-wall.c.page:271(p)
 msgid "At this point we've got a wall of images that are ready to be viewed."
@@ -1922,12 +1954,17 @@ msgid ""
 "The GStreamer multimedia framework is able to handle video from webcams. "
 "Let's add GStreamer to our application and so we can access the video stream."
 msgstr ""
+"O contorno multimedia de traballo de GStreamer à capaz de manexar vÃdeo "
+"desde cÃmara web. Engada GStreamer ao seu aplicativo e poderà acceder ao "
+"fluxo de vÃdeo."
 
 #: C/magic-mirror.vala.page:118(p)
 msgid ""
 "First we remove the window we created before because GStreamer will take "
 "care of showing the picture on screen."
 msgstr ""
+"Primeiro quÃtase a xanela creada anteriormente, xa que GStreamer encargarase "
+"de mostrar a imaxe na pantalla."
 
 #: C/magic-mirror.vala.page:122(p)
 msgid ""
@@ -1938,6 +1975,12 @@ msgid ""
 "code> we tell the GStreamer pipeline we just created to start playing. Easy, "
 "no?"
 msgstr ""
+"Agora vaise crear un elemento de GStreamer que accede à cÃmara web. Vaise a "
+"usar o elemento ÂCamerabinÂ, que à un elemento de cÃmara todo en un capaz de "
+"facer fotos, vÃdeos, aplicar efectos e moito mÃis. Perfecto para o noso caso "
+"de uso. Con <code>this.camerabin.set_state (Gst.State.PLAYING)</code> "
+"indÃcase à tÃberÃa de GStreamer que se acaba de crear que empece a "
+"reproducir. Sinxelo, non?"
 
 #: C/magic-mirror.vala.page:129(p)
 msgid ""
@@ -1961,6 +2004,11 @@ msgid ""
 "Window which involves some advanced techniques, and adds buttons to start/"
 "stop the picture."
 msgstr ""
+"Se ten problemas con este titorial, compare o seu cÃdigo con este <link href="
+"\"magic-mirror/magic-mirror.vala\">cÃdigo de referencia</link>. TamÃn hai "
+"unha <link href=\"magic-mirror/magic-mirror-advanced.vala\">implementaciÃn "
+"mÃis ampla</link> que incrusta a xanela nunha xanela GTK regular que implica "
+"algunhas tÃcnicas avanzadas, e engade botÃns para iniciar/deter a imaxe."
 
 #: C/magic-mirror.vala.page:149(title) C/guitar-tuner.vala.page:248(title)
 msgid "Further reading"
@@ -3823,6 +3871,8 @@ msgid ""
 "This code is ready to be used, so you can run it by clicking "
 "<guiseq><gui>Run</gui><gui>Execute</gui></guiseq>."
 msgstr ""
+"Este cÃdigo està listo para o seu uso, polo que pode executalo premendo "
+"<guiseq><gui>Executar</gui><gui>Executar</gui></guiseq>."
 
 #: C/guitar-tuner.py.page:102(p) C/guitar-tuner.c.page:106(p)
 msgid ""
@@ -3910,6 +3960,8 @@ msgid ""
 "Next <code>pipeline.set_state</code> is used to start playback, by setting "
 "the state of the pipeline to playing (<code>Gst.State.PLAYING</code>)."
 msgstr ""
+"A seguinte <code>pipeline.set_state</code> Ãsase para iniciar a reproduciÃn, "
+"estabelecendo o estado da tuberÃa a reproduciÃn (<code>Gst.State.PLAYING)."
 
 #: C/guitar-tuner.py.page:177(title) C/guitar-tuner.c.page:193(title)
 msgid "Stopping playback"
@@ -3931,6 +3983,9 @@ msgid ""
 "<code>GObject.timeout_add</code>. Insert the following code <em>above</em> "
 "the <code>play_sound</code> function:"
 msgstr ""
+"Agora, escriÌbese o coÌdigo da funcioÌn <code>pipeline_stop</code>, chamada por "
+"<code>GObject.timeout_add</code>. Inserte o coÌdigo seguinte <em>enriba</em> "
+"da funcioÌn <code>play_sound</code>:"
 
 #: C/guitar-tuner.py.page:185(p)
 msgid ""
@@ -3985,6 +4040,8 @@ msgid ""
 "All of the code should now be ready to go. Click <guiseq><gui>Run</"
 "gui><gui>Execute</gui></guiseq> to start the application. Enjoy!"
 msgstr ""
+"Todo o cÃdigo deberÃa estar listo. Prema <guiseq><gui>Executar</"
+"gui><gui>Executar</gui></guiseq> para iniciar o aplicativo. GÃceo!"
 
 #: C/guitar-tuner.py.page:227(p)
 msgid ""
@@ -4078,6 +4135,9 @@ msgid ""
 "the labels <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em> "
 "and the names <em>button_A</em>, etc."
 msgstr ""
+"Repita os pasos anteriores para o resto de botÃns, engadindo as 5 cordas "
+"restantes coas etiquetas <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em> e "
+"<em>e</em> e os nomes <em>botÃn_A</em>, etc."
 
 #: C/guitar-tuner.cpp.page:106(p)
 msgid ""
@@ -4103,6 +4163,9 @@ msgid ""
 "following line of code next to the <code>Gtk::Main kit(argc, argv);</code> "
 "line in <file>main.cc</file>:"
 msgstr ""
+"Para usar GStreamermm, dÃbese inicializar. Isto faise engadindo a seguinte "
+"liÃa de cÃdigo xunto à liÃa <code>Gtk::Main kit(argc, argv);</code> en "
+"<file>main.cc</file>:"
 
 #: C/guitar-tuner.cpp.page:126(code)
 #, no-wrap
@@ -4121,6 +4184,10 @@ msgid ""
 "<code>Sound</code>. We do that in <file>main.cc</file> in order to keep this "
 "example simple, whereas you might usually want to use a separate file:"
 msgstr ""
+"Para simplificar a xestiÃn da tuberÃa definiremos unha clase axudante "
+"<code>Sound</code>. FarÃmolo no ficheiro <file>main.cc</file> para manter "
+"este exemplo o mÃis simple posÃbel, aÃnda que normalmente deberÃa facerse "
+"nun ficheiro separado:"
 
 #: C/guitar-tuner.cpp.page:178(p)
 msgid "The code has the following purpose:"
@@ -4145,6 +4212,11 @@ msgid ""
 "As we don't want to have the annoying sound for ages, a timeout is set up to "
 "stop the pipeline after 200 ms by calling <code>stop_playing</code>."
 msgstr ""
+"<code>start_playing</code> estabelece o elemento orixe para reproducir unha "
+"frecuencia particular e logo iniciar unha tuberÃa ao son que comece a "
+"reproducirse. Xa que non queremos un son estridente por anos estabeleceremos "
+"un temporizador de 200 ms para deter a reproduciÃn chamando a "
+"<code>stop_playing</code>."
 
 #: C/guitar-tuner.cpp.page:189(p)
 msgid ""
@@ -4167,6 +4239,11 @@ msgid ""
 "tone to play. GTKmm makes that quite easy as we can easily bind information "
 "with the <em>sigc</em> library."
 msgstr ""
+"Queremos reproducir o son correcto cando o usuario prema un botÃn. Isto "
+"significa que temos que conectar o sinal que se dispara cando o usuario "
+"preme o botÃn. TamÃn queremos fornecer informaciÃn da funciÃn que se chamou "
+"a reproduciÃn do tono. GTKmm fai isto moi doado a que podemos ligar de forma "
+"sinxela a informaciÃn coa biblioteca <em>sigc</em>."
 
 #: C/guitar-tuner.cpp.page:203(p)
 msgid ""
@@ -4337,6 +4414,10 @@ msgid ""
 "to the <code>play_sound</code> function. This is just the frequency of the "
 "note in Hertz; some useful frequencies will be defined later on."
 msgstr ""
+"A chamada a <code>g_object_set</code> estabelecer a propiedade <code>freq</"
+"code> do elemento orixe a <code>frequency</code>, a cal se pasa como un "
+"argumento à funciÃn <code>play_sound</code>. Isto sà à a frecuencia da nota "
+"en Hertz, algunhas das frecuencias mÃis Ãtiles definiranse mÃis tarde."
 
 #: C/guitar-tuner.c.page:183(p)
 msgid ""
@@ -4393,6 +4474,10 @@ msgid ""
 "all, we need to know the frequencies for the six guitar strings, which are "
 "defined (at the top of <file>main.c</file>) as follows:"
 msgstr ""
+"QuÃrese reproducir o son correcto cando un usuario preme un botÃn. En "
+"primeiro lugar, precÃsase coÃecer as frecuencias das seis cordas da "
+"guitarra, que estÃn definidas (ao principio de <file>main.c</file>) da "
+"seguinte maneira:"
 
 #: C/guitar-tuner.c.page:244(p)
 msgid ""



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]