From 3b99a62185c4aba3c6c7507dfbbbcf5bcbce3ba2 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 26 Nov 2016 12:54:25 +0100 Subject: [PATCH 01/11] Jenkinsfile: Automatically discard old artifacts --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 78efe9f8..31563d13 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,3 +1,5 @@ +properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '30', artifactNumToKeepStr: '10']]]) + node('master') { stage 'Pull changes' checkout scm From 0a5502096365ce667fb4b7c2a8cba8ad6b259eec Mon Sep 17 00:00:00 2001 From: MrSimbax Date: Sun, 12 Feb 2017 12:23:44 +0100 Subject: [PATCH 02/11] [SatCom] Default function parameters (close issue #899) --- help/cbot/E/function.txt | 40 ++++++++++++++++- help/cbot/po/cbot.pot | 95 ++++++++++++++++++++++++++++++++++------ help/cbot/po/de.po | 95 ++++++++++++++++++++++++++++++++++------ help/cbot/po/fr.po | 95 ++++++++++++++++++++++++++++++++++------ help/cbot/po/pl.po | 95 ++++++++++++++++++++++++++++++++++------ help/cbot/po/ru.po | 95 ++++++++++++++++++++++++++++++++++------ 6 files changed, 443 insertions(+), 72 deletions(-) diff --git a/help/cbot/E/function.txt b/help/cbot/E/function.txt index 7fd6de7d..d4f2e0d0 100644 --- a/help/cbot/E/function.txt +++ b/help/cbot/E/function.txt @@ -11,7 +11,7 @@ You probably already know how to create a function. Every program in CBOT must h \s; \s;} \n; -Nothing but a name can be changed in the main function. The keyword \c;\l;extern\u cbot\extern;\n; distinguish the main function from others. +Nothing but a name can be changed in the main function. The keyword \c;\l;extern\u cbot\extern;\n; distinguishes the main function from others. \b;Basic use With functions you can divide your program into several parts. Each of them will execute a specific task. For example, see the following program: @@ -114,7 +114,7 @@ You can declare several functions with the same name but different parameters: \n; CBOT will call either the one or the other function depending on the parameters passed. They must be distinguishable, i.e. you can't declare two functions with the same name and parameter types in the exact same order, e.g. declaring \c;int Pythagoras(float b, float a)\n; will result in error. Note that result type does not matter. -\b;Public functions +\b;Public Functions You can also declare a function \l;public\u cbot\public; so it can be used by other bots. \b;object:: @@ -126,5 +126,41 @@ Declaring a function as a part of the \l;object\u cbot\object; namespace gives i \s;} \n; +\b;Default Parameters +Last function parameters can have default values that can be omitted when calling. +\c; +\s;float Add(float a = 0.0, float b = 0.0) +\s;{ +\s; return a + b; +\s;} +\s; +\s;// Somewhere in the main program... +\s;Add(); // Will return 0.0 +\s;Add(2.0); // Will return 2.0 +\s;Add(2.0, 3.0); // Will return 5.0 +\s;// ... +\n; + +\t;Default Parameters and Overloading +Functions with default parameters still can be overloaded, one must only ensure that function calls are not ambiguous. For example, consider the following code: +\c; +\s;float Add(float a = 0.0, float b = 0.0) +\s;{ +\s; return a + b; +\s;} +\s; +\s;string Add(string a = "", string b = "") +\s;{ +\s; return a + b; +\s;} +\s; +\s;// Somewhere in the main program... +\s;Add(); // Compilation error: ambiguous call +\s;Add(""); // Ok +\s;Add(0.0); // Ok +\s;// ... +\n; +Note that in the above example overloading causes the first default parameter to be useless as caller needs to pass it anyway in order to distinguish the two functions. + \t;See also \l;Programming\u cbot;, \l;types\u cbot\type; and \l;categories\u cbot\category;. diff --git a/help/cbot/po/cbot.pot b/help/cbot/po/cbot.pot index c43a6067..34e5d41f 100644 --- a/help/cbot/po/cbot.pot +++ b/help/cbot/po/cbot.pot @@ -53,13 +53,13 @@ msgid "Time in seconds." msgstr "" #. type: \t; header -#: ../E/abstime.txt:10 ../E/acos.txt:11 ../E/aim.txt:23 ../E/array.txt:41 ../E/asin.txt:11 ../E/atan.txt:11 ../E/atan2.txt:16 ../E/bloc.txt:48 ../E/bool.txt:4 ../E/break.txt:24 ../E/build.txt:27 ../E/buildingenabled.txt:22 ../E/busy.txt:14 ../E/canbuild.txt:22 ../E/canresearch.txt:14 ../E/category.txt:109 ../E/ceil.txt:12 ../E/class.txt:120 ../E/close.txt:6 ../E/cond.txt:4 ../E/continue.txt:24 ../E/cos.txt:11 ../E/deletef.txt:9 ../E/delinfo.txt:13 ../E/destroy.txt:15 ../E/detect.txt:27 ../E/direct.txt:13 ../E/dist.txt:29 ../E/dist2d.txt:13 ../E/do.txt:27 ../E/drop.txt:28 ../E/eof.txt:13 ../E/errmode.txt:32 ../E/expr.txt:197 ../E/extends.txt:105 ../E/extern.txt:29 ../E/factory.txt:21 ../E/false.txt:4 ../E/file.txt:16 ../E/fire.txt:30 ../E/flatgrnd.txt:16 ../E/flatspace.txt:25 ../E/float.txt:24 ../E/floor.txt:12 ../E/for.txt:51 ../E/function.txt:129 ../E/goto.txt:34 ../E/grab.txt:28 ../E/if.txt:39 ../E/int.txt:18 ../E/jet.txt:14 ../E/message.txt:24 ../E/motor.txt:38 ../E/move.txt:21 ../E/nan.txt:14 ../E/new.txt:20 ../E/null.txt:4 ../E/object.txt:79 ../E/open.txt:19 ../E/openfile.txt:11 ../E/pencolor.txt:14 ../E/pendown.txt:17 ../E/penup.txt:11 ../E/penwidth.txt:14 ../E/point.txt:35 ../E/pointer.txt:51 ../E/pow.txt:14 ../E/private.txt:19 ../E/produce.txt:30 ../E/protected.txt:26 ../E/public.txt:49 ../E/radar.txt:80 ../E/radarall.txt:19 ../E/rand.txt:8 ../E/readln.txt:18 ../E/receive.txt:16 ../E/recycle.txt:12 ../E/research.txt:18 ../E/researched.txt:14 ../E/researches.txt:27 ../E/retobj.txt:13 ../E/return.txt:29 ../E/round.txt:12 ../E/search.txt:25 ../E/send.txt:17 ../E/shield.txt:18 ../E/sin.txt:11 ../E/sizeof.txt:21 ../E/sniff.txt:16 ../E/space.txt:22 ../E/sqrt.txt:11 ../E/static.txt:20 ../E/strfind.txt:18 ../E/string.txt:32 ../E/strleft.txt:14 ../E/strlen.txt:12 ../E/strlower.txt:10 ../E/strmid.txt:18 ../E/strright.txt:14 ../E/strupper.txt:10 ../E/strval.txt:17 ../E/super.txt:45 ../E/switch.txt:70 ../E/synchro.txt:23 ../E/takeoff.txt:15 ../E/tan.txt:11 ../E/term.txt:30 ../E/testinfo.txt:16 ../E/this.txt:52 ../E/thump.txt:12 ../E/topo.txt:13 ../E/true.txt:4 ../E/trunc.txt:12 ../E/turn.txt:32 ../E/type.txt:32 ../E/var.txt:66 ../E/void.txt:10 ../E/wait.txt:21 ../E/while.txt:46 ../E/writeln.txt:19 +#: ../E/abstime.txt:10 ../E/acos.txt:11 ../E/aim.txt:23 ../E/array.txt:41 ../E/asin.txt:11 ../E/atan.txt:11 ../E/atan2.txt:16 ../E/bloc.txt:48 ../E/bool.txt:4 ../E/break.txt:24 ../E/build.txt:27 ../E/buildingenabled.txt:22 ../E/busy.txt:14 ../E/canbuild.txt:22 ../E/canresearch.txt:14 ../E/category.txt:109 ../E/ceil.txt:12 ../E/class.txt:120 ../E/close.txt:6 ../E/cond.txt:4 ../E/continue.txt:24 ../E/cos.txt:11 ../E/deletef.txt:9 ../E/delinfo.txt:13 ../E/destroy.txt:15 ../E/detect.txt:27 ../E/direct.txt:13 ../E/dist.txt:29 ../E/dist2d.txt:13 ../E/do.txt:27 ../E/drop.txt:28 ../E/eof.txt:13 ../E/errmode.txt:32 ../E/expr.txt:197 ../E/extends.txt:105 ../E/extern.txt:29 ../E/factory.txt:21 ../E/false.txt:4 ../E/file.txt:16 ../E/fire.txt:30 ../E/flatgrnd.txt:16 ../E/flatspace.txt:25 ../E/float.txt:24 ../E/floor.txt:12 ../E/for.txt:51 ../E/function.txt:165 ../E/goto.txt:34 ../E/grab.txt:28 ../E/if.txt:39 ../E/int.txt:18 ../E/jet.txt:14 ../E/message.txt:24 ../E/motor.txt:38 ../E/move.txt:21 ../E/nan.txt:14 ../E/new.txt:20 ../E/null.txt:4 ../E/object.txt:79 ../E/open.txt:19 ../E/openfile.txt:11 ../E/pencolor.txt:14 ../E/pendown.txt:17 ../E/penup.txt:11 ../E/penwidth.txt:14 ../E/point.txt:35 ../E/pointer.txt:51 ../E/pow.txt:14 ../E/private.txt:19 ../E/produce.txt:30 ../E/protected.txt:26 ../E/public.txt:49 ../E/radar.txt:80 ../E/radarall.txt:19 ../E/rand.txt:8 ../E/readln.txt:18 ../E/receive.txt:16 ../E/recycle.txt:12 ../E/research.txt:18 ../E/researched.txt:14 ../E/researches.txt:27 ../E/retobj.txt:13 ../E/return.txt:29 ../E/round.txt:12 ../E/search.txt:25 ../E/send.txt:17 ../E/shield.txt:18 ../E/sin.txt:11 ../E/sizeof.txt:21 ../E/sniff.txt:16 ../E/space.txt:22 ../E/sqrt.txt:11 ../E/static.txt:20 ../E/strfind.txt:18 ../E/string.txt:32 ../E/strleft.txt:14 ../E/strlen.txt:12 ../E/strlower.txt:10 ../E/strmid.txt:18 ../E/strright.txt:14 ../E/strupper.txt:10 ../E/strval.txt:17 ../E/super.txt:45 ../E/switch.txt:70 ../E/synchro.txt:23 ../E/takeoff.txt:15 ../E/tan.txt:11 ../E/term.txt:30 ../E/testinfo.txt:16 ../E/this.txt:52 ../E/thump.txt:12 ../E/topo.txt:13 ../E/true.txt:4 ../E/trunc.txt:12 ../E/turn.txt:32 ../E/type.txt:32 ../E/var.txt:66 ../E/void.txt:10 ../E/wait.txt:21 ../E/while.txt:46 ../E/writeln.txt:19 #, no-wrap msgid "See also" msgstr "" #. type: Plain text -#: ../E/abstime.txt:11 ../E/aim.txt:24 ../E/array.txt:42 ../E/bool.txt:5 ../E/break.txt:25 ../E/busy.txt:15 ../E/cond.txt:5 ../E/continue.txt:25 ../E/deletef.txt:10 ../E/destroy.txt:16 ../E/detect.txt:28 ../E/direct.txt:14 ../E/dist.txt:30 ../E/dist2d.txt:14 ../E/drop.txt:29 ../E/errmode.txt:33 ../E/expr.txt:198 ../E/extern.txt:30 ../E/false.txt:5 ../E/fire.txt:31 ../E/flatgrnd.txt:17 ../E/flatspace.txt:26 ../E/float.txt:25 ../E/for.txt:52 ../E/function.txt:130 ../E/goto.txt:35 ../E/grab.txt:29 ../E/if.txt:40 ../E/int.txt:19 ../E/jet.txt:15 ../E/message.txt:25 ../E/move.txt:22 ../E/nan.txt:15 ../E/object.txt:80 ../E/openfile.txt:12 ../E/pencolor.txt:15 ../E/pendown.txt:18 ../E/penup.txt:12 ../E/penwidth.txt:15 ../E/point.txt:36 ../E/produce.txt:31 ../E/recycle.txt:13 ../E/retobj.txt:14 ../E/return.txt:30 ../E/search.txt:26 ../E/shield.txt:19 ../E/sizeof.txt:22 ../E/sniff.txt:17 ../E/space.txt:23 ../E/string.txt:33 ../E/switch.txt:71 ../E/takeoff.txt:16 ../E/term.txt:31 ../E/thump.txt:13 ../E/topo.txt:14 ../E/true.txt:5 ../E/turn.txt:33 ../E/type.txt:33 ../E/var.txt:67 ../E/void.txt:11 ../E/wait.txt:22 +#: ../E/abstime.txt:11 ../E/aim.txt:24 ../E/array.txt:42 ../E/bool.txt:5 ../E/break.txt:25 ../E/busy.txt:15 ../E/cond.txt:5 ../E/continue.txt:25 ../E/deletef.txt:10 ../E/destroy.txt:16 ../E/detect.txt:28 ../E/direct.txt:14 ../E/dist.txt:30 ../E/dist2d.txt:14 ../E/drop.txt:29 ../E/errmode.txt:33 ../E/expr.txt:198 ../E/extern.txt:30 ../E/false.txt:5 ../E/fire.txt:31 ../E/flatgrnd.txt:17 ../E/flatspace.txt:26 ../E/float.txt:25 ../E/for.txt:52 ../E/function.txt:166 ../E/goto.txt:35 ../E/grab.txt:29 ../E/if.txt:40 ../E/int.txt:19 ../E/jet.txt:15 ../E/message.txt:25 ../E/move.txt:22 ../E/nan.txt:15 ../E/object.txt:80 ../E/openfile.txt:12 ../E/pencolor.txt:15 ../E/pendown.txt:18 ../E/penup.txt:12 ../E/penwidth.txt:15 ../E/point.txt:36 ../E/produce.txt:31 ../E/recycle.txt:13 ../E/retobj.txt:14 ../E/return.txt:30 ../E/search.txt:26 ../E/shield.txt:19 ../E/sizeof.txt:22 ../E/sniff.txt:17 ../E/space.txt:23 ../E/string.txt:33 ../E/switch.txt:71 ../E/takeoff.txt:16 ../E/term.txt:31 ../E/thump.txt:13 ../E/topo.txt:14 ../E/true.txt:5 ../E/turn.txt:33 ../E/type.txt:33 ../E/var.txt:67 ../E/void.txt:11 ../E/wait.txt:22 #, no-wrap msgid "Programming, types and categories." msgstr "" @@ -5580,12 +5580,6 @@ msgid "" "}" msgstr "" -#. type: Plain text -#: ../E/function.txt:14 -#, no-wrap -msgid "Nothing but a name can be changed in the main function. The keyword extern distinguish the main function from others." -msgstr "" - #. type: Plain text #: ../E/function.txt:17 #, no-wrap @@ -5783,12 +5777,6 @@ msgstr "" msgid "CBOT will call either the one or the other function depending on the parameters passed. They must be distinguishable, i.e. you can't declare two functions with the same name and parameter types in the exact same order, e.g. declaring int Pythagoras(float b, float a) will result in error. Note that result type does not matter." msgstr "" -#. type: \b; header -#: ../E/function.txt:117 -#, no-wrap -msgid "Public functions" -msgstr "" - #. type: \b; header #: ../E/function.txt:120 #, no-wrap @@ -7980,3 +7968,82 @@ msgid "" "\"w\" mode: open for writing.\n" "\"w\" mode: open for appending." msgstr "" + +#. type: Plain text +#: ../E/function.txt:14 +#, no-wrap +msgid "Nothing but a name can be changed in the main function. The keyword extern distinguishes the main function from others." +msgstr "" + +#. type: \b; header +#: ../E/function.txt:117 +#, no-wrap +msgid "Public Functions" +msgstr "" + +#. type: \b; header +#: ../E/function.txt:129 +#, no-wrap +msgid "Default Parameters" +msgstr "" + +#. type: Plain text +#: ../E/function.txt:130 +#, no-wrap +msgid "Last function parameters can have default values that can be omitted when calling." +msgstr "" + +#. type: Source code +#: ../E/function.txt:132 +#, no-wrap +msgid "" +"float Add(float a = 0.0, float b = 0.0)\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"// Somewhere in the main program...\n" +"Add(); // Will return 0.0\n" +"Add(2.0); // Will return 2.0\n" +"Add(2.0, 3.0); // Will return 5.0\n" +"// ..." +msgstr "" + +#. type: \t; header +#: ../E/function.txt:144 +#, no-wrap +msgid "Default Parameters and Overloading" +msgstr "" + +#. type: Plain text +#: ../E/function.txt:145 +#, no-wrap +msgid "Functions with default parameters still can be overloaded, one must only ensure that function calls are not ambiguous. For example, consider the following code:" +msgstr "" + +#. type: Source code +#: ../E/function.txt:147 +#, no-wrap +msgid "" +"float Add(float a = 0.0, float b = 0.0)\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"string Add(string a = \"\", string b = \"\")\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"// Somewhere in the main program...\n" +"Add(); // Compilation error: ambiguous call\n" +"Add(\"\"); // Ok\n" +"Add(0.0); // Ok\n" +"// ..." +msgstr "" + +#. type: Plain text +#: ../E/function.txt:163 +#, no-wrap +msgid "Note that in the above example overloading causes the first default parameter to be useless as caller needs to pass it anyway in order to distinguish the two functions." +msgstr "" diff --git a/help/cbot/po/de.po b/help/cbot/po/de.po index ce543adb..e3e64161 100644 --- a/help/cbot/po/de.po +++ b/help/cbot/po/de.po @@ -53,13 +53,13 @@ msgid "Time in seconds." msgstr "Zeit in Sekunden." #. type: \t; header -#: ../E/abstime.txt:10 ../E/acos.txt:11 ../E/aim.txt:23 ../E/array.txt:41 ../E/asin.txt:11 ../E/atan.txt:11 ../E/atan2.txt:16 ../E/bloc.txt:48 ../E/bool.txt:4 ../E/break.txt:24 ../E/build.txt:27 ../E/buildingenabled.txt:22 ../E/busy.txt:14 ../E/canbuild.txt:22 ../E/canresearch.txt:14 ../E/category.txt:109 ../E/ceil.txt:12 ../E/class.txt:120 ../E/close.txt:6 ../E/cond.txt:4 ../E/continue.txt:24 ../E/cos.txt:11 ../E/deletef.txt:9 ../E/delinfo.txt:13 ../E/destroy.txt:15 ../E/detect.txt:27 ../E/direct.txt:13 ../E/dist.txt:29 ../E/dist2d.txt:13 ../E/do.txt:27 ../E/drop.txt:28 ../E/eof.txt:13 ../E/errmode.txt:32 ../E/expr.txt:197 ../E/extends.txt:105 ../E/extern.txt:29 ../E/factory.txt:21 ../E/false.txt:4 ../E/file.txt:16 ../E/fire.txt:30 ../E/flatgrnd.txt:16 ../E/flatspace.txt:25 ../E/float.txt:24 ../E/floor.txt:12 ../E/for.txt:51 ../E/function.txt:129 ../E/goto.txt:34 ../E/grab.txt:28 ../E/if.txt:39 ../E/int.txt:18 ../E/jet.txt:14 ../E/message.txt:24 ../E/motor.txt:38 ../E/move.txt:21 ../E/nan.txt:14 ../E/new.txt:20 ../E/null.txt:4 ../E/object.txt:79 ../E/open.txt:19 ../E/openfile.txt:11 ../E/pencolor.txt:14 ../E/pendown.txt:17 ../E/penup.txt:11 ../E/penwidth.txt:14 ../E/point.txt:35 ../E/pointer.txt:51 ../E/pow.txt:14 ../E/private.txt:19 ../E/produce.txt:30 ../E/protected.txt:26 ../E/public.txt:49 ../E/radar.txt:80 ../E/radarall.txt:19 ../E/rand.txt:8 ../E/readln.txt:18 ../E/receive.txt:16 ../E/recycle.txt:12 ../E/research.txt:18 ../E/researched.txt:14 ../E/researches.txt:27 ../E/retobj.txt:13 ../E/return.txt:29 ../E/round.txt:12 ../E/search.txt:25 ../E/send.txt:17 ../E/shield.txt:18 ../E/sin.txt:11 ../E/sizeof.txt:21 ../E/sniff.txt:16 ../E/space.txt:22 ../E/sqrt.txt:11 ../E/static.txt:20 ../E/strfind.txt:18 ../E/string.txt:32 ../E/strleft.txt:14 ../E/strlen.txt:12 ../E/strlower.txt:10 ../E/strmid.txt:18 ../E/strright.txt:14 ../E/strupper.txt:10 ../E/strval.txt:17 ../E/super.txt:45 ../E/switch.txt:70 ../E/synchro.txt:23 ../E/takeoff.txt:15 ../E/tan.txt:11 ../E/term.txt:30 ../E/testinfo.txt:16 ../E/this.txt:52 ../E/thump.txt:12 ../E/topo.txt:13 ../E/true.txt:4 ../E/trunc.txt:12 ../E/turn.txt:32 ../E/type.txt:32 ../E/var.txt:66 ../E/void.txt:10 ../E/wait.txt:21 ../E/while.txt:46 ../E/writeln.txt:19 +#: ../E/abstime.txt:10 ../E/acos.txt:11 ../E/aim.txt:23 ../E/array.txt:41 ../E/asin.txt:11 ../E/atan.txt:11 ../E/atan2.txt:16 ../E/bloc.txt:48 ../E/bool.txt:4 ../E/break.txt:24 ../E/build.txt:27 ../E/buildingenabled.txt:22 ../E/busy.txt:14 ../E/canbuild.txt:22 ../E/canresearch.txt:14 ../E/category.txt:109 ../E/ceil.txt:12 ../E/class.txt:120 ../E/close.txt:6 ../E/cond.txt:4 ../E/continue.txt:24 ../E/cos.txt:11 ../E/deletef.txt:9 ../E/delinfo.txt:13 ../E/destroy.txt:15 ../E/detect.txt:27 ../E/direct.txt:13 ../E/dist.txt:29 ../E/dist2d.txt:13 ../E/do.txt:27 ../E/drop.txt:28 ../E/eof.txt:13 ../E/errmode.txt:32 ../E/expr.txt:197 ../E/extends.txt:105 ../E/extern.txt:29 ../E/factory.txt:21 ../E/false.txt:4 ../E/file.txt:16 ../E/fire.txt:30 ../E/flatgrnd.txt:16 ../E/flatspace.txt:25 ../E/float.txt:24 ../E/floor.txt:12 ../E/for.txt:51 ../E/function.txt:165 ../E/goto.txt:34 ../E/grab.txt:28 ../E/if.txt:39 ../E/int.txt:18 ../E/jet.txt:14 ../E/message.txt:24 ../E/motor.txt:38 ../E/move.txt:21 ../E/nan.txt:14 ../E/new.txt:20 ../E/null.txt:4 ../E/object.txt:79 ../E/open.txt:19 ../E/openfile.txt:11 ../E/pencolor.txt:14 ../E/pendown.txt:17 ../E/penup.txt:11 ../E/penwidth.txt:14 ../E/point.txt:35 ../E/pointer.txt:51 ../E/pow.txt:14 ../E/private.txt:19 ../E/produce.txt:30 ../E/protected.txt:26 ../E/public.txt:49 ../E/radar.txt:80 ../E/radarall.txt:19 ../E/rand.txt:8 ../E/readln.txt:18 ../E/receive.txt:16 ../E/recycle.txt:12 ../E/research.txt:18 ../E/researched.txt:14 ../E/researches.txt:27 ../E/retobj.txt:13 ../E/return.txt:29 ../E/round.txt:12 ../E/search.txt:25 ../E/send.txt:17 ../E/shield.txt:18 ../E/sin.txt:11 ../E/sizeof.txt:21 ../E/sniff.txt:16 ../E/space.txt:22 ../E/sqrt.txt:11 ../E/static.txt:20 ../E/strfind.txt:18 ../E/string.txt:32 ../E/strleft.txt:14 ../E/strlen.txt:12 ../E/strlower.txt:10 ../E/strmid.txt:18 ../E/strright.txt:14 ../E/strupper.txt:10 ../E/strval.txt:17 ../E/super.txt:45 ../E/switch.txt:70 ../E/synchro.txt:23 ../E/takeoff.txt:15 ../E/tan.txt:11 ../E/term.txt:30 ../E/testinfo.txt:16 ../E/this.txt:52 ../E/thump.txt:12 ../E/topo.txt:13 ../E/true.txt:4 ../E/trunc.txt:12 ../E/turn.txt:32 ../E/type.txt:32 ../E/var.txt:66 ../E/void.txt:10 ../E/wait.txt:21 ../E/while.txt:46 ../E/writeln.txt:19 #, no-wrap msgid "See also" msgstr "Siehe auch" #. type: Plain text -#: ../E/abstime.txt:11 ../E/aim.txt:24 ../E/array.txt:42 ../E/bool.txt:5 ../E/break.txt:25 ../E/busy.txt:15 ../E/cond.txt:5 ../E/continue.txt:25 ../E/deletef.txt:10 ../E/destroy.txt:16 ../E/detect.txt:28 ../E/direct.txt:14 ../E/dist.txt:30 ../E/dist2d.txt:14 ../E/drop.txt:29 ../E/errmode.txt:33 ../E/expr.txt:198 ../E/extern.txt:30 ../E/false.txt:5 ../E/fire.txt:31 ../E/flatgrnd.txt:17 ../E/flatspace.txt:26 ../E/float.txt:25 ../E/for.txt:52 ../E/function.txt:130 ../E/goto.txt:35 ../E/grab.txt:29 ../E/if.txt:40 ../E/int.txt:19 ../E/jet.txt:15 ../E/message.txt:25 ../E/move.txt:22 ../E/nan.txt:15 ../E/object.txt:80 ../E/openfile.txt:12 ../E/pencolor.txt:15 ../E/pendown.txt:18 ../E/penup.txt:12 ../E/penwidth.txt:15 ../E/point.txt:36 ../E/produce.txt:31 ../E/recycle.txt:13 ../E/retobj.txt:14 ../E/return.txt:30 ../E/search.txt:26 ../E/shield.txt:19 ../E/sizeof.txt:22 ../E/sniff.txt:17 ../E/space.txt:23 ../E/string.txt:33 ../E/switch.txt:71 ../E/takeoff.txt:16 ../E/term.txt:31 ../E/thump.txt:13 ../E/topo.txt:14 ../E/true.txt:5 ../E/turn.txt:33 ../E/type.txt:33 ../E/var.txt:67 ../E/void.txt:11 ../E/wait.txt:22 +#: ../E/abstime.txt:11 ../E/aim.txt:24 ../E/array.txt:42 ../E/bool.txt:5 ../E/break.txt:25 ../E/busy.txt:15 ../E/cond.txt:5 ../E/continue.txt:25 ../E/deletef.txt:10 ../E/destroy.txt:16 ../E/detect.txt:28 ../E/direct.txt:14 ../E/dist.txt:30 ../E/dist2d.txt:14 ../E/drop.txt:29 ../E/errmode.txt:33 ../E/expr.txt:198 ../E/extern.txt:30 ../E/false.txt:5 ../E/fire.txt:31 ../E/flatgrnd.txt:17 ../E/flatspace.txt:26 ../E/float.txt:25 ../E/for.txt:52 ../E/function.txt:166 ../E/goto.txt:35 ../E/grab.txt:29 ../E/if.txt:40 ../E/int.txt:19 ../E/jet.txt:15 ../E/message.txt:25 ../E/move.txt:22 ../E/nan.txt:15 ../E/object.txt:80 ../E/openfile.txt:12 ../E/pencolor.txt:15 ../E/pendown.txt:18 ../E/penup.txt:12 ../E/penwidth.txt:15 ../E/point.txt:36 ../E/produce.txt:31 ../E/recycle.txt:13 ../E/retobj.txt:14 ../E/return.txt:30 ../E/search.txt:26 ../E/shield.txt:19 ../E/sizeof.txt:22 ../E/sniff.txt:17 ../E/space.txt:23 ../E/string.txt:33 ../E/switch.txt:71 ../E/takeoff.txt:16 ../E/term.txt:31 ../E/thump.txt:13 ../E/topo.txt:14 ../E/true.txt:5 ../E/turn.txt:33 ../E/type.txt:33 ../E/var.txt:67 ../E/void.txt:11 ../E/wait.txt:22 #, no-wrap msgid "Programming, types and categories." msgstr "Die CBOT-Sprache, Variablentypen und Kategorien." @@ -6281,12 +6281,6 @@ msgid "" "}" msgstr "" -#. type: Plain text -#: ../E/function.txt:14 -#, no-wrap -msgid "Nothing but a name can be changed in the main function. The keyword extern distinguish the main function from others." -msgstr "" - #. type: Plain text #: ../E/function.txt:17 #, no-wrap @@ -6484,12 +6478,6 @@ msgstr "" msgid "CBOT will call either the one or the other function depending on the parameters passed. They must be distinguishable, i.e. you can't declare two functions with the same name and parameter types in the exact same order, e.g. declaring int Pythagoras(float b, float a) will result in error. Note that result type does not matter." msgstr "" -#. type: \b; header -#: ../E/function.txt:117 -#, no-wrap -msgid "Public functions" -msgstr "" - #. type: \b; header #: ../E/function.txt:120 #, no-wrap @@ -8681,3 +8669,82 @@ msgid "" "\"w\" mode: open for writing.\n" "\"w\" mode: open for appending." msgstr "" + +#. type: Plain text +#: ../E/function.txt:14 +#, no-wrap +msgid "Nothing but a name can be changed in the main function. The keyword extern distinguishes the main function from others." +msgstr "" + +#. type: \b; header +#: ../E/function.txt:117 +#, no-wrap +msgid "Public Functions" +msgstr "" + +#. type: \b; header +#: ../E/function.txt:129 +#, no-wrap +msgid "Default Parameters" +msgstr "" + +#. type: Plain text +#: ../E/function.txt:130 +#, no-wrap +msgid "Last function parameters can have default values that can be omitted when calling." +msgstr "" + +#. type: Source code +#: ../E/function.txt:132 +#, no-wrap +msgid "" +"float Add(float a = 0.0, float b = 0.0)\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"// Somewhere in the main program...\n" +"Add(); // Will return 0.0\n" +"Add(2.0); // Will return 2.0\n" +"Add(2.0, 3.0); // Will return 5.0\n" +"// ..." +msgstr "" + +#. type: \t; header +#: ../E/function.txt:144 +#, no-wrap +msgid "Default Parameters and Overloading" +msgstr "" + +#. type: Plain text +#: ../E/function.txt:145 +#, no-wrap +msgid "Functions with default parameters still can be overloaded, one must only ensure that function calls are not ambiguous. For example, consider the following code:" +msgstr "" + +#. type: Source code +#: ../E/function.txt:147 +#, no-wrap +msgid "" +"float Add(float a = 0.0, float b = 0.0)\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"string Add(string a = \"\", string b = \"\")\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"// Somewhere in the main program...\n" +"Add(); // Compilation error: ambiguous call\n" +"Add(\"\"); // Ok\n" +"Add(0.0); // Ok\n" +"// ..." +msgstr "" + +#. type: Plain text +#: ../E/function.txt:163 +#, no-wrap +msgid "Note that in the above example overloading causes the first default parameter to be useless as caller needs to pass it anyway in order to distinguish the two functions." +msgstr "" diff --git a/help/cbot/po/fr.po b/help/cbot/po/fr.po index 2e56f179..5ff8693d 100644 --- a/help/cbot/po/fr.po +++ b/help/cbot/po/fr.po @@ -52,13 +52,13 @@ msgid "Time in seconds." msgstr "Temps en secondes." #. type: \t; header -#: ../E/abstime.txt:10 ../E/acos.txt:11 ../E/aim.txt:23 ../E/array.txt:41 ../E/asin.txt:11 ../E/atan.txt:11 ../E/atan2.txt:16 ../E/bloc.txt:48 ../E/bool.txt:4 ../E/break.txt:24 ../E/build.txt:27 ../E/buildingenabled.txt:22 ../E/busy.txt:14 ../E/canbuild.txt:22 ../E/canresearch.txt:14 ../E/category.txt:109 ../E/ceil.txt:12 ../E/class.txt:120 ../E/close.txt:6 ../E/cond.txt:4 ../E/continue.txt:24 ../E/cos.txt:11 ../E/deletef.txt:9 ../E/delinfo.txt:13 ../E/destroy.txt:15 ../E/detect.txt:27 ../E/direct.txt:13 ../E/dist.txt:29 ../E/dist2d.txt:13 ../E/do.txt:27 ../E/drop.txt:28 ../E/eof.txt:13 ../E/errmode.txt:32 ../E/expr.txt:197 ../E/extends.txt:105 ../E/extern.txt:29 ../E/factory.txt:21 ../E/false.txt:4 ../E/file.txt:16 ../E/fire.txt:30 ../E/flatgrnd.txt:16 ../E/flatspace.txt:25 ../E/float.txt:24 ../E/floor.txt:12 ../E/for.txt:51 ../E/function.txt:129 ../E/goto.txt:34 ../E/grab.txt:28 ../E/if.txt:39 ../E/int.txt:18 ../E/jet.txt:14 ../E/message.txt:24 ../E/motor.txt:38 ../E/move.txt:21 ../E/nan.txt:14 ../E/new.txt:20 ../E/null.txt:4 ../E/object.txt:79 ../E/open.txt:19 ../E/openfile.txt:11 ../E/pencolor.txt:14 ../E/pendown.txt:17 ../E/penup.txt:11 ../E/penwidth.txt:14 ../E/point.txt:35 ../E/pointer.txt:51 ../E/pow.txt:14 ../E/private.txt:19 ../E/produce.txt:30 ../E/protected.txt:26 ../E/public.txt:49 ../E/radar.txt:80 ../E/radarall.txt:19 ../E/rand.txt:8 ../E/readln.txt:18 ../E/receive.txt:16 ../E/recycle.txt:12 ../E/research.txt:18 ../E/researched.txt:14 ../E/researches.txt:27 ../E/retobj.txt:13 ../E/return.txt:29 ../E/round.txt:12 ../E/search.txt:25 ../E/send.txt:17 ../E/shield.txt:18 ../E/sin.txt:11 ../E/sizeof.txt:21 ../E/sniff.txt:16 ../E/space.txt:22 ../E/sqrt.txt:11 ../E/static.txt:20 ../E/strfind.txt:18 ../E/string.txt:32 ../E/strleft.txt:14 ../E/strlen.txt:12 ../E/strlower.txt:10 ../E/strmid.txt:18 ../E/strright.txt:14 ../E/strupper.txt:10 ../E/strval.txt:17 ../E/super.txt:45 ../E/switch.txt:70 ../E/synchro.txt:23 ../E/takeoff.txt:15 ../E/tan.txt:11 ../E/term.txt:30 ../E/testinfo.txt:16 ../E/this.txt:52 ../E/thump.txt:12 ../E/topo.txt:13 ../E/true.txt:4 ../E/trunc.txt:12 ../E/turn.txt:32 ../E/type.txt:32 ../E/var.txt:66 ../E/void.txt:10 ../E/wait.txt:21 ../E/while.txt:46 ../E/writeln.txt:19 +#: ../E/abstime.txt:10 ../E/acos.txt:11 ../E/aim.txt:23 ../E/array.txt:41 ../E/asin.txt:11 ../E/atan.txt:11 ../E/atan2.txt:16 ../E/bloc.txt:48 ../E/bool.txt:4 ../E/break.txt:24 ../E/build.txt:27 ../E/buildingenabled.txt:22 ../E/busy.txt:14 ../E/canbuild.txt:22 ../E/canresearch.txt:14 ../E/category.txt:109 ../E/ceil.txt:12 ../E/class.txt:120 ../E/close.txt:6 ../E/cond.txt:4 ../E/continue.txt:24 ../E/cos.txt:11 ../E/deletef.txt:9 ../E/delinfo.txt:13 ../E/destroy.txt:15 ../E/detect.txt:27 ../E/direct.txt:13 ../E/dist.txt:29 ../E/dist2d.txt:13 ../E/do.txt:27 ../E/drop.txt:28 ../E/eof.txt:13 ../E/errmode.txt:32 ../E/expr.txt:197 ../E/extends.txt:105 ../E/extern.txt:29 ../E/factory.txt:21 ../E/false.txt:4 ../E/file.txt:16 ../E/fire.txt:30 ../E/flatgrnd.txt:16 ../E/flatspace.txt:25 ../E/float.txt:24 ../E/floor.txt:12 ../E/for.txt:51 ../E/function.txt:165 ../E/goto.txt:34 ../E/grab.txt:28 ../E/if.txt:39 ../E/int.txt:18 ../E/jet.txt:14 ../E/message.txt:24 ../E/motor.txt:38 ../E/move.txt:21 ../E/nan.txt:14 ../E/new.txt:20 ../E/null.txt:4 ../E/object.txt:79 ../E/open.txt:19 ../E/openfile.txt:11 ../E/pencolor.txt:14 ../E/pendown.txt:17 ../E/penup.txt:11 ../E/penwidth.txt:14 ../E/point.txt:35 ../E/pointer.txt:51 ../E/pow.txt:14 ../E/private.txt:19 ../E/produce.txt:30 ../E/protected.txt:26 ../E/public.txt:49 ../E/radar.txt:80 ../E/radarall.txt:19 ../E/rand.txt:8 ../E/readln.txt:18 ../E/receive.txt:16 ../E/recycle.txt:12 ../E/research.txt:18 ../E/researched.txt:14 ../E/researches.txt:27 ../E/retobj.txt:13 ../E/return.txt:29 ../E/round.txt:12 ../E/search.txt:25 ../E/send.txt:17 ../E/shield.txt:18 ../E/sin.txt:11 ../E/sizeof.txt:21 ../E/sniff.txt:16 ../E/space.txt:22 ../E/sqrt.txt:11 ../E/static.txt:20 ../E/strfind.txt:18 ../E/string.txt:32 ../E/strleft.txt:14 ../E/strlen.txt:12 ../E/strlower.txt:10 ../E/strmid.txt:18 ../E/strright.txt:14 ../E/strupper.txt:10 ../E/strval.txt:17 ../E/super.txt:45 ../E/switch.txt:70 ../E/synchro.txt:23 ../E/takeoff.txt:15 ../E/tan.txt:11 ../E/term.txt:30 ../E/testinfo.txt:16 ../E/this.txt:52 ../E/thump.txt:12 ../E/topo.txt:13 ../E/true.txt:4 ../E/trunc.txt:12 ../E/turn.txt:32 ../E/type.txt:32 ../E/var.txt:66 ../E/void.txt:10 ../E/wait.txt:21 ../E/while.txt:46 ../E/writeln.txt:19 #, no-wrap msgid "See also" msgstr "Voir aussi" #. type: Plain text -#: ../E/abstime.txt:11 ../E/aim.txt:24 ../E/array.txt:42 ../E/bool.txt:5 ../E/break.txt:25 ../E/busy.txt:15 ../E/cond.txt:5 ../E/continue.txt:25 ../E/deletef.txt:10 ../E/destroy.txt:16 ../E/detect.txt:28 ../E/direct.txt:14 ../E/dist.txt:30 ../E/dist2d.txt:14 ../E/drop.txt:29 ../E/errmode.txt:33 ../E/expr.txt:198 ../E/extern.txt:30 ../E/false.txt:5 ../E/fire.txt:31 ../E/flatgrnd.txt:17 ../E/flatspace.txt:26 ../E/float.txt:25 ../E/for.txt:52 ../E/function.txt:130 ../E/goto.txt:35 ../E/grab.txt:29 ../E/if.txt:40 ../E/int.txt:19 ../E/jet.txt:15 ../E/message.txt:25 ../E/move.txt:22 ../E/nan.txt:15 ../E/object.txt:80 ../E/openfile.txt:12 ../E/pencolor.txt:15 ../E/pendown.txt:18 ../E/penup.txt:12 ../E/penwidth.txt:15 ../E/point.txt:36 ../E/produce.txt:31 ../E/recycle.txt:13 ../E/retobj.txt:14 ../E/return.txt:30 ../E/search.txt:26 ../E/shield.txt:19 ../E/sizeof.txt:22 ../E/sniff.txt:17 ../E/space.txt:23 ../E/string.txt:33 ../E/switch.txt:71 ../E/takeoff.txt:16 ../E/term.txt:31 ../E/thump.txt:13 ../E/topo.txt:14 ../E/true.txt:5 ../E/turn.txt:33 ../E/type.txt:33 ../E/var.txt:67 ../E/void.txt:11 ../E/wait.txt:22 +#: ../E/abstime.txt:11 ../E/aim.txt:24 ../E/array.txt:42 ../E/bool.txt:5 ../E/break.txt:25 ../E/busy.txt:15 ../E/cond.txt:5 ../E/continue.txt:25 ../E/deletef.txt:10 ../E/destroy.txt:16 ../E/detect.txt:28 ../E/direct.txt:14 ../E/dist.txt:30 ../E/dist2d.txt:14 ../E/drop.txt:29 ../E/errmode.txt:33 ../E/expr.txt:198 ../E/extern.txt:30 ../E/false.txt:5 ../E/fire.txt:31 ../E/flatgrnd.txt:17 ../E/flatspace.txt:26 ../E/float.txt:25 ../E/for.txt:52 ../E/function.txt:166 ../E/goto.txt:35 ../E/grab.txt:29 ../E/if.txt:40 ../E/int.txt:19 ../E/jet.txt:15 ../E/message.txt:25 ../E/move.txt:22 ../E/nan.txt:15 ../E/object.txt:80 ../E/openfile.txt:12 ../E/pencolor.txt:15 ../E/pendown.txt:18 ../E/penup.txt:12 ../E/penwidth.txt:15 ../E/point.txt:36 ../E/produce.txt:31 ../E/recycle.txt:13 ../E/retobj.txt:14 ../E/return.txt:30 ../E/search.txt:26 ../E/shield.txt:19 ../E/sizeof.txt:22 ../E/sniff.txt:17 ../E/space.txt:23 ../E/string.txt:33 ../E/switch.txt:71 ../E/takeoff.txt:16 ../E/term.txt:31 ../E/thump.txt:13 ../E/topo.txt:14 ../E/true.txt:5 ../E/turn.txt:33 ../E/type.txt:33 ../E/var.txt:67 ../E/void.txt:11 ../E/wait.txt:22 #, no-wrap msgid "Programming, types and categories." msgstr "Programmation, types et catégories." @@ -6275,12 +6275,6 @@ msgid "" "}" msgstr "" -#. type: Plain text -#: ../E/function.txt:14 -#, no-wrap -msgid "Nothing but a name can be changed in the main function. The keyword extern distinguish the main function from others." -msgstr "" - #. type: Plain text #: ../E/function.txt:17 #, no-wrap @@ -6478,12 +6472,6 @@ msgstr "" msgid "CBOT will call either the one or the other function depending on the parameters passed. They must be distinguishable, i.e. you can't declare two functions with the same name and parameter types in the exact same order, e.g. declaring int Pythagoras(float b, float a) will result in error. Note that result type does not matter." msgstr "" -#. type: \b; header -#: ../E/function.txt:117 -#, no-wrap -msgid "Public functions" -msgstr "" - #. type: \b; header #: ../E/function.txt:120 #, no-wrap @@ -8682,3 +8670,82 @@ msgid "" "\"w\" mode: open for writing.\n" "\"w\" mode: open for appending." msgstr "" + +#. type: Plain text +#: ../E/function.txt:14 +#, no-wrap +msgid "Nothing but a name can be changed in the main function. The keyword extern distinguishes the main function from others." +msgstr "" + +#. type: \b; header +#: ../E/function.txt:117 +#, no-wrap +msgid "Public Functions" +msgstr "" + +#. type: \b; header +#: ../E/function.txt:129 +#, no-wrap +msgid "Default Parameters" +msgstr "" + +#. type: Plain text +#: ../E/function.txt:130 +#, no-wrap +msgid "Last function parameters can have default values that can be omitted when calling." +msgstr "" + +#. type: Source code +#: ../E/function.txt:132 +#, no-wrap +msgid "" +"float Add(float a = 0.0, float b = 0.0)\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"// Somewhere in the main program...\n" +"Add(); // Will return 0.0\n" +"Add(2.0); // Will return 2.0\n" +"Add(2.0, 3.0); // Will return 5.0\n" +"// ..." +msgstr "" + +#. type: \t; header +#: ../E/function.txt:144 +#, no-wrap +msgid "Default Parameters and Overloading" +msgstr "" + +#. type: Plain text +#: ../E/function.txt:145 +#, no-wrap +msgid "Functions with default parameters still can be overloaded, one must only ensure that function calls are not ambiguous. For example, consider the following code:" +msgstr "" + +#. type: Source code +#: ../E/function.txt:147 +#, no-wrap +msgid "" +"float Add(float a = 0.0, float b = 0.0)\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"string Add(string a = \"\", string b = \"\")\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"// Somewhere in the main program...\n" +"Add(); // Compilation error: ambiguous call\n" +"Add(\"\"); // Ok\n" +"Add(0.0); // Ok\n" +"// ..." +msgstr "" + +#. type: Plain text +#: ../E/function.txt:163 +#, no-wrap +msgid "Note that in the above example overloading causes the first default parameter to be useless as caller needs to pass it anyway in order to distinguish the two functions." +msgstr "" diff --git a/help/cbot/po/pl.po b/help/cbot/po/pl.po index 397faff8..9c1dcdd8 100644 --- a/help/cbot/po/pl.po +++ b/help/cbot/po/pl.po @@ -53,13 +53,13 @@ msgid "Time in seconds." msgstr "Czas w sekundach." #. type: \t; header -#: ../E/abstime.txt:10 ../E/acos.txt:11 ../E/aim.txt:23 ../E/array.txt:41 ../E/asin.txt:11 ../E/atan.txt:11 ../E/atan2.txt:16 ../E/bloc.txt:48 ../E/bool.txt:4 ../E/break.txt:24 ../E/build.txt:27 ../E/buildingenabled.txt:22 ../E/busy.txt:14 ../E/canbuild.txt:22 ../E/canresearch.txt:14 ../E/category.txt:109 ../E/ceil.txt:12 ../E/class.txt:120 ../E/close.txt:6 ../E/cond.txt:4 ../E/continue.txt:24 ../E/cos.txt:11 ../E/deletef.txt:9 ../E/delinfo.txt:13 ../E/destroy.txt:15 ../E/detect.txt:27 ../E/direct.txt:13 ../E/dist.txt:29 ../E/dist2d.txt:13 ../E/do.txt:27 ../E/drop.txt:28 ../E/eof.txt:13 ../E/errmode.txt:32 ../E/expr.txt:197 ../E/extends.txt:105 ../E/extern.txt:29 ../E/factory.txt:21 ../E/false.txt:4 ../E/file.txt:16 ../E/fire.txt:30 ../E/flatgrnd.txt:16 ../E/flatspace.txt:25 ../E/float.txt:24 ../E/floor.txt:12 ../E/for.txt:51 ../E/function.txt:129 ../E/goto.txt:34 ../E/grab.txt:28 ../E/if.txt:39 ../E/int.txt:18 ../E/jet.txt:14 ../E/message.txt:24 ../E/motor.txt:38 ../E/move.txt:21 ../E/nan.txt:14 ../E/new.txt:20 ../E/null.txt:4 ../E/object.txt:79 ../E/open.txt:19 ../E/openfile.txt:11 ../E/pencolor.txt:14 ../E/pendown.txt:17 ../E/penup.txt:11 ../E/penwidth.txt:14 ../E/point.txt:35 ../E/pointer.txt:51 ../E/pow.txt:14 ../E/private.txt:19 ../E/produce.txt:30 ../E/protected.txt:26 ../E/public.txt:49 ../E/radar.txt:80 ../E/radarall.txt:19 ../E/rand.txt:8 ../E/readln.txt:18 ../E/receive.txt:16 ../E/recycle.txt:12 ../E/research.txt:18 ../E/researched.txt:14 ../E/researches.txt:27 ../E/retobj.txt:13 ../E/return.txt:29 ../E/round.txt:12 ../E/search.txt:25 ../E/send.txt:17 ../E/shield.txt:18 ../E/sin.txt:11 ../E/sizeof.txt:21 ../E/sniff.txt:16 ../E/space.txt:22 ../E/sqrt.txt:11 ../E/static.txt:20 ../E/strfind.txt:18 ../E/string.txt:32 ../E/strleft.txt:14 ../E/strlen.txt:12 ../E/strlower.txt:10 ../E/strmid.txt:18 ../E/strright.txt:14 ../E/strupper.txt:10 ../E/strval.txt:17 ../E/super.txt:45 ../E/switch.txt:70 ../E/synchro.txt:23 ../E/takeoff.txt:15 ../E/tan.txt:11 ../E/term.txt:30 ../E/testinfo.txt:16 ../E/this.txt:52 ../E/thump.txt:12 ../E/topo.txt:13 ../E/true.txt:4 ../E/trunc.txt:12 ../E/turn.txt:32 ../E/type.txt:32 ../E/var.txt:66 ../E/void.txt:10 ../E/wait.txt:21 ../E/while.txt:46 ../E/writeln.txt:19 +#: ../E/abstime.txt:10 ../E/acos.txt:11 ../E/aim.txt:23 ../E/array.txt:41 ../E/asin.txt:11 ../E/atan.txt:11 ../E/atan2.txt:16 ../E/bloc.txt:48 ../E/bool.txt:4 ../E/break.txt:24 ../E/build.txt:27 ../E/buildingenabled.txt:22 ../E/busy.txt:14 ../E/canbuild.txt:22 ../E/canresearch.txt:14 ../E/category.txt:109 ../E/ceil.txt:12 ../E/class.txt:120 ../E/close.txt:6 ../E/cond.txt:4 ../E/continue.txt:24 ../E/cos.txt:11 ../E/deletef.txt:9 ../E/delinfo.txt:13 ../E/destroy.txt:15 ../E/detect.txt:27 ../E/direct.txt:13 ../E/dist.txt:29 ../E/dist2d.txt:13 ../E/do.txt:27 ../E/drop.txt:28 ../E/eof.txt:13 ../E/errmode.txt:32 ../E/expr.txt:197 ../E/extends.txt:105 ../E/extern.txt:29 ../E/factory.txt:21 ../E/false.txt:4 ../E/file.txt:16 ../E/fire.txt:30 ../E/flatgrnd.txt:16 ../E/flatspace.txt:25 ../E/float.txt:24 ../E/floor.txt:12 ../E/for.txt:51 ../E/function.txt:165 ../E/goto.txt:34 ../E/grab.txt:28 ../E/if.txt:39 ../E/int.txt:18 ../E/jet.txt:14 ../E/message.txt:24 ../E/motor.txt:38 ../E/move.txt:21 ../E/nan.txt:14 ../E/new.txt:20 ../E/null.txt:4 ../E/object.txt:79 ../E/open.txt:19 ../E/openfile.txt:11 ../E/pencolor.txt:14 ../E/pendown.txt:17 ../E/penup.txt:11 ../E/penwidth.txt:14 ../E/point.txt:35 ../E/pointer.txt:51 ../E/pow.txt:14 ../E/private.txt:19 ../E/produce.txt:30 ../E/protected.txt:26 ../E/public.txt:49 ../E/radar.txt:80 ../E/radarall.txt:19 ../E/rand.txt:8 ../E/readln.txt:18 ../E/receive.txt:16 ../E/recycle.txt:12 ../E/research.txt:18 ../E/researched.txt:14 ../E/researches.txt:27 ../E/retobj.txt:13 ../E/return.txt:29 ../E/round.txt:12 ../E/search.txt:25 ../E/send.txt:17 ../E/shield.txt:18 ../E/sin.txt:11 ../E/sizeof.txt:21 ../E/sniff.txt:16 ../E/space.txt:22 ../E/sqrt.txt:11 ../E/static.txt:20 ../E/strfind.txt:18 ../E/string.txt:32 ../E/strleft.txt:14 ../E/strlen.txt:12 ../E/strlower.txt:10 ../E/strmid.txt:18 ../E/strright.txt:14 ../E/strupper.txt:10 ../E/strval.txt:17 ../E/super.txt:45 ../E/switch.txt:70 ../E/synchro.txt:23 ../E/takeoff.txt:15 ../E/tan.txt:11 ../E/term.txt:30 ../E/testinfo.txt:16 ../E/this.txt:52 ../E/thump.txt:12 ../E/topo.txt:13 ../E/true.txt:4 ../E/trunc.txt:12 ../E/turn.txt:32 ../E/type.txt:32 ../E/var.txt:66 ../E/void.txt:10 ../E/wait.txt:21 ../E/while.txt:46 ../E/writeln.txt:19 #, no-wrap msgid "See also" msgstr "Zobacz również" #. type: Plain text -#: ../E/abstime.txt:11 ../E/aim.txt:24 ../E/array.txt:42 ../E/bool.txt:5 ../E/break.txt:25 ../E/busy.txt:15 ../E/cond.txt:5 ../E/continue.txt:25 ../E/deletef.txt:10 ../E/destroy.txt:16 ../E/detect.txt:28 ../E/direct.txt:14 ../E/dist.txt:30 ../E/dist2d.txt:14 ../E/drop.txt:29 ../E/errmode.txt:33 ../E/expr.txt:198 ../E/extern.txt:30 ../E/false.txt:5 ../E/fire.txt:31 ../E/flatgrnd.txt:17 ../E/flatspace.txt:26 ../E/float.txt:25 ../E/for.txt:52 ../E/function.txt:130 ../E/goto.txt:35 ../E/grab.txt:29 ../E/if.txt:40 ../E/int.txt:19 ../E/jet.txt:15 ../E/message.txt:25 ../E/move.txt:22 ../E/nan.txt:15 ../E/object.txt:80 ../E/openfile.txt:12 ../E/pencolor.txt:15 ../E/pendown.txt:18 ../E/penup.txt:12 ../E/penwidth.txt:15 ../E/point.txt:36 ../E/produce.txt:31 ../E/recycle.txt:13 ../E/retobj.txt:14 ../E/return.txt:30 ../E/search.txt:26 ../E/shield.txt:19 ../E/sizeof.txt:22 ../E/sniff.txt:17 ../E/space.txt:23 ../E/string.txt:33 ../E/switch.txt:71 ../E/takeoff.txt:16 ../E/term.txt:31 ../E/thump.txt:13 ../E/topo.txt:14 ../E/true.txt:5 ../E/turn.txt:33 ../E/type.txt:33 ../E/var.txt:67 ../E/void.txt:11 ../E/wait.txt:22 +#: ../E/abstime.txt:11 ../E/aim.txt:24 ../E/array.txt:42 ../E/bool.txt:5 ../E/break.txt:25 ../E/busy.txt:15 ../E/cond.txt:5 ../E/continue.txt:25 ../E/deletef.txt:10 ../E/destroy.txt:16 ../E/detect.txt:28 ../E/direct.txt:14 ../E/dist.txt:30 ../E/dist2d.txt:14 ../E/drop.txt:29 ../E/errmode.txt:33 ../E/expr.txt:198 ../E/extern.txt:30 ../E/false.txt:5 ../E/fire.txt:31 ../E/flatgrnd.txt:17 ../E/flatspace.txt:26 ../E/float.txt:25 ../E/for.txt:52 ../E/function.txt:166 ../E/goto.txt:35 ../E/grab.txt:29 ../E/if.txt:40 ../E/int.txt:19 ../E/jet.txt:15 ../E/message.txt:25 ../E/move.txt:22 ../E/nan.txt:15 ../E/object.txt:80 ../E/openfile.txt:12 ../E/pencolor.txt:15 ../E/pendown.txt:18 ../E/penup.txt:12 ../E/penwidth.txt:15 ../E/point.txt:36 ../E/produce.txt:31 ../E/recycle.txt:13 ../E/retobj.txt:14 ../E/return.txt:30 ../E/search.txt:26 ../E/shield.txt:19 ../E/sizeof.txt:22 ../E/sniff.txt:17 ../E/space.txt:23 ../E/string.txt:33 ../E/switch.txt:71 ../E/takeoff.txt:16 ../E/term.txt:31 ../E/thump.txt:13 ../E/topo.txt:14 ../E/true.txt:5 ../E/turn.txt:33 ../E/type.txt:33 ../E/var.txt:67 ../E/void.txt:11 ../E/wait.txt:22 #, no-wrap msgid "Programming, types and categories." msgstr "Programowanie, typy i kategorie." @@ -6338,12 +6338,6 @@ msgstr "" "\t\n" "}" -#. type: Plain text -#: ../E/function.txt:14 -#, no-wrap -msgid "Nothing but a name can be changed in the main function. The keyword extern distinguish the main function from others." -msgstr "W funkcji głównej możesz zmienić tylko nazwę. Słowo extern odróżnia funkcję główną od pozostałych." - #. type: Plain text #: ../E/function.txt:17 #, no-wrap @@ -6606,12 +6600,6 @@ msgstr "" msgid "CBOT will call either the one or the other function depending on the parameters passed. They must be distinguishable, i.e. you can't declare two functions with the same name and parameter types in the exact same order, e.g. declaring int Pythagoras(float b, float a) will result in error. Note that result type does not matter." msgstr "CBOT wywoła jedną z funkcji w zależności od przekazanych parametrów. Funkcje muszą być odróżnialne, tzn. nie możesz zadeklarować dwóch funkcji o takiej samej nazwie i typach parametrów w tej samej kolejności. Odnosząc się do przykładu: zadeklarowanie funkcji int Pythagoras(float b, float a) wywoła błąd. Zwróć uwagę, że typ wyniku, jaki zwraca funkcja, nie ma znaczenia." -#. type: \b; header -#: ../E/function.txt:117 -#, no-wrap -msgid "Public functions" -msgstr "Funkcje publiczne" - #. type: \b; header #: ../E/function.txt:120 #, no-wrap @@ -8847,3 +8835,82 @@ msgid "" "\"w\" mode: open for writing.\n" "\"w\" mode: open for appending." msgstr "" + +#. type: Plain text +#: ../E/function.txt:14 +#, no-wrap +msgid "Nothing but a name can be changed in the main function. The keyword extern distinguishes the main function from others." +msgstr "" + +#. type: \b; header +#: ../E/function.txt:117 +#, no-wrap +msgid "Public Functions" +msgstr "" + +#. type: \b; header +#: ../E/function.txt:129 +#, no-wrap +msgid "Default Parameters" +msgstr "" + +#. type: Plain text +#: ../E/function.txt:130 +#, no-wrap +msgid "Last function parameters can have default values that can be omitted when calling." +msgstr "" + +#. type: Source code +#: ../E/function.txt:132 +#, no-wrap +msgid "" +"float Add(float a = 0.0, float b = 0.0)\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"// Somewhere in the main program...\n" +"Add(); // Will return 0.0\n" +"Add(2.0); // Will return 2.0\n" +"Add(2.0, 3.0); // Will return 5.0\n" +"// ..." +msgstr "" + +#. type: \t; header +#: ../E/function.txt:144 +#, no-wrap +msgid "Default Parameters and Overloading" +msgstr "" + +#. type: Plain text +#: ../E/function.txt:145 +#, no-wrap +msgid "Functions with default parameters still can be overloaded, one must only ensure that function calls are not ambiguous. For example, consider the following code:" +msgstr "" + +#. type: Source code +#: ../E/function.txt:147 +#, no-wrap +msgid "" +"float Add(float a = 0.0, float b = 0.0)\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"string Add(string a = \"\", string b = \"\")\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"// Somewhere in the main program...\n" +"Add(); // Compilation error: ambiguous call\n" +"Add(\"\"); // Ok\n" +"Add(0.0); // Ok\n" +"// ..." +msgstr "" + +#. type: Plain text +#: ../E/function.txt:163 +#, no-wrap +msgid "Note that in the above example overloading causes the first default parameter to be useless as caller needs to pass it anyway in order to distinguish the two functions." +msgstr "" diff --git a/help/cbot/po/ru.po b/help/cbot/po/ru.po index e108ef5c..1f540222 100644 --- a/help/cbot/po/ru.po +++ b/help/cbot/po/ru.po @@ -53,13 +53,13 @@ msgid "Time in seconds." msgstr "" #. type: \t; header -#: ../E/abstime.txt:10 ../E/acos.txt:11 ../E/aim.txt:23 ../E/array.txt:41 ../E/asin.txt:11 ../E/atan.txt:11 ../E/atan2.txt:16 ../E/bloc.txt:48 ../E/bool.txt:4 ../E/break.txt:24 ../E/build.txt:27 ../E/buildingenabled.txt:22 ../E/busy.txt:14 ../E/canbuild.txt:22 ../E/canresearch.txt:14 ../E/category.txt:109 ../E/ceil.txt:12 ../E/class.txt:120 ../E/close.txt:6 ../E/cond.txt:4 ../E/continue.txt:24 ../E/cos.txt:11 ../E/deletef.txt:9 ../E/delinfo.txt:13 ../E/destroy.txt:15 ../E/detect.txt:27 ../E/direct.txt:13 ../E/dist.txt:29 ../E/dist2d.txt:13 ../E/do.txt:27 ../E/drop.txt:28 ../E/eof.txt:13 ../E/errmode.txt:32 ../E/expr.txt:197 ../E/extends.txt:105 ../E/extern.txt:29 ../E/factory.txt:21 ../E/false.txt:4 ../E/file.txt:16 ../E/fire.txt:30 ../E/flatgrnd.txt:16 ../E/flatspace.txt:25 ../E/float.txt:24 ../E/floor.txt:12 ../E/for.txt:51 ../E/function.txt:129 ../E/goto.txt:34 ../E/grab.txt:28 ../E/if.txt:39 ../E/int.txt:18 ../E/jet.txt:14 ../E/message.txt:24 ../E/motor.txt:38 ../E/move.txt:21 ../E/nan.txt:14 ../E/new.txt:20 ../E/null.txt:4 ../E/object.txt:79 ../E/open.txt:19 ../E/openfile.txt:11 ../E/pencolor.txt:14 ../E/pendown.txt:17 ../E/penup.txt:11 ../E/penwidth.txt:14 ../E/point.txt:35 ../E/pointer.txt:51 ../E/pow.txt:14 ../E/private.txt:19 ../E/produce.txt:30 ../E/protected.txt:26 ../E/public.txt:49 ../E/radar.txt:80 ../E/radarall.txt:19 ../E/rand.txt:8 ../E/readln.txt:18 ../E/receive.txt:16 ../E/recycle.txt:12 ../E/research.txt:18 ../E/researched.txt:14 ../E/researches.txt:27 ../E/retobj.txt:13 ../E/return.txt:29 ../E/round.txt:12 ../E/search.txt:25 ../E/send.txt:17 ../E/shield.txt:18 ../E/sin.txt:11 ../E/sizeof.txt:21 ../E/sniff.txt:16 ../E/space.txt:22 ../E/sqrt.txt:11 ../E/static.txt:20 ../E/strfind.txt:18 ../E/string.txt:32 ../E/strleft.txt:14 ../E/strlen.txt:12 ../E/strlower.txt:10 ../E/strmid.txt:18 ../E/strright.txt:14 ../E/strupper.txt:10 ../E/strval.txt:17 ../E/super.txt:45 ../E/switch.txt:70 ../E/synchro.txt:23 ../E/takeoff.txt:15 ../E/tan.txt:11 ../E/term.txt:30 ../E/testinfo.txt:16 ../E/this.txt:52 ../E/thump.txt:12 ../E/topo.txt:13 ../E/true.txt:4 ../E/trunc.txt:12 ../E/turn.txt:32 ../E/type.txt:32 ../E/var.txt:66 ../E/void.txt:10 ../E/wait.txt:21 ../E/while.txt:46 ../E/writeln.txt:19 +#: ../E/abstime.txt:10 ../E/acos.txt:11 ../E/aim.txt:23 ../E/array.txt:41 ../E/asin.txt:11 ../E/atan.txt:11 ../E/atan2.txt:16 ../E/bloc.txt:48 ../E/bool.txt:4 ../E/break.txt:24 ../E/build.txt:27 ../E/buildingenabled.txt:22 ../E/busy.txt:14 ../E/canbuild.txt:22 ../E/canresearch.txt:14 ../E/category.txt:109 ../E/ceil.txt:12 ../E/class.txt:120 ../E/close.txt:6 ../E/cond.txt:4 ../E/continue.txt:24 ../E/cos.txt:11 ../E/deletef.txt:9 ../E/delinfo.txt:13 ../E/destroy.txt:15 ../E/detect.txt:27 ../E/direct.txt:13 ../E/dist.txt:29 ../E/dist2d.txt:13 ../E/do.txt:27 ../E/drop.txt:28 ../E/eof.txt:13 ../E/errmode.txt:32 ../E/expr.txt:197 ../E/extends.txt:105 ../E/extern.txt:29 ../E/factory.txt:21 ../E/false.txt:4 ../E/file.txt:16 ../E/fire.txt:30 ../E/flatgrnd.txt:16 ../E/flatspace.txt:25 ../E/float.txt:24 ../E/floor.txt:12 ../E/for.txt:51 ../E/function.txt:165 ../E/goto.txt:34 ../E/grab.txt:28 ../E/if.txt:39 ../E/int.txt:18 ../E/jet.txt:14 ../E/message.txt:24 ../E/motor.txt:38 ../E/move.txt:21 ../E/nan.txt:14 ../E/new.txt:20 ../E/null.txt:4 ../E/object.txt:79 ../E/open.txt:19 ../E/openfile.txt:11 ../E/pencolor.txt:14 ../E/pendown.txt:17 ../E/penup.txt:11 ../E/penwidth.txt:14 ../E/point.txt:35 ../E/pointer.txt:51 ../E/pow.txt:14 ../E/private.txt:19 ../E/produce.txt:30 ../E/protected.txt:26 ../E/public.txt:49 ../E/radar.txt:80 ../E/radarall.txt:19 ../E/rand.txt:8 ../E/readln.txt:18 ../E/receive.txt:16 ../E/recycle.txt:12 ../E/research.txt:18 ../E/researched.txt:14 ../E/researches.txt:27 ../E/retobj.txt:13 ../E/return.txt:29 ../E/round.txt:12 ../E/search.txt:25 ../E/send.txt:17 ../E/shield.txt:18 ../E/sin.txt:11 ../E/sizeof.txt:21 ../E/sniff.txt:16 ../E/space.txt:22 ../E/sqrt.txt:11 ../E/static.txt:20 ../E/strfind.txt:18 ../E/string.txt:32 ../E/strleft.txt:14 ../E/strlen.txt:12 ../E/strlower.txt:10 ../E/strmid.txt:18 ../E/strright.txt:14 ../E/strupper.txt:10 ../E/strval.txt:17 ../E/super.txt:45 ../E/switch.txt:70 ../E/synchro.txt:23 ../E/takeoff.txt:15 ../E/tan.txt:11 ../E/term.txt:30 ../E/testinfo.txt:16 ../E/this.txt:52 ../E/thump.txt:12 ../E/topo.txt:13 ../E/true.txt:4 ../E/trunc.txt:12 ../E/turn.txt:32 ../E/type.txt:32 ../E/var.txt:66 ../E/void.txt:10 ../E/wait.txt:21 ../E/while.txt:46 ../E/writeln.txt:19 #, no-wrap msgid "See also" msgstr "См. также" #. type: Plain text -#: ../E/abstime.txt:11 ../E/aim.txt:24 ../E/array.txt:42 ../E/bool.txt:5 ../E/break.txt:25 ../E/busy.txt:15 ../E/cond.txt:5 ../E/continue.txt:25 ../E/deletef.txt:10 ../E/destroy.txt:16 ../E/detect.txt:28 ../E/direct.txt:14 ../E/dist.txt:30 ../E/dist2d.txt:14 ../E/drop.txt:29 ../E/errmode.txt:33 ../E/expr.txt:198 ../E/extern.txt:30 ../E/false.txt:5 ../E/fire.txt:31 ../E/flatgrnd.txt:17 ../E/flatspace.txt:26 ../E/float.txt:25 ../E/for.txt:52 ../E/function.txt:130 ../E/goto.txt:35 ../E/grab.txt:29 ../E/if.txt:40 ../E/int.txt:19 ../E/jet.txt:15 ../E/message.txt:25 ../E/move.txt:22 ../E/nan.txt:15 ../E/object.txt:80 ../E/openfile.txt:12 ../E/pencolor.txt:15 ../E/pendown.txt:18 ../E/penup.txt:12 ../E/penwidth.txt:15 ../E/point.txt:36 ../E/produce.txt:31 ../E/recycle.txt:13 ../E/retobj.txt:14 ../E/return.txt:30 ../E/search.txt:26 ../E/shield.txt:19 ../E/sizeof.txt:22 ../E/sniff.txt:17 ../E/space.txt:23 ../E/string.txt:33 ../E/switch.txt:71 ../E/takeoff.txt:16 ../E/term.txt:31 ../E/thump.txt:13 ../E/topo.txt:14 ../E/true.txt:5 ../E/turn.txt:33 ../E/type.txt:33 ../E/var.txt:67 ../E/void.txt:11 ../E/wait.txt:22 +#: ../E/abstime.txt:11 ../E/aim.txt:24 ../E/array.txt:42 ../E/bool.txt:5 ../E/break.txt:25 ../E/busy.txt:15 ../E/cond.txt:5 ../E/continue.txt:25 ../E/deletef.txt:10 ../E/destroy.txt:16 ../E/detect.txt:28 ../E/direct.txt:14 ../E/dist.txt:30 ../E/dist2d.txt:14 ../E/drop.txt:29 ../E/errmode.txt:33 ../E/expr.txt:198 ../E/extern.txt:30 ../E/false.txt:5 ../E/fire.txt:31 ../E/flatgrnd.txt:17 ../E/flatspace.txt:26 ../E/float.txt:25 ../E/for.txt:52 ../E/function.txt:166 ../E/goto.txt:35 ../E/grab.txt:29 ../E/if.txt:40 ../E/int.txt:19 ../E/jet.txt:15 ../E/message.txt:25 ../E/move.txt:22 ../E/nan.txt:15 ../E/object.txt:80 ../E/openfile.txt:12 ../E/pencolor.txt:15 ../E/pendown.txt:18 ../E/penup.txt:12 ../E/penwidth.txt:15 ../E/point.txt:36 ../E/produce.txt:31 ../E/recycle.txt:13 ../E/retobj.txt:14 ../E/return.txt:30 ../E/search.txt:26 ../E/shield.txt:19 ../E/sizeof.txt:22 ../E/sniff.txt:17 ../E/space.txt:23 ../E/string.txt:33 ../E/switch.txt:71 ../E/takeoff.txt:16 ../E/term.txt:31 ../E/thump.txt:13 ../E/topo.txt:14 ../E/true.txt:5 ../E/turn.txt:33 ../E/type.txt:33 ../E/var.txt:67 ../E/void.txt:11 ../E/wait.txt:22 #, no-wrap msgid "Programming, types and categories." msgstr "Программирование, типы и категории." @@ -6260,12 +6260,6 @@ msgid "" "}" msgstr "" -#. type: Plain text -#: ../E/function.txt:14 -#, no-wrap -msgid "Nothing but a name can be changed in the main function. The keyword extern distinguish the main function from others." -msgstr "" - #. type: Plain text #: ../E/function.txt:17 #, no-wrap @@ -6463,12 +6457,6 @@ msgstr "" msgid "CBOT will call either the one or the other function depending on the parameters passed. They must be distinguishable, i.e. you can't declare two functions with the same name and parameter types in the exact same order, e.g. declaring int Pythagoras(float b, float a) will result in error. Note that result type does not matter." msgstr "" -#. type: \b; header -#: ../E/function.txt:117 -#, no-wrap -msgid "Public functions" -msgstr "" - #. type: \b; header #: ../E/function.txt:120 #, no-wrap @@ -8660,3 +8648,82 @@ msgid "" "\"w\" mode: open for writing.\n" "\"w\" mode: open for appending." msgstr "" + +#. type: Plain text +#: ../E/function.txt:14 +#, no-wrap +msgid "Nothing but a name can be changed in the main function. The keyword extern distinguishes the main function from others." +msgstr "" + +#. type: \b; header +#: ../E/function.txt:117 +#, no-wrap +msgid "Public Functions" +msgstr "" + +#. type: \b; header +#: ../E/function.txt:129 +#, no-wrap +msgid "Default Parameters" +msgstr "" + +#. type: Plain text +#: ../E/function.txt:130 +#, no-wrap +msgid "Last function parameters can have default values that can be omitted when calling." +msgstr "" + +#. type: Source code +#: ../E/function.txt:132 +#, no-wrap +msgid "" +"float Add(float a = 0.0, float b = 0.0)\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"// Somewhere in the main program...\n" +"Add(); // Will return 0.0\n" +"Add(2.0); // Will return 2.0\n" +"Add(2.0, 3.0); // Will return 5.0\n" +"// ..." +msgstr "" + +#. type: \t; header +#: ../E/function.txt:144 +#, no-wrap +msgid "Default Parameters and Overloading" +msgstr "" + +#. type: Plain text +#: ../E/function.txt:145 +#, no-wrap +msgid "Functions with default parameters still can be overloaded, one must only ensure that function calls are not ambiguous. For example, consider the following code:" +msgstr "" + +#. type: Source code +#: ../E/function.txt:147 +#, no-wrap +msgid "" +"float Add(float a = 0.0, float b = 0.0)\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"string Add(string a = \"\", string b = \"\")\n" +"{\n" +"\treturn a + b;\n" +"}\n" +"\n" +"// Somewhere in the main program...\n" +"Add(); // Compilation error: ambiguous call\n" +"Add(\"\"); // Ok\n" +"Add(0.0); // Ok\n" +"// ..." +msgstr "" + +#. type: Plain text +#: ../E/function.txt:163 +#, no-wrap +msgid "Note that in the above example overloading causes the first default parameter to be useless as caller needs to pass it anyway in order to distinguish the two functions." +msgstr "" From 41c03fda84e6eab6cd105fffd77a26cde4c1fe12 Mon Sep 17 00:00:00 2001 From: RaptorParkowsky Date: Fri, 19 May 2017 13:40:04 +0200 Subject: [PATCH 03/11] Adding Barricade object models --- models/barricade0.mod | Bin 0 -> 5620 bytes models/barricade1.mod | Bin 0 -> 5620 bytes .../objects/subm/subm-final_pattern.xcf | Bin 664483 -> 669330 bytes textures/objects/subm.png | Bin 176095 -> 177982 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 models/barricade0.mod create mode 100644 models/barricade1.mod diff --git a/models/barricade0.mod b/models/barricade0.mod new file mode 100644 index 0000000000000000000000000000000000000000..0605e3c9585b4c1e791b4b49b3d2437c84ff2fd8 GIT binary patch literal 5620 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 delta 2948 zcmY+_4{#LK9S895zTLgO+seOO0D~bk9E}KK11Aom(8MDFNh0V4i%?_2(PHIqy^PaX z;4YpJky?Ul=QIr^c#sKjdP_P2Yyr|6`u#hQJ`ohur>nxt`lh60(9j8pRIxPi!UJF zcopK>U!fL$4XrF2T6Z1n{%4>Me*sL!>Fl-w(P$N!W@RYsc5k}oW}Wz(v3qo9mArni zS_FA5A~ux`7F8NWC8w}Y%)VrODES9C9F1pWM#d?v5T(p&bL$8s{Afi%v&jb9VqPp z$_@bK`BVceehH|2jpD$PI-ur3U=5!l5Ey=+G5yI2#_CF!xu){nJD06{$f{=Q&2-D* z);-0CyoWgbbjrlmwF2wQ=?JiaL)Yc9!?%Gg`+(o<1YWrcH0|d99JJKjS>HYFf##K& zKAz;2{aClt9OMG7B~C4!GO^~p!0&VDF(5JrX#FYhhkkQMd*iU#`|ruLt>86C>}Nmc z-jy}9en01KuA|M22`gsS_be60?w-l!*&}C%S9NhMtRw}QS=domKX=jss-$YxF?}2F z{sHhdZ}=3~_0$cZZv^lm_rjT7z(0C{#HYZ&o(0a00WMrMN4|gQhYJU|_URP-?x7C2 zxl_;5`Ju6aCxHJIKpJ%t(xl^%X0<~q`8T8`Qy{H)!CZLbzO8|$n+N|R@glv!Oo8-t zH+Ow41?ksA;*x(Bq+cDT_vlkdTP8u;UQ37Q8l;y$fYka7q=Sz_icN%c=3__$XCPgC z7}A$M2*+HA(SL`?&4$Q743{X(f|zGO%s&cIrb1NrLDaTFJiiO#m6$bnw0^6!N)ESd zm6kPJ*d|3UY!mZl1ll}<6T>B5Eeb^26MR*hh`TAB24kY_j}U*Vf@og>(OCe|Jq4oY zUWnc~5GN&wK8}032O@q2;*-xH5*O(PME~OuS0A-{3Jjal@ztSYr}|DDezT*!}XC z$j_^g_Z32ZCkgpNJ{0v1D7P@pRtDtPHgR)}@l;&wrI%h&T`wf)y`=Ins z&4y~54s~2R)Z99#dF|FizA*usU+$|J+?x5)R08(ZY8@VhPY@^JNgiWc6m zS;+~H-y=J2{&a-b2b7TwbF*YpqI0v%#??794jxNzP9*_1R zZPXceLVfJNP*;2j^+gk^5rx|I9Mq#*p$_~6>g8(K#@`ED!5rB5!r6YTz_$4qYz-%1 zYu^srp&hU#7Q@zGiSKEnMnfBy1FbmGFt$V`TXbxR_S>A*W$9hQk%N5h)+`myB*}w% z3DpqKgLDd}<68Oc(7Zo~ww&!&J_Kzo)h3{A%!BsaThLzI1a0Skpfy!PYqj^?TEubY1 zLc7!lyR-rJ5f!lCb{O_)U%@`79`^D*urFH;`>M;))u*-HZw6}f(|sU)<_vBudu=hl zKr3kjZ5$G}*S-Y%E>7ZD6YPnTuz#(>G5jt#?ka*~`9?Sz*2B^C8XT>Q;4nXcp?sS?TE5MZcr`F0^Xe&VXU1XwoFcPk()f^B_H`IL+~grI`N&Tp3K+~HWKxXcl%y2&9GRTt zA~$)+OFr^bhzyF5Nim93l2Xve$>by#xyeIb@{ylH&;#QP79wO)jN+7}6!hCU2?c$u8!A~$)+ zOFr^bhzyF5Nim93l2Xv~WO9;=+~grI`N&Tpu793E5i%)8aY|AO`UIJr@~ diff --git a/textures/objects/subm.png b/textures/objects/subm.png index 9c08a0863d37412d435a46ad301c2acb5c1bf376..ca231818c8b0f73a98d62f781dcb06c23c69ce22 100644 GIT binary patch delta 37723 zcmXVXWmHt%`}P^SLApyyx;usx>F(~729-F2bP0$-cMjbk2uL?bhlGF<(%tj&{QmDc z-)7c2d#}CkxZ*x*YgiqJSV_;3no&cUBbXtL%t-$j!L?1!Hu#;zxyWBL*Msl>W@jtE znCPe~lM=?_5Yp2M8h2b z>OaUgP-}}#Z5gk)sT3W>)D^3J4&7OCDVt4vcd(tl`N&7-dH@g63z)5{GQYSB!P5R- z?s8PS4Vna2o>2Kn?x_GABSBH1V_#0x3*ZFh_zqusT6y4KuaSw#p0D_K3lHPJnh&{O z>=*xCd|Tm$In)mk1^as90SqNda|d7NetTdrEF-V6KQQG@xwrE(s0E>cZT*xmUL?`+ z^;6Vu)(CeY-Byi{H$FD*9#d~>wIKU|USbVPDui)-DDZAZsH?0FMo-8eDmRx1F9hQ!1lRle`ihE*A|fI_w@OK0uI>7M z0BNP(?MyOMANU_E^-Tx+a=PA6hymdQa)S;8z{>09>0Mv(tdLH`q&%7A{jtR%%9|s^ zYT%XR<-+=?u+p43rl>N;vuiOc7SWoM5?9iT5v=!N!^bfQ_K+S~8^g&3a$n9J|F*|e zu8i=cc7*M~2dRhi=?NKxBrGj0&1XUi3`prLD0rFpnmy3L(a{hwl8Fo*G>+u^Ma271 zN0*MEv#dg-xOz)^ggY*OAps8j19{1>`(wf&A^(~~uD8L*dPB35^QIMa%cBkq%B9poNzSh3z3fukqFnRT`G0?)|N}3T* zpNQ+@hojiuxaa(Mo)&5*sh z6QeS$czCRw{(#q9EB+-9C&+oN1kDcV>}+Tdl#w~Q3yB^4^VKrsq>t>39r_efNinLH zms87#*nc%H+mACQA6F4?-l}LyUCf-H`>Ld~#UeSmY2wz5-d&9`rCfolZ?`K~$HwQb z`LGLG*0+6%T&#W!Ql6*~5dLo9RZ<}4wKXCBxc#<%(XDy;?CfmiH8_8Df6`_SI5;?P zcU;@NLr@`a0|a#p(&Y6#gKQ6dxXA=|VM1NMewlr-w*Y!qW0p0LGpFuE{tCYT?Mj1U z;4|=@&cYt3v}c(gB93R*)3Zj&yX%~g!D5DNzAT>|uH&3I>xshW;o{=r<`$+*FmHPb zw8nqGd?sk7M{_)a!GES1!`W0G?I)jBW&Z!lSsZnJ%qSG7AuLm#Bfaj0koGG?g2(>N z*qRyo5m<=?wLPe0k7oXOymD76X6Nk1TilL@)?zSm~7&wnbyVMX6FPRwq|sW z24L5F;{m7u!^m;ikO&Jjo#NSZUPd(D+L5z8?qeme`>TC**I1A^MQuMYXz(^Qs01IG zy!08l_VeGFOv}j6PRwOp6NUa4Z7WBQzdjpEH%16Sjq_Ke^R7A_C$a^UYb;%HVKaz{ ziCq#JZ3<7%8guNP)r$kaBhA-62yVxmJbj2ElKC6Y9yKnEQS)m$ek<&Je zfvVO;qd2gB_TV=;xBpNKX0R%p9E49ZnKB@@qbj(^F`Di6*sd_`HwdFdSu1wsP>>H0 z^xd7mkjBxWN76JS_Fjp02pF-NL?xp?}3_Qgn1D#h>O}q zK3P*ddf92)+x}kG{RW-;wm<5zn>oj*eW- z*^5I)(E~CPu7VNO<)P#!88-wG&q%uLY^Zp@u+~GCo?@SDigBG z4&Vuc(hLjVy3_b(am4_mI9Pzg?R+;$UU&xe~z7TjOa{=^6lc9c$5O|5B zhGt7J72N=ij#ea;ZVFWDzhmUaL-NZnl6@^$04y9*=Fa~U+eQnMEtxhp z8+|E`zuRgZ``!}a1=5xbv8QLP~8~#bfLnzt03Z1ng)nqJl~p6=8Dn0 zH$0K<)Wm@M(G{UAm?@thDt5O!9Bssr+g3zJaM82qy-CBFlMDKpLo&pG2G>G=Q)WfX zybhqxM}3jiS7t$D*Z7?a-)lJycS{9~u97r4nnTdL(9f8OQm2(6!zgL8VG=-wF<_^3 zh6DAvcmZVu;qTS7ZfStPzeun#>4DJl>W-aAD(-KWCg_quYr*&re=O6{X+=w_Aopss z{%w`;5Y6=;=p%KU`hM7hupd^F|1Q2ry)ipNY+*M(B6T$*qM!<>@H}#8xl-=GLlqUc zX!L}I5CTVN@EjqM1@JQ54P2eWqD?q#dL3-M?NC8CWR@tS=%e`aVD ztq*MnJcB>E&l0k{WZ~7I-^kqS+6Ag4%_YRp*O`93`&W6j8hG?7CGDb#uHONlY66^oA;v-U|vbA!~{@OQ-y z(Nn0QEk{3CKxzp%kap2(j-eN&h8oqwV())UPGPIEu5V zY%}PUA?Wm~ie2r@ZVnKug!&R)l>L!59INDS0Lj~N(MN+nkyPVt_uevCyO4EI^3o{4 zt2XeYZ-Vp8l`280ZDqA-6|qO=B83XWc>y_b77Jkmlv1Lf=Ubz|;N&OEcxWJHU?N-x z*-fs3WNm60EB=|SwKpGy8^qO`ss=ZeWj}m@G4fs@mGN;9WqXws348q;+cLp(@ktyT zZ~cfbSW$JzqT1*I??h0?A@p`6bbk`!O1J02(Q;W>5EUjscpPpLAF2~k3dK;xx-Wi8 zXbu2yxFr0hhEY5*>*4~>!8AFP^``vj7dKvV#HsJf%It$NWxKER#>Uj zO)+kAZrCm`>SD}g=p0O@9jnU_Kz@zM>nXL6tz2A%@8@amg#Q`@YI!NXW+nMKE*1_Y zvuK-cmPaZuu>@Cz5Ex~WJHL@w7%fQ&m$ka|MGL)2kqwrvNuJIMQR$C80@jdd_08Ry zy$}zq(n1QC`-=jVK=x7DVXz*UK*HZu{{i; z@=3i5O4Hl*dE?g8oC~!mmZH=>)@}o>#GdJ?Z+h=>9LFwC>{KPh_6^3UwVjf zTYAE8_!Tqu&}-I!hi2ZZm8GC`*64eo z*LTAW0wrF$URe5~nXg&s7Z;{qHR_>iRh{w{h05c>u}b!QpBg~jkNd@(gWJP^05vsg z)kJEsy3HY0o~_}E5xL4%Y%R)h4x`mbACzyBf;6#w0Pb5v|B)=YHP&QtuS16>xc}&E zJFbab40~Z^YGcYvl!T_HyH8w4W5Yr(R)_)4c7Ak@*?GWc1BCg4OTwlg>E-gyR{TCVD!FCUvcx;L|qkHKRn?ly*z z0cG-A5_kg1*WMcLK&Ye1yQ z*uu78beO-wOm+BND0$VDi5zJ2ZBT61zwL=n;+fG^O+>KTWl1&Rs?{FgQlrIAy~6y& zm)r0y=qNPbmq0f0=kF)j1Abnj`UHF{msG>^oFrt+E9!yrd74TbWJn_J#m=u^HfXt4 ze?I>Wo;-@?GO~#Oeog>+KZ(Zn84`G4-7CUqFTC#1YbSIh6UAk--wDZxbB}S4NqdS~ zjnXUv0R{&o2dra@5YlZ3hhUTugkCJEZ;^=E3~gv#oUJn3Su)xOd@6Ynx*ax5V=+hA zuHPR6(273c72Wcz+1h-b*lP@9L+vUqHvM*(i!y2aM^OR;NN|jpmTleh@ixz-k!!+R zybWRuLhC@oUEe%;zJ!vraQ;$p#t?ERg~5X@is>eR1*5j1M=K_n4(Cb|VtAX1uxIVn z=vJf8c%MZe!R(*|jxvoB+aVSISw=*i4PWG?g#gZky}NF1~+iHR-!?C|Bp zK<)B+0Hb5WLnP7m1bmc^-=1jV_g*59^!0^mb(yF@BsaO_It_8oF-w=dU2KJlOht?8?E>zKy$ib_KPlz0rKUsBR28UBt)cupstM=U73#^dy$T z7gI0$kJMMgTgDz+2_p${`vSz#1IY5qlv4 zJZ^M~LvqR4;=R$Wd~!5OxBwWTHF_=`=ns7Re&{^#&|~n!DFA2C**c!DfB#o&iYg!D z6Co@qDS7H+)$<%9Q)11RlmMy%0|r$?{;Fz^GD~QLHLo;nrb?2c-fT3C3nskFD&Yq? zEeNVqMoTH*vhhweQ^Oll^rpx5L;5Yk92DW&6mCYJL%fxvWjhuV9j$GvC?Euu&|Ga& z19BP%Mjlo_>;trhyYlp2kTCb|IAg$!B)TYJ>Rf=z{J*bVaKCh96oSlN zX%%Y~{9<2UUr%Nk#Aj&hi?p8UGwv)%Y5ZkuY^-tlKnNRHd-Kv(s;Ud1EIzO56rkP4 zjpEK_#L|W+DD+e)*WC=J!$30NMb%okU~iKZ79Uq9=DG+jJumojP>7w_C|6h}kfF={F->&76V9-;aWiNDR$> zFfZ||HsqPZR9HLin^7`{cMC6y_sp=V$tN(l{u)PTMyDX`#D5t6VQH3BD2 zT%ZNJ22*CW7{bS%mWou&pcCzU`vt-K;#ny~7aD6sOF)H)lIP;kXlq~~$iPmc)&Y=z z5-N?;GsOD#cD_CV+!BarW)^$MO|BJEq}h4cHE44 z&`S94$LCnPxa`fDdi)`DzhRydxE?A4RWKGURy(6V*)Q(;wy+dTErKo;|1LcHSD@B|07CNwItr6?D?YzosB60cFNs3Z8G%~L5h63 z7j^0cVu&HFJNA}_3EfKz)y&Umc2*G9FUL*gh$fLr$cEZsJh^MGB8pDWCn0gyarOPE zY5BFprsJEdwzcnpSFgE$`dcu{VTcu79ic)Cz@Ka*9}}ow4o^)@J?-mEk}TPvypaV$ zV0zq}NvDn4+x(YWohbKwnB7JpFCT6}K+b#FXIr=P44_tUBJf3drJYXpx3f< z6Ug9j2JbVo6VlG8M+s^RU5%DY%h)g&1Ya~w+?>=RRFJRVfHF!Ccb>lkXRq&Ohe$P* zQc1?-HOK1u5t+#AC&t|6hzIwN_dU#vb|b6REhyngRzif(NNM3cSAKn^ix(ev9`5W4 zCWDmaY_-q;;oXZFLEC(gp%^sEzDL#;#dUt@7&BEq)y7%Bl|HUs3i~I22M?~~e~*@T zl*mJ(Y*|wxfqDH=m3y(?F_A}ksooL)E|kR}=TBYbN3ca9-0juQO9CvIKGq*m4Ep#D zIRB}>(%F!je3VfCqkP{wyWGQ-C>JL|b>%{xrpkcSV+kzpX5+3fR4wYb(n z`J5TJ9e_4$M5xuDMMs4VY-FxaZ#^y9db#9U{r%G99m4Ow1>FTq|65Rwe1z3b4++{g zu&OU_XJH$wG5C`rS==zeHdlcehgQQTobE>b4Mmf_)oSA5dx%T0Ss%diDY-PRGGsUj zuh5qJL-4bNOi9C^;jJErYZO|3^{$IaKo!RU5lm3Iu#qOuGtpDLj&rm=JNivBhqtxt&7$nRZUWkuHqs zuUpze_gcR~F54jr4Es4uzx&?t`T>$4E(_>p5OK;*tDr?^7q|SOhNbwNwi+IVT(vnm zI<_i+rXewcm%mOQ$e1oIj%j||FnsCF92F#%-bcS%}a}k zP{~auLDCt5f%9#LHx8k^ovB&?XB&+I_>A7fJi~A6t>~k?bG+OJsRA5oML1b3UlB`U z$8htK=}}}Bxv*dRf>xSR2!<&k0dM4b|3;+L4tlE2k886jX!L}DkgOEzJZmZK!KK@^^we@B_{_FN#)068a+X=Ydiu`9!z2a zKUk@FX|H8O>9>WY%nzt}fKgR{m~C-BoDWB4gI-Tf2ulF=Adkj=AN_g`s(GzKCCErn z{ts=IGKPklV-EMra5f8Xd`xVwAP zEMXr7&(9xNR}jUEG=sheZn6 zzt+?RqQy}lNfcuha}&*lJmo}wrLwtlQRACS^5nPWdmfua{EwP!02nECvi|NTO|36JB(P zS$vuHn}jP&8R=&`PteTzaU!PFv6c76v5hNPm+aT`%Jzp;P~bq%=9iv=UX~IMJCidu z(_i!$T{3|Rb2taaya%fW%)o(3WH8BuaI63LOxeRAI|H(Ky=)Qq+xqv&&Gjg0)a0LSFS;he*_KL%s&-lK-OV$9k0uQ z6iE9ii9Bf*jFl7(rziUKqzQ_PdQGmw<$J-h+avQ}xzh5zUb!RD$_>P01x~u4^3*5R zLIP3rXZ9v9@_-LbI6Ed@|ZEpR%}K@c$zT4gY{!+r>}n0-xIx$uP#)G)#Cu<^t-% zPW4bmY5s%Ry+=T%5?0dJIPOA#K|o(Nru-Yk`4=3^`iBt}J(A^IM%}CL8nf>pZQZi+ zzI<6Vd#MlwHXt%zmbVeR6O*on0E6-e9?U@hks*S|cZcxRX?Bvp=E(q^Bi1Cl*q=#` zI_9rze=iDS?{?begCC539_jd4f@I%>oyLX|v#8CS_A45Ny|timaBQu8+@?Jm7$*tj z>_bf&DokiRTjN>H5tcRZ^k-5IGEq|w{7iG&*+>W}7KxO*Y(`I%x~bv)q*kXpNjZw1 z>+D{*7QmEf*3G%P;1ker!S6*T)(}s60=G=)zqPeE-F?W6x%$s%%LF&xALVZBRf)TF z=cp7Ju>mev^s}SbHm3c& zL{ClRc@&3QU)&M45B+H8o^3O{GJBdzHyi95fvXQe`M+SgFVzdo^Atmhu>KpEusQTx;KG3msX47Lv`=sNz zK5Mz8$R3dFW}I`ruTG^}(^? z7EMmlCLBb{om#XGR8#0VJkXlozUaJEso+i0J18&X%Z$uIw>TZz?RmPVijDjui9$Vf z!UsFjPV{{^9Ef?J>+c>}I-Q_v)h1 zr3@?A?2q+S>gHxH+!L^K}bFKcPdGT&n*|X12(6 z80#baZ`KpuTYtd+pRBBP@%C%MaUb*eJ}=y+8-10&z2=BP9Tz%oggkj5&6~;VvS?984eS%Vyw;336iEDkrW8A6ryL+l^MVDyIutRqI6lCfK6cwjkUM(Cm zTB#dBxaw?QiuOj6?qpG!wv$#_qhteb_fk$(W4(cXRO~Y5Q~Xu>T6BY7(!)X5?_D9m z9x~E+g?pw6ky3WANPuoaKyLiY+LJuGVfkp^3WAqi$YNRm^Q8abvB!P?P0oE`TH0^I z1PN}7dFG-m47jiJEO}U^J;rP#pL69Vqt2VTD8we}N?(_&qn6697962cZ)v~`P@`dK zW5Lwbn|)VgF>`gZ!7sq%8v{|APigS}X}+=JQ`V2yuYBZLKj7h(e|hKptx%Wn)pBuX z%p)2DF~EnlWqvFeIui932S@26#+G9U#oDH99=tzwuO|a53{xyv6n%Y^T=HgXDl6dI z!`<0S+BB4O=yMBWG$>W7#GB*)wtk2>Lu{EONR$!ixXMz1xvTP0Z_O@>W#rd#FO`p5 zlOkUl9BeKHKM6NxeQfcunMxGUHEba2^-x$-3~E=G-)#v8pobnCx(EFkuoOVF7kT@0 z?&9w-k!FcaHU@sLX%_#Li$&$vb}6L3qqD;UG2e}As#nWZ2P$cJka3o$&y zGE*3sX?6k+{Y$$)H`eRJKT^I^E58UpeG(x1yXxt(uUsrXdh{2z^k6kGYW8@3^`Si&lDO zmqvOr`1beXJ@&snWFrYN-Ao^Aufw?5G#{+Cz5w!JjgqTwffYwu<28H94=GEQE8_5; zuH9UP&KZlCRcIixer4k^S@@^mgy7I1bdy56hMB6MH%%V1I)WsSC_P3@qR166^_H|M zoP7q>%eHXu>rRwCue%KiT`<6lWNXc-hL-W;Zw;y&vN4{(7wx=8O{5P`BN%Nz^yV+M zQJC&&`uX&5+Q4T_qow+Zl-X3Ci3Zc29f{x{QotZCZBDE!(wWgH%mis304nda_3+I{UU4 zslj7W zt{`qP|L9e7!;)pH>6?9tKixl*EiK-ao4(v`pw3-;*;(>k`WE@%VjVQwr^Y@)5!J_R zBgu;;)2}oB{;L^oRt-1R!h{@|Djd;mep}l#2djq_=}G$|-!$|LjfhSM}c!d85vagHg(Y+UCOIDWxJPNWdw*2ear*eEm`ld9c@5 zG-Ax~1whLi==F0|Xmx%gNR?vgA*w62Jhs&bYoGnNcjL<=c+E4~m`H=>d8~f~^MQ4X zU00H?o$Ft;q+OO&1LEbx0NeMgHO1!g6};QvuMP?rIx_4Dy0JR6iTyZ#X3F3?74jvb zQ=is*ajs>T;*$)se^e*gs+NO7p{!dxD4PqCHt;^A^%9d_TY#NK^^F35Lu~Hrwp{2qZpT5^s_gRAusHb_1)0! z-h53iK70klj*3ZJ#5PGCZ@SJ5wFvxqwR?n5J@ezUXVEwQpla^Y_qhKO%kbPioF`GLjKdZAYW`$^ApCEG?OvzK z@wNL0&Zsdf@4~Z1#HY;Bu>>j>;jp2kKQ$JBAd{0c$H}W|=gXcfqC;6<@Y}2s=AN zLTg}1xK@PZK=As_+I7N4N=`%IW&Bz~mqQJalSZCXOsxrCVe0kS^Rv67%)6nHeN&#C z;Zf4gN73yO<^uVM-%KuF`B@wG(hpboW%pWBPhnG{HP`FM(bmBCCQ1&#tjwN{1?*8$ zTvAY5I3fENR_x-FLyQ-8l+jy-q~11Ljrk|{wB5YyHOw1Um*@@i2DpMlTH(tzXZWvS zviJ`l{J&1RJ|E4QZa`nRnM=g+yTvT2P-O;A;xArG;NbaK6fvq1YlIc1G?A+!W)n3U zd4H=Z%|XBP{FO!10xDQY>1%;5@NWl_(OINjpI*2mi+Yn;l4ba9L&Ijqo}PQX9J%DD(gDpvjel zJjMpR^YMuSFAM{MuY1Vb+;wYhu(#Bm)fhPxXkuAn=X4x5WI{X+>ouvt?>F|9^O0c}uMU&(;A=vO-LXiuH$NL;iJ>;Tg2L=v&7b1e#m3ceNY>y+Oij9V{G4 zLP=zUlr?@3C}Oww-*yi~R^g9}&sIYIV1V$!hwgos)L+B8wnlgje<@+dC$A!`c%$Xs zqWriPea$HdAv}2!Vj}CcAOv+wRJR*8+lOsmJFXRPZs$vGAIw3HjR%giJNwxXL|t5o zCJH;uU<$Zeler4)6gm445WfhgK<4}SXOL=;k{8WbzAmyFO=8mgx=Uo+Qp#t`+)&e; zKgDBg8qEaP2rl-@D(ly9JJUW-Mo8PFE>V$RB+dzRhAo{)o093IRlpON{=IhS&2rZ=v1!OK3k}#XmuH6VD z3%?u|6_O9!mVDA3ij&g1?HCt6Aklw;^-+9}4m(%k7XeL~g0*Z{jM)@U(_~AV8JNSV zzdk-sl)S47pxAZ@rRidtg!kR)W+xhlt##@k+d+}p3eesh>gMcO1iEkTl@A;^?CJJY zh6g$p3(FfQ8{|4Mc&sd&znS>D{rI?A1fD)jr@Q#Teo9QGt;8!e<1v5M^rLQu zZsrjGViD|;pJ3owLHuKtDj{a&7K)QGQs*+ckYGg|9NllO5j`U>Smv>mGmoiDlr;=I zI70Av(0$H%m;XoRrzT3N`ahb-qH~dalPq)jZHrNf^2Y0!lnQ;pF`TOM#glV{?YX#c z%~b}lSf>uGl52XN-W@#SXT1O&1vb1kUS%f^yKm^_?*PPJdWoESs&h1wpqFoGlYx~65^T{j9LbglSb-x>o3J!0PNEEOd-?EV9`^wtYA7^=`ErHl)AdFCFel4$obrPk zMuMfSVkQ1JL+q+Xsl1k#TlFJ4E3f=|&GkWxY&@eNTC(oTk0xVEbh2<)lRD9C=IC7~ zlY`ec2|&Cbs^_t#b$!x#m%?@cwvY8oM2TO5|t0 z?}OEE@nD)m&-Aq;Fg0#=mS8Ne{>miord04rL~rvll;>iqAq#Zj@M02k+&^ACFcpC& z*42<=7-aH^oh%$QAKibpq?qqYKav7;Qy{H&PZ1qECl|2s9Dm~BiuFVLwms2&=JEn% ziFzvX`pEO(`s{Uus9sG&T$EBrtl4aaNc{pdJu=d(4=%qXCV#YFW~cme#J6U-^tlJhCf{;*&g+&vN7JdAw*s1qqe$+ zxEFPluI@z^2;AKCMk*?qh~rx?|S$1uf$dY3UdD}gUaBqL)lpl7yPs$sj8EVjF$nHW&|oAphnqreo#ILmnF%ZrS>WWEWQD8_sIBaz8Pi+>>UrbNoc zY=9ZyAQHQeEXyEuCVWu*o#0(n?0{c7Kh@Q=QdT(@$SF@mKbsnO&?B3E&q@|tMeL?&iZb-PT+!1OlQ&<&AcHb9 zQ@t#KQhCB0Td~AMvlnY3bsnN!GF$b2PUzLFB0t6Rp1xcHoOgK_V=aH*SMPSo%TvI< zSewr}<50D+ z${E}ZSqirW*dE6~!72-!JITI3gy+I7`=vG>Vf)(B3Ds2cFyn%>ETWJ4d_|> z*wZOAJ=}jy_$TwKL2lFlK7&`rUu>^|b1FE8lH3Nw*6H-Sytz z=j7l0=JCbPv<=27SFR+y?!=CqsPtk(r}P1Rb%IVTNAhcyXnSQ4$cT zgghAj9F6Ti#0*>wU(rr2{`{+p-}~K0+&7X1CV*ccIW5MF#apn_PU(wC?h*?U&_f|& z{iO*KqB94g6`N zMW0{wL<{BHw!LiVXSC7_1JsTObd?_27?FP5BtDn1dCAx1w8P&`OfT0ji);i9MdPLL z3C%_%tg$^-BSsEazxy3hmGMGx)QVZ;zo^blw!cvPclMI(67+gx<^D_;2oCw$s=f1U z5nSPje}$FcT}Vn4`}2P0TwoUFQmNgb7x$?yV(%n_%!2Ll47^+mIX6EgLh#6SZ(A7(0dw~)JU&5N-p5lkbhXb6$I%KCj^b|ca0 zgTUsQL4m@3)PuP`(=E4v(%f^Qs=fcWfeJ%BvZL(Zm-_fYYr_ZFaW1jSHRz3z>dVqi^)QlZ1 zHACXmwX^AL4H4*;<~yTDZpCbevZz+iXpiD2Ua2W1h9J|Vdsr-|oIl7S$KK{KkJ9dY zh%(s&E(VyHtlQYL^0VK5udueeP+57+1$R(mAvn>sw8E{EtQR|dk&08})BuDI#jCYc z*xGgHDa@guIR$`8LIPVguh(yPeCfxbNfM<;r1)&B=lNvJtWza`{_|Y;ByS8OuW}2# zFp$ln!+HP@h)m4Vd$4~gR=m0$(2k_ni1$Ljr@(KGgd4d~Te7h-%- zSHSD#vZL&c)cBNyRl_Xf*OPj5Y8VvAxLQ1D7?kTBcYmKkA^Yv!a`T*N0);F)2Md~@ zb_1R->ErCf*?iE|@fc6eV+T#fH$rh@5~TI5BA}q}PtLHOFD;sqm~qJBWk@9FU5k!jNS_dwl2w6x zEt_uWuY${65UStp8`I@Tr!ve5EBO1{pb5_8V3>{E>ECmO&HJJKd(1$M>3z4<-R^5n z{}GnG5<);JiHcb1^!oEn*N6C{@Ms}2NR(<*DWl*YGg2%Qu$rM^U+6LWc}H0I$r}Gd zR1)7bV9bezkpcYTK8#Y0=)fqdCv*ghb~U~9bg2pcZ2Xu{{ra7glZv?}j;r zZ3Y`lvSznhS`0Rfnm@*d(iqu9jwO%A7hm?Szv)*lax+lkiJXe_mafRb-dJ2{%Cgm? z!gJ{F3D*(TZ?W|_mw)9$we?hi;J%sDR=v%ACRuTnL+uP}IKySN-^It!bk>yd zzkEzQL1gqpab=NNT)fGzI8qp!5ED2RdH;O*+kxX7*J4up4_}4+mg_N$3NQ#hFLhmM z=cqEYSk1TwV?vmKil+|yOAz{iO>J{Bh``7Z*!$eF$;Ltnexg-XNN^ zbAJxThw{~s8mp=i-QcCNq)Q}ch1sy~b1z_~8njfmGAl!B*#h4q?_5kSIMRsagqgYsE!KJSl_76{V(Wtbfh0}`xwJ9gdhMNAIj*W1CL~%U_-5i<6hz zi2azJqj$T#uHzoB*_Y+1v~tvcBmdCRT(ACPbp1_~Y$VW@D$93WcS;$jiuE-nUGC1{mG;~*M7MMP(Oklux~hHr3SC)CGh=4;^$SF3+?Nj=ilO??Wmgy7+>a``BZ3;*5K)+k5asq)+i~r zm@kXNt$c__8lVD4l2R(u(+~QzTG_|DYtNp`Mt#VdChyj??VNIE@oH1qc*7GBo085! zv`3l57+)ID^2ZqZWV(CU)=ItpC0zdQG`<2mDds^&ew(3}P{5iQo540l6UEz$C>L82 zk(`KA)ymR#y}?x(;!-K6tCTdx?CSLMQ~O22_Shc0hB$@<&4R45MeM%O(n?$~A*!g$g(s)vAAr^9*hY<*SXZzWg>Wo69|u z(4T-62`dMEx@M;v+l{7v3kmkWA(P-x^4ssFvym1h zj+?vU@v7Q9+?~2w%bwZXk@i3K7pWsrA+sTbnS=QNj8lLR>(yC)nXxKU*b6Hvn~WNX zBz4s$WPV7Rf-vqh^ozVVz)MjWewozRJBBRgrdo(C0^Fu^#CPMurpT$<+n4^$aom2m ziUh!QD3vD9?~~^ThxLiCfBV#5{UREWKsWfZz|Pwc*})tgy)~vy^K>j@ULVZeRm}ZD z<}`GrR>j2hE(7zy5Aa4Y2HO_^lf$N}+io#o-<2}E1Jle7)CM1ukG%u@%D0cCGI;F* ztdR(!Q$n#*fxonGw{`}ko6f$5I8(JFQo(28c`E?l)7Me9iCpRUA^(nZB-@YAs(-y5 zYfY$U0fLqk+II|aNv929GXs@a8;?*o^7QV$6AFUu@Ee(OY~cB0k(({jV*CPiF)WKz z03v}bfhiFYBs`O-QolrnSIda)+@+D98t!YKJLr=tXNFx2+3oqvTbt&*664F40lrw` zwEns%OOqM)?Ik|fxy74rXIqGUI*A4@>70`Ud2>;8c;<2{P@~q4nJfOymQ|M5^})}a zT>x|CM~@Pe(xCW-w~?x39IM@D?yZTxlLd1K_dP5X3{+@RfAM8ma#B7|hu0~FKhOaG zm8>;hkgudhzRSglLT?u&1cjpyf-q_}7}?`>qG@%Y`B`K23azRZ2Mz&d(dWH&6^iqQ zwa3Gs1&ACT+Mu2|7VtKmW?MZoq8qTZD{Gv2^t9FxBPn|*(NpZK<)pX6>T~(c+lIeu6i z>z;{bpoO~yLJ0ag3x8#RNf|`TX7PiX(GmS<`WW3PsNMce;qkR-qT@ovYum#!yI&kD zIb!CDD~5;ZBInWw!%7+nyl{w0@Z#{eHE^TJ+bzty}R~;+g-{dqa38z>~;6*X2 z0Os_2_ij>xQcTGq{y`e0f|^ zOJzT4+B{iiEkvT5ms$;%Lt}fu#t@tS0;<1a5rkj$>bWm`GQQHvL3n+et5p6L?IFAK z$~9JC3H?8|-U6tqsBIfQhwc<9kq$u#NkLi#MWiI9yHjb{Al(Q`x6%#LaS#wtTDnuZ z8%}*2pXYt&|G)W$8D<#vS!b`c?sfONt`e6`8txLn^tJt~-@^|;t%*V6+`)8?fl=Up zrtogcpur(Y1{&h#%>KKb#CywQU(D5s$f*tr{E zFkf~KWeG2e3Ix8{bh?l-#Sj!7LTDJ@{9!$1KY5@?`RC&ue(Z19a{)Tm`1_cWnmliq zgBqg&zvt9k%s9^67-JuKObBFh68Vu`3Pu6pOBghZ(2?&m_j)0OcbrL3;WVWI*7)i2 z_1__?VKtRVM=?@dNwLCerGx@^87X(exNgh;(7pTGJN@gP?bQ&;0r{$zS}u;cFbR&SM$>&D6a?11z_pgfr%v5nkgMVzsZ=JEP< z0M^Y%{Lc>4`V34KeS4G8_mC;*J+`1<%dZqk%yOF=dG8EMEe(|sTM*Sv5r+(&?+lw; zSC;n>K(uXV!hY4GNCN0RXV%!c$ZG6YT`DbR#wYm+=^$Sv+?xh{k6gB<^V?AmE{W<4 zbBdoh^x;H4zH37ya|2hsAcy_r3Q7x(267<~bwT4|3fE`m=Gl}$&~fcM-|(I|EUggR zX?~92=*-(Tea0<_QU?bAlJ$W9GUmHhY%+BqVg2TE1+${9-u>=~LDfPNW77yS@o=e* zb~d17EQOk!lG~K?>g@@=Bk?&0*#i^nzJ(KUnT%j!h%r|TTkWLm^TCD7r|?A}yV?{K z6sp9KcFKeR?DbMfrkna$ zO8bnxa987wu_26XVo}9G5BQKl-eV`63kgrYVrFNOdW2iT|8bOURk7?;xWrU$4nOFq zv;8C`TTQNqgxU7_)}7O%ArYC>?qqs@CK zA$2hCV}|%k8-ax1+?wx;vJ1l-w`{IUpv4oo-7}DO$TYJusiB&pE$|%c>ZT$4>HBBy zhaxObzTpcHuqMdTjZjn_u@}x_o-EhrVL@n$j?>3wa#I5@awQx6w{L)Iv`uy!LePxbOK|GHnuA1B(`=f57Cm1zgEin{|%XaPHH zvWdUg^8)=3qn$@|Faa|6Z+V-HNUtwP)W;cRv7U4qy$ldJsB>$hfg*ZJ$fs-Rt}kZz zr+Hp>-yL>kdaW;Sp&cAD!O^L4`+uf~TvllM0vdy=3LEJ))_ts%vjKDv z{vP7_Ug`5Mq=;HZC|&!d;A_fNLgrRN$6P7VU%^PWM}FOSJsp4J1GDd9R?FaQqkgud zk2Axv`pb?5`*tdK;|t`xC@1ijzn>R-ytKzQa`>RQpjL+6V|&_#^}&xV*D6*EU4o(S z68`3#`XgJVI#A=6rl0=ez`B{Xmu~OOib8+MdieLny#&`r->?|lZ}jT)+U4&UOUyE( z-0BgfQrMz21brA>gdlt z>^ixJGx3I+HVtz*q1?p2?470mpbzOTvt~`-Z+t8HMHu}}?&P7Po)3fUM5gN%ZE{Rw z74Hc2cgw232^LKC0t!aw@LC6b_z110)RjD1{!tF`{kMr&w_#k3LeN*L`%dFkkb^Gu>Vx)EExMvXGHyf_vs|YfLU5I0@c38 zPv7P0GXMN*{bF1i8NcamV2EMG_hg}b?08%Mi~>*ccuE97>f7=9jicHWAhxiyiFlv< zy(N6;WBn#-5&N$S%-*t@KmD9x>vzN3VNBAv5XJ8*m;{5;W^;@$9lqKD2|cpuBl0~o zpO$%fUc)NU2+Zv31(kWRScGi3G@-@p6H}r8d*7y;!7Gl=-Z+?Xbxih<)xE#Td zzrnu#bwX|cLu}3IUftA$UbbR#53Jy!^N$n6iS3KBDDbeuRp}HpmHQ*^+q7kM=DJ@- zGsAO3lT7%3sAk#Oe+~XZ-ca&Xen*|HttHWYu(aW-j6qQO$=R3Z0vKZN_wJC1br@&H zEjYl?ZJb8@EUKGW0lMycB?p;1c7E()rz0iS)dwd)PixNSqdK{apQ4iB3NM~t76#&V zcTSTHi+dWBfy^!Upc>_xq1r7xm{pcYfkj?=LE5;;X}#b0yk3x zRi85n4fEOtlGL^stpL5$09$Tvb{_2@?W{}H^WhCayGyAs%bL?HJ5Hmg@9Z~3S27CP zfQ4pY3%$la?Lq zF}@+W8X7s0a;}{4K)-C!ycJ8%AkJ+618x6((u+fMEDbp><}T5)5o>$JSP7yb&Fn7G z2La5Uh(vC&A{*w6CB&pR)9cdB@R$dHa6y^vKo)U7%Y$?+4U3RxXepA45@N0JN4oh5 z%!(JUlHhI+gf5aG+D)qK_j0OL z9AbUgf3FLDu~2C^SKYEdg<4iJLd6PWh>6(|FNY4(Iu#9X;1>`N=S8g`;v1p?Fb7UI z)gvOKt|3O@M@)N42Qg!kdY>taAc+o9-j-Qst0*k~i(Ut#F0QmR;rx{N<2{`ENe4pZ zxtv^wkHr|oUyo_J4>7LDG>SwfJq1fVY)+J86$b@B(l|+ z&4dx>#~hzBRJLk}2-h-#0$oV>had+Xfvo5&1{jJISS5A>=9c__Q6)oh`k<6PJ$88G z6TVJGas)YkM@=EpZEI1CH(S8|C7gtxg#SUE)z!xSxTbP}onuu2Fe$o7I8{Qfj<-=d z7B6&1M8ej<{4Ldwmbki6fe#83KQnX-O~m!=i`gFR6U4_i-tU^01^9F6BqFNS5A!Lz($jnB>UeI1{|Sw#0QdWaQHC(es0rW>e!sh9EBKeYk@3 z`7ZjZclc_0;hItE22faVlzy5m&6(lSFKx@4m9%Jc=@-ma^dO>>r|+W}q1bN$&6pr= zAuX&h3J1Z(1f0*~V>hMA65`^iVcj*bn z?(o0Mt~+MN6bOi^L!pyoRU z(n}_Io@YKPKvEFO$nQD}c5{NPVu!rL0hT_8s~C{L(RvnJ-5e)s_)MNBY7N%q9ijs% z>MlQequneL!}d7Uo@C$Ch~UDP52K173A$6ldtMcHEuU*R(I4V1`vT9V_obboLPv3U zkvC_<&Ud=s5Fzo)++DSMK*$bxU{IpoOWCJeEJLs)026DdyifY^$R9{P^f$$1-or-^ z_ZSf?M*cUXs1pl5WIOD%XG;0a8zbLiuNW5XYSqJ-MzI8KVTP8<`BQC=g+tO$ArHC? zmh?XJ=bLh!cQ(G^!|-|ZFY)IiO1pOA$(gR9v%-r3@w%D83He`jXjDcUO|@y zf?Z@m08tJ^EZ_G;SKW|rW?ma&w-{fRVmoaxSZ4CK*ntc3N2-EuY5mdNlm4QUzicAN z=jW$=k?7tv}tSAUJ_eJ<=D97@+;5pAO+rN=zT_r3N9 z(0ncM!)8lM?XlRYPa2IY50p#{)sI-r%7m3K0RmY%rpB)m=9=Bo(KA##p-wFo4;di1 zgj2%-&X4-^CmWV-b`Mc;uH8LPv6V;El6cv zUO=T>PSl}*U zN5>=dz;%`X>o`4*;Z^cTI<7&S_#89xB;d`?-uuM0NxdrpWF+ zE4Tf~0qKR<3uO6S=<;?>o}&CtR2q^HV<66#hrY+cqzh6bYPhB{=swN@_X12304!>e zi;Nkqu2bXFZGxM=%k26{&9}+IKca^;U#rI*Skkd*ohN_#T(;sC6#lJE*1X2WECtye3DZ%G$RdQduH!OGTxvj}|i4N1>Z&UM+l>wWVjzwLz`9-$RaY+Pbis*F65+ZG9nIf9D z9<-!2ygNJ=AIIRF#1EJ8Tl;F!mJ5Q^{i^ia-@DghJ11Atnx9)xs#pG1i;66Qv69E5_OUUC2* zuN^oc>MSOjtQKS!915S}vgtS!t>t#CAo9;X7anP?cLZYU2dm*hsA2Cho$Q+P4ma;P ze;-Y0-WQo6^DybIKs!eb`%@!F78o-_@eLbNz+4xDx)opQ;Jaz0MEb1=-#--P@ zxQcvyJcYDGq~h^xIG;E|9YW1E^#{!=VN}JT+N3Z-qse>J?3!QS9xHc0`5|5bWWQV5 zGkRSFJ(@vJa$>MUjZ-9DR?i6oHwF}W8U&kOQ`gj*c!&(VWll^LDoZ)mZxtpC@N|e4 z^zP!=I#KMs$^7+T`SWb)HBT}aZA2IDB?SsYzUt}ZkP-zzmrrxpi7)7jaq-X0mQ=ED zocvd)Pn7r=d=3GNW&l>6`CJ;9yll>F%SHxn6BgD~OFIeW_lEf%>vhzXq<-ON;_)^r zd9!+Fd40E#Ehf#V-sV~Cq}4&F;ir;fvT3Vp#fJeS+=Sfki|`)&b?NV#D#IS0yH3~H zQ={abmK#zds_adA`X%j%q(te7oF=<|D{FxPZNv&{9KSGYdv(lRF29Nc0H#P8+?gwR z&an(chz6`WiG-(rjFbf`=XRO(pyHdO|Bl&kIQyZWkDc*4MhJo6YnpLteqp(m#{}VS6=_V% za%aMy-}Qthe4LA8=%R*siY%@CQU84}Zd)?^oKR|+k@aE-4h;SXtR%1|Pi8^rv(=@< zSwJ*5$L@s064L4+isU9D-U{ri(nOEM369f!YybLSf-B~pk_CYxzP1aCyuFX^-@_}3 z(x}?F=W0~G-BnpV2~MI<`^4stM1NM7UZ1@D8p=RD!B)|&X=Pc2kM~%L*LV+Espk|d z4u(4Q+{Vf=0f2pl7qhO~x^Dj~M>aFY97^w|DiMN!*Bq{bsr|2+$C|!BwxRpg>#pH3 z=mzn96jTgE)ww9tatM3feaJSO`ytE0Al>%}qbN@7iUgo~#=|gP{ z9a4dKb+pFGuz<1Sa25j$(Z99}?|HNvl6>Qrlqu#b!<1etz}IYmlq z3_2VMe0>2p+en5+#v;?*7ip;=L%lm@;I$JeMRzYRt=)@6cioa;ckRR3w@U9`)n=4( zhnA4!q%~5WrpQ%lCmXoyYVzh*vny!Qmp`!AE>$W*X}688Cx*=uWSc(}j$uvEk;)L<@u%%H?+i+o*Cc0j-X^RUzntPn!~S zmMrpJ;oud-(Hq$^S;ucSqcyUS*VLBWqK~rCg7r!b98jj}?bvUf^QyGpShLbNxlO;h zmy!z`?`6kN7>w#YqH!C45^>%*SOh&0%NN9aeFxJ{8>9CnQncVakTfMVwfgL%-?-6l zy&)Aq;^I0rd1(F}-+T07@n@Mt727L{7(onF_M^Vjg;mj++cn-u^Uf!*g#lY^twE^fdf(=H%5?^D^KIYuKB#Md0dwhA#dyApez_ETo)T% zz095bZHI?8QAOxO&y*N?V2QD9ZKq^gSF;h&TWeRGXw$Iux@;GVI}BYQUBrs zoSr-mFQ@RYk*me20U={Oga<1^Z7jLCAa9~WXoBVyyYejZzoh>fc>VWrYPuyy6T{kS zMBP55yZCQ4p>+4<(nT=!lgfehSOjK3-_blL1k96Imc4o=9_YX)sY50bWAQwm3IT(c|+6>~pH(l*Fe1k65u#$W7o*Z zy=AZnD>99u$O<>JfFPi0Mm-Da z^BM2KYl()VUq(?nO0O)6L0ApFSY?8O{-xh`4og32YTO>o7|se~t*5jc1DyKacg{ z{9sp7mfgtrRns+b9G;z5qF=;!XNM3%q$&2cx2&DFh*2P8Sy^j8ZO4fn`Dy&k7rl)? zjox0wG(mY0c_FR&UOaqsJ{tZe(93DvjzdLXx2_P+?z^|6&by2ddGmfAwF{2-om7l1GCO{K3Fyg%A*as) z5;1W>!P7ue<9iK2M%}oq$_)e6Cx3;0XmiwTYWBSW^t#1GdGfHOWz^EMiR+%^>YrAx zKZUn9R+4_m6|6lquqAsuKPJiQb&b&xqT4K>E725M=Mb!?GAK0kJEUx{WN|X?FM&hR zu7gCPv7(pokC$;lzVfkQMc?KROTI{%5;D51E=7WVPr>_SKu0ajo9){7*n2FsM8M*8 ze7PRy6NUs)JW8B|AUfdXDmk9;STUQnt*8Pu!;|8_d_V0|Q%p2thGYI#Gtab7UP+f^ zzhCZZaaJ@f7opKBIji7$sh%(YrI-pg5`THDldQ(8vsU6QQnPO7m###IxX>umnPg-n z$KM^crjIFCj6k}eW`qW6`Rm2W1n+44LFs-}H2ZVPo*e63Ya4-2RD%ZPh}I;@N(*<9 z!S{{?e2|oldAURE0F%hCkuGNP9GGgTfEmJ(LsKySbtR*OO8+_m z(T0Z-T)2^X?y7C3)Av+B)WU142OQ}2hI!M=JzAy9hI__UScxVh8eBM%4#Ti(#E)Ua zHnZkwj$GVwm0G=24>ja$jS#azDrqgtf*F^=v#@uAIZ50#d%~gF1z9|K&1H%ZolhBG zc|x^$0VPVhA$8gtLWZ0CStXAC&{Mx8bTcn}rsj-}!BBEyWiQX-`k8!x@E3eV9`&Ru zUvjO2nXQuuGoJSH9b&Ck_6dtaQ!ku9E|1?=?d6nK=+l?Ki}^xp!Bf){8W+l|@<)7V zyNLx8|0}ISGqVtfF;V2p!FTH43pnYhU(ZTXUI6n+sSYU-uOIWILgfoN??OzmwAe(g zbsj{22RmcddsK*ifLA-eWLE~@qdb52F+T6qcSgytvs(LSyWg27Er5LbbbL0ZlD)35 z#tSJK{*cvB(NghY;e&I9+pwg<#bGZBIrvpUrHRux>`TBUsz2=#Alh1ZKek7|$lp^s zmI`QVcj`2rq%j;wPARu}x~DM`gV66(kTHIopTX;c+Yvq2i8I%f7a0XJGyG#A$GUq- zkKVpvheR`paz(En^9WX{JH3VtVg7*LFJ8v(jaVFBEo(<=QdX9qMSd447xyfH#>=XYGy&VIys5R8z}= z_{~o~5t94%nVu>gP8dX{J7|Gr>ns(&Wz0X;(dXjdA76)Q?_X6XzZR|kyFTCtzc{Xy zsec3CnVqD^TPMv0IY7}BudbvXE!gPf0fM#wauthCb=+WgD11k`Z3U=I%7qGGEts z{(*gVr4qYPYjwkj{JIUC0dc>(!r*aIv#l3;75L2HDt^EU7=P!~V*pX6T-=2{V6l3e zCvm3jzma@QPa?2yWMXRuVqW0QJbYz5#oJ;>JrxLk@66jWhnshQ_reZ;l8#<<&v zJ@c;smI=ooQ+>`4|9$#C284Owkl~O9Agya$6g5)5LchO&cHRlt+J$$(u99(!ptqyS z;nC(o$cX(LoKVFNXt|!QDq!8?TLknE0jgIWPC{78(r+Pfsc%K+?CiG>gXk(U5Sg6n z`@k(@#6)h%GF5&Dr|YG5CN|b_W!mF7-KFTS9=!}6&I};v8ktn4F*{0T)n$M14;Qr8ytMW)n)3Wn0NF-7 zvj`4*aC9uG-ie!WS~ny@8Aq1jyr8bq~p?yKU{Rpe^oA^&4r5 z$Ct>wr6SN2fv}siPB%C$fzXnOOOGW#(OUg~Q>agd9Nm{RJ@6aoR~hvL9`;`g^gKL; zYojQ6PCo9K%J76Nvj@D|66gLsz$o`3df2{L`XoZdcXcFJUZ0kioH;mNz|=t)lF*3= zxa?Ag?IR|nO7nv5QwOR-g5%_iE~%FMji~ZW#H$#mL+)Iu+(*BXta5$U@yikj z_8NtrC&=G1^eo~dA-lb$+n&KyYcX?Zzxj~*cCE5tU_)NlbEbEp!rFtjXTQFd8Y<(4 zzH-22YC`pML#tTU&};?)h%ONMe-GywGer+{49;mT`NYdoDbr!@AXMoYsJrO#1Jcls zM%AXqNykaI^y)F0coIHp9bhg4SZf`5>v-S*?U*@v+$?nmUxVX6tgVB~T)#ih^KZW$ z*dRhTb1dAd%B1-(a&+1;o%56fC~c#^6w9{vtJ+>_2&2@vIs%P@%NR?4*%#LmZyNr? z@3ZHF1_;Fys4#T-q`;3o;&Wach!L|&- zF+YSd0p^lo3j;~wb8P(~|5i$Z0P?N#T`>pn)2o$5l@b#@IZL?@A(C8p*$jjhQfp?P z^BI2V{uj5G{UPshfJG*t6%-jMGjS+( z)d6#oNb@EYzzvVDbG5u(Vi5nFFgYA#o4KkfkTuq$Z%gNJ*8J-E{8_i&ZWp@$1@vL| ziO*BocnriurOh6CZId{-6~LsTqIvnVFF0Os9ke=9-e+4phR2aNL2*w{`amgsiLwP@ z6i@p3Dy9E8Hh=-b3QtAjN2Tw?|Go$$k@>Z7sqEQGdH=o^2yNDaIzLpob9EVl#e?)W z;tmiyQi|b&gr-zsE;rowbtOXra+94PqV91nsh{;sP{X44ZX3uwkN|5w`OVXy@-+S5 zs+H-UvKe1u0!}p`lCo-1# zjdbLu05p6x46_@!wPWe&VM+JBzn^Y#Wz7^zh>QKE0z2E(Ay@W{K+Jh#cu>HK{HbZT z{)Y+8m=|l$SOa(cfykRe^Z|%AYDIva`W_hk04uVJkcqA^0kj>==^32ODu}%xY50#q zDKYJ#^0hI4pOv{o?=6GNfu$~R@QmQPyHKCxx#XotV=i(d`S|ux`}Q*nJ|9qG`fFbQ zlIARiym64ZJOCDaRueQZmG08uMu z7SJ7iX>zW(-ndd1XT2AUbHgE^ebR??%NqZ~bzVbq$Dn9 z(udow>jWz$gEp;OE(%HgZv+*j$0i($!dZjkKM@3wl~Mn@VeQ3^^%hDM$Rv94M~Sb^ z`f%}U??zJ6-Ts<0dW>_c^pq59k@S|~nYPmmgH%3pDb$O=$X68iD2z(dWI&HD*xvgP zU=)<0E->#ONA&#zuqj5*R#J8(dU>-q=>LhR2Sw9 z<}~eFtXE8!IQlc6j#!Q0CjYFaeki!rCHwb|^V8zNEG4O84 ztKS8E;EX=%CGp=Q4B`VhB%&!WWT>5GhQ5HC{1&`Tdo|O--R}MJ4!_>%7L|Wc$L999 z1iHHwsj3)%pMa`OPxz9t1OwuG6L)*dwquxSq>3kp?A7gwO}~$+!vr?K-}Sr1uwHdu zJA%DKcmRlLMl|rJ3HJVcePWxhxdNUlpM8Dyr*N)Z#2tfDhSD12E*BJ%`C$vZ!3ic~ zL4;3*lULJ({Hob8l$%#LMv@NDt6+wgwVio$M#FzaL5x}>xz?v>g#-e!kYENpWofnW z6BCZ5~TnD$1zb(h^9>G2F|5gzyz%j>%VU7 zPS#?2pi0RVKtz^9dIs%!;~5-J4kmo8=C9r|ebSq4kL1G+kGryzl^Wx;KwBpes^N#f z^4`hi(ajLr%bsk38v@* z>MHN`K?u22dkRAm*ivZ;dujk0+FF_H4?QbWpV)MAWLfTBWQt-K% zN$!iNMIYTLfF8tr{A}_I+U3$SVw7-HEm+cB8Wm@KGo-}K!x{43p*3ZOYP6j$vO zh0kmrgdI>I(4LpO4ftW@-c0+dVpcP#zPgIjl@#!e`^)e#;EP)an^XiHn$7Yl78HXYQ@N_C#u{>|3+F7`$iPUbv-a@k-^=wW>N zreN_`=ak<^MyR#I+E)#TmEjB~a}@{4-MXv>`=wuEsQ58<^kgvBMlK~g)JF%$6W@hw zi?2zb?C$Nd_dn~5j1M6}YkkJeRfr#d8@%&7AaoKp+{-Jc4*YU5Ijvy@>6_6@7#ayu zs?Ay-E_H86*Z8Ygn_3*j!hwbTBX}CDA&X(6Y7E3teCM)b%a>V? zDLna(6j08{Z97g>dMCz0EkT@ARx?MHyz5K>+#stC(3b$Ig-~BAegA@(?h9Z5-Dkvi zexskP4578X_pO;6S`9MCE%?Lt-y`v96(+?+wRg%z*LY1b%YWEQL$Mh=gecu1TWcD_9Ly02wHjskH*{pbk@uqSIlP_M5N^@{0$#MUb>B zb9Ca8BjEGRDKHR_>q!HX{)+cnsr0Bzi;8;wEUAvAi(kH7Y}WEZD@Ohxz4};m)y)*a zop+bE_>Ui(B@-=G_zmhSc>M;HU599Io@K(`_M_v2UQ%U7IYO?oP5K)Yd=ULp!e{}yflI_8y*KN zqTL1{8XZ{tf$9f{LNFTKd5oLt7}(HG#a(|Pk3pQ13(uwX&t1TGJq%U%{3fm`5btGc=~>0%A%P+ zvONqg1&4u+F{NxrmG1(CuOW|e@b3s80&T9^ZIN82FJ*AnWdgfmx?t^ByTId1PV`wT z;5`9WMUT3HTao3II*v%}V}lS967JS42a^#%Y8C`~oXJ5UOctylm<3$*GuTpnAG)h#C9eOSb)et9%tj27^ zE3v1@g5oGZ4w9IpecCkap)kJIi&9c?~eqLyNx{&MGjy~3z}JJq0Z0FzSkuw zq=H)_H$*c0^puD?kgTRy%*$+K*FzsYyFKNF>K@+CI#j6(R(tL|mI*Te z4lm(JIbfT!p`#&6NgMUYVzB?s369Zmq;^K@HYfA#eAQfTVdY%NhXRt@&+_%LR zU=h7Iw0ODaKOAv_+8r1gT6CXt0Oc9Jj4SQAH!X1A8wBLUn-Ocol!40hajd-O{J8(y z0~tk)1fm!XZbs2Z^MGg0DMY;PP0mZ4t(y-R%8LN4Rp5sJkt(c*Id$XSbKP_PtA8{+ zP`VdMO;j>?AfY0?GHhv+g-mXUx0DFMm|V(HaZ|1Y><*KnuYsp0jHDi zek3b#osxyH9WE&#lLN4gNt}k35EW62bvGdY-G|2i3c9V-x73s_E;nt&6$I2*KqG?PnNW+GH&K=YxE!atp;Y_4`ULn4=4eP(V z^7$Q9LqkK`(2IRo{C3v5Jjn)HUy3Ju=CT3QwJ(A#j#3UX4<7H*>$-Q2K-1rMAmHEc z-YJSJqnG{P{WlQVUT&9zjM9i>q@y%M(f)T6uLXpz3+-SGZQ1mI6`p5_W}$n|^#(K? zvGx70|CZ`I%k}B@I^*9OCyRMd9cAB)7f$xWRrVbAkWdhWR^P0*7rbz4W~nx_BVIYw+9mEejS)N5>OS-{3tl1B;C=a}Es);9lCj zhCjjQb816ug7*<{w|+i=+D$=tMUZ>TJ$pS#HZgskFe+#8+5PG2AS>_+E`dfs--cFE z&y|-@4~<`;Vd+$I>Yx9)E)M{yT~D5|nClzQLT1K6UY}a7$fv`}3n|xEzZf}# z%d!BFEwznx@Jc$Q-#?Eb;Lhmf0y5DGI9Zw^K1WIV^DKjeHhjbEay{5Dh`|`t-mao? zHL~_%7Nj#%bGv~mI@njup?AV;R#&KST*4V$3Hr_ zX_+Q{4>=1Usk+mCL3DxW+~d=i{($^}`k`|FdY$^lr~_*RgCjs{1O!nKllTj}9YAg} z8-57O25n{Q)la?+7P7}U7#%;i4R|+>!5%AUx%;jIr4u}Y5Xdv3gIuipNI5U!E;e6H zl1igj6z($qVB-g{zppw5LQMY zjft@`VP}#*Zb0Exa@ZQd7ht zuCFTxYA0GN-sY{mb3Zw9=yI>oIBZE#B#1aTzE%bQ9%j-=e2>Zis(X&t?;X(p{mm}^ zg~$c!CdwbV>t=+WK4tV7ki>~#2nG){MnE(l$ndm_$|y<8a5@B>o~Hl6k?WgLaPix{ zNxxk5m38?+E8S~nWeDHd)<%!!O5bE!0an%e>v)bYA^GmO-?3rbxkpnt)~Y0iopa~lb<~(fVUq8nCCu%e9(yqH~92zO5j$g>amgj zXg2h`l*qqI0S4&&-2UhG^(I+{PyerHL1oK%y?If6TL-z-VfKVWPc}3DuZIRLPxGR9 zf1iS6Oi|#*lnE^_5&avT&U~&@*4TWm8k}vdl&^>2zqg3r$M=9F6Xs()zS}qR(Ln}( z=Ht9`7cnRc;EUX&K7b^5Bx5{F?)Zj5kvyCX{_0J}ko^Du$qJ+=MJxTwa!|bWXcLV4lHA&*7vD5*N6Hgj02TV5jvw z*Pr!-Td4u(7_a=Q1*shsmF;oRAA?g+pn9jzZQbh#RZhGJ7(j|}psGn*m!pSYr{o)a zrdC%C_Ain-IhV$5+p-9i{`(Su2zAg8K|(^{&%S^CsE&Qzh;%hxfa=E$z9ZEp2zob={e%Q*XB!d;xm`@l2zs_F=C4i zUG73lU1VE)xpdMJ+I6q^0||mgVg$*uLl8KffBtB1Ze+O~Om}zFH!c5@K|JR5vg*dG zCF;BW4Kq*0o=Ot8!T`{ZTN> z8N&;%KGyt!(3wVp8It6)7ZrCvK(ap$EZ&tLR|9{TS zWK5j@+1Eobb4I?;@ z6hJOKu75tlT_~7so;jHJyIeQ~d^aVQkOv-1@5hvPufAsviT*yRC@x+OpMoO`kI=Ji z=x;`6;Iz)%4{7S9nYUUhShZ{6q66h|Fh3Z z)nMES-){i^@)$LpPrd`&!P?$nEH5_iX7_w3H`@d9aTMVY-B6(B-YfwZ!F%z`ie!k` z`>hc$m*5YkE>72(&G(E6$Uu!sar6#)8~@E_zp9(s^&4xrc}WZ;eL(0d97@{+ut9uz zKZPno56g?;`NZnAF#ajdgY%dqF!zI4hrhF5>l^*xlP2w^m7UE9Xh7A z?+wq+fn3AGA1~H+1pQtAh4aoJE2A8q?$B%l#tl-zw=<5kYf8dDmJ4BYiQ26VOoT3G z`J+Gm_i4I+Pxno(gNY9V&>=tRJ7zEiUCcwU_Tk$92sDX>e31JpS(mR4f$L@>7Egf`_^rB5qF;-6|N5i2i; zY~B^+Sh4zI%H;Q?!SnZ$)pB-xIq_}m85}=m%wUCW|K>jt>Fwc^{})KAxB$Y5C5lE? z$<6FNud@)zU~pMp_w@IFPcRnbmNiVpZ%5;n;I7!;r5@w~;3TdxG0j0mc3BQojM1|N zNAr|HZ_kw0Pp~kv2ztKde+28@>&G2WbXqn)17Z>qKDYinm}>yb z=gZY*y`Ee6Gp7I9#3#aq^wh&OZ5H_GzmkV*j(E|1hn2v!wn`6Z&B)s<eX?ZF|U`CydOybJDlKSfLrdns_=5&ORiKbjb1(k|6HwIh|fT7GFc z|NqIWY`1%78MQZt|5z5I>i`R5`~a50H+Qqr0c@3T*P=$(AQlk%@h2A148 zZ!&@6;$oi4)&wht|FH>c7jsTVgOv-Q0NrA&Yf1TA2BM#-=|4D0@JHwROM`sk5U+Of zbjSy2ykRp4l23YTUQ-*l3+D+M5hwlHplyh+CHc=r|1Fb58hqo5)b?(e0~i|a8{erw z*MRDk`1$dxPpc1k2?1tv!4B{$Js$Hn)0jZC_~1rqECW2qkhJYSLaM_UVrSyehe4q` zTn^#mOn@BmZJMDMLk&s6@Y^<~va}njvML-gf-HLvLn@KY3KyxZjNhum@y6qd3^PgDjzYYv0un1qgG<5k% z#p><)X=8moePg42X8WNxbeRycg8>Op)TDC8S%g(`|DU$5Jg$l3iw95<0Z~hf7o=*H zQWdnQ$PwaEMGKayRjLHA93mEp60QVfgJ4mq2CW(pO;7}^%25shLkM8ykRu>M5H#U5 zVh9030wLM#Z?d4Jzfa*WHp|SL_x--_doz>W@q7n|vnrI5kR~zMJuKaO-}ch@d$33p zJ@E^}8PNOo3Ye>AwR#@P46AKq%lnCD2|^%VdA3XLj7tIvJq2QQ!^@Z02#G+S+6O=S z&561Km-{^rf{t*p5?C3B#ZC~5{wj#u-5c+o#iPl-U9{s#9_Ht)A{;4uaI06?;A?O0 zPLM!F8#l|^Rymn@9i2RR2{t$9Lr0dW)P9}XnISOjc1zmNh9r|#>(5)YVsGD~tfgtM z@GYH99c*7^-$+j;`JLn)rkDY=-KCx>9$RrR{yp-cYSHdwS80| z(-~)5t)bF!PVt53yT&N=hI-Y{H$7_7w#{AQqxEIJNfODjYAh(ZJ*KMfCK+up>9}-r zqiG5gxnHy0Aam&cEXGe*0(arVwJ|pW@BwW^oCHrs?ldw628y!WM6RF+DSur74L;o? z_gvk=YEHWTnA%WOB?Y8-J?i38y1$TW@qN|Iur`SWKjLA zRDip~W_xsI?4WZF7>TREmUx3dAu&AW3VU3(i#X44rqh zL@)QTkj7OVX&Y;CgB$Bri>)EB0rL$iqU(3(LyBALI$61=YgH=$NcJvCg>rvIz~OCd z_Y)@ zseJy`w8HzWnguRwNy#}RmQjr4O4^u`7H;QC@890_fRupwJ$csgthayoMJ~JSoRMK^ zbqNdR6WOL8=M(OxU+zjf6Pk8rGyU9xZ|w}|RJv8V_Lp>1y0#uVh52H)AvnezB{AqflNB^9zy-;(_5UM$uD1*VHXiF?OqigeqwzNcdxGDqi z;!Jp1ARbH&eG|Z{5P0j@60sDigZ55+RKS$e*zoJ)Mn()$bBg5ywc;tsF935$HaWXo z+N*GgTi^+!ZGanF)cM{>#uu1(Z=9QxD86NszB=x}+OXQ^f81-TOocW~@GB>9Ml0gn zppP9FAc3zr{!_Ryj1qAyj#`Q?(pxSK-TS?fmz$+;Y8bh$#PM5O8iK}v)-{!9)i$8s2h&q zHQ2p}r9-=>T?{RI?FuGRcgMLb6MzQl$y2@>NaFZ-iRVYNimt+e?mMS%6J*GdB6AO~ zjlAlsmJCUciDXH?|3v(VKHdPMuXFaKo)g19cX;@0^^h{bAL%5Hs-U}Y0Te6F1hdX2 zrSNTnoOn=aGAHRpuC*@p`67>^g;-%sPrItJXB9Y4QsA`?H_3B=PT<9Y2&Dyx(=j!9 z{2tu-N-eZcToY#8ekymAsU8bNDG+h8bXcBLe61WXY=|Fsx&1dWc)mIq~ zEmi)^Hp7V%cv&Q;Qo|q!8SLP0NsU`TK~N8GWI3WXOgp4i!!QbhwmLmtly`hQ7YjOy z|HTl6LxT@gNI1~QE|u2bkh+$=KVKb=Q?_@VH(`ite4aPPhk2>*&{gFzCTHpy5CH{+yA&xtIr$NK18hx5X_rQF-fF}fG{hBnt_P~EYNFE6xV z_tr3+OEknJ9-l@54Ytg#{@}i9*$D3i>Ez^5;{(PoPwd%$p%4?Y;WRkpBaNmK3lKLU zE=uABPh`en|N?UQ5^DzuT zUC6Di+&|t3!GGHYV6rvFi{>X#^#Bo26U=>SmT-F)OCXuAL*01I?||_&A^7#XCiGta zoiW%rd9P!lYVgRJeAekd-?2)T3HT3@I;Mz@>JEMdanMoTG1T(4^Mf7VJ(hWOSFhYK zhpIh)G1y?yC8!Fy9twr)84XVax8(=Xph3f$#!Z-X3c3yLu{Y(3299Bbsq+r;L?!8~ zi;CZOoDz@kzsXlhbl`~wzwl^^uorrU!Vi7c!Ci_0%MG!p{@9ejyn0-j@VyoA+3zEO){n9u7e+nosJ^HvotC3|H#+|K(GwlxX2nXB}sdeI+&$hv3?2M7E%axK9b7 zmx*Wa`>Vl254NOazuwf4;hSt{6ERfMsACj@CHoGmz|*_Y{KC%IG$(LG(d?(x1n{R$ zc&`LmIYpA=Gs7LrOkhOk4w{8EWNccR(M&A_yPizSLuJ!WwmIW#;k$y))@Xs2Q&n$aM&Fu{Sj}h(eg#UEmyR z_)RZLc$>ShW-W$-ltwm3cR*2dxHuj**NJeZ$mqJ)qQql*TYc=(2bQQm58Vppy zkP-3|f2*i>7MR>NeGCTpE9jSs)>6a_Y+Nahcjm!-yT zU#g8MH=N^FFB=cQ>z7xKs8z#$ZX^`;xc}>ELg}f~9QQ4@Wu4QSI97=YIs^L6tRnGSwrP)^q8a*NuEjdxoEWFN%G+I;D$=zE% z!v_p@U;21y_o?V7Zn`IQoWa62W}Wt(&ms|w8TnafW8l2SD02HdXKJ^3A0Gs*J%0FR z(DKoKzis4)97>Naf3zuu4{evAau6^RX=Y+tq$OKfO+2eg=gDIDmwrI1`@5WTlp-uA zG@6@^1{+|%|3i_~d!2YGK!2Xa?imGm5<3lsy%{${pAl6v5i zRm6zSokWVRk47em!T&<-RlTHSj9-M*Ie8(yksPv+Z1jdLYF1`4BbS$}$n@o9gCB(1 zl()dII*+13;9~VZ{XcY1qnyi2`qG^&$rft0RZyi!2h~blL9R5d_IQztS3Kwy$(_%vmd;!FoPU=&ZA?-HEHF{6Bb~I##tOm6P zr0n2InR2O0ILTbE1P4e3!lB*t!1!y&wq# delta 35816 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 y=d#Wzp$Pz8!2;s| From b325c53316b0b4ac7fe69597bff69499bee0ef6a Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 21 May 2017 20:47:35 +0200 Subject: [PATCH 04/11] Jenkinsfile: Update deprecated 'stage' syntax --- Jenkinsfile | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 31563d13..41637e2b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,21 +1,25 @@ +#!/usr/bin/env groovy properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '30', artifactNumToKeepStr: '10']]]) node('master') { - stage 'Pull changes' - checkout scm - - stage 'Build data' - sh 'mkdir -p build' - dir('build') { - sh ''' - cmake -DCMAKE_INSTALL_PREFIX=/install -DCOLOBOT_INSTALL_DATA_DIR=/install/data .. - make - rm -rf install - DESTDIR=. make install - ''' + stage('Pull changes') { + checkout scm } - stage 'Archive data' - sh 'rm -f data.zip' - zip zipFile: 'data.zip', archive: true, dir: 'build/install' + stage('Build data') { + sh 'mkdir -p build' + dir('build') { + sh ''' + cmake -DCMAKE_INSTALL_PREFIX=/install -DCOLOBOT_INSTALL_DATA_DIR=/install/data .. + make + rm -rf install + DESTDIR=. make install + ''' + } + } + + stage('Archive data') { + sh 'rm -f data.zip' + zip zipFile: 'data.zip', archive: true, dir: 'build/install' + } } From 4df6d989881d6b00944fbcbe6141f6426dc04e40 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 21 May 2017 20:41:01 +0200 Subject: [PATCH 05/11] Jenkinsfile: Automatically clean workspace after building pull requests --- Jenkinsfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 41637e2b..1d8028dc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -22,4 +22,10 @@ node('master') { sh 'rm -f data.zip' zip zipFile: 'data.zip', archive: true, dir: 'build/install' } + + // Clean workspace after building pull requests + // to save disk space on the Jenkins host + if (env.BRANCH_NAME.startsWith('PR-')) { + cleanWs() + } } From d54f880e5e8cab3d815f6ad1e5312e7159980180 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 21 May 2017 20:44:23 +0200 Subject: [PATCH 06/11] Jenkinsfile: Don't keep artifacts for old PR builds --- Jenkinsfile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1d8028dc..84e65471 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,5 +1,9 @@ #!/usr/bin/env groovy -properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '30', artifactNumToKeepStr: '10']]]) +if (env.BRANCH_NAME.startsWith('PR-')) { + properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactNumToKeepStr: '1']]]) +} else { + properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '30', artifactNumToKeepStr: '5']]]) +} node('master') { stage('Pull changes') { @@ -22,7 +26,7 @@ node('master') { sh 'rm -f data.zip' zip zipFile: 'data.zip', archive: true, dir: 'build/install' } - + // Clean workspace after building pull requests // to save disk space on the Jenkins host if (env.BRANCH_NAME.startsWith('PR-')) { From c5c1281db0f42c89d2bf21ff6f7481483a7f5fd6 Mon Sep 17 00:00:00 2001 From: Roman Vasin Date: Mon, 22 May 2017 10:59:32 +0200 Subject: [PATCH 07/11] Updated Russian translations (#27) --- help/cbot/po/ru.po | 379 +++++++++--------- help/generic/po/ru.po | 191 ++++++--- help/object/po/ru.po | 32 +- levels/exercises/po/ru.po | 2 +- .../freemissions/chapter005/level001/po/ru.po | 2 +- .../freemissions/chapter006/level001/po/ru.po | 2 +- .../freemissions/chapter007/level001/po/ru.po | 2 +- .../freemissions/chapter008/level001/po/ru.po | 4 +- .../freemissions/chapter009/level001/po/ru.po | 4 +- 9 files changed, 351 insertions(+), 267 deletions(-) diff --git a/help/cbot/po/ru.po b/help/cbot/po/ru.po index 1f540222..4d108552 100644 --- a/help/cbot/po/ru.po +++ b/help/cbot/po/ru.po @@ -20,7 +20,7 @@ msgstr "" #: ../E/abstime.txt:1 #, no-wrap msgid "Instruction abstime" -msgstr "Инструкция aim" +msgstr "Инструкция abstime" #. type: Plain text #: ../E/abstime.txt:2 ../E/deletef.txt:6 ../E/delinfo.txt:2 ../E/errmode.txt:5 ../E/flatgrnd.txt:2 ../E/readln.txt:8 ../E/send.txt:2 ../E/strfind.txt:4 ../E/strleft.txt:4 ../E/strlen.txt:4 ../E/strlower.txt:4 ../E/strmid.txt:4 ../E/strright.txt:4 ../E/strupper.txt:4 ../E/strval.txt:8 ../E/testinfo.txt:2 ../E/writeln.txt:8 @@ -38,7 +38,7 @@ msgstr "thump ( );" #: ../E/abstime.txt:5 #, no-wrap msgid "Return the time in seconds elapsed since the beginning of the mission." -msgstr "" +msgstr "Возвращает время в секундах прошедшее с начала миссии." #. type: \t; header #: ../E/abstime.txt:7 @@ -50,7 +50,7 @@ msgstr "Возвращаемое значение: float #: ../E/abstime.txt:8 #, no-wrap msgid "Time in seconds." -msgstr "" +msgstr "Время в секундах." #. type: \t; header #: ../E/abstime.txt:10 ../E/acos.txt:11 ../E/aim.txt:23 ../E/array.txt:41 ../E/asin.txt:11 ../E/atan.txt:11 ../E/atan2.txt:16 ../E/bloc.txt:48 ../E/bool.txt:4 ../E/break.txt:24 ../E/build.txt:27 ../E/buildingenabled.txt:22 ../E/busy.txt:14 ../E/canbuild.txt:22 ../E/canresearch.txt:14 ../E/category.txt:109 ../E/ceil.txt:12 ../E/class.txt:120 ../E/close.txt:6 ../E/cond.txt:4 ../E/continue.txt:24 ../E/cos.txt:11 ../E/deletef.txt:9 ../E/delinfo.txt:13 ../E/destroy.txt:15 ../E/detect.txt:27 ../E/direct.txt:13 ../E/dist.txt:29 ../E/dist2d.txt:13 ../E/do.txt:27 ../E/drop.txt:28 ../E/eof.txt:13 ../E/errmode.txt:32 ../E/expr.txt:197 ../E/extends.txt:105 ../E/extern.txt:29 ../E/factory.txt:21 ../E/false.txt:4 ../E/file.txt:16 ../E/fire.txt:30 ../E/flatgrnd.txt:16 ../E/flatspace.txt:25 ../E/float.txt:24 ../E/floor.txt:12 ../E/for.txt:51 ../E/function.txt:165 ../E/goto.txt:34 ../E/grab.txt:28 ../E/if.txt:39 ../E/int.txt:18 ../E/jet.txt:14 ../E/message.txt:24 ../E/motor.txt:38 ../E/move.txt:21 ../E/nan.txt:14 ../E/new.txt:20 ../E/null.txt:4 ../E/object.txt:79 ../E/open.txt:19 ../E/openfile.txt:11 ../E/pencolor.txt:14 ../E/pendown.txt:17 ../E/penup.txt:11 ../E/penwidth.txt:14 ../E/point.txt:35 ../E/pointer.txt:51 ../E/pow.txt:14 ../E/private.txt:19 ../E/produce.txt:30 ../E/protected.txt:26 ../E/public.txt:49 ../E/radar.txt:80 ../E/radarall.txt:19 ../E/rand.txt:8 ../E/readln.txt:18 ../E/receive.txt:16 ../E/recycle.txt:12 ../E/research.txt:18 ../E/researched.txt:14 ../E/researches.txt:27 ../E/retobj.txt:13 ../E/return.txt:29 ../E/round.txt:12 ../E/search.txt:25 ../E/send.txt:17 ../E/shield.txt:18 ../E/sin.txt:11 ../E/sizeof.txt:21 ../E/sniff.txt:16 ../E/space.txt:22 ../E/sqrt.txt:11 ../E/static.txt:20 ../E/strfind.txt:18 ../E/string.txt:32 ../E/strleft.txt:14 ../E/strlen.txt:12 ../E/strlower.txt:10 ../E/strmid.txt:18 ../E/strright.txt:14 ../E/strupper.txt:10 ../E/strval.txt:17 ../E/super.txt:45 ../E/switch.txt:70 ../E/synchro.txt:23 ../E/takeoff.txt:15 ../E/tan.txt:11 ../E/term.txt:30 ../E/testinfo.txt:16 ../E/this.txt:52 ../E/thump.txt:12 ../E/topo.txt:13 ../E/true.txt:4 ../E/trunc.txt:12 ../E/turn.txt:32 ../E/type.txt:32 ../E/var.txt:66 ../E/void.txt:10 ../E/wait.txt:21 ../E/while.txt:46 ../E/writeln.txt:19 @@ -676,8 +676,8 @@ msgid "" "a == b is an expression that compares a with b.\n" "a = b is an expression that copies the value of b into a." msgstr "" -"a == b is an expression that compares a with b.\n" -"a = b is an expression that copies the value of b into a." +"a == b - это выражение, которое сравнивает a с b.\n" +"a = b - это выражение, которое копирует значение b в a." #. type: \b; header #: ../E/continue.txt:1 @@ -1279,7 +1279,7 @@ msgstr "Выражения" #: ../E/expr.txt:86 #, no-wrap msgid "is equivalent to" -msgstr "" +msgstr " - это эквивалентено " #. type: Plain text #: ../E/expr.txt:90 @@ -1291,12 +1291,17 @@ msgid "" "/= division\n" "%= remainder of the division (only for the type int)" msgstr "" +"+= сложение\n" +"-= вычитание\n" +"*= умножение\n" +"/= деление\n" +"%= остаток от деления (только для типа int)" #. type: Plain text #: ../E/expr.txt:178 #, no-wrap msgid "The operators ++ and -- allow you to increment (++) or to decrement (--) a variable in very compact and efficient manner." -msgstr "" +msgstr "Операторы ++ и -- позволяют вам делать инкремент (++) или декремент (--) переменной очень компактным и эффективным образом." #. type: \b; header #: ../E/extern.txt:1 @@ -1709,7 +1714,7 @@ msgstr "Функции" #: ../E/function.txt:118 #, no-wrap msgid "You can also declare a function public so it can be used by other bots." -msgstr "" +msgstr "Вы также можете объявить функцию public тогда она может быть использована другими ботами." #. type: \b; header #: ../E/goto.txt:1 @@ -4003,19 +4008,19 @@ msgstr "\t\"Доброе утро, сер\"" #: ../E/string.txt:16 #, no-wrap msgid "If you want to put a quotation mark (\") or a backslash (\\) in a string you must write:" -msgstr "" +msgstr "Если вы хотите поставить кавычку (\") или обратный слэш (\\) в строку вы можете написать:" #. type: Source code #: ../E/string.txt:17 #, no-wrap msgid "\"This is \\\"very\\\" important\"" -msgstr "" +msgstr "\"Это \\\"очень\\\" важно\" #. type: Plain text #: ../E/string.txt:18 #, no-wrap msgid "which will result in the string This is \"very\" important." -msgstr "" +msgstr "которые получит в результате строку Это \"очень\" важно." #. type: Source code #: ../E/string.txt:19 @@ -4044,14 +4049,14 @@ msgid "" "strlower Convert to lower case" msgstr "" "Following instructions can be used with strings:\n" -"strlen Get string length\n" -"strleft Extract left part\n" -"strright Extract right part\n" -"strmid Extract center part\n" -"strfind Find a substring.\n" -"strval Convert string to number\n" -"strupper Convert to upper case\n" -"strlower Convert to lower case" +"strlen Получает длину строки\n" +"strleft Извлекает левую часть\n" +"strright Извлекает правую часть\n" +"strmid Извлекает центральную часть\n" +"strfind Находит подстроку.\n" +"strval Конвертирует строку в число.\n" +"strupper Конвертирует в верхний регистр.\n" +"strlower Конвертирует в нижний регистр" #. type: \b; header #: ../E/strleft.txt:1 @@ -5462,37 +5467,37 @@ msgstr "" #: ../E/acos.txt:1 #, no-wrap msgid "Instruction acos" -msgstr "" +msgstr "Инструкция acos" #. type: Source code #: ../E/acos.txt:3 #, no-wrap msgid "acos ( value );" -msgstr "" +msgstr "acos ( значение );" #. type: \t; header #: ../E/acos.txt:5 ../E/asin.txt:5 ../E/atan.txt:5 ../E/ceil.txt:6 ../E/floor.txt:6 ../E/round.txt:6 ../E/sqrt.txt:5 ../E/trunc.txt:6 #, no-wrap msgid "value: float" -msgstr "" +msgstr "значение: float" #. type: Plain text #: ../E/acos.txt:6 ../E/asin.txt:6 #, no-wrap msgid "Number between -1 and 1 (including both)." -msgstr "" +msgstr "Число между -1 и 1 (включая эти числа)." #. type: Plain text #: ../E/acos.txt:9 #, no-wrap msgid "Arcus cosine (in degrees) of the value." -msgstr "" +msgstr "Арккосинус (в градусах) от значени." #. type: Plain text #: ../E/acos.txt:12 ../E/asin.txt:12 ../E/atan.txt:12 ../E/atan2.txt:17 ../E/cos.txt:12 ../E/pow.txt:15 ../E/rand.txt:9 ../E/sin.txt:12 ../E/sqrt.txt:12 ../E/tan.txt:12 #, no-wrap msgid "Programming, types and expressions." -msgstr "" +msgstr "Программирование, типы и выражения." #. type: Source code #: ../E/aim.txt:3 @@ -5504,13 +5509,13 @@ msgstr "" #: ../E/aim.txt:5 #, no-wrap msgid "This instruction sets the vertical and the horizontal angle of the cannon. The following robots are equipped with a cannon: " -msgstr "" +msgstr "Это инструкция устанавливает вертикальный и горизонтальный угол пушки. Следующие роботы обородованны пушкой:" #. type: Plain text #: ../E/aim.txt:10 #, no-wrap msgid "When controlling the robot through programming, the gun can be also turned left or right by turning the whole robot with the instruction turn." -msgstr "" +msgstr "При управлении роботом через программирование, оружие може быть навравлено налево или направо поворотом всего робота с помощью инструкции turn." #. type: \t; header #: ../E/aim.txt:12 ../E/atan2.txt:7 ../E/pow.txt:8 @@ -5522,61 +5527,61 @@ msgstr "" #: ../E/aim.txt:15 #, no-wrap msgid "x: float (default value: 0)" -msgstr "" +msgstr "x: float (значение по умолчанию: 0)" #. type: Plain text #: ../E/aim.txt:16 #, no-wrap msgid "Angle in degrees of the gun relative to the robot. A positive value orients the gun to the right. The angle must range from -40 to +40 degrees for all shooters." -msgstr "" +msgstr "Угол в градусах оружния по отношению к роботу. Положительное значение направляет оружие направо. Улог должен быть в диапазоне от -40 до +40 градусов для всех стрелков." #. type: \b; header #: ../E/asin.txt:1 #, no-wrap msgid "Instruction asin" -msgstr "" +msgstr "Инструкция asin" #. type: Source code #: ../E/asin.txt:3 #, no-wrap msgid "asin ( value );" -msgstr "" +msgstr "asin ( значение );" #. type: Plain text #: ../E/asin.txt:9 #, no-wrap msgid "Arcus sine (in degrees) of the value." -msgstr "" +msgstr "Арксинус (в градусах) значения." #. type: \b; header #: ../E/atan.txt:1 #, no-wrap msgid "Instruction atan" -msgstr "" +msgstr "Инструкция atan" #. type: Source code #: ../E/atan.txt:3 #, no-wrap msgid "atan ( value );" -msgstr "" +msgstr "atan ( значение );" #. type: Plain text #: ../E/atan.txt:6 ../E/atan2.txt:8 ../E/atan2.txt:11 ../E/ceil.txt:7 ../E/floor.txt:7 ../E/round.txt:7 ../E/trunc.txt:7 #, no-wrap msgid "Number." -msgstr "" +msgstr "Число." #. type: Plain text #: ../E/atan.txt:9 #, no-wrap msgid "Arcus tangent (in degrees) of the value." -msgstr "" +msgstr "Арктангенс (в градусах) значения." #. type: \b; header #: ../E/atan2.txt:1 #, no-wrap msgid "Instruction atan2" -msgstr "" +msgstr "Инструкция atan2" #. type: Source code #: ../E/atan2.txt:3 @@ -5588,7 +5593,7 @@ msgstr "" #: ../E/atan2.txt:5 #, no-wrap msgid "The purpose of using two arguments instead of one is to gather information on the signs of the inputs in order to return the appropriate quadrant of the computed angle, which is not possible for the single-argument atan(); function. For example, consider a point (-1, -1): atan(-1/-1); is 45.00 degrees, whereas atan2(-1, -1); is -135.00 degrees, which is obviously more correct in this case." -msgstr "" +msgstr "Цель использования двух аргументов вместо одного в том, чтобы получить информацию о знаках входов чтобы вернуть подходящий квадрант вычисленного угла, который невозможно получить для функции одного аргумента atan();. Например, рассмотрим точку (-1, -1): atan(-1/-1); - это 45.00 градусов, в то время как atan2(-1, -1); - это -135.00 градусов, что, отчевидно, более корректно в этом случае." #. type: \t; header #: ../E/atan2.txt:10 ../E/pow.txt:5 @@ -5600,13 +5605,13 @@ msgstr "" #: ../E/atan2.txt:14 #, no-wrap msgid "Arcus tangent (in degrees) of y/x." -msgstr "" +msgstr "Арктангенс (в градусах) от y/x." #. type: \b; header #: ../E/build.txt:1 #, no-wrap msgid "Instruction build" -msgstr "" +msgstr "Инструкция build" #. type: Plain text #: ../E/build.txt:2 @@ -5645,7 +5650,7 @@ msgstr "" #: ../E/build.txt:17 #, no-wrap msgid "Tells the robot to build a building using a titanium cube placed on a flat ground nearby." -msgstr "" +msgstr "Говорит роботу построить здание используя титановый куб расположенный на плоском участке земли поблизости." #. type: \t; header #: ../E/build.txt:19 ../E/buildingenabled.txt:16 ../E/canbuild.txt:16 ../E/detect.txt:11 ../E/factory.txt:10 ../E/radar.txt:22 @@ -5657,7 +5662,7 @@ msgstr "" #: ../E/build.txt:20 ../E/buildingenabled.txt:17 ../E/canbuild.txt:17 #, no-wrap msgid "Category of a building." -msgstr "" +msgstr "Категория здания." #. type: Plain text #: ../E/build.txt:23 @@ -5672,25 +5677,25 @@ msgstr "" #: ../E/build.txt:28 #, no-wrap msgid "canbuild, buildingenabled, programming, types and categories." -msgstr "" +msgstr "canbuild, buildingenabled, программирование, типы и категории." #. type: \b; header #: ../E/buildingenabled.txt:1 #, no-wrap msgid "Instruction buildingenabled" -msgstr "" +msgstr "Инструкция buildingenabled" #. type: Plain text #: ../E/buildingenabled.txt:2 #, no-wrap msgid "The instruction buildingenabled(); lets you know if a building of the given category can be built in the level." -msgstr "" +msgstr "Инструкция buildingenabled(); дает вам узнать может ли здание данной категории быть построено на этом уровне." #. type: Plain text #: ../E/buildingenabled.txt:5 #, no-wrap msgid "It is similar to the canbuild(); instruction. However, it does not check if a required research has been done." -msgstr "" +msgstr "Это подобно инструкции canbuild();. Но это не позовляет проверить что требуемное исследование было сделано." #. type: Source code #: ../E/buildingenabled.txt:7 @@ -5712,13 +5717,13 @@ msgstr "" #: ../E/buildingenabled.txt:19 ../E/busy.txt:10 ../E/canbuild.txt:19 ../E/canresearch.txt:10 ../E/detect.txt:23 ../E/researched.txt:10 #, no-wrap msgid "Return value: bool" -msgstr "" +msgstr "Возвращаемое значение: bool" #. type: Plain text #: ../E/buildingenabled.txt:20 #, no-wrap msgid "true if the building can be built in the level even if required research has not been done, false otherwise." -msgstr "" +msgstr "true если знание может быть построено на уровне даже если иследование не было сделано, false в противном случае." #. type: Plain text #: ../E/buildingenabled.txt:23 @@ -5730,7 +5735,7 @@ msgstr "" #: ../E/busy.txt:1 #, no-wrap msgid "Instruction busy" -msgstr "" +msgstr "Инструкция busy" #. type: Source code #: ../E/busy.txt:3 @@ -5742,7 +5747,7 @@ msgstr "" #: ../E/busy.txt:5 #, no-wrap msgid "Checks if the object is busy." -msgstr "" +msgstr "Проверяет занят объект или нет." #. type: \t; header #: ../E/busy.txt:7 ../E/destroy.txt:7 ../E/factory.txt:7 ../E/research.txt:7 ../E/takeoff.txt:7 @@ -5754,7 +5759,7 @@ msgstr "" #: ../E/busy.txt:8 #, no-wrap msgid "Any building which can take some action (e.g. Converter)." -msgstr "" +msgstr "Любое здание, которое может выполнить некоторе действие (Например, Converter)." #. type: Plain text #: ../E/busy.txt:11 @@ -5768,7 +5773,7 @@ msgstr "" #: ../E/canbuild.txt:1 #, no-wrap msgid "Instruction canbuild" -msgstr "" +msgstr "Инструкция canbuild" #. type: Plain text #: ../E/canbuild.txt:2 @@ -5780,7 +5785,7 @@ msgstr "" #: ../E/canbuild.txt:5 #, no-wrap msgid "It helps to prevent errors in programs using the build(); instruction. Here is an example:" -msgstr "" +msgstr "Это помогает предотвратить ошибки в программах использую иструкцию build();. Например:" #. type: Source code #: ../E/canbuild.txt:7 @@ -5802,31 +5807,31 @@ msgstr "" #: ../E/canbuild.txt:20 #, no-wrap msgid "true if the building can be built, false otherwise." -msgstr "" +msgstr "true если здание может быть построено, false в противном случае." #. type: Plain text #: ../E/canbuild.txt:23 #, no-wrap msgid "build, buildingenabled, programming, types and categories." -msgstr "" +msgstr "build, buildingenabled, программирование, типы и категории." #. type: \b; header #: ../E/canresearch.txt:1 #, no-wrap msgid "Instruction canresearch" -msgstr "" +msgstr "Инструкция canresearch" #. type: Source code #: ../E/canresearch.txt:3 #, no-wrap -msgid "canresearch ( research );" +msgid "canresearch ( исследование );" msgstr "" #. type: Plain text #: ../E/canresearch.txt:5 #, no-wrap msgid "Checks if the research can be done in the level." -msgstr "" +msgstr "Проверяет если исследование может быть сделано на уровне." #. type: \t; header #: ../E/canresearch.txt:7 ../E/researched.txt:7 @@ -5838,7 +5843,7 @@ msgstr "" #: ../E/canresearch.txt:8 ../E/research.txt:11 ../E/researched.txt:8 #, no-wrap msgid "Research name." -msgstr "" +msgstr "Имя исследования." #. type: Plain text #: ../E/canresearch.txt:11 @@ -5858,13 +5863,13 @@ msgstr "" #: ../E/category.txt:6 #, no-wrap msgid "Below are the different categories available:" -msgstr "" +msgstr "Ниже доступны разные категории:" #. type: \t; header #: ../E/category.txt:8 #, no-wrap msgid "Buildings:" -msgstr "" +msgstr "Здания:" #. type: \t; header #: ../E/category.txt:32 @@ -5876,7 +5881,7 @@ msgstr "" #: ../E/category.txt:45 #, no-wrap msgid "Robots:" -msgstr "" +msgstr "Роботы:" #. type: \t; header #: ../E/category.txt:77 @@ -5894,7 +5899,7 @@ msgstr "" #: ../E/category.txt:96 #, no-wrap msgid "Flags and Other Indicators:" -msgstr "" +msgstr "Флагие и Другие Индикаторы:" #. type: \b; header #: ../E/ceil.txt:1 @@ -5912,7 +5917,7 @@ msgstr "" #: ../E/ceil.txt:4 #, no-wrap msgid "Rounds up a number." -msgstr "" +msgstr "Округляет число." #. type: Plain text #: ../E/ceil.txt:10 @@ -5930,25 +5935,25 @@ msgstr "" #: ../E/colors.txt:1 #, no-wrap msgid "Value Colors" -msgstr "" +msgstr "Значение Colors" #. type: Plain text #: ../E/colors.txt:2 #, no-wrap msgid "Color names are used to define a specific color to use. They can be passed to functions like pendown or pencolor." -msgstr "" +msgstr "Имена цветом используются чтобы определить определенный цвет для использования. Они могут быть переданы фукциям таким как pendown или pencolor." #. type: Plain text #: ../E/colors.txt:4 #, no-wrap msgid "In a program, colors are always displayed on a red background. If a color isn't highlighted in red, it is misspelled. Caps and lower cases should be kept as is." -msgstr "" +msgstr "В программе цвета всегда отображаются на красном фоне. Если цвет не выделен красным, то это написано с ошибкой. Верхние и нижние регистны должны сохраняться как есть." #. type: Plain text #: ../E/colors.txt:6 #, no-wrap msgid "Below are the different colors available:" -msgstr "" +msgstr "Ниже доступны разные цвета:" #. type: Plain text #: ../E/colors.txt:8 @@ -5976,7 +5981,7 @@ msgstr "" #: ../E/colors.txt:25 #, no-wrap msgid "You can also draw colored symbols:" -msgstr "" +msgstr "Также вы можете рисовать разноцветные символы:" #. type: Plain text #: ../E/colors.txt:27 @@ -5990,31 +5995,31 @@ msgstr "" #: ../E/cos.txt:1 #, no-wrap msgid "Instruction cos" -msgstr "" +msgstr "Инструкция cos" #. type: Source code #: ../E/cos.txt:3 #, no-wrap msgid "cos ( angle );" -msgstr "" +msgstr "cos ( угол );" #. type: Plain text #: ../E/cos.txt:6 ../E/sin.txt:6 #, no-wrap msgid "Angle in degrees." -msgstr "" +msgstr "Угол в градусах." #. type: Plain text #: ../E/cos.txt:9 #, no-wrap msgid "Cosine of the angle." -msgstr "" +msgstr "Косинус угла." #. type: \b; header #: ../E/destroy.txt:1 #, no-wrap msgid "Instruction destroy" -msgstr "" +msgstr "Инструкция destroy" #. type: Source code #: ../E/destroy.txt:3 @@ -6032,7 +6037,7 @@ msgstr "" #: ../E/destroy.txt:8 #, no-wrap msgid "Destroyer." -msgstr "" +msgstr "Уничтожитель." #. type: Plain text #: ../E/destroy.txt:11 @@ -6047,13 +6052,13 @@ msgstr "" #: ../E/detect.txt:1 #, no-wrap msgid "Instruction detect" -msgstr "" +msgstr "Инструкция detect" #. type: Plain text #: ../E/detect.txt:2 #, no-wrap msgid "With the instruction detect();, you can look for objects like enemies, bots, buildings or raw materials, which are in front of the bot. It is a simpler version of radar();." -msgstr "" +msgstr "С помощью инструкции detect();, вы можете находить объекты такие как враги, боты, здания или сырье, которые находятся напротив бота. Это упрощенная версия radar();." #. type: Source code #: ../E/detect.txt:6 @@ -6065,7 +6070,7 @@ msgstr "" #: ../E/detect.txt:8 #, no-wrap msgid "Detects the nearest object of the specified category being in front of the bot. It is similar to the following instruction:" -msgstr "" +msgstr "Находит ближайший объект определенной категории который расположен напротив бота. Это пододно следующей инструкции:" #. type: Source code #: ../E/detect.txt:9 @@ -6077,13 +6082,13 @@ msgstr "" #: ../E/detect.txt:12 ../E/radar.txt:23 #, no-wrap msgid "Category of the objects that should be detected. For example, when you are looking for an ant, write radar(AlienAnt). " -msgstr "" +msgstr "Категория объектов, которые должны быть найдены. Например, когда вы ищите муравья, напришите radar(AlienAnt). " #. type: Bullet: 'o' #: ../E/detect.txt:13 #, no-wrap msgid "Array of categories of the objects that should be detected. For example, when you are looking only for grabbers:" -msgstr "" +msgstr "Массив категорий объектов, которые должны быть найдены. Например, когда вы ищите сборщиков:" #. type: Source code #: ../E/detect.txt:14 @@ -6115,7 +6120,7 @@ msgstr "" #: ../E/factory.txt:1 #, no-wrap msgid "Instruction factory" -msgstr "" +msgstr "Инструкция factory" #. type: Source code #: ../E/factory.txt:3 @@ -6127,7 +6132,7 @@ msgstr "" #: ../E/factory.txt:5 #, no-wrap msgid "Starts a construction of a bot of the given category and runs the specified program on it after the construction is finished." -msgstr "" +msgstr "Начинает создание бота данной категории и запускает заданную программу он нем после того, как создание бота будет закончено." #. type: Plain text #: ../E/factory.txt:8 @@ -6139,7 +6144,7 @@ msgstr "" #: ../E/factory.txt:11 #, no-wrap msgid "Category of the robot to construct." -msgstr "" +msgstr "Категория робота, которого нужно создать." #. type: \t; header #: ../E/factory.txt:13 @@ -6166,13 +6171,13 @@ msgstr "" #: ../E/factory.txt:22 #, no-wrap msgid "researched, wait, programming, types and categories." -msgstr "" +msgstr "researched, wait, программирование, типы и категории." #. type: \b; header #: ../E/flatspace.txt:1 #, no-wrap msgid "Instruction flatspace" -msgstr "" +msgstr "Инструкция flatspace" #. type: Source code #: ../E/flatspace.txt:3 @@ -6184,7 +6189,7 @@ msgstr "" #: ../E/flatspace.txt:5 #, no-wrap msgid "Determines the position of the nearest free space with at least flatmin of flat ground around a given position. Works similar to space();. Useful for finding a place for a building." -msgstr "" +msgstr "Определяет местоположение ближайшего свободного простанства по крайней мере flatmin от плоского учаска земли вокруг заданного местоположения. Работает подобно space();. Полезна для нахождения площадки для здания." #. type: \t; header #: ../E/flatspace.txt:10 @@ -6196,13 +6201,13 @@ msgstr "" #: ../E/flatspace.txt:11 #, no-wrap msgid "Minimum radius of flat ground around the desired position." -msgstr "" +msgstr "Минимальный радиус плоской земли вокруг желаемого местоположения." #. type: \b; header #: ../E/floor.txt:1 #, no-wrap msgid "Instruction floor" -msgstr "" +msgstr "Инструкция floor" #. type: Source code #: ../E/floor.txt:3 @@ -6234,19 +6239,19 @@ msgstr "" #: ../E/function.txt:2 #, no-wrap msgid "Function, simply put, is an instruction created by you." -msgstr "" +msgstr "Функция, проще, это инструкция созданная вами." #. type: \b; header #: ../E/function.txt:4 #, no-wrap msgid "Main function" -msgstr "" +msgstr "Функция main" #. type: Plain text #: ../E/function.txt:5 #, no-wrap msgid "You probably already know how to create a function. Every program in CBOT must have a main function, which looks like this:" -msgstr "" +msgstr "Вы уже знаете как создать функцию. Каждая программа в CBOT должна иметь функцию main, которая выглядит следующим образом:" #. type: Source code #: ../E/function.txt:7 @@ -6264,7 +6269,7 @@ msgstr "" #: ../E/function.txt:17 #, no-wrap msgid "With functions you can divide your program into several parts. Each of them will execute a specific task. For example, see the following program:" -msgstr "" +msgstr "С помощью функций вы можете разделить вашу программу на несколько частей. Каждая из них будет выполнять определенную задачу. Например, посмотрите следующую программу:" #. type: Source code #: ../E/function.txt:19 @@ -6318,7 +6323,7 @@ msgstr "" #: ../E/function.txt:49 #, no-wrap msgid "Syntax" -msgstr "" +msgstr "Синтаксис" #. type: Source code #: ../E/function.txt:51 @@ -6346,7 +6351,7 @@ msgstr "" #: ../E/function.txt:59 #, no-wrap msgid "A function can have parameters:" -msgstr "" +msgstr "Функция может иметь параметры:" #. type: Source code #: ../E/function.txt:61 @@ -6376,7 +6381,7 @@ msgstr "" #: ../E/function.txt:72 #, no-wrap msgid "Result" -msgstr "" +msgstr "Результат" #. type: Plain text #: ../E/function.txt:73 @@ -6405,7 +6410,7 @@ msgstr "" #: ../E/function.txt:87 #, no-wrap msgid "Some other examples:" -msgstr "" +msgstr "Некоторые другие примеры:" #. type: Source code #: ../E/function.txt:89 @@ -6428,13 +6433,13 @@ msgstr "" #: ../E/function.txt:102 #, no-wrap msgid "Overloading" -msgstr "" +msgstr "Перегрузка" #. type: Plain text #: ../E/function.txt:103 #, no-wrap msgid "You can declare several functions with the same name but different parameters:" -msgstr "" +msgstr "Вы можете объявить несколько функций с одинаковыми именами, но разными параметрами:" #. type: Source code #: ../E/function.txt:105 @@ -6455,7 +6460,7 @@ msgstr "" #: ../E/function.txt:115 #, no-wrap msgid "CBOT will call either the one or the other function depending on the parameters passed. They must be distinguishable, i.e. you can't declare two functions with the same name and parameter types in the exact same order, e.g. declaring int Pythagoras(float b, float a) will result in error. Note that result type does not matter." -msgstr "" +msgstr "CBOT будет вызывать одну или другую функцию в зависимости от переданных параметров. Они должны быть различимыми. То есть вы не можете объявить две функции с одним именем и типами параметров в том же самом порядке. Например объявление int Pythagoras(float b, float a) приведет к ошибке. Заметьте, что это не относится к типу возвращаемого значения." #. type: \b; header #: ../E/function.txt:120 @@ -6483,7 +6488,7 @@ msgstr "" #: ../E/object.txt:2 #, no-wrap msgid "Use this type for variables that contain the characteristics of an object, be it a bot, a building, some raw material, an enemy, etc. Here are all properties of an object: " -msgstr "" +msgstr "Используйте этот тип переменный которые содержать характеристики объекта, будь то бот, здание, некоторое сырье, враг и т.п. Здесь приведены все свойства объекта:" #. type: Plain text #: ../E/object.txt:4 @@ -6539,7 +6544,7 @@ msgstr "" #: ../E/object.txt:64 #, no-wrap msgid "Current velocity of the object. Should be treated as a three-dimensional vector." -msgstr "" +msgstr "Текущая скорость объекта. Должна рассматриваться как трехмерный вектор." #. type: \b; header #: ../E/pencolor.txt:1 @@ -6584,7 +6589,7 @@ msgstr "" #: ../E/pendown.txt:1 #, no-wrap msgid "Instruction pendown" -msgstr "" +msgstr "Инструкция pendown" #. type: Source code #: ../E/pendown.txt:3 @@ -6623,7 +6628,7 @@ msgstr "" #: ../E/penup.txt:1 #, no-wrap msgid "Instruction penup" -msgstr "" +msgstr "Инструкция penup" #. type: Source code #: ../E/penup.txt:3 @@ -6650,7 +6655,7 @@ msgstr "" #: ../E/penwidth.txt:1 #, no-wrap msgid "Instruction penwidth" -msgstr "" +msgstr "Инструкция penwidth" #. type: Source code #: ../E/penwidth.txt:3 @@ -6683,7 +6688,7 @@ msgstr "" #: ../E/pow.txt:1 #, no-wrap msgid "Instruction pow" -msgstr "" +msgstr "Инструкция pow" #. type: Source code #: ../E/pow.txt:3 @@ -6701,7 +6706,7 @@ msgstr "" #: ../E/pow.txt:9 #, no-wrap msgid "Exponent." -msgstr "" +msgstr "Экспонента." #. type: Plain text #: ../E/pow.txt:12 @@ -6784,7 +6789,7 @@ msgstr "" #: ../E/radar.txt:52 #, no-wrap msgid "Determines which type of objects should be detected. Especially useful in use with an array or Any. The following filters are available:" -msgstr "" +msgstr "Определяет какой тип объектов должен быть найден. Особенно пользно в использовани с array или Any. Следующие фильтры доступны:" #. type: Plain text #: ../E/radar.txt:54 @@ -6814,7 +6819,7 @@ msgstr "" #: ../E/rand.txt:1 #, no-wrap msgid "Instruction rand" -msgstr "" +msgstr "Инструкция rand" #. type: Source code #: ../E/rand.txt:3 @@ -6826,13 +6831,13 @@ msgstr "" #: ../E/rand.txt:6 #, no-wrap msgid "Pseudorandom number between 0 and 1 (including 0, but excluding 1)." -msgstr "" +msgstr "Псевдослучайное число между 0 и 1 (включая 0, но исключая 1)." #. type: \b; header #: ../E/research.txt:1 #, no-wrap msgid "Instruction research" -msgstr "" +msgstr "Инструкция research" #. type: Source code #: ../E/research.txt:3 @@ -6844,7 +6849,7 @@ msgstr "" #: ../E/research.txt:5 #, no-wrap msgid "Starts a research of the given type." -msgstr "" +msgstr "Начинает исследование заданного типа." #. type: Plain text #: ../E/research.txt:8 @@ -6856,7 +6861,7 @@ msgstr "" #: ../E/research.txt:10 #, no-wrap msgid "type: int" -msgstr "" +msgstr "тип: int" #. type: Plain text #: ../E/research.txt:14 @@ -6871,13 +6876,13 @@ msgstr "" #: ../E/research.txt:19 #, no-wrap msgid "Research names, canresearch, researched, programming, types and categories." -msgstr "" +msgstr "Research names, canresearch, researched, программирование, типы и категории." #. type: \b; header #: ../E/researched.txt:1 #, no-wrap msgid "Instruction researched" -msgstr "" +msgstr "Инструкция researched" #. type: Source code #: ../E/researched.txt:3 @@ -6889,7 +6894,7 @@ msgstr "" #: ../E/researched.txt:5 #, no-wrap msgid "Checks if the research was done in the level." -msgstr "" +msgstr "Проверяет если исследование было сделано на уровне." #. type: Plain text #: ../E/researched.txt:11 @@ -6909,7 +6914,7 @@ msgstr "" #: ../E/researches.txt:1 #, no-wrap msgid "Value Research names" -msgstr "" +msgstr "Значения Имена исследований" #. type: Plain text #: ../E/researches.txt:2 @@ -6933,7 +6938,7 @@ msgstr "" #: ../E/researches.txt:8 #, no-wrap msgid "Done by ResearchCenter:" -msgstr "" +msgstr "Сделано с помощью ResearchCenter:" #. type: Plain text #: ../E/researches.txt:9 @@ -6953,7 +6958,7 @@ msgstr "" #: ../E/researches.txt:18 #, no-wrap msgid "Done by AutoLab:" -msgstr "" +msgstr "Сделано с помощью AutoLab:" #. type: Plain text #: ../E/researches.txt:19 @@ -6967,7 +6972,7 @@ msgstr "" #: ../E/researches.txt:22 #, no-wrap msgid "Impossible to research:" -msgstr "" +msgstr "Невозможно исследовать:" #. type: Plain text #: ../E/researches.txt:23 @@ -6982,25 +6987,25 @@ msgstr "" #: ../E/researches.txt:28 #, no-wrap msgid "CBOT Language, variables and categories." -msgstr "" +msgstr "Язык CBOT, переменные и категории." #. type: \b; header #: ../E/round.txt:1 #, no-wrap msgid "Instruction round" -msgstr "" +msgstr "Инструкция round" #. type: Source code #: ../E/round.txt:3 #, no-wrap msgid "round ( value );" -msgstr "" +msgstr "round ( значение );" #. type: Plain text #: ../E/round.txt:4 #, no-wrap msgid "Rounds a number." -msgstr "" +msgstr "Округляет число." #. type: Plain text #: ../E/round.txt:10 @@ -7018,7 +7023,7 @@ msgstr "" #: ../E/search.txt:5 #, no-wrap msgid "Detects the object of the given category that is closest to the given position. Similar to radar();, but can search starting from the specific point instead of the actual bot's position." -msgstr "" +msgstr "Обнаруживет объект заданной категории который является ближайшим к данному местоположению. Подобно radar();, но может искать начиная с заданной точки вместо с поиска с текущего местоположения бота." #. type: Bullet: 'o' #: ../E/search.txt:8 @@ -7030,7 +7035,7 @@ msgstr "" #: ../E/search.txt:9 #, no-wrap msgid "Array of categories of the objects that should be detected. For example, when you are looking only for grabbers, starting from a certain point in the level:" -msgstr "" +msgstr "Массив категорий объектов которые должны быть обнаружены. Например, когда вы ищите только сборщиков, начиная с некоторой точки уровня:" #. type: Source code #: ../E/search.txt:11 @@ -7054,61 +7059,61 @@ msgstr "" #: ../E/sin.txt:1 #, no-wrap msgid "Instruction sin" -msgstr "" +msgstr "Инструкция sin" #. type: Source code #: ../E/sin.txt:3 #, no-wrap msgid "sin ( angle );" -msgstr "" +msgstr "sin ( угол );" #. type: Plain text #: ../E/sin.txt:9 #, no-wrap msgid "Sine of the angle." -msgstr "" +msgstr "Синус угла" #. type: \b; header #: ../E/sqrt.txt:1 #, no-wrap msgid "Instruction sqrt" -msgstr "" +msgstr "Инструкция sqrt" #. type: Source code #: ../E/sqrt.txt:3 #, no-wrap msgid "sqrt ( value );" -msgstr "" +msgstr "sqrt ( значение );" #. type: Plain text #: ../E/sqrt.txt:6 #, no-wrap msgid "Non-negative number." -msgstr "" +msgstr "Не отрицательное число." #. type: Plain text #: ../E/sqrt.txt:9 #, no-wrap msgid "Square root of the value." -msgstr "" +msgstr "Квадратный корень значения." #. type: \b; header #: ../E/switch.txt:1 #, no-wrap msgid "Instructions switch, case and default" -msgstr "" +msgstr "Инструкции switch, case и default" #. type: Plain text #: ../E/switch.txt:2 #, no-wrap msgid "With the instruction switch() {} you can execute a proper set of instructions (a case) basing on some value." -msgstr "" +msgstr "С инструкцией switch() {} вы можете выполнить подходящий набор инструкций (case) на сновании значения." #. type: Plain text #: ../E/switch.txt:5 #, no-wrap msgid "Note: the busy instruction might be much better to use in this scenario." -msgstr "" +msgstr "Заметьте: инструкция busy может быть лучше использована в этом сценарии." #. type: Plain text #: ../E/switch.txt:7 @@ -7134,7 +7139,7 @@ msgstr "" #: ../E/switch.txt:18 #, no-wrap msgid "This function can be also written using the switch() {} instruction:" -msgstr "" +msgstr "Эта функция может быть также написана используя инструкцию switch() {}:" #. type: Source code #: ../E/switch.txt:20 @@ -7162,7 +7167,7 @@ msgstr "" #: ../E/switch.txt:33 #, no-wrap msgid "You can also make cases like this:" -msgstr "" +msgstr "Вы также можете сделать таким образом:" #. type: Source code #: ../E/switch.txt:35 @@ -7202,7 +7207,7 @@ msgstr "" #: ../E/switch.txt:57 #, no-wrap msgid "With this conditional structure you can execute instructions1 or instructions2 ... or instructionsN or instructionsDefault depending on the value." -msgstr "" +msgstr "С условной структурой вы можете выполнить instructions1 или instructions2 ... или instructionsN или instructionsDefault в зависмости от value." #. type: Plain text #: ../E/switch.txt:59 @@ -7219,19 +7224,19 @@ msgstr "" #: ../E/switch.txt:65 #, no-wrap msgid "You can exit from the the switch() {} instruction using break." -msgstr "" +msgstr "Вы можете выйти из инструкции switch() {} используя break." #. type: Plain text #: ../E/switch.txt:68 #, no-wrap msgid "Do not put a semicolon at the end of the switch ( ) { } instruction." -msgstr "" +msgstr "Не ставьте точку с запятой в конце инструкции switch ( ) { }." #. type: \b; header #: ../E/takeoff.txt:1 #, no-wrap msgid "Instruction takeoff" -msgstr "" +msgstr "Инструкция takeoff" #. type: Source code #: ../E/takeoff.txt:3 @@ -7243,7 +7248,7 @@ msgstr "" #: ../E/takeoff.txt:5 #, no-wrap msgid "Takes off the spaceship." -msgstr "" +msgstr "Взлет космического корабля." #. type: Plain text #: ../E/takeoff.txt:8 @@ -7264,25 +7269,25 @@ msgstr "" #: ../E/tan.txt:1 #, no-wrap msgid "Instruction tan" -msgstr "" +msgstr "Интрукция tan" #. type: Source code #: ../E/tan.txt:3 #, no-wrap msgid "tan ( angle );" -msgstr "" +msgstr "tan ( угол );" #. type: Plain text #: ../E/tan.txt:6 #, no-wrap msgid "Angle in degrees (except multiples of 90)." -msgstr "" +msgstr "Угол в градусах (за исключением кратных 90)" #. type: Plain text #: ../E/tan.txt:9 #, no-wrap msgid "Tangent of the angle." -msgstr "" +msgstr "Тангенс угла." #. type: \b; header #: ../E/trunc.txt:1 @@ -7312,7 +7317,7 @@ msgstr "" #: ../E/category.txt:4 #, no-wrap msgid "In a program, categories are always displayed like that: category. If a category isn't highlighted, it is misspelled. Caps and lower cases should be kept as is." -msgstr "" +msgstr "В программе категории всегда отображаются как категория. Если категория не выделена, то это ошибка. Верхний и нижний регистр должны сохраняться как есть." #. type: Plain text #: ../E/type.txt:9 @@ -7324,7 +7329,7 @@ msgstr "" #: ../E/produce.txt:1 #, no-wrap msgid "Instruction produce" -msgstr "" +msgstr "Инструкция produce" #. type: Source code #: ../E/produce.txt:3 @@ -7348,25 +7353,25 @@ msgstr "" #: ../E/produce.txt:7 #, no-wrap msgid "Immediately creates an object." -msgstr "" +msgstr "Немедленно создает объект." #. type: \t; header #: ../E/produce.txt:12 #, no-wrap msgid "orientation: float" -msgstr "" +msgstr "ориентация: float" #. type: Plain text #: ../E/produce.txt:13 #, no-wrap msgid "Orientation (angle) of the object." -msgstr "" +msgstr "Ориентация (угол) объекта." #. type: Plain text #: ../E/produce.txt:16 #, no-wrap msgid "Category of the object." -msgstr "" +msgstr "Категория объекта." #. type: \t; header #: ../E/produce.txt:18 @@ -7378,7 +7383,7 @@ msgstr "" #: ../E/produce.txt:22 #, no-wrap msgid "Energy level." -msgstr "" +msgstr "Уровень энергии." #. type: \t; header #: ../E/produce.txt:24 @@ -7390,31 +7395,31 @@ msgstr "" #: ../E/produce.txt:25 #, no-wrap msgid "Nothing." -msgstr "" +msgstr "Ничего." #. type: \b; header #: ../E/produce.txt:27 #, no-wrap msgid "Example usage" -msgstr "" +msgstr "Пример использования" #. type: Plain text #: ../E/produce.txt:28 #, no-wrap msgid "It is used by AlienQueen to produce AlienEggs." -msgstr "" +msgstr "Это используется AlienQueen чтобы производить AlienEggs." #. type: Plain text #: ../E/produce.txt:10 #, no-wrap msgid "Where object will be created. The second syntax creates the object at the current bot's position." -msgstr "" +msgstr "Место где объект будет создан. Второй синтакс создает объект в текущем местоположении бота." #. type: Plain text #: ../E/produce.txt:19 #, no-wrap msgid "Program for the object. Will have effect only for programmable objects like robots or aliens." -msgstr "" +msgstr "Программа для объекта. Будет иметь эффект только для программируемых объектов таких как роботы и враги." #. type: Plain text #: ../E/expr.txt:2 @@ -7450,7 +7455,7 @@ msgstr "" #: ../E/expr.txt:13 #, no-wrap msgid "Order of operations" -msgstr "" +msgstr "Порядок операций" #. type: Plain text #: ../E/expr.txt:14 @@ -7543,7 +7548,7 @@ msgstr "" #: ../E/expr.txt:50 #, no-wrap msgid "Basic arithmetic operations" -msgstr "" +msgstr "Основные арифметические операции" #. type: Plain text #: ../E/expr.txt:51 @@ -7555,7 +7560,7 @@ msgstr "" #: ../E/expr.txt:53 ../E/expr.txt:89 ../E/expr.txt:115 ../E/expr.txt:140 ../E/expr.txt:163 #, no-wrap msgid "List" -msgstr "" +msgstr "Список" #. type: Plain text #: ../E/expr.txt:54 @@ -7572,7 +7577,7 @@ msgstr "" #: ../E/expr.txt:60 #, no-wrap msgid "Notes" -msgstr "" +msgstr "Заметки" #. type: Bullet: 'o' #: ../E/expr.txt:61 @@ -7590,7 +7595,7 @@ msgstr "" #: ../E/expr.txt:64 #, no-wrap msgid "Real life examples" -msgstr "" +msgstr "Примеры из реальной жизни" #. type: \t; header #: ../E/expr.txt:81 @@ -7626,7 +7631,7 @@ msgstr "" #: ../E/expr.txt:96 #, no-wrap msgid "String concatenation" -msgstr "" +msgstr "Конкатенация (соединение) сторок" #. type: Plain text #: ../E/expr.txt:97 @@ -7660,7 +7665,7 @@ msgstr "" #: ../E/expr.txt:180 #, no-wrap msgid "For example to increment the variable a you can write" -msgstr "" +msgstr "Например, чтобы инкрементировать переменную a вы можете написать" #. type: Source code #: ../E/expr.txt:181 @@ -7672,7 +7677,7 @@ msgstr "" #: ../E/expr.txt:182 #, no-wrap msgid "instead of" -msgstr "" +msgstr "вместо" #. type: Source code #: ../E/expr.txt:183 @@ -7755,7 +7760,7 @@ msgstr "" #: ../E/expr.txt:137 #, no-wrap msgid "Logical operators" -msgstr "" +msgstr "Логические операторы" #. type: Plain text #: ../E/expr.txt:138 @@ -7767,7 +7772,7 @@ msgstr "" #: ../E/expr.txt:150 #, no-wrap msgid "Ternary operator" -msgstr "" +msgstr "Тернарный оператор" #. type: Plain text #: ../E/expr.txt:151 @@ -7788,7 +7793,7 @@ msgstr "" #: ../E/expr.txt:157 ../E/extends.txt:4 ../E/extends.txt:65 ../E/private.txt:4 ../E/protected.txt:4 ../E/super.txt:4 #, no-wrap msgid "Example" -msgstr "" +msgstr "Пример" #. type: Source code #: ../E/expr.txt:158 @@ -7806,7 +7811,7 @@ msgstr "" #: ../E/expr.txt:112 #, no-wrap msgid "Comparison operators" -msgstr "" +msgstr "Операторы сравнения" #. type: Plain text #: ../E/expr.txt:113 @@ -7880,13 +7885,13 @@ msgstr "" #: ../E/array.txt:30 #, no-wrap msgid "Initialization syntax" -msgstr "" +msgstr "Синтакс инициализации" #. type: Plain text #: ../E/array.txt:31 #, no-wrap msgid "You can initialize a new array using the following syntax:" -msgstr "" +msgstr "Вы можете инициализировать новый массис используя следующий синтакс:" #. type: Source code #: ../E/array.txt:33 @@ -7906,7 +7911,7 @@ msgstr "" #: ../E/radar.txt:2 #, no-wrap msgid "With the instruction radar();, you can look for objects like enemies, bots, buildings or raw materials." -msgstr "" +msgstr "С инструкцией radar(); вы можете находить объекты такие как враги, боты, здания или сырье." #. type: Plain text #: ../E/radar.txt:81 @@ -7918,7 +7923,7 @@ msgstr "" #: ../E/radarall.txt:1 #, no-wrap msgid "Instruction radarall" -msgstr "" +msgstr "Инструкция radarall" #. type: Plain text #: ../E/radarall.txt:2 @@ -7997,7 +8002,7 @@ msgstr "" #: ../E/for.txt:49 #, no-wrap msgid "The output of the above code is 1 2 2 1." -msgstr "" +msgstr "Вышеприведенный код выводит 1 2 2 1." #. type: Source code #: ../E/radarall.txt:5 @@ -8056,7 +8061,7 @@ msgstr "" #: ../E/class.txt:10 #, no-wrap msgid "Classes can be only public. This means that they can be used by all bots in a mission." -msgstr "" +msgstr "Классы могут быть public. Это означает что они могут использоватсья всеми ботами миссии." #. type: \b; header #: ../E/class.txt:12 @@ -8132,13 +8137,13 @@ msgstr "" #: ../E/class.txt:78 #, no-wrap msgid "Object Creation" -msgstr "" +msgstr "Создание Объекта" #. type: Plain text #: ../E/class.txt:79 #, no-wrap msgid "You can create objects of type YourClass using the new keyword. Example:" -msgstr "" +msgstr "Мы можете создавать объекты типа YourClass используя ключевое слово new. Например:" #. type: \b; header #: ../E/class.txt:90 @@ -8150,7 +8155,7 @@ msgstr "" #: ../E/class.txt:114 #, no-wrap msgid "Passing Objects to Functions" -msgstr "" +msgstr "Передача Объектов Функциям" #. type: Plain text #: ../E/class.txt:115 @@ -8162,7 +8167,7 @@ msgstr "" #: ../E/class.txt:117 #, no-wrap msgid "Inheritance" -msgstr "" +msgstr "Наследование" #. type: Plain text #: ../E/class.txt:118 @@ -8365,6 +8370,8 @@ msgid "" "class, private, protected, functions\n" "Programming, types and categories." msgstr "" +"class, private, protected, functions\n" +"Программирование, типы и категории." #. type: Plain text #: ../E/protected.txt:27 @@ -8373,6 +8380,8 @@ msgid "" "class, public, private, extends\n" "Programming, types and categories." msgstr "" +"class, public, private, extends\n" +"Программирование, типы и категории." #. type: \b; header #: ../E/super.txt:1 @@ -8387,6 +8396,8 @@ msgid "" "class, this\n" "Programming, types and categories." msgstr "" +"class, this\n" +"Программирование, типы и категории." #. type: Plain text #: ../E/this.txt:53 @@ -8395,12 +8406,14 @@ msgid "" "class, super\n" "Programming, types and categories." msgstr "" +"class, super\n" +"Программирование, типы и категории." #. type: \b; header #: ../E/extends.txt:1 #, no-wrap msgid "Keyword extends" -msgstr "" +msgstr "Ключевое слово extends" #. type: \b; header #: ../E/extends.txt:30 @@ -8418,7 +8431,7 @@ msgstr "" #: ../E/extends.txt:33 #, no-wrap msgid "Constructors and destructors are not inherited, however, they can be overriden." -msgstr "" +msgstr "Конструкторы и деструкторы не наследуются, однако они могут быть перегружены." #. type: \b; header #: ../E/extends.txt:35 @@ -8463,7 +8476,7 @@ msgstr "" #: ../E/extends.txt:62 #, no-wrap msgid "Polymorphism" -msgstr "" +msgstr "Полиморфизм" #. type: Plain text #: ../E/extends.txt:63 diff --git a/help/generic/po/ru.po b/help/generic/po/ru.po index 99d20f08..9e6326ce 100644 --- a/help/generic/po/ru.po +++ b/help/generic/po/ru.po @@ -62,7 +62,7 @@ msgstr "" #: ../E/cbot.txt:1 #, no-wrap msgid "Programming - the CBOT language" -msgstr "" +msgstr "Программирование - язык CBOT" #. type: Plain text #: ../E/cbot.txt:2 @@ -70,49 +70,50 @@ msgstr "" msgid "" "The CBOT language is very close in structure and syntax to C++ and Java. It has been adapted for the specific purposes of COLOBOT, and for an efficient pedagogical approach.\n" "This language is made up of instructions (see below), blocks, functions, classes, variables, arrays, expressions and conditions." -msgstr "" +msgstr "Язык CBOT очень близок к структуре и синтаксису языков C++ и Java. Он был адаптировать для специальный целей COLOBOT и для эффективного педагогического подхода." +"Этот язык состоит из инструкций (смотри ниже), блоки, функции, классы, переменные, массивы, выражения и условия." #. type: Bullet: 'o' #: ../E/cbot.txt:8 #, no-wrap msgid "Type" -msgstr "" +msgstr "Тип" #. type: Bullet: 'o' #: ../E/cbot.txt:11 #, no-wrap msgid "Constants" -msgstr "" +msgstr "Константы" #. type: \t; header #: ../E/cbot.txt:14 #, no-wrap msgid "Instructions in the CBOT language:" -msgstr "" +msgstr "Инструкции в языке CBOT:" #. type: \t; header #: ../E/cbot.txt:29 #, no-wrap msgid "Specific instructions for bots:" -msgstr "" +msgstr "Специальные инструкции для ботов:" #. type: \t; header #: ../E/cbot.txt:54 #, no-wrap msgid "Instructions about topology:" -msgstr "" +msgstr "Инструкции о топологии:" #. type: \t; header #: ../E/cbot.txt:60 #, no-wrap msgid "Instructions specific to some bots:" -msgstr "" +msgstr "Специальные инструкции для некоторых ботов:" #. type: \t; header #: ../E/cbot.txt:79 #, no-wrap msgid "Specific instructions for exchange posts:" -msgstr "" +msgstr "Специальные инструкции по обмену сообщениями:" #. type: Plain text #: ../E/cbot.txt:80 @@ -123,18 +124,22 @@ msgid "" "testinfo Tests if an information exists\n" "deleteinfo Deletes an existing information" msgstr "" +"receive Получает информацию\n" +"send Посылает новую информацию\n" +"testinfo Проверяет существует ли информация\n" +"deleteinfo Удаляет существующую информацию\n" #. type: \t; header #: ../E/cbot.txt:85 #, no-wrap msgid "Specific instructions for classes:" -msgstr "" +msgstr "Специальные инструкции для классов:" #. type: \t; header #: ../E/cbot.txt:97 #, no-wrap msgid "Specific instructions for strings:" -msgstr "" +msgstr "Специальные инструкции для строк:" #. type: Plain text #: ../E/cbot.txt:98 @@ -149,12 +154,20 @@ msgid "" "strupper Converts to upper case\n" "strlower Converts to lower case" msgstr "" +"strlen Получает длину строки\n" +"strleft Извлекает левую часть\n" +"strright Извлекает правую часть\n" +"strmid Извлекает центральную часть\n" +"strfind Находит подстроку.\n" +"strval Конвертирует строку в число\n" +"strupper Конвертирует в верхний регистр\n" +"strlower Конвертирует в нижний регистр" #. type: \t; header #: ../E/cbot.txt:107 #, no-wrap msgid "Specific instructions for files:" -msgstr "" +msgstr "Специальные инструкции для файлов:" #. type: Plain text #: ../E/cbot.txt:108 @@ -167,6 +180,12 @@ msgid "" "eof Tests if end of file\n" "deletefile Deletes a file" msgstr "" +"open Открывает файл\n" +"close Закрывает файл\n" +"writeln Записывает строку в файл\n" +"readln Читает строку из файла\n" +"eof Проверяет достугнут ли конец файла\n" +"deletefile Удаляет файл" #. type: \t; header #: ../E/battles.txt:53 ../E/cbot.txt:131 ../E/freehelp.txt:4 @@ -178,7 +197,7 @@ msgstr "См. также" #: ../E/cbot.txt:132 #, no-wrap msgid "Types and categories." -msgstr "" +msgstr "Типы и категории." #. type: \b; header #: ../E/command.txt:1 @@ -458,37 +477,37 @@ msgstr "" #: ../E/battles.txt:1 #, no-wrap msgid "Code battles" -msgstr "" +msgstr "Битвы программ" #. type: Plain text #: ../E/battles.txt:2 #, no-wrap msgid "Code battle is a completely new game mode featured in Colobot: Gold Edition. The idea is that you set up two programs (yours and the opponent's) to fight with each other. The player can't interact with the world manually." -msgstr "" +msgstr "Битва программ - это полностью новый игровой режим представленный в Colobot: Gold Edition. Идея в том, что вы уставливаете две программы (вашу и оппонента) чтобы они сражались друг с другом. Игрок не может взаимодействовать с миром вручную." #. type: Plain text #: ../E/battles.txt:18 #, no-wrap msgid "With the new functions provided in the Gold Edition, you can create a fully automatised base, which does not need any influence from human. All of them are described in the CBOT documentation." -msgstr "" +msgstr "С новыми функциями предоставленными в Gold Edition, вы можете создать полностью автоматизированную базу, которой не нужно никакое влияние со стороны человека. Все они описаны в Документации CBOT." #. type: Plain text #: ../E/battles.txt:20 #, no-wrap msgid "Production line is explained in Missions and Exercises, but you may want to jump into code battles right away without beating the whole game. So here is a brief description of how the things works in Colobot." -msgstr "" +msgstr "Произведственная линия объяснена в Миссиях и Упражнениях, но вы можете прямо перейти в битвы программ не нарушая всю игру. Поэтому здесь приведено краткое описание как что работает в Colobot." #. type: \t; header #: ../E/battles.txt:22 #, no-wrap msgid "What you want to achieve" -msgstr "" +msgstr "Что вы хотите достичь" #. type: Plain text #: ../E/battles.txt:23 #, no-wrap msgid "Basically, you want to destroy the opponent. To do that, you will need something lethal, for example, a robot, specifically, a shooter. But you will probably be losing them quite often, so maybe you should keep the production going on. For example, more grabbers or more factories, converters and so on would be helpful in that. Remember that robots needs batteries. Anyway, before you can start, you must also do some researches to get better technologies. And here we are at the beginning, with a single robot and a Titanium." -msgstr "" +msgstr "В основном, вы хотите уничтожить оппонента. Чтобы это сделать, вам нужно что то летающее, например, робот, особенно, стрелок. Но вы, вероятно, будете их часто терять, поэтому, возможно, вы должны поддерживать производство работающим. Например, больше сборщиков или больше фабрик, конвертеров и так далее было бы полезно в этом случае. Запомните, что роботам нужны батареи. В любом случае, перед тем как вы начнете, вы должны также сделать несколько исследований чтобы получить лучшие технологии. И опять, вы вначале с одним роботом и Титаном." #. type: Image filename #: ../E/battles.txt:25 @@ -500,7 +519,7 @@ msgstr "" #: ../E/battles.txt:27 #, no-wrap msgid "Titanium production" -msgstr "" +msgstr "Производство титана" #. type: Plain text #: ../E/battles.txt:28 @@ -513,12 +532,18 @@ msgid "" "5. Use or move somewhere your new Titanium.\n" "Repeat steps 3-5 in order to keep your production going." msgstr "" +"1. Найдите Титан.\n" +"2. Постройте Конвертер.\n" +"3. Найдите Титановую руду.\n" +"4. Поместите ее в конвертер. Отойдите назад и подождите, пока конвертер закончит работу.\n" +"5. Используйте или переместите ваш новый Титан.\n" +"Повторяйте шаги 3-5 чтобы поддерживать ваше производство работающим." #. type: \t; header #: ../E/battles.txt:35 #, no-wrap msgid "Researches" -msgstr "" +msgstr "Исследования" #. type: Plain text #: ../E/battles.txt:36 @@ -533,7 +558,7 @@ msgstr "" #: ../E/battles.txt:40 #, no-wrap msgid "Robot production" -msgstr "" +msgstr "Производство роботов" #. type: Plain text #: ../E/battles.txt:41 @@ -549,7 +574,7 @@ msgstr "" #: ../E/battles.txt:46 #, no-wrap msgid "Power cell production" -msgstr "" +msgstr "Произодство батарей" #. type: Plain text #: ../E/battles.txt:47 @@ -563,19 +588,19 @@ msgstr "" #: ../E/battles.txt:50 #, no-wrap msgid "There is more" -msgstr "" +msgstr "Есть еще" #. type: Plain text #: ../E/battles.txt:51 #, no-wrap msgid "There is much more options, but this is the basis. Read documentation, play the game and think creatively to come up with new ideas. Good luck and have fun!" -msgstr "" +msgstr "Есть еще больше опций, это только основные. Прочитайте документацию, играйте в игруи творчески думайте чтобы придумать новые идеи. Удачи и веселья!" #. type: Plain text #: ../E/battles.txt:54 #, no-wrap msgid "Programming, types and categories." -msgstr "" +msgstr "Программирование, типы и категории." #. type: Plain text #: ../E/cbot.txt:15 @@ -595,6 +620,19 @@ msgid "" "return Exit from a function\n" "sizeof Size of an array" msgstr "" +"extern Показывает главную функцию\n" +"if Структура выбора\n" +"else Структура альтернативного выбора\n" +"switch Структура множественного выбора\n" +"case Один выбор\n" +"default Выбор по умолчанию \n" +"for Структура цикла\n" +"while Структура управления\n" +"do Структура управления\n" +"break Выход из цикла\n" +"continue Продолжает цикл\n" +"return Выход из функции\n" +"sizeof Размер массива" #. type: Plain text #: ../E/cbot.txt:55 @@ -605,6 +643,10 @@ msgid "" "topo Returns the altitude of a point\n" "flatground Returns radius of a flat area" msgstr "" +"space Вычисляет свободное пространство\n" +"flatspace Вычисляет свободное, ровное пространство\n" +"topo Возвращает высоту точки\n" +"flatground Возвращает радиус плоской области" #. type: Plain text #: ../E/cbot.txt:61 @@ -622,12 +664,23 @@ msgid "" "canbuild Checks if a building can be built\n" "buildingenabled Checks if a building can be built in the level" msgstr "" +"grab Поднимает объект\n" +"drop Ставит объект\n" +"sniff Проигрывает подземные звуки\n" +"thump Переворачивает вражеских насекомых\n" +"recycle Перерабатывает заброшенног бота\n" +"shield Достает или убирает щит\n" +"fire Стреляет из пушки\n" +"aim Поворачивает пушку\n" +"build Строит здание\n" +"canbuild Проверяет можно ли построить здание\n" +"buildingenabled Проверяет можно ли построить здание на уровне" #. type: \t; header #: ../E/cbot.txt:73 #, no-wrap msgid "Instructions specific for some objects:" -msgstr "" +msgstr "Специальные инструкции применяемые к некоторым объектам:" #. type: Plain text #: ../E/cbot.txt:74 @@ -638,12 +691,16 @@ msgid "" "takeoff Takes off a spaceship\n" "busy Checks if object is busy" msgstr "" +"factory Начинает создание бота\n" +"research Начинает исследование\n" +"takeoff Начинает взлет космического корабля\n" +"busy Проверяет занят ли объект" #. type: \t; header #: ../E/cbot.txt:115 #, no-wrap msgid "Mathematical functions:" -msgstr "" +msgstr "Математические функции:" #. type: Plain text #: ../E/cbot.txt:116 @@ -664,18 +721,32 @@ msgid "" "atan Returns an arcus tangent\n" "atan2 Returns an arcus tangent, has two arguments" msgstr "" +"rand Возвращает случайное число\n" +"pow Возвращает степень числа\n" +"sqrt Вовращает квадратный корень\n" +"floor Возвращает предыдущее целое число\n" +"ceil Возвращает наименьшее следующее целое число\n" +"round Возвращает округленное число\n" +"trunc Возвращает усеченное число\n" +"sin Возвращает синус\n" +"cos Возвращает косинус\n" +"tan Возвращает тангенс\n" +"asin Возвращает арксинус\n" +"acos Возвращает арккосинус\n" +"atan Возвращает арктангенс\n" +"atan2 Возвращет арктангенс, имеет два аргумента" #. type: Plain text #: ../E/cbot.txt:9 #, no-wrap msgid "The type of a variable appears like that: type. " -msgstr "" +msgstr "Тип переменной выглядит следующим образом: тип. " #. type: Plain text #: ../E/cbot.txt:12 #, no-wrap msgid "Constants like categories are displayed like that: constant. " -msgstr "" +msgstr "Константы такие как категории отображаются следующим образом: константа. " #. type: Plain text #: ../E/cbot.txt:5 @@ -683,55 +754,55 @@ msgstr "" msgid "" "o |c;Instructions\n" "In the program editor, an instruction in the CBOT language is always displayed like that: instruction. If an instruction is not highlighted, this means that it has been misspelled. Instruction names are always written in lower case. " -msgstr "" +msgstr "В редакторе программы, инструкция в языке CBOT всегда отображется как инструкция. Если инструкция не подсвечена, это означает что она неправильно написана. Имена инструкций всегда пишутся в нижнем регистре." #. type: \b; header #: ../E/cheats.txt:1 #, no-wrap msgid "Cheats" -msgstr "" +msgstr "Коды к игре" #. type: Plain text #: ../E/cheats.txt:2 #, no-wrap msgid "Great, you have found this secret page. We hope you will use informations contained here only for other than cheating purposes. Like testing the game or recording a cool video about Colobot." -msgstr "" +msgstr "Прерасно, вы нашли эту секретную страницу. Мы надеемся вы будет использовать информацию содержащуюся здесь для других целей только не для обманных целей. Например тестирование игры или запись классного видео о Colobot." #. type: \b; header #: ../E/cheats.txt:4 #, no-wrap msgid "Console" -msgstr "" +msgstr "Консоль" #. type: Plain text #: ../E/cheats.txt:5 #, no-wrap msgid "You can open the console by pressing the ~ button on your keyboard. Press ENTER to hide it or pass one of the commands below." -msgstr "" +msgstr "Вы можете открыть консоль нажатием кнопки ~ на вашей клавиатуре. Нажмите ENTER чтобы скрыть это или чтобы выполнить одну из команд приведенных ниже." #. type: \t; header #: ../E/cheats.txt:7 #, no-wrap msgid "Missions" -msgstr "" +msgstr "Миссии" #. type: \t; header #: ../E/cheats.txt:13 #, no-wrap msgid "Gameplay" -msgstr "" +msgstr "Игровой процесс" #. type: \t; header #: ../E/cheats.txt:32 #, no-wrap msgid "Debug" -msgstr "" +msgstr "Отладка" #. type: \t; header #: ../E/cheats.txt:37 #, no-wrap msgid "Aesthetic" -msgstr "" +msgstr "Эстетика" #. type: \b; header #: ../E/cheats.txt:41 @@ -743,25 +814,25 @@ msgstr "" #: ../E/cheats.txt:45 #, no-wrap msgid "produce Immediately creates an object" -msgstr "" +msgstr "produce Немедленно создает объект" #. type: Bullet: 'o' #: ../E/cheats.txt:8 #, no-wrap msgid "winmission Immediately win the current mission" -msgstr "" +msgstr "winmission Немедленно успешно заканчивает текущую миссию" #. type: Bullet: 'o' #: ../E/cheats.txt:9 #, no-wrap msgid "lostmission Immediately lose the current mission" -msgstr "" +msgstr "lostmission Немедленно заканчивает текущую миссию с поражением" #. type: Bullet: 'o' #: ../E/cheats.txt:14 #, no-wrap msgid "allresearch All researches are done" -msgstr "" +msgstr "allresearch Все исследования сделаны" #. type: Bullet: 'o' #: ../E/cheats.txt:15 @@ -779,19 +850,19 @@ msgstr "" #: ../E/cheats.txt:17 #, no-wrap msgid "fullenergy Restore energy in the currently selected bot" -msgstr "" +msgstr "fullenergy Восстановите энегрию в текущем выбранном боте" #. type: Bullet: 'o' #: ../E/cheats.txt:18 #, no-wrap msgid "fullshield Restore shield in the currently selected object" -msgstr "" +msgstr "fullshield Востановите щит в текущем выбранном объекте" #. type: Bullet: 'o' #: ../E/cheats.txt:19 #, no-wrap msgid "fullrange Flying reactor is cold" -msgstr "" +msgstr "fullrange Летающий реактор холодный" #. type: Bullet: 'o' #: ../E/cheats.txt:20 @@ -803,43 +874,43 @@ msgstr "" #: ../E/cheats.txt:22 #, no-wrap msgid "fly You can fly even if flying is disabled in the current mission" -msgstr "" +msgstr "fly Вы можете летать даже если летание отключено в текущей миссии" #. type: Bullet: 'o' #: ../E/cheats.txt:24 #, no-wrap msgid "addfreezer Flying reactor heats more slowly" -msgstr "" +msgstr "addfreezer Летающий реактор нагревается более медленно" #. type: Bullet: 'o' #: ../E/cheats.txt:25 #, no-wrap msgid "addhusky You take less damage than usual" -msgstr "" +msgstr "addhusky Вы можете получать меньше повреждений чем обычно" #. type: Bullet: 'o' #: ../E/cheats.txt:26 #, no-wrap msgid "nolimit You can fly higher" -msgstr "" +msgstr "nolimit Вы можете лететь выше" #. type: Bullet: 'o' #: ../E/cheats.txt:27 #, no-wrap msgid "trainerpilot You can drive robots which could be previously controlled only by programs" -msgstr "" +msgstr "trainerpilot Вы можете вести роботов, которые раньше могли контролироваться только программами." #. type: Bullet: 'o' #: ../E/cheats.txt:38 #, no-wrap msgid "photo1 Free camera, you can change angle with + and - keys, type again to set it off" -msgstr "" +msgstr "photo1 Свободная камера, вы можете менять угол клавишами + и -, нажмите опять, чтобы это отключить" #. type: Bullet: 'o' #: ../E/cheats.txt:39 #, no-wrap msgid "photo2 Same as photo1, except it hides interface, type again to set it off" -msgstr "" +msgstr "photo2 Также как photo1, за исключением того, что это скрывает интерфейс, нажмите опять, чтобы это отключить" #. type: Bullet: 'o' #: ../E/cheats.txt:47 @@ -893,7 +964,7 @@ msgstr "" #: ../E/cheats.txt:55 #, no-wrap msgid "stopmusic Stops music" -msgstr "" +msgstr "stopmusic Останавливает музыку" #. type: Bullet: 'o' #: ../E/cheats.txt:10 @@ -941,7 +1012,7 @@ msgstr "" #: ../E/cheats.txt:33 #, no-wrap msgid "These commands work also in main menu. Type them again to set them off." -msgstr "" +msgstr "Эти команды также работают в главном меню. Напишите их опять, чтобы их выключить." #. type: Bullet: 'o' #: ../E/cheats.txt:34 @@ -973,31 +1044,31 @@ msgstr "" #: ../E/battles.txt:17 #, no-wrap msgid "Basics of production line\\m production;" -msgstr "" +msgstr "Основые производственной линии\\m production;" #. type: \b; header #: ../E/battles.txt:4 #, no-wrap msgid "How to control the level" -msgstr "" +msgstr "Как управлять уровнем" #. type: \t; header #: ../E/battles.txt:6 #, no-wrap msgid "Starting a code battle" -msgstr "" +msgstr "Начать битву программ" #. type: \t; header #: ../E/battles.txt:11 #, no-wrap msgid "Controlling the spectator's view" -msgstr "" +msgstr "Управление видом наблюдателя" #. type: Plain text #: ../E/battles.txt:12 #, no-wrap msgid "After a code battle is started, the camera is put into a special mode:" -msgstr "" +msgstr "После того, как битва программ началась, камере будет поставлена в специальный режим:" #. type: Plain text #: ../E/battles.txt:7 diff --git a/help/object/po/ru.po b/help/object/po/ru.po index 990a4366..a3821868 100644 --- a/help/object/po/ru.po +++ b/help/object/po/ru.po @@ -1267,19 +1267,19 @@ msgstr "ResearchCenter" #: ../E/ruin.txt:1 #, no-wrap msgid "Ruin" -msgstr "" +msgstr "Руина" #. type: Plain text #: ../E/ruin.txt:2 #, no-wrap msgid "A ruin is what's left of a building after it has been disabled by a spider or by friendly fire." -msgstr "" +msgstr "Руина - это то, что останется от здания после того, как оно было отключено пауком или дружественным огнем." #. type: Plain text #: ../E/ruin.txt:4 #, no-wrap -msgid "It can't be converted back into a reusable titanium cube." -msgstr "" +msgid "It can't be converted back into a reusable титановый куб." +msgstr "Она не может быть конвертинована назад в многоразовый " #. type: Plain text #: ../E/ruin.txt:7 @@ -1357,7 +1357,7 @@ msgstr "StartArea" #: ../E/station.txt:1 #, no-wrap msgid "